Source code for rook.fixes.providers.legacy

"""Legacy Rook dataset fix provider."""

from rook.fixes.providers.base import (
    ATLAS_DATASET_PREFIXES,
    CMIP6_DECADAL_DATASET_PREFIX,
    FixContext,
    FixProvider,
)


[docs] class LegacyDatasetFixProvider(FixProvider): """Rook's legacy dataset fix provider.""" name = "legacy"
[docs] def prepare(self, ds, *, context=None): from rook.fixes.legacy.decadal import decadal_fix_calendar # TODO: decide whether this special CMIP6-decadal pre-concat calendar # preparation belongs in Woodpecker or remains a Rook operation hook. return decadal_fix_calendar(None, ds)
[docs] def apply(self, ds, *, context=None): context = context or FixContext() dataset_id = context.dataset_id or "" if dataset_id.startswith(ATLAS_DATASET_PREFIXES): from rook.fixes.legacy.atlas import apply_atlas_fixes return apply_atlas_fixes(dataset_id, ds) if dataset_id.startswith(CMIP6_DECADAL_DATASET_PREFIX): from rook.fixes.legacy.decadal import apply_decadal_fixes return apply_decadal_fixes( dataset_id, ds, output_dir=context.output_dir, ) return ds