def METHOD_NAME(dataset_root: str, domain: str, shift: str = 'no_shift', generate: bool = False):
    r"""
    A staticmethod for dataset loading. This method instantiates dataset class, constructing train, id_val, id_test,
    ood_val (val), and ood_test (test) splits. Besides, it collects several dataset meta information for further
    utilization.
    Args:
        dataset_root (str): The dataset saving root.
        domain (str): The domain selection. Allowed: 'degree' and 'time'.
        shift (str): The distributional shift we pick. Allowed: 'no_shift', 'covariate', and 'concept'.
        generate (bool): The flag for regenerating dataset. True: regenerate. False: download.
    Returns:
        dataset or dataset splits.
        dataset meta info.
    """
    meta_info = Munch()
    meta_info.dataset_type = 'real'
    meta_info.model_level = 'node'
    dataset = GOODArxiv(root=dataset_root, domain=domain, shift=shift, generate=generate)
    dataset.data.x = dataset.data.x.to(torch.float32)
    meta_info.dim_node = dataset.num_node_features
    meta_info.dim_edge = dataset.num_edge_features
    meta_info.num_envs = (torch.unique(dataset.data.env_id) >= 0).sum()
    # Define networks' output shape.
    if dataset.task == 'Binary classification':
        meta_info.num_classes = dataset.data.y.shape[1]
    elif dataset.task == 'Regression':
        meta_info.num_classes = 1
    elif dataset.task == 'Multi-label classification':
        meta_info.num_classes = torch.unique(dataset.data.y).shape[0]
    # --- clear buffer dataset._data_list ---
    dataset._data_list = None
    return dataset, meta_info