def METHOD_NAME(cls, graph):
    """
    create a cuxfilter.DataFrame from cudf.DataFrame/dask_cudf.DataFrame
    (zero-copy reference) from a graph object
    Parameters
    ----------
    tuple object (nodes, edges) where nodes and edges are cudf DataFrames
    Returns
    -------
    cuxfilter.DataFrame object
    Examples
    --------
    load graph from cugraph object
    >>> import cuxfilter
    >>> import cudf, cugraph
    >>> edges = cudf.DataFrame(
    >>>     {
    >>>         'source': [0, 1, 2, 3, 4],
    >>>         'target':[0,1,2,3,4],
    >>>         'weight':[4,4,2,6,7],
    >>>     }
    >>> )
    >>> G = cugraph.Graph()
    >>> G.from_cudf_edgelist(edges, destination='target')
    >>> cux_df = cuxfilter.DataFrame.load_graph((G.nodes(), G.edges()))
    load graph from (nodes, edges)
    >>> import cuxfilter
    >>> import cudf
    >>> nodes = cudf.DataFrame(
    >>>     {
    >>>         'vertex': [0, 1, 2, 3, 4],
    >>>         'x':[0,1,2,3,4],
    >>>         'y':[4,4,2,6,7],
    >>>         'attr': [0,1,1,1,1]
    >>>     }
    >>> )
    >>> edges = cudf.DataFrame(
    >>>     {
    >>>         'source': [0, 1, 2, 3, 4],
    >>>         'target':[0,1,2,3,4],
    >>>         'weight':[4,4,2,6,7],
    >>>     }
    >>> )
    >>> cux_df = cuxfilter.DataFrame.load_graph((nodes,edges))
    """
    if isinstance(graph, tuple):
        nodes, edges = graph
        df = cls(nodes)
        df.is_graph = True
        df.edges = edges
        return df
    raise ValueError(
        "Expected value for graph - (nodes[cuDF], edges[cuDF])"
    )