code: def example_hin_2(feature_size_by_type=None):
      if feature_size_by_type is None:
          feature_size_by_type = {"t1": None, "t2": None}
  
      nodes_type_1 = [0, 1, 2, 3]
      nodes_type_2 = [4, 5]
      nodes = {
          "t1": pd.DataFrame(
              repeated_features(
                  nodes_type_1, feature_size_by_type["t1"]
              ),
              index=nodes_type_1,
          ),
          "t2": pd.DataFrame(
              repeated_features(
                  nodes_type_2, feature_size_by_type["t2"]
              ),
              index=nodes_type_2,
          ),
      }
      edges = {
          "e1": pd.DataFrame(
              [(0, 4), (1, 4), (2, 5), (3, 5)],
              columns=["source", "target"],
          )
      }
  
      return StellarGraph(nodes, edges), nodes_type_1, nodes_type_2
  
imports: from stellargraph.core.graph import *
  from stellargraph.mapper import *
  import networkx
  import numpy
  import random
  import pytest
  import pandas
  import scipy.sparse
  from ..test_utils.graphs import example_graph, example_graph_random, example_hin_1, create_graph_features, repeated_features, weighted_tree
  from ..None import test_utils
label_desc: Use image node_id 2 for calling a global function with example usage: example_hin_2(feature_size_by_type) and returns: StellarGraph,  nodes_type_1,  nodes_type_2