code: def example_hin_1(
      feature_sizes=None,
      is_directed=False,
      self_loop=False,
      reverse_order=False,
      edge_features=False,
  ) -> StellarGraph:
      def features(label, ids):
          if feature_sizes is None:
              return None
          else:
              feature_size = feature_sizes.get(label, 10)
              return repeated_features(ids, feature_size)
  
      a_ids = [0, 1, 2, 3]
      if reverse_order:
          a_ids = a_ids[::-1]
      a = IndexedArray(features("A", a_ids), index=a_ids)
  
      b_ids = [4, 5, 6]
      if reverse_order:
          b_ids = b_ids[::-1]
      b = IndexedArray(features("B", b_ids), index=b_ids)
  
      r_edges = [(4, 0), (1, 5), (1, 4), (2, 4), (5, 3)]
      f_edges, f_index = [(4, 5)], [100]
      if self_loop:
          # make it a multigraph, across types and within a single one
          r_edges.append((5, 5))
          f_edges.extend([(5, 5), (5, 5)])
          f_index.extend([101, 102])
  
      r = pd.DataFrame(r_edges, columns=["source", "target"])
  
      # add some weights for the f edges, but not others
      f_columns = ["source", "target", "weight"]
      for i, src_tgt in enumerate(f_edges):
          f_edges[i] = src_tgt + (10 + i,)
  
      f = pd.DataFrame(f_edges, columns=f_columns, index=f_index)
  
      if edge_features:
          r = r.join(
              pd.DataFrame(-features("R", r.index), index=r.index)
          )
          f = f.join(
              pd.DataFrame(-features("F", f.index), index=f.index)
          )
  
      cls = StellarDiGraph if is_directed else StellarGraph
      return cls(nodes={"A": a, "B": b}, edges={"R": r, "F": f})
  
imports: from stellargraph import StellarGraph, StellarDiGraph, IndexedArray
  import networkx
  import pandas
  import numpy
  import random
  import pytest
label_desc: Use image node_id 7 for calling a global function with example usage: example_hin_1(feature_sizes, is_directed, _loop, reverse_order, edge_features) and returns: cls, None, repeated_features