pudl.settings#
Module for validating pudl ETL data configurations.
Attributes#
Classes#
Contains full list of supported FERC forms. |
|
BaseModel with global configuration. |
|
An abstract pydantic model for generic datasets. |
|
An immutable pydantic model to validate Ferc1DataConfig. |
|
An immutable pydantic model to validate Ferc714DataConfig. |
|
An immutable pydantic model to validate EPA CEMS data configuration. |
|
An immutable pydantic model to validate EPA MATS data configuration. |
|
An immutable pydantic model to validate PHMSA data configuration. |
|
An immutable pydantic model to validate SEC 10-K data configuration. |
|
An immutable pydantic model to validate NREL ATB data configuration. |
|
An immutable pydantic model to validate EIA 923 data configuration. |
|
An immutable pydantic model to validate EIA 930 data configuration. |
|
An immutable pydantic model to validate EIA 861 data configuration. |
|
An immutable pydantic model to validate EIA 860 data configuration. |
|
An immutable pydantic model to validate EIA 860m data configuration. |
|
An immutable pydantic model to validate EIA 757a data configuration. |
|
An immutable pydantic model to validate EIA 191 data configuration. |
|
An immutable pydantic model to validate EIA 176 data configuration. |
|
An immutable pydantic model to validate EIA AEO data configuration. |
|
An immutable pydantic model to validate VCE RARE data configuration. |
|
An immutable pydantic model to validate Census PEP data configuration. |
|
An immutable pydantic model to validate Glue data configuration. |
|
Enum to constrain GridPath RA Toolkit technology types. |
|
Enum to constraint GridPath RA Toolkit processing levels. |
|
An immutable pydantic model to validate GridPath RA Toolkit data configuration. |
|
An immutable pydantic model to validate EIA datasets data configuration. |
|
An immutable pydantic model to validate RUS-7 datasets data configuration. |
|
An immutable pydantic model to validate RUS Form 12 data configuration. |
|
An immutable pydantic model to validate PUDL Dataset data configuration. |
|
Base class for all FERC DBF-to-SQLite data config models. |
|
An immutable Pydantic model to validate FERC 1 to SQLite data config. |
|
An immutable pydantic model to validate Ferc1 to SQLite data config. |
|
An immutable pydantic model to validate Ferc1 to SQLite data config. |
|
An immutable pydantic model to validate FERC from 2 XBRL to SQLite data config. |
|
An immutable Pydantic model to validate FERC 2 to SQLite data config. |
|
An immutable Pydantic model to validate FERC 6 to SQLite data config. |
|
An immutable pydantic model to validate FERC from 6 XBRL to SQLite data config. |
|
An immutable Pydantic model to validate FERC 60 to SQLite data config. |
|
An immutable pydantic model to validate FERC from 60 XBRL to SQLite data config. |
|
An immutable pydantic model to validate FERC from 714 XBRL to SQLite data config. |
|
An immutable pydantic model to validate FERC XBRL to SQLite data config. |
|
Main settings validation class. |
Functions#
|
Create a DOI URL out o a Zenodo DOI. |
Module Contents#
- class pudl.settings.FrozenBaseModel(/, **data: Any)[source]#
Bases:
pydantic.BaseModelBaseModel with global configuration.
- class pudl.settings.GenericDataConfig(/, **data: Any)[source]#
Bases:
FrozenBaseModelAn abstract pydantic model for generic datasets.
Each dataset must specify working partitions. A dataset can have an arbitrary number of partitions.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.Ferc1DataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate Ferc1DataConfig.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.Ferc714DataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate Ferc714DataConfig.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.EpaCemsDataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate EPA CEMS data configuration.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.EpaMatsDataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate EPA MATS data configuration.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.PhmsaGasDataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate PHMSA data configuration.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- property extraction_years: list[int][source]#
The list of years to extract.
These are different from the standard
yearsbecause the oldest years (1970 - 1989) are published with multiple years in each tab. Instead of running the extraction step on each year and filtering on the year from each tab, we extract the whole tab all at once using the first year in the tab as the partition.
- class pudl.settings.Sec10kDataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate SEC 10-K data configuration.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.NrelAtbDataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate NREL ATB data configuration.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.Eia923DataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate EIA 923 data configuration.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.Eia930DataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate EIA 930 data configuration.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.Eia861DataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate EIA 861 data configuration.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.Eia860DataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate EIA 860 data configuration.
This model also checks 860m data configuration.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- classmethod add_other_860m_years(v, info: pydantic.ValidationInfo) list[str][source]#
Find extra years from EIA860m if applicable.
There’s a gap in reporting (after the new year but before the EIA 860 early release data in June) when we rely on two years worth of EIA860m data instead of just one. This function adds the last available month_year values for each year of 860m data that is not yet available in 860.
- classmethod no_repeat_years(v, info: pydantic.ValidationInfo) list[str][source]#
Make sure there are no duplicate 860m year values.
- classmethod validate_eia860m_params(v, info: pydantic.ValidationInfo) list[str][source]#
Check that the year_month values for eia860m_year_months are valid.
- classmethod only_years_not_in_eia860(v, info: pydantic.ValidationInfo) list[str][source]#
Ensure no EIA860m values are from years already in EIA860.
- class pudl.settings.Eia860mDataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate EIA 860m data configuration.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.Eia757aDataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate EIA 757a data configuration.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.Eia191DataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate EIA 191 data configuration.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.Eia176DataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate EIA 176 data configuration.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.EiaAeoDataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate EIA AEO data configuration.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.VceRareDataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate VCE RARE data configuration.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.CensusPepDataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate Census PEP data configuration.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.GlueDataConfig(/, **data: Any)[source]#
Bases:
FrozenBaseModelAn immutable pydantic model to validate Glue data configuration.
- class pudl.settings.GridPathRaToolkitTechType[source]#
Bases:
enum.StrEnumEnum to constrain GridPath RA Toolkit technology types.
- class pudl.settings.GridPathRaToolkitProcLevel[source]#
Bases:
enum.StrEnumEnum to constraint GridPath RA Toolkit processing levels.
- class pudl.settings.GridPathRaToolkitDataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate GridPath RA Toolkit data configuration.
Note that the default values for technology_types, processing_levels, and daily_weather are such that by default, all working partitions will be included.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- classmethod allowed_technology_types(v: list[str]) list[str][source]#
Ensure that technology types are valid.
- class pudl.settings.EiaDataConfig(/, **data: Any)[source]#
Bases:
FrozenBaseModelAn immutable pydantic model to validate EIA datasets data configuration.
- eia176: Eia176DataConfig | None = None[source]#
- eia191: Eia191DataConfig | None = None[source]#
- eia757a: Eia757aDataConfig | None = None[source]#
- eia860: Eia860DataConfig | None = None[source]#
- eia860m: Eia860mDataConfig | None = None[source]#
- eia861: Eia861DataConfig | None = None[source]#
- eia923: Eia923DataConfig | None = None[source]#
- eia930: Eia930DataConfig | None = None[source]#
- eiaaeo: EiaAeoDataConfig | None = None[source]#
- classmethod default_load_all(data: dict[str, Any]) dict[str, Any][source]#
If no datasets are specified default to all.
- class pudl.settings.Rus7DataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate RUS-7 datasets data configuration.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.Rus12DataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigAn immutable pydantic model to validate RUS Form 12 data configuration.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.PudlDataConfig(/, **data: Any)[source]#
Bases:
FrozenBaseModelAn immutable pydantic model to validate PUDL Dataset data configuration.
- eia: EiaDataConfig | None = None[source]#
- epacems: EpaCemsDataConfig | None = None[source]#
- epamats: EpaMatsDataConfig | None = None[source]#
- ferc1: Ferc1DataConfig | None = None[source]#
- ferc714: Ferc714DataConfig | None = None[source]#
- glue: GlueDataConfig | None = None[source]#
- gridpathratoolkit: GridPathRaToolkitDataConfig | None = None[source]#
- nrelatb: NrelAtbDataConfig | None = None[source]#
- phmsagas: PhmsaGasDataConfig | None = None[source]#
- sec10k: Sec10kDataConfig | None = None[source]#
- vcerare: VceRareDataConfig | None = None[source]#
- censuspep: CensusPepDataConfig | None = None[source]#
- rus7: Rus7DataConfig | None = None[source]#
- rus12: Rus12DataConfig | None = None[source]#
- classmethod default_load_all(data: dict[str, Any]) dict[str, Any][source]#
If no datasets are specified default to all.
- Parameters:
data – PUDL data configuration.
- Returns:
Validated PUDL data configuration.
- classmethod add_glue_data_config(data: dict[str, Any]) dict[str, Any][source]#
Add glue data configuration if ferc1 and eia data are both requested.
- make_datasources_table(data_store: pudl.workspace.datastore.Datastore) pandas.DataFrame[source]#
Compile a table of dataset information.
There are three places we can look for information about a dataset: * the datastore (for DOIs, working partitions, etc) * the PUDL data configuration (for partitions that are used in the ETL) * the DataSource info (which is stored within the PUDL data configuration)
The PUDL data configuration and the datastore have different levels of nesting - and therefore names for datasets. The nesting happens particularly with the EIA data.
- Parameters:
data_store – An initialized PUDL Datastore from which the DOI’s for each raw input dataset can be obtained.
- Returns:
a dataframe describing the partitions and DOI’s of each of the datasets in this PUDL data config object.
- class pudl.settings.FercDbfToSqliteDataConfig(/, **data: Any)[source]#
Bases:
GenericDataConfigBase class for all FERC DBF-to-SQLite data config models.
Declares the
yearsandrefyearattributes shared by every FERC DBF form so thatFercDbfExtractorcan be typed against this base rather than the looserGenericDataConfig.
- class pudl.settings.Ferc1DbfToSqliteDataConfig(/, **data: Any)[source]#
Bases:
FercDbfToSqliteDataConfigAn immutable Pydantic model to validate FERC 1 to SQLite data config.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.FercGenericXbrlToSqliteDataConfig(_case_sensitive: bool | None = None, _nested_model_default_partial_update: bool | None = None, _env_prefix: str | None = None, _env_prefix_target: pydantic_settings.sources.EnvPrefixTarget | None = None, _env_file: pydantic_settings.sources.DotenvType | None = ENV_FILE_SENTINEL, _env_file_encoding: str | None = None, _env_file_depth: int | None = None, _env_ignore_empty: bool | None = None, _env_nested_delimiter: str | None = None, _env_nested_max_split: int | None = None, _env_parse_none_str: str | None = None, _env_parse_enums: bool | None = None, _cli_prog_name: str | None = None, _cli_parse_args: bool | list[str] | tuple[str, ...] | None = None, _cli_settings_source: pydantic_settings.sources.CliSettingsSource[Any] | None = None, _cli_parse_none_str: str | None = None, _cli_hide_none_type: bool | None = None, _cli_avoid_json: bool | None = None, _cli_enforce_required: bool | None = None, _cli_use_class_docs_for_groups: bool | None = None, _cli_show_env_vars: bool | None = None, _cli_exit_on_error: bool | None = None, _cli_prefix: str | None = None, _cli_flag_prefix_char: str | None = None, _cli_implicit_flags: bool | Literal['dual', 'toggle'] | None = None, _cli_ignore_unknown_args: bool | None = None, _cli_kebab_case: bool | Literal['all', 'no_enums'] | None = None, _cli_shortcuts: collections.abc.Mapping[str, str | list[str]] | None = None, _secrets_dir: pydantic_settings.sources.PathType | None = None, _build_sources: tuple[tuple[pydantic_settings.sources.PydanticBaseSettingsSource, ...], dict[str, Any]] | None = None, **values: Any)[source]#
Bases:
pydantic_settings.BaseSettingsAn immutable pydantic model to validate Ferc1 to SQLite data config.
- class pudl.settings.Ferc1XbrlToSqliteDataConfig(_case_sensitive: bool | None = None, _nested_model_default_partial_update: bool | None = None, _env_prefix: str | None = None, _env_prefix_target: pydantic_settings.sources.EnvPrefixTarget | None = None, _env_file: pydantic_settings.sources.DotenvType | None = ENV_FILE_SENTINEL, _env_file_encoding: str | None = None, _env_file_depth: int | None = None, _env_ignore_empty: bool | None = None, _env_nested_delimiter: str | None = None, _env_nested_max_split: int | None = None, _env_parse_none_str: str | None = None, _env_parse_enums: bool | None = None, _cli_prog_name: str | None = None, _cli_parse_args: bool | list[str] | tuple[str, ...] | None = None, _cli_settings_source: pydantic_settings.sources.CliSettingsSource[Any] | None = None, _cli_parse_none_str: str | None = None, _cli_hide_none_type: bool | None = None, _cli_avoid_json: bool | None = None, _cli_enforce_required: bool | None = None, _cli_use_class_docs_for_groups: bool | None = None, _cli_show_env_vars: bool | None = None, _cli_exit_on_error: bool | None = None, _cli_prefix: str | None = None, _cli_flag_prefix_char: str | None = None, _cli_implicit_flags: bool | Literal['dual', 'toggle'] | None = None, _cli_ignore_unknown_args: bool | None = None, _cli_kebab_case: bool | Literal['all', 'no_enums'] | None = None, _cli_shortcuts: collections.abc.Mapping[str, str | list[str]] | None = None, _secrets_dir: pydantic_settings.sources.PathType | None = None, _build_sources: tuple[tuple[pydantic_settings.sources.PydanticBaseSettingsSource, ...], dict[str, Any]] | None = None, **values: Any)[source]#
Bases:
FercGenericXbrlToSqliteDataConfigAn immutable pydantic model to validate Ferc1 to SQLite data config.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
- class pudl.settings.Ferc2XbrlToSqliteDataConfig(_case_sensitive: bool | None = None, _nested_model_default_partial_update: bool | None = None, _env_prefix: str | None = None, _env_prefix_target: pydantic_settings.sources.EnvPrefixTarget | None = None, _env_file: pydantic_settings.sources.DotenvType | None = ENV_FILE_SENTINEL, _env_file_encoding: str | None = None, _env_file_depth: int | None = None, _env_ignore_empty: bool | None = None, _env_nested_delimiter: str | None = None, _env_nested_max_split: int | None = None, _env_parse_none_str: str | None = None, _env_parse_enums: bool | None = None, _cli_prog_name: str | None = None, _cli_parse_args: bool | list[str] | tuple[str, ...] | None = None, _cli_settings_source: pydantic_settings.sources.CliSettingsSource[Any] | None = None, _cli_parse_none_str: str | None = None, _cli_hide_none_type: bool | None = None, _cli_avoid_json: bool | None = None, _cli_enforce_required: bool | None = None, _cli_use_class_docs_for_groups: bool | None = None, _cli_show_env_vars: bool | None = None, _cli_exit_on_error: bool | None = None, _cli_prefix: str | None = None, _cli_flag_prefix_char: str | None = None, _cli_implicit_flags: bool | Literal['dual', 'toggle'] | None = None, _cli_ignore_unknown_args: bool | None = None, _cli_kebab_case: bool | Literal['all', 'no_enums'] | None = None, _cli_shortcuts: collections.abc.Mapping[str, str | list[str]] | None = None, _secrets_dir: pydantic_settings.sources.PathType | None = None, _build_sources: tuple[tuple[pydantic_settings.sources.PydanticBaseSettingsSource, ...], dict[str, Any]] | None = None, **values: Any)[source]#
Bases:
FercGenericXbrlToSqliteDataConfigAn immutable pydantic model to validate FERC from 2 XBRL to SQLite data config.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
- class pudl.settings.Ferc2DbfToSqliteDataConfig(/, **data: Any)[source]#
Bases:
FercDbfToSqliteDataConfigAn immutable Pydantic model to validate FERC 2 to SQLite data config.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.Ferc6DbfToSqliteDataConfig(/, **data: Any)[source]#
Bases:
FercDbfToSqliteDataConfigAn immutable Pydantic model to validate FERC 6 to SQLite data config.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.Ferc6XbrlToSqliteDataConfig(_case_sensitive: bool | None = None, _nested_model_default_partial_update: bool | None = None, _env_prefix: str | None = None, _env_prefix_target: pydantic_settings.sources.EnvPrefixTarget | None = None, _env_file: pydantic_settings.sources.DotenvType | None = ENV_FILE_SENTINEL, _env_file_encoding: str | None = None, _env_file_depth: int | None = None, _env_ignore_empty: bool | None = None, _env_nested_delimiter: str | None = None, _env_nested_max_split: int | None = None, _env_parse_none_str: str | None = None, _env_parse_enums: bool | None = None, _cli_prog_name: str | None = None, _cli_parse_args: bool | list[str] | tuple[str, ...] | None = None, _cli_settings_source: pydantic_settings.sources.CliSettingsSource[Any] | None = None, _cli_parse_none_str: str | None = None, _cli_hide_none_type: bool | None = None, _cli_avoid_json: bool | None = None, _cli_enforce_required: bool | None = None, _cli_use_class_docs_for_groups: bool | None = None, _cli_show_env_vars: bool | None = None, _cli_exit_on_error: bool | None = None, _cli_prefix: str | None = None, _cli_flag_prefix_char: str | None = None, _cli_implicit_flags: bool | Literal['dual', 'toggle'] | None = None, _cli_ignore_unknown_args: bool | None = None, _cli_kebab_case: bool | Literal['all', 'no_enums'] | None = None, _cli_shortcuts: collections.abc.Mapping[str, str | list[str]] | None = None, _secrets_dir: pydantic_settings.sources.PathType | None = None, _build_sources: tuple[tuple[pydantic_settings.sources.PydanticBaseSettingsSource, ...], dict[str, Any]] | None = None, **values: Any)[source]#
Bases:
FercGenericXbrlToSqliteDataConfigAn immutable pydantic model to validate FERC from 6 XBRL to SQLite data config.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
- class pudl.settings.Ferc60DbfToSqliteDataConfig(/, **data: Any)[source]#
Bases:
FercDbfToSqliteDataConfigAn immutable Pydantic model to validate FERC 60 to SQLite data config.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
The DataSource metadata object for this dataset.
- class pudl.settings.Ferc60XbrlToSqliteDataConfig(_case_sensitive: bool | None = None, _nested_model_default_partial_update: bool | None = None, _env_prefix: str | None = None, _env_prefix_target: pydantic_settings.sources.EnvPrefixTarget | None = None, _env_file: pydantic_settings.sources.DotenvType | None = ENV_FILE_SENTINEL, _env_file_encoding: str | None = None, _env_file_depth: int | None = None, _env_ignore_empty: bool | None = None, _env_nested_delimiter: str | None = None, _env_nested_max_split: int | None = None, _env_parse_none_str: str | None = None, _env_parse_enums: bool | None = None, _cli_prog_name: str | None = None, _cli_parse_args: bool | list[str] | tuple[str, ...] | None = None, _cli_settings_source: pydantic_settings.sources.CliSettingsSource[Any] | None = None, _cli_parse_none_str: str | None = None, _cli_hide_none_type: bool | None = None, _cli_avoid_json: bool | None = None, _cli_enforce_required: bool | None = None, _cli_use_class_docs_for_groups: bool | None = None, _cli_show_env_vars: bool | None = None, _cli_exit_on_error: bool | None = None, _cli_prefix: str | None = None, _cli_flag_prefix_char: str | None = None, _cli_implicit_flags: bool | Literal['dual', 'toggle'] | None = None, _cli_ignore_unknown_args: bool | None = None, _cli_kebab_case: bool | Literal['all', 'no_enums'] | None = None, _cli_shortcuts: collections.abc.Mapping[str, str | list[str]] | None = None, _secrets_dir: pydantic_settings.sources.PathType | None = None, _build_sources: tuple[tuple[pydantic_settings.sources.PydanticBaseSettingsSource, ...], dict[str, Any]] | None = None, **values: Any)[source]#
Bases:
FercGenericXbrlToSqliteDataConfigAn immutable pydantic model to validate FERC from 60 XBRL to SQLite data config.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
- class pudl.settings.Ferc714XbrlToSqliteDataConfig(_case_sensitive: bool | None = None, _nested_model_default_partial_update: bool | None = None, _env_prefix: str | None = None, _env_prefix_target: pydantic_settings.sources.EnvPrefixTarget | None = None, _env_file: pydantic_settings.sources.DotenvType | None = ENV_FILE_SENTINEL, _env_file_encoding: str | None = None, _env_file_depth: int | None = None, _env_ignore_empty: bool | None = None, _env_nested_delimiter: str | None = None, _env_nested_max_split: int | None = None, _env_parse_none_str: str | None = None, _env_parse_enums: bool | None = None, _cli_prog_name: str | None = None, _cli_parse_args: bool | list[str] | tuple[str, ...] | None = None, _cli_settings_source: pydantic_settings.sources.CliSettingsSource[Any] | None = None, _cli_parse_none_str: str | None = None, _cli_hide_none_type: bool | None = None, _cli_avoid_json: bool | None = None, _cli_enforce_required: bool | None = None, _cli_use_class_docs_for_groups: bool | None = None, _cli_show_env_vars: bool | None = None, _cli_exit_on_error: bool | None = None, _cli_prefix: str | None = None, _cli_flag_prefix_char: str | None = None, _cli_implicit_flags: bool | Literal['dual', 'toggle'] | None = None, _cli_ignore_unknown_args: bool | None = None, _cli_kebab_case: bool | Literal['all', 'no_enums'] | None = None, _cli_shortcuts: collections.abc.Mapping[str, str | list[str]] | None = None, _secrets_dir: pydantic_settings.sources.PathType | None = None, _build_sources: tuple[tuple[pydantic_settings.sources.PydanticBaseSettingsSource, ...], dict[str, Any]] | None = None, **values: Any)[source]#
Bases:
FercGenericXbrlToSqliteDataConfigAn immutable pydantic model to validate FERC from 714 XBRL to SQLite data config.
- data_source: ClassVar[pudl.metadata.classes.DataSource][source]#
- class pudl.settings.FercToSqliteDataConfig(_case_sensitive: bool | None = None, _nested_model_default_partial_update: bool | None = None, _env_prefix: str | None = None, _env_prefix_target: pydantic_settings.sources.EnvPrefixTarget | None = None, _env_file: pydantic_settings.sources.DotenvType | None = ENV_FILE_SENTINEL, _env_file_encoding: str | None = None, _env_file_depth: int | None = None, _env_ignore_empty: bool | None = None, _env_nested_delimiter: str | None = None, _env_nested_max_split: int | None = None, _env_parse_none_str: str | None = None, _env_parse_enums: bool | None = None, _cli_prog_name: str | None = None, _cli_parse_args: bool | list[str] | tuple[str, ...] | None = None, _cli_settings_source: pydantic_settings.sources.CliSettingsSource[Any] | None = None, _cli_parse_none_str: str | None = None, _cli_hide_none_type: bool | None = None, _cli_avoid_json: bool | None = None, _cli_enforce_required: bool | None = None, _cli_use_class_docs_for_groups: bool | None = None, _cli_show_env_vars: bool | None = None, _cli_exit_on_error: bool | None = None, _cli_prefix: str | None = None, _cli_flag_prefix_char: str | None = None, _cli_implicit_flags: bool | Literal['dual', 'toggle'] | None = None, _cli_ignore_unknown_args: bool | None = None, _cli_kebab_case: bool | Literal['all', 'no_enums'] | None = None, _cli_shortcuts: collections.abc.Mapping[str, str | list[str]] | None = None, _secrets_dir: pydantic_settings.sources.PathType | None = None, _build_sources: tuple[tuple[pydantic_settings.sources.PydanticBaseSettingsSource, ...], dict[str, Any]] | None = None, **values: Any)[source]#
Bases:
pydantic_settings.BaseSettingsAn immutable pydantic model to validate FERC XBRL to SQLite data config.
- ferc1_dbf: Ferc1DbfToSqliteDataConfig | None = None[source]#
- ferc1_xbrl: Ferc1XbrlToSqliteDataConfig | None = None[source]#
- ferc2_dbf: Ferc2DbfToSqliteDataConfig | None = None[source]#
- ferc2_xbrl: Ferc2XbrlToSqliteDataConfig | None = None[source]#
- ferc6_dbf: Ferc6DbfToSqliteDataConfig | None = None[source]#
- ferc6_xbrl: Ferc6XbrlToSqliteDataConfig | None = None[source]#
- ferc60_dbf: Ferc60DbfToSqliteDataConfig | None = None[source]#
- ferc60_xbrl: Ferc60XbrlToSqliteDataConfig | None = None[source]#
- ferc714_xbrl: Ferc714XbrlToSqliteDataConfig | None = None[source]#
- classmethod default_load_all(data: dict[str, Any]) dict[str, Any][source]#
If no datasets are specified default to all.
- get_data_config(dataset: str | FercForm, data_format: Literal['dbf', 'xbrl']) FercGenericXbrlToSqliteDataConfig | FercDbfToSqliteDataConfig | None[source]#
Look up extraction settings by dataset (
fercX) and data format (dbforxbrl).Returns
Noneif the dataset/format combination is not configured.
- class pudl.settings.GlobalDataConfig(_case_sensitive: bool | None = None, _nested_model_default_partial_update: bool | None = None, _env_prefix: str | None = None, _env_prefix_target: pydantic_settings.sources.EnvPrefixTarget | None = None, _env_file: pydantic_settings.sources.DotenvType | None = ENV_FILE_SENTINEL, _env_file_encoding: str | None = None, _env_file_depth: int | None = None, _env_ignore_empty: bool | None = None, _env_nested_delimiter: str | None = None, _env_nested_max_split: int | None = None, _env_parse_none_str: str | None = None, _env_parse_enums: bool | None = None, _cli_prog_name: str | None = None, _cli_parse_args: bool | list[str] | tuple[str, ...] | None = None, _cli_settings_source: pydantic_settings.sources.CliSettingsSource[Any] | None = None, _cli_parse_none_str: str | None = None, _cli_hide_none_type: bool | None = None, _cli_avoid_json: bool | None = None, _cli_enforce_required: bool | None = None, _cli_use_class_docs_for_groups: bool | None = None, _cli_show_env_vars: bool | None = None, _cli_exit_on_error: bool | None = None, _cli_prefix: str | None = None, _cli_flag_prefix_char: str | None = None, _cli_implicit_flags: bool | Literal['dual', 'toggle'] | None = None, _cli_ignore_unknown_args: bool | None = None, _cli_kebab_case: bool | Literal['all', 'no_enums'] | None = None, _cli_shortcuts: collections.abc.Mapping[str, str | list[str]] | None = None, _secrets_dir: pydantic_settings.sources.PathType | None = None, _build_sources: tuple[tuple[pydantic_settings.sources.PydanticBaseSettingsSource, ...], dict[str, Any]] | None = None, **values: Any)[source]#
Bases:
pydantic_settings.BaseSettingsMain settings validation class.
- ferc_to_sqlite: FercToSqliteDataConfig | None = None[source]#
- pudl: PudlDataConfig | None = None[source]#
- classmethod from_yaml(path: str | pathlib.Path) GlobalDataConfig[source]#
Create validated GlobalDataConfig from a local YAML file path.
- Parameters:
path – Path to a YAML file. Relative paths are resolved against the current working directory and
~is expanded.- Returns:
A GlobalDataConfig object.
- validate_xbrl_years()[source]#
Ensure the XBRL years in PudlDataConfig align with FercToSqliteDataConfig.
For each of the FERC forms that we are processing in PUDL, check to ensure that the years we are trying to process in the PUDL ETL are included in the XBRL to SQLite data config.
- property pudl_data_config: PudlDataConfig[source]#
Return validated PUDL data config or raise if it is unavailable.
- pudl.settings._zenodo_doi_to_url(doi: pudl.workspace.datastore.ZenodoDoi) pydantic.AnyHttpUrl[source]#
Create a DOI URL out o a Zenodo DOI.