nwm_region_mgr.utils.config_utils#

Utility functions for loading and validating configuration files using Pydantic and YAML.

config_utils.py

Classes/Functions:
  • LoggingConfig: Pydantic model for logging configuration.

  • BaseGeneralConfig: Pydantic model for general settings of the application.

  • BaseOutputConfig: Pydantic model for output settings of the application.

  • BaseConfig: Pydantic model for the base configuration of the application.

  • BaseConfigProcessor: base class for processing and validating configurations

  • _deep_merge_configs: Recursively merge two dictionaries, with values from dict #2 overwriting those in dict #1.

  • _load_and_validate_config: Load a YAML file, validate its structure using Pydantic

  • _substitute_placeholders: Substitute placeholders in the config with actual values.

  • load_and_process_config: Load, validate, process, and save the configuration files.

  • _validate_paths: Validate that all file and directory paths exist.

  • _assemble_file_paths: Assemble file paths from the configuration.

  • _required_columns_calval_stats: Return a set of required columns for calibration/validation statistics.

  • _file_required_column_map: Return a dictionary mapping files to required columns.

  • PydanticDictLike: Stand-in for dictionary-like behavior when you want specificity of a pydantic model.

  • FieldCrosswalk: Mapping of column names for unique identifiers in all require files for regionalization.

  • LayerCrosswalk: Dictionary mapping layer names for hydrofabric files.

Classes

BaseConfig

Base configuration for the application.

BaseConfigProcessor

Base configuration processor.

BaseGeneralConfig

Base general settings for the formulation regionalization application.

BaseOutputConfig

Base Output Manager.

FieldCrosswalk

Mapping of column names for unique identifiers in all require files for regionalization.

LayerCrosswalk

Dictionary mapping layer names for hydrofabric files.

LoggingConfig

Logging configuration for the application.

PydanticDictLike

Stand-in for dictionary-like behavior when you want specificity of a pydantic model.