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
¶
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
¶
emissions: dict[str, EmissionsSourceConfig] = Field(
..., description="Available emissions data sources"
)
gdp
class-attribute
instance-attribute
¶
gdp: dict[str, GDPSourceConfig] = Field(
..., description="Available GDP data sources"
)
population
class-attribute
instance-attribute
¶
population: dict[str, PopulationSourceConfig] = Field(
..., description="Available population data sources"
)
gini
class-attribute
instance-attribute
¶
gini: dict[str, GiniSourceConfig] = Field(
..., description="Available Gini data sources"
)
lulucf
class-attribute
instance-attribute
¶
lulucf: dict[str, LulucfSourceConfig] = Field(
default_factory=dict,
description="Available LULUCF data sources",
)
scenarios
class-attribute
instance-attribute
¶
scenarios: dict[str, ScenarioSourceConfig] = Field(
default_factory=dict,
description="Available scenario data sources (e.g. ar6)",
)
targets
class-attribute
instance-attribute
¶
targets: dict[str, TargetSourceConfig] = Field(
...,
description="Available target sources (AR6 scenarios, RCBs)",
)
general
class-attribute
instance-attribute
¶
non_co2_overrides
class-attribute
instance-attribute
¶
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
¶
active_emissions_source: str | None = Field(
None, description="Active emissions data source"
)
active_gdp_source
class-attribute
instance-attribute
¶
active_population_source
class-attribute
instance-attribute
¶
active_population_source: str | None = Field(
None, description="Active population data source"
)
active_gini_source
class-attribute
instance-attribute
¶
active_lulucf_source
class-attribute
instance-attribute
¶
active_target_source
class-attribute
instance-attribute
¶
active_target_source: str | None = Field(
None,
description="Active target source (AR6 scenarios or RCBs)",
)
active_scenario_source
class-attribute
instance-attribute
¶
active_scenario_source: str | None = Field(
None,
description="Active scenario source key (resolved from target's scenario_source)",
)
harmonisation_year
class-attribute
instance-attribute
¶
rcb_generator
class-attribute
instance-attribute
¶
rcb_generator: str | None = Field(
None,
description="RCB pathway generator (only used for RCB-pathways target)",
)
validate_active_sources ¶
validate_active_sources() -> DataSourcesConfig
Validate that active sources exist in available sources.
validate_emission_category ¶
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¶
- country-fair-shares Guide: Choose and configure allocations
- Developer Guide: Adding Data Sources: Available data sources