code: def _construct_full_bipartite_graph(
      cls, n1, n2, directed=False, mode="all", *args, **kwds
  ):
      """Generates a full bipartite graph (directed or undirected, with or
      without loops).
  
      >>> g = Graph.Full_Bipartite(2, 3)
      >>> g.is_bipartite()
      True
      >>> g.vs["type"]
      [False, False, True, True, True]
  
      @param n1: the number of vertices of the first kind.
      @param n2: the number of vertices of the second kind.
      @param directed: whether tp generate a directed graph.
      @param mode: if C{"out"}, then all vertices of the first kind are
        connected to the others; C{"in"} specifies the opposite direction,
        C{"all"} creates mutual edges. Ignored for undirected graphs.
  
      @return: the graph with a binary vertex attribute named C{"type"} that
        stores the vertex classes.
      """
      result, types = cls._Full_Bipartite(
          n1, n2, directed, mode, *args, **kwds
      )
      result.vs["type"] = types
      return result
  
label_desc: Use image node_id 3 for calling a global function with example usage: _construct_full_bipartite_graph(cls, n1, n2, directed, mode) and returns: result