"""Sampling Graphs."""
from typing import Dict, Union
import torch
__all__ = ["SamplingGraph"]
[docs]
class SamplingGraph:
    r"""Class for sampling graph."""
    def __init__(self):
        pass
    def __repr__(self) -> str:
        """Return a string representation of the graph.
        Returns
        -------
        str
            String representation of the graph.
        """
        raise NotImplementedError
    @property
    def num_nodes(self) -> Union[int, Dict[str, int]]:
        """The number of nodes in the graph.
        - If the graph is homogenous, returns an integer.
        - If the graph is heterogenous, returns a dictionary.
        Returns
        -------
        Union[int, Dict[str, int]]
            The number of nodes. Integer indicates the total nodes number of a
            homogenous graph; dict indicates nodes number per node types of a
            heterogenous graph.
        """
        raise NotImplementedError
    @property
    def num_edges(self) -> Union[int, Dict[str, int]]:
        """The number of edges in the graph.
        - If the graph is homogenous, returns an integer.
        - If the graph is heterogenous, returns a dictionary.
        Returns
        -------
        Union[int, Dict[str, int]]
            The number of edges. Integer indicates the total edges number of a
            homogenous graph; dict indicates edges number per edge types of a
            heterogenous graph.
        """
        raise NotImplementedError
[docs]
    def copy_to_shared_memory(self, shared_memory_name: str) -> "SamplingGraph":
        """Copy the graph to shared memory.
        Parameters
        ----------
        shared_memory_name : str
            Name of the shared memory.
        Returns
        -------
        SamplingGraph
            The copied SamplingGraph object on shared memory.
        """
        raise NotImplementedError 
    # pylint: disable=invalid-name
[docs]
    def to(self, device: torch.device) -> "SamplingGraph":
        """Copy graph to the specified device.
        Parameters
        ----------
        device : torch.device
            The destination device.
        Returns
        -------
        SamplingGraph
            The graph on the specified device.
        """
        raise NotImplementedError