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

from .dgl_dataset import DGLBuiltinDataset

"""ICEWS18 dataset for temporal graph"""
class ICEWS18Dataset(DGLBuiltinDataset):
    r""" ICEWS18 dataset for temporal graph

    Integrated Crisis Early Warning System (ICEWS18)

    Event data consists of coded interactions between socio-political
    actors (i.e., cooperative or hostile actions between individuals,
    groups, sectors and nation states). This Dataset consists of events
    from 1/1/2018 to 10/31/2018 (24 hours time granularity).

    Reference:

        - `Recurrent Event Network for Reasoning over Temporal Knowledge Graphs <https://arxiv.org/abs/1904.05530>`_
        - `ICEWS Coded Event Data <https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/28075>`_

    Statistics：

    - Train examples: 240
    - Valid examples: 30
    - Test examples: 34
    - Nodes per graph: 23033

    Parameters
    ----------
    mode: str
        Load train/valid/test data. Has to be one of ['train', 'valid', 'test']
    raw_dir : str
        Raw file directory to download/contains the input data directory.
        Default: ~/.dgl/
    force_reload : bool
        Whether to reload the dataset. Default: False
    verbose: bool
        Whether to print out progress information. Default: True.

    Attributes
    -------
    is_temporal : bool
        Is the dataset contains temporal graphs

    Examples
    --------
    >>> # get train, valid, test set
    >>> train_data = ICEWS18Dataset()
    >>> valid_data = ICEWS18Dataset(mode='valid')
    >>> test_data = ICEWS18Dataset(mode='test')
    >>>
    >>> train_size = len(train_data)
    >>> for g in train_data:
    ....    e_feat = g.edata['rel_type']
    ....    # your code here
    ....
    >>>
    """
    def __init__(self, mode=..., raw_dir=..., force_reload=..., verbose=...) -> None:
        ...
    
    def process(self): # -> None:
        ...
    
    def has_cache(self): # -> bool:
        ...
    
    def save(self): # -> None:
        ...
    
    def load(self): # -> None:
        ...
    
    def __getitem__(self, idx):
        r""" Get graph by index

        Parameters
        ----------
        idx : int
            Item index

        Returns
        -------
        :class:`dgl.DGLGraph`

            The graph contains:

            - ``edata['rel_type']``: edge type
        """
        ...
    
    def __len__(self): # -> int:
        r"""Number of graphs in the dataset.

        Return
        -------
        int
        """
        ...
    
    @property
    def is_temporal(self): # -> Literal[True]:
        r"""Is the dataset contains temporal graphs

        Returns
        -------
        bool
        """
        ...
    


ICEWS18 = ICEWS18Dataset
