Source code for pyhazards.datasets.registry from typing import Any, Callable, Dict from .base import Dataset _DATASET_REGISTRY: Dict[str, Callable[..., Dataset]] = {} [docs] def register_dataset(name: str, builder: Callable[..., Dataset]) -> None: if name in _DATASET_REGISTRY: raise ValueError(f"Dataset '{name}' already registered.") _DATASET_REGISTRY[name] = builder [docs] def available_datasets(): return sorted(_DATASET_REGISTRY.keys()) [docs] def load_dataset(name: str, **kwargs: Any) -> Dataset: if name not in _DATASET_REGISTRY: raise KeyError(f"Dataset '{name}' is not registered. Known: {available_datasets()}") return _DATASET_REGISTRY[name](**kwargs)