"""
This type stub file was generated by pyright.
"""

"""Checking and logging utilities."""
def prepare_tensor(g, data, name):
    """Convert the data to ID tensor and check its ID type and context.

    If the data is already in tensor type, raise error if its ID type
    and context does not match the graph's.
    Otherwise, convert it to tensor type of the graph's ID type and
    ctx and return.

    Parameters
    ----------
    g : DGLHeteroGraph
        Graph.
    data : int, iterable of int, tensor
        Data.
    name : str
        Name of the data.

    Returns
    -------
    Tensor
        Data in tensor object.
    """
    ...

def prepare_tensor_dict(g, data, name): # -> dict[Unknown, Unknown]:
    """Convert a dictionary of data to a dictionary of ID tensors.

    If calls ``prepare_tensor`` on each key-value pair.

    Parameters
    ----------
    g : DGLHeteroGraph
        Graph.
    data : dict[str, (int, iterable of int, tensor)]
        Data dict.
    name : str
        Name of the data.

    Returns
    -------
    dict[str, tensor]
    """
    ...

def parse_edges_arg_to_eid(g, edges, etid, argname=...):
    """Parse the :attr:`edges` argument and return an edge ID tensor.

    The resulting edge ID tensor has the same ID type and device of :attr:`g`.

    Parameters
    ----------
    g : DGLGraph
        Graph
    edges : pair of Tensor, Tensor, iterable[int]
        Argument for specifying edges.
    etid : int
        Edge type ID.
    argname : str, optional
        Argument name.

    Returns
    -------
    Tensor
        Edge ID tensor
    """
    ...

def check_all_same_idtype(glist, name): # -> None:
    """Check all the graphs have the same idtype."""
    ...

def check_all_same_device(glist, name): # -> None:
    """Check all the graphs have the same device."""
    ...

def check_all_same_schema(schemas, name): # -> None:
    """Check the list of schemas are the same."""
    ...

def check_all_same_schema_for_keys(schemas, keys, name): # -> None:
    """Check the list of schemas are the same on the given keys."""
    ...

def check_valid_idtype(idtype): # -> None:
    """Check whether the value of the idtype argument is valid (int32/int64)

    Parameters
    ----------
    idtype : data type
        The framework object of a data type.
    """
    ...

def is_sorted_srcdst(src, dst, num_src=..., num_dst=...): # -> tuple[Unknown, Unknown]:
    """Checks whether an edge list is in ascending src-major order (e.g., first
    sorted by ``src`` and then by ``dst``).

    Parameters
    ----------
    src : IdArray
        The tensor of source nodes for each edge.
    dst : IdArray
        The tensor of destination nodes for each edge.
    num_src : int, optional
        The number of source nodes.
    num_dst : int, optional
        The number of destination nodes.

    Returns
    -------
    bool, bool
        Whether ``src`` is in ascending order, and whether ``dst`` is
        in ascending order with respect to ``src``.
    """
    ...

