Skip to content

Configuration Models

Pydantic models for validating and managing configuration.

Overview

The fair-shares library uses Pydantic models to validate configuration files. These models ensure type safety and provide clear error messages when configuration is invalid.

Data Sources Configuration

DataSourcesConfig

fair_shares.library.config.models.DataSourcesConfig

Bases: BaseModel

Top-level configuration for all data sources.

emission_category class-attribute instance-attribute
Python
emission_category: Literal[
    "co2-ffi",
    "co2-lulucf",
    "co2",
    "non-co2",
    "all-ghg",
    "all-ghg-ex-co2-lulucf",
] = Field(
    ...,
    description="Emission category for this configuration",
)
emissions class-attribute instance-attribute
Python
emissions: dict[str, EmissionsSourceConfig] = Field(
    ..., description="Available emissions data sources"
)
gdp class-attribute instance-attribute
Python
gdp: dict[str, GDPSourceConfig] = Field(
    ..., description="Available GDP data sources"
)
population class-attribute instance-attribute
Python
population: dict[str, PopulationSourceConfig] = Field(
    ..., description="Available population data sources"
)
gini class-attribute instance-attribute
Python
gini: dict[str, GiniSourceConfig] = Field(
    ..., description="Available Gini data sources"
)
lulucf class-attribute instance-attribute
Python
lulucf: dict[str, LulucfSourceConfig] = Field(
    default_factory=dict,
    description="Available LULUCF data sources",
)
scenarios class-attribute instance-attribute
Python
scenarios: dict[str, ScenarioSourceConfig] = Field(
    default_factory=dict,
    description="Available scenario data sources (e.g. ar6)",
)
targets class-attribute instance-attribute
Python
targets: dict[str, TargetSourceConfig] = Field(
    ...,
    description="Available target sources (AR6 scenarios, RCBs)",
)
general class-attribute instance-attribute
Python
general: GeneralConfig = Field(
    ..., description="General configuration data"
)
non_co2_overrides class-attribute instance-attribute
Python
non_co2_overrides: NonCO2Overrides | None = Field(
    None,
    description="Optional parameter overrides for non-CO2 GHG allocations. Non-CO2 is derived from existing categories (all-ghg-ex-co2-lulucf minus co2-ffi), not a standalone emission_category.",
)
active_emissions_source class-attribute instance-attribute
Python
active_emissions_source: str | None = Field(
    None, description="Active emissions data source"
)
active_gdp_source class-attribute instance-attribute
Python
active_gdp_source: str | None = Field(
    None, description="Active GDP data source"
)
active_population_source class-attribute instance-attribute
Python
active_population_source: str | None = Field(
    None, description="Active population data source"
)
active_gini_source class-attribute instance-attribute
Python
active_gini_source: str | None = Field(
    None, description="Active Gini data source"
)
active_lulucf_source class-attribute instance-attribute
Python
active_lulucf_source: str | None = Field(
    None, description="Active LULUCF data source"
)
active_target_source class-attribute instance-attribute
Python
active_target_source: str | None = Field(
    None,
    description="Active target source (AR6 scenarios or RCBs)",
)
active_scenario_source class-attribute instance-attribute
Python
active_scenario_source: str | None = Field(
    None,
    description="Active scenario source key (resolved from target's scenario_source)",
)
harmonisation_year class-attribute instance-attribute
Python
harmonisation_year: int | None = Field(
    None, description="Year for global harmonisation"
)
rcb_generator class-attribute instance-attribute
Python
rcb_generator: str | None = Field(
    None,
    description="RCB pathway generator (only used for RCB-pathways target)",
)
validate_active_sources
Python
validate_active_sources() -> DataSourcesConfig

Validate that active sources exist in available sources.

validate_emission_category
Python
validate_emission_category() -> DataSourcesConfig

Validate that emission category is available in emissions source.

Note: by the time the Pydantic model is constructed, the emission_category has already been resolved to the effective value (e.g., "co2-ffi" for all-ghg runs), so this validator sees the resolved value.

Individual Data Source Configurations

EmissionsSourceConfig

fair_shares.library.config.models.EmissionsSourceConfig

Bases: BaseModel

Configuration for emissions data source.

PopulationSourceConfig

fair_shares.library.config.models.PopulationSourceConfig

Bases: BaseModel

Configuration for population data source.

GDPSourceConfig

fair_shares.library.config.models.GDPSourceConfig

Bases: BaseModel

Configuration for GDP data source.

GiniSourceConfig

fair_shares.library.config.models.GiniSourceConfig

Bases: BaseModel

Configuration for Gini data source.

See Also