code: def __mul__(graph, other):
      """Copies exact replicas of the original graph an arbitrary number of
      times.
  
      @param other: if it is an integer, multiplies the graph by creating the
        given number of identical copies and taking the disjoint union of
        them.
      """
      # Deferred import to avoid cycles
      from igraph import Graph
  
      if isinstance(other, int):
          if other == 0:
              return Graph()
          elif other == 1:
              return graph
          elif other > 1:
              return graph.disjoint_union([graph] * (other - 1))
          else:
              return NotImplemented
  
      return NotImplemented
  
file_path: python-igraph/src/igraph/operators/methods.py
imports: from igraph._igraph import GraphBase, Vertex, Edge
  from igraph.seq import VertexSeq, EdgeSeq
  from igraph.operators.functions import disjoint_union, union, intersection
label_desc: Use image node_id 9 for calling a global function with example usage: __mul__(graph, other) and returns: NotImplemented, Graph, graph, graph, NotImplemented