Source code for cosmofit.data.loaders._index

"""
Every dataset's versions and references, across the families.
"""

from __future__ import annotations

from ._common import _validate_version
from .bao import BAO_LOWZ_FILES, DESI_FILES, EBOSS_ELG_FILES, EBOSS_ELG_FS_FILES, EBOSS_LYA_FILES, SDSS_BAO_FILES, SDSS_FSBAO_FILES
from .cc import CC_FILES
from .cmb import ACT_LENSING_FILES, LOWE_FILES, PLANCK_FILES, PLANCK_LENSING_FILES, PLIK_LITE_FILES
from .growth import GROWTH_FILES, S8_FILES
from .priors import _PRIOR_REGISTRIES
from .sn import DES_SN5YR_FILES, PANTHEON_FILES, UNION3_FILES


# ============================================================
# Registry lookup
# ============================================================

_REGISTRIES = {

    "cc": CC_FILES,

    "desi": DESI_FILES,

    "sdss_bao": SDSS_BAO_FILES,

    "sdss_fsbao": SDSS_FSBAO_FILES,

    "pantheon": PANTHEON_FILES,

    "des_sn5yr": DES_SN5YR_FILES,

    "fsigma8": GROWTH_FILES,

    "s8": S8_FILES,

    "planck": PLANCK_FILES,

    "bao_lowz": BAO_LOWZ_FILES,

    "union3": UNION3_FILES,

    "planck_lite": PLIK_LITE_FILES,

    "planck_lensing": PLANCK_LENSING_FILES,

    "planck_lowe": LOWE_FILES,

    "act_lensing": ACT_LENSING_FILES,

    "eboss_elg": EBOSS_ELG_FILES,

    "eboss_lya": EBOSS_LYA_FILES,

    "eboss_elg_fs": EBOSS_ELG_FS_FILES,

    **_PRIOR_REGISTRIES,

}


# ------------------------------------------------------------

[docs] def available_versions( dataset: str, ) -> list[str]: """ Return all available versions of a dataset. """ if dataset not in _REGISTRIES: raise ValueError( f"Unknown dataset '{dataset}'." ) return list( _REGISTRIES[dataset].keys() )
# ------------------------------------------------------------
[docs] def dataset_reference( dataset: str, version: str | None = None, ) -> str: """ The citation string for a dataset version, without loading any of its files. Every registry entry already carries the paper its numbers come from; this exposes it, so a caller that wants to *show* the provenance -- a GUI panel, a figure caption, a log line -- does not have to read a 1600x1600 covariance matrix off disk first, and does not have to reach into the private registry to avoid that. Parameters ---------- dataset : str Dataset name, as in :func:`available_datasets`. version : str, optional Which version. Defaults to that dataset's first registered one -- the same default the corresponding ``load_*`` function uses. Returns ------- str Examples -------- >>> dataset_reference("desi", "desi2025") 'DESI Collaboration (2025), arXiv:2503.14738 (DESI DR2 Results II)' """ if dataset not in _REGISTRIES: raise ValueError( f"Unknown dataset '{dataset}'. " f"Available: {list(_REGISTRIES)}", ) if version is None: version = next(iter(_REGISTRIES[dataset])) return _validate_version(dataset, version).get("reference", "")
# ------------------------------------------------------------
[docs] def available_datasets() -> dict[str, list[str]]: return { key: list( value.keys(), ) for key, value in _REGISTRIES.items() }