Bases: CondaDiagnosticProvider
Provider for ESMValTool diagnostics.
Source code in packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/__init__.py
| class ESMValToolProvider(CondaDiagnosticProvider):
"""Provider for ESMValTool diagnostics."""
def fetch_data(self, config: Config) -> None:
"""Fetch ESMValTool reference data."""
for registry_name in [_DATASETS_REGISTRY_NAME, _RECIPES_REGISTRY_NAME]:
registry = dataset_registry_manager[registry_name]
fetch_all_files(registry, registry_name, output_dir=None)
def validate_setup(self, config: Config) -> bool:
"""Validate conda environment and data checksums."""
# First check conda environment
if not super().validate_setup(config):
return False
# Then check data checksums
errors = []
for registry_name in [_DATASETS_REGISTRY_NAME, _RECIPES_REGISTRY_NAME]:
errors.extend(validate_registry_cache(dataset_registry_manager[registry_name], registry_name))
if errors:
for error in errors:
logger.error(f"{self.slug} validation failed: {error}")
logger.error(
f"Data for {self.slug} is missing or corrupted. "
f"Please run `ref providers setup --provider {self.slug}` to fetch data."
)
return False
return True
def get_data_path(self) -> Path | None:
"""Get the path where ESMValTool data is cached."""
return resolve_cache_dir("esmvaltool")
|
Fetch ESMValTool reference data.
Source code in packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/__init__.py
| def fetch_data(self, config: Config) -> None:
"""Fetch ESMValTool reference data."""
for registry_name in [_DATASETS_REGISTRY_NAME, _RECIPES_REGISTRY_NAME]:
registry = dataset_registry_manager[registry_name]
fetch_all_files(registry, registry_name, output_dir=None)
|
Get the path where ESMValTool data is cached.
Source code in packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/__init__.py
| def get_data_path(self) -> Path | None:
"""Get the path where ESMValTool data is cached."""
return resolve_cache_dir("esmvaltool")
|
Validate conda environment and data checksums.
Source code in packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/__init__.py
| def validate_setup(self, config: Config) -> bool:
"""Validate conda environment and data checksums."""
# First check conda environment
if not super().validate_setup(config):
return False
# Then check data checksums
errors = []
for registry_name in [_DATASETS_REGISTRY_NAME, _RECIPES_REGISTRY_NAME]:
errors.extend(validate_registry_cache(dataset_registry_manager[registry_name], registry_name))
if errors:
for error in errors:
logger.error(f"{self.slug} validation failed: {error}")
logger.error(
f"Data for {self.slug} is missing or corrupted. "
f"Please run `ref providers setup --provider {self.slug}` to fetch data."
)
return False
return True
|