class_docstr: An abstract base class for implementing cugraph-ops message passing layers.
class_docstr_tok: ["An","abstract","base","class","for","implementing","cugraph-ops","message","passing","layers","."]
docstr: Constructs a typed :obj:`cugraph` graph object from a CSC
  representation where each edge corresponds to a given edge type.
  Supports both bipartite and non-bipartite graphs.
  
  Args:
      csc ((torch.Tensor, torch.Tensor, int)): A tuple containing the CSC
          representation of a graph, given as a tuple of
          :obj:`(row, colptr, num_src_nodes)`. Use the
          :meth:`to_csc` method to convert an :obj:`edge_index`
          representation to the desired format.
      edge_type (torch.Tensor): The edge type.
      num_edge_types (int, optional): The maximum number of edge types.
          When not given, will be computed on-the-fly, leading to
          slightly worse performance. (default: :obj:`None`)
      bipartite (bool): If set to :obj:`True`, will create the bipartite
          structure in cugraph-ops. (default: :obj:`False`)
      max_num_neighbors (int, optional): The maximum number of neighbors
          of a destination node. When enabled, it allows models to use
          the message-flow-graph primitives in cugraph-ops.
          (default: :obj:`None`)
docstr_tok: ["Constructs","a","typed",":","obj",":","`","cugraph","`","graph","object","from","a","CSC","representation","where","each","edge","corresponds","to","a","given","edge","type",".","Supports","both","bipartite","and","non-bipartite","graphs",".","Args",":","csc","(","(","torch.Tensor",",","torch.Tensor",",","int",")",")",":","A","tuple","containing","the","CSC","representation","of","a","graph",",","given","as","a","tuple","of",":","obj",":","`","(","row",",","colptr",",","num_src_nodes",")","`",".","Use","the",":","meth",":","`","to_csc","`","method","to","convert","an",":","obj",":","`","edge_index","`","representation","to","the","desired","format",".","edge_type","(","torch.Tensor",")",":","The","edge","type",".","num_edge_types","(","int",",","optional",")",":","The","maximum","number","of","edge","types",".","When","not","given",",","will","be","computed","on-the-fly",",","leading","to","slightly","worse","performance",".","(","default",":",":","obj",":","`","None","`",")","bipartite","(","bool",")",":","If","set","to",":","obj",":","`","True","`",",","will","create","the","bipartite","structure","in","cugraph-ops",".","(","default",":",":","obj",":","`","False","`",")","max_num_neighbors","(","int",",","optional",")",":","The","maximum","number","of","neighbors","of","a","destination","node",".","When","enabled",",","it","allows","models","to","use","the","message-flow-graph","primitives","in","cugraph-ops",".","(","default",":",":","obj",":","`","None","`",")"]
code: def get_typed_cugraph(
      self,
      csc: Tuple[torch.Tensor, torch.Tensor, int],
      edge_type: torch.Tensor,
      num_edge_types: Optional[int] = None,
      bipartite: bool = False,
      max_num_neighbors: Optional[int] = None,
  ) -> HeteroCSC:
      r"""Constructs a typed :obj:`cugraph` graph object from a CSC
      representation where each edge corresponds to a given edge type.
      Supports both bipartite and non-bipartite graphs.
  
      Args:
          csc ((torch.Tensor, torch.Tensor, int)): A tuple containing the CSC
              representation of a graph, given as a tuple of
              :obj:`(row, colptr, num_src_nodes)`. Use the
              :meth:`to_csc` method to convert an :obj:`edge_index`
              representation to the desired format.
          edge_type (torch.Tensor): The edge type.
          num_edge_types (int, optional): The maximum number of edge types.
              When not given, will be computed on-the-fly, leading to
              slightly worse performance. (default: :obj:`None`)
          bipartite (bool): If set to :obj:`True`, will create the bipartite
              structure in cugraph-ops. (default: :obj:`False`)
          max_num_neighbors (int, optional): The maximum number of neighbors
              of a destination node. When enabled, it allows models to use
              the message-flow-graph primitives in cugraph-ops.
              (default: :obj:`None`)
      """
      if num_edge_types is None:
          num_edge_types = int(edge_type.max()) + 1
  
      if max_num_neighbors is None:
          max_num_neighbors = -1
  
      row, colptr, num_src_nodes = csc
      edge_type = edge_type.int()
  
      return HeteroCSC(
          offsets=colptr,
          indices=row,
          edge_types=edge_type,
          num_src_nodes=num_src_nodes,
          num_edge_types=num_edge_types,
          dst_max_in_degree=max_num_neighbors,
          is_bipartite=bipartite,
      )
  
file_path: cugraph/python/cugraph-pyg/cugraph_pyg/nn/conv/base.py
imports: import warnings
  from typing import Optional, Tuple, Union
  from cugraph.utilities.utils import import_optional
  from pylibcugraphops.pytorch import CSC, HeteroCSC
label_desc: Use image node_id 4 for calling the BaseConv obj's underlying member method code with example usage: obj.get_typed_cugraph(csc, edge_type, num_edge_types, bipartite, max_num_neighbors) and returns: HeteroCSC