Source code for rook.fixes.providers
"""Dataset fix provider registry."""
from rook.config import get_fix_backend
from rook.fixes.providers.base import DatasetFixProvider as DatasetFixProvider
from rook.fixes.providers.base import FixContext as FixContext
from rook.fixes.providers.base import FixProvider as FixProvider
from rook.fixes.providers.legacy import (
LegacyDatasetFixProvider as LegacyDatasetFixProvider,
)
from rook.fixes.providers.woodpecker import (
WOODPECKER_ATLAS_RECIPE_ID as WOODPECKER_ATLAS_RECIPE_ID,
WOODPECKER_CMIP6_DECADAL_RECIPE_ID as WOODPECKER_CMIP6_DECADAL_RECIPE_ID,
WoodpeckerDatasetFixProvider as WoodpeckerDatasetFixProvider,
)
DATASET_FIX_PROVIDERS = {
LegacyDatasetFixProvider.name: LegacyDatasetFixProvider,
WoodpeckerDatasetFixProvider.name: WoodpeckerDatasetFixProvider,
}
[docs]
def get_dataset_fix_provider(name=None):
"""Return a configured dataset fix provider."""
if name is None:
name = get_fix_backend()
provider = DATASET_FIX_PROVIDERS.get(name)
if provider is None:
allowed = ", ".join(sorted(DATASET_FIX_PROVIDERS))
raise ValueError(
f"Unsupported dataset fix provider: {name!r}. Use one of: {allowed}"
)
return provider()