Project Config

pydantic model dsgrid.config.project_config.ProjectConfigModel[source]

Represents project configurations

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

__init__ uses __pydantic_self__ instead of the more common self for the first arg to allow self as a field name.

digraph "Entity Relationship Diagram created by erdantic" {
   graph [fontcolor=gray66,
      fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=9,
      nodesep=0.5,
      rankdir=LR,
      ranksep=1.5
   ];
   node [fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=14,
      label="\N",
      shape=plain
   ];
   edge [dir=both];
   "dsgrid.config.dimension_mapping_base.DimensionMappingReferenceModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>DimensionMappingReferenceModel</b></td></tr><tr><td>from_dimension_type</td><td port="from_dimension_type">DimensionType</td></tr><tr><td>to_dimension_type</td><td port="to_dimension_type">DimensionType</td></tr><tr><td>mapping_id</td><td port="mapping_id">str</td></tr><tr><td>version</td><td port="version">str</td></tr><tr><td>required_for_validation</td><td port="required_for_validation">Optional[bool]</td></tr></table>>,
      tooltip="dsgrid.config.dimension_mapping_base.DimensionMappingReferenceModel&#xA;&#xA;Reference to a dimension mapping stored in the registry.&#\
xA;&#xA;The DimensionMappingReferenceModel is utilized by the project configuration (project.json5) as well as by the&#xA;dimension \
mapping reference configuration (dimension_mapping_references.json5) that may be required when submitting a dataset to a project.&#\
xA;"];
   "dsgrid.config.dimensions.AnnualTimeDimensionModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>AnnualTimeDimensionModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>display_name</td><td port="display_name">str</td></tr><tr><td>dimension_query_name</td><td port="dimension_query_name">Optional[str]</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">Optional[str]</td></tr><tr><td>version</td><td port="version">Optional[str]</td></tr><tr><td>module</td><td port="module">Optional[str]</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">Optional[Any]</td></tr><tr><td>description</td><td port="description">str</td></tr><tr><td>id</td><td port="id">Optional[str]</td></tr><tr><td>key</td><td port="key">Optional[str]</td></tr><tr><td>rev</td><td port="rev">Optional[str]</td></tr><tr><td>time_type</td><td port="time_type">TimeDimensionType</td></tr><tr><td>measurement_type</td><td port="measurement_type">MeasurementType</td></tr><tr><td>str_format</td><td port="str_format">Optional[str]</td></tr><tr><td>ranges</td><td port="ranges">List[TimeRangeModel]</td></tr><tr><td>include_leap_day</td><td port="include_leap_day">bool</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.AnnualTimeDimensionModel&#xA;&#xA;Defines an annual time dimension where timestamps are years.&#xA;"];
   "dsgrid.config.dimensions.TimeRangeModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>TimeRangeModel</b></td></tr><tr><td>start</td><td port="start">str</td></tr><tr><td>end</td><td port="end">str</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.TimeRangeModel&#xA;&#xA;Defines a continuous range of time.&#xA;"];
   "dsgrid.config.dimensions.AnnualTimeDimensionModel":ranges:e -> "dsgrid.config.dimensions.TimeRangeModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.dimensions.DateTimeDimensionModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>DateTimeDimensionModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>display_name</td><td port="display_name">str</td></tr><tr><td>dimension_query_name</td><td port="dimension_query_name">Optional[str]</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">Optional[str]</td></tr><tr><td>version</td><td port="version">Optional[str]</td></tr><tr><td>module</td><td port="module">Optional[str]</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">Optional[Any]</td></tr><tr><td>description</td><td port="description">str</td></tr><tr><td>id</td><td port="id">Optional[str]</td></tr><tr><td>key</td><td port="key">Optional[str]</td></tr><tr><td>rev</td><td port="rev">Optional[str]</td></tr><tr><td>time_type</td><td port="time_type">TimeDimensionType</td></tr><tr><td>measurement_type</td><td port="measurement_type">MeasurementType</td></tr><tr><td>str_format</td><td port="str_format">Optional[str]</td></tr><tr><td>frequency</td><td port="frequency">timedelta</td></tr><tr><td>ranges</td><td port="ranges">List[TimeRangeModel]</td></tr><tr><td>leap_day_adjustment</td><td port="leap_day_adjustment">Optional[LeapDayAdjustmentType]</td></tr><tr><td>time_interval_type</td><td port="time_interval_type">TimeIntervalType</td></tr><tr><td>timezone</td><td port="timezone">TimeZone</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.DateTimeDimensionModel&#xA;&#xA;Defines a time dimension where timestamps translate to datetime objects.&#\
xA;"];
   "dsgrid.config.dimensions.DateTimeDimensionModel":ranges:e -> "dsgrid.config.dimensions.TimeRangeModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.dimensions.DimensionModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>DimensionModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>display_name</td><td port="display_name">str</td></tr><tr><td>dimension_query_name</td><td port="dimension_query_name">Optional[str]</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">Optional[str]</td></tr><tr><td>version</td><td port="version">Optional[str]</td></tr><tr><td>module</td><td port="module">Optional[str]</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">Optional[Any]</td></tr><tr><td>description</td><td port="description">str</td></tr><tr><td>id</td><td port="id">Optional[str]</td></tr><tr><td>key</td><td port="key">Optional[str]</td></tr><tr><td>rev</td><td port="rev">Optional[str]</td></tr><tr><td>filename</td><td port="filename">Optional[str]</td></tr><tr><td>file_hash</td><td port="file_hash">Optional[str]</td></tr><tr><td>records</td><td port="records">list[]</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.DimensionModel&#xA;&#xA;Defines a non-time dimension&#xA;"];
   "dsgrid.config.dimensions.DimensionReferenceModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>DimensionReferenceModel</b></td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">str</td></tr><tr><td>version</td><td port="version">str</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.DimensionReferenceModel&#xA;&#xA;Reference to a dimension stored in the registry&#xA;"];
   "dsgrid.config.dimensions.MonthRangeModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>MonthRangeModel</b></td></tr><tr><td>start</td><td port="start">int</td></tr><tr><td>end</td><td port="end">int</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.MonthRangeModel&#xA;&#xA;Defines a continuous range of time.&#xA;"];
   "dsgrid.config.dimensions.NoOpTimeDimensionModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>NoOpTimeDimensionModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>display_name</td><td port="display_name">str</td></tr><tr><td>dimension_query_name</td><td port="dimension_query_name">Optional[str]</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">Optional[str]</td></tr><tr><td>version</td><td port="version">Optional[str]</td></tr><tr><td>module</td><td port="module">Optional[str]</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">Optional[Any]</td></tr><tr><td>description</td><td port="description">str</td></tr><tr><td>id</td><td port="id">Optional[str]</td></tr><tr><td>key</td><td port="key">Optional[str]</td></tr><tr><td>rev</td><td port="rev">Optional[str]</td></tr><tr><td>time_type</td><td port="time_type">TimeDimensionType</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.NoOpTimeDimensionModel&#xA;&#xA;Defines a NoOp time dimension.&#xA;"];
   "dsgrid.config.dimensions.RepresentativePeriodTimeDimensionModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RepresentativePeriodTimeDimensionModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>display_name</td><td port="display_name">str</td></tr><tr><td>dimension_query_name</td><td port="dimension_query_name">Optional[str]</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">Optional[str]</td></tr><tr><td>version</td><td port="version">Optional[str]</td></tr><tr><td>module</td><td port="module">Optional[str]</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">Optional[Any]</td></tr><tr><td>description</td><td port="description">str</td></tr><tr><td>id</td><td port="id">Optional[str]</td></tr><tr><td>key</td><td port="key">Optional[str]</td></tr><tr><td>rev</td><td port="rev">Optional[str]</td></tr><tr><td>time_type</td><td port="time_type">TimeDimensionType</td></tr><tr><td>measurement_type</td><td port="measurement_type">MeasurementType</td></tr><tr><td>format</td><td port="format">RepresentativePeriodFormat</td></tr><tr><td>ranges</td><td port="ranges">List[MonthRangeModel]</td></tr><tr><td>time_interval_type</td><td port="time_interval_type">TimeIntervalType</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.RepresentativePeriodTimeDimensionModel&#xA;&#xA;Defines a representative time dimension.&#xA;"];
   "dsgrid.config.dimensions.RepresentativePeriodTimeDimensionModel":ranges:e -> "dsgrid.config.dimensions.MonthRangeModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.mapping_tables.MappingTableByNameModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>MappingTableByNameModel</b></td></tr><tr><td>mapping_type</td><td port="mapping_type">DimensionMappingType</td></tr><tr><td>archetype</td><td port="archetype">Optional[DimensionMappingArchetype]</td></tr><tr><td>description</td><td port="description">str</td></tr><tr><td>from_fraction_tolerance</td><td port="from_fraction_tolerance">Optional[float]</td></tr><tr><td>to_fraction_tolerance</td><td port="to_fraction_tolerance">Optional[float]</td></tr><tr><td>filename</td><td port="filename">str</td></tr></table>>,
      tooltip="dsgrid.config.mapping_tables.MappingTableByNameModel&#xA;&#xA;Attributes for a dimension mapping table for soon-to-be registered \
dimensions by name.&#xA;This will be converted to a MappingTableModel as soon as the dimensions are registered.&#xA;"];
   "dsgrid.config.project_config.DimensionMappingsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>DimensionMappingsModel</b></td></tr><tr><td>base_to_supplemental_references</td><td port="base_to_supplemental_references">List[DimensionMappingReferenceModel]</td></tr><tr><td>dataset_to_project</td><td port="dataset_to_project">Dict[str, List[DimensionMappingReferenceModel]]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.DimensionMappingsModel&#xA;&#xA;Defines all dimension mappings associated with a dsgrid project,&#xA;\
including base-to-supplemental mappings and dataset-to-project mappings.&#xA;"];
   "dsgrid.config.project_config.DimensionMappingsModel":base_to_supplemental_references:e -> "dsgrid.config.dimension_mapping_base.DimensionMappingReferenceModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.DimensionMappingsModel":dataset_to_project:e -> "dsgrid.config.dimension_mapping_base.DimensionMappingReferenceModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.DimensionsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>DimensionsModel</b></td></tr><tr><td>base_dimensions</td><td port="base_dimensions">List[Union[DimensionModel, DateTimeDimensionModel, AnnualTimeDimensionModel, RepresentativePeriodTimeDimensionModel, NoOpTimeDimensionModel]]</td></tr><tr><td>base_dimension_references</td><td port="base_dimension_references">List[DimensionReferenceModel]</td></tr><tr><td>subset_dimensions</td><td port="subset_dimensions">list[SubsetDimensionGroupModel]</td></tr><tr><td>supplemental_dimensions</td><td port="supplemental_dimensions">List[SupplementalDimensionModel]</td></tr><tr><td>supplemental_dimension_references</td><td port="supplemental_dimension_references">List[DimensionReferenceModel]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.DimensionsModel&#xA;&#xA;Contains dimensions defined by a project&#xA;"];
   "dsgrid.config.project_config.DimensionsModel":base_dimensions:e -> "dsgrid.config.dimensions.AnnualTimeDimensionModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.DimensionsModel":base_dimensions:e -> "dsgrid.config.dimensions.DateTimeDimensionModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.DimensionsModel":base_dimensions:e -> "dsgrid.config.dimensions.DimensionModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.DimensionsModel":base_dimension_references:e -> "dsgrid.config.dimensions.DimensionReferenceModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.DimensionsModel":supplemental_dimension_references:e -> "dsgrid.config.dimensions.DimensionReferenceModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.DimensionsModel":base_dimensions:e -> "dsgrid.config.dimensions.NoOpTimeDimensionModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.DimensionsModel":base_dimensions:e -> "dsgrid.config.dimensions.RepresentativePeriodTimeDimensionModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.SubsetDimensionGroupModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>SubsetDimensionGroupModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>display_name</td><td port="display_name">str</td></tr><tr><td>dimension_query_name</td><td port="dimension_query_name">Optional[str]</td></tr><tr><td>description</td><td port="description">str</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>filename</td><td port="filename">Optional[str]</td></tr><tr><td>selectors</td><td port="selectors">list[SubsetDimensionSelectorModel]</td></tr><tr><td>selector_references</td><td port="selector_references">list[DimensionReferenceModel]</td></tr><tr><td>create_supplemental_dimension</td><td port="create_supplemental_dimension">bool</td></tr><tr><td>record_ids</td><td port="record_ids">set[str]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.SubsetDimensionGroupModel&#xA;&#xA;Defines one or more subset dimension selectors for a dimension type.&#\
xA;"];
   "dsgrid.config.project_config.DimensionsModel":subset_dimensions:e -> "dsgrid.config.project_config.SubsetDimensionGroupModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.supplemental_dimension.SupplementalDimensionModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>SupplementalDimensionModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>display_name</td><td port="display_name">str</td></tr><tr><td>dimension_query_name</td><td port="dimension_query_name">Optional[str]</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">Optional[str]</td></tr><tr><td>version</td><td port="version">Optional[str]</td></tr><tr><td>module</td><td port="module">Optional[str]</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">Optional[Any]</td></tr><tr><td>description</td><td port="description">str</td></tr><tr><td>id</td><td port="id">Optional[str]</td></tr><tr><td>key</td><td port="key">Optional[str]</td></tr><tr><td>rev</td><td port="rev">Optional[str]</td></tr><tr><td>filename</td><td port="filename">Optional[str]</td></tr><tr><td>file_hash</td><td port="file_hash">Optional[str]</td></tr><tr><td>records</td><td port="records">list[]</td></tr><tr><td>mapping</td><td port="mapping">MappingTableByNameModel</td></tr></table>>,
      tooltip="dsgrid.config.supplemental_dimension.SupplementalDimensionModel&#xA;&#xA;Defines a supplemental dimension.&#xA;"];
   "dsgrid.config.project_config.DimensionsModel":supplemental_dimensions:e -> "dsgrid.config.supplemental_dimension.SupplementalDimensionModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.InputDatasetModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>InputDatasetModel</b></td></tr><tr><td>dataset_id</td><td port="dataset_id">str</td></tr><tr><td>dataset_type</td><td port="dataset_type">InputDatasetType</td></tr><tr><td>version</td><td port="version">str</td></tr><tr><td>required_dimensions</td><td port="required_dimensions">RequiredDimensionsModel</td></tr><tr><td>mapping_references</td><td port="mapping_references">List[DimensionMappingReferenceModel]</td></tr><tr><td>status</td><td port="status">DatasetRegistryStatus</td></tr><tr><td>wrap_time_allowed</td><td port="wrap_time_allowed">bool</td></tr></table>>,
      tooltip="dsgrid.config.project_config.InputDatasetModel&#xA;&#xA;Defines an input dataset for the project config.&#xA;"];
   "dsgrid.config.project_config.InputDatasetModel":mapping_references:e -> "dsgrid.config.dimension_mapping_base.DimensionMappingReferenceModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredDimensionsModel</b></td></tr><tr><td>single_dimensional</td><td port="single_dimensional">RequiredDimensionRecordsModel</td></tr><tr><td>multi_dimensional</td><td port="multi_dimensional">list[RequiredDimensionRecordsModel]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredDimensionsModel&#xA;&#xA;Defines required record IDs that must exist for each dimension in \
a dataset.&#xA;Record IDs can reside in the project's base, subset, or supplemental dimensions. Using subset&#xA;dimensions is recommended. \
dsgrid will substitute base records for mapped subset records&#xA;at runtime. If no records are listed for a dimension then all \
project base records are&#xA;required.&#xA;"];
   "dsgrid.config.project_config.InputDatasetModel":required_dimensions:e -> "dsgrid.config.project_config.RequiredDimensionsModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.ProjectConfigModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>ProjectConfigModel</b></td></tr><tr><td>project_id</td><td port="project_id">str</td></tr><tr><td>version</td><td port="version">Optional[str]</td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>description</td><td port="description">str</td></tr><tr><td>status</td><td port="status">ProjectRegistryStatus</td></tr><tr><td>datasets</td><td port="datasets">List[InputDatasetModel]</td></tr><tr><td>dimensions</td><td port="dimensions">DimensionsModel</td></tr><tr><td>dimension_mappings</td><td port="dimension_mappings">DimensionMappingsModel</td></tr><tr><td>id</td><td port="id">Optional[str]</td></tr><tr><td>key</td><td port="key">Optional[str]</td></tr><tr><td>rev</td><td port="rev">Optional[str]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.ProjectConfigModel&#xA;&#xA;Represents project configurations&#xA;"];
   "dsgrid.config.project_config.ProjectConfigModel":dimension_mappings:e -> "dsgrid.config.project_config.DimensionMappingsModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.ProjectConfigModel":dimensions:e -> "dsgrid.config.project_config.DimensionsModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.ProjectConfigModel":datasets:e -> "dsgrid.config.project_config.InputDatasetModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredDimensionRecordsByTypeModel</b></td></tr><tr><td>base</td><td port="base">list[str]</td></tr><tr><td>subset</td><td port="subset">list[RequiredSubsetDimensionRecordsModel]</td></tr><tr><td>supplemental</td><td port="supplemental">list[RequiredSupplementalDimensionRecordsModel]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
   "dsgrid.config.project_config.RequiredSubsetDimensionRecordsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredSubsetDimensionRecordsModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>selectors</td><td port="selectors">list[str]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredSubsetDimensionRecordsModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
   "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":subset:e -> "dsgrid.config.project_config.RequiredSubsetDimensionRecordsModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredSupplementalDimensionRecordsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredSupplementalDimensionRecordsModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>record_ids</td><td port="record_ids">list[str]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredSupplementalDimensionRecordsModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
   "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":supplemental:e -> "dsgrid.config.project_config.RequiredSupplementalDimensionRecordsModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredDimensionRecordsModel</b></td></tr><tr><td>geography</td><td port="geography">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>metric</td><td port="metric">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>model_year</td><td port="model_year">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>scenario</td><td port="scenario">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>sector</td><td port="sector">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>subsector</td><td port="subsector">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>weather_year</td><td port="weather_year">RequiredDimensionRecordsByTypeModel</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredDimensionRecordsModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":geography:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":metric:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":model_year:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":scenario:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":sector:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":subsector:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":weather_year:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionsModel":multi_dimensional:e -> "dsgrid.config.project_config.RequiredDimensionRecordsModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionsModel":single_dimensional:e -> "dsgrid.config.project_config.RequiredDimensionRecordsModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.SubsetDimensionGroupModel":selector_references:e -> "dsgrid.config.dimensions.DimensionReferenceModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.SubsetDimensionSelectorModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>SubsetDimensionSelectorModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>description</td><td port="description">str</td></tr><tr><td>column_values</td><td port="column_values">dict[str, str]</td></tr><tr><td>records</td><td port="records">list[str]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.SubsetDimensionSelectorModel&#xA;&#xA;Defines a subset dimension selector inclusive of the subset's \
records and information&#xA;required to define the selector as a record within the supplemental dimension defined by the&#xA;subset \
dimension group.&#xA;"];
   "dsgrid.config.project_config.SubsetDimensionGroupModel":selectors:e -> "dsgrid.config.project_config.SubsetDimensionSelectorModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.supplemental_dimension.SupplementalDimensionModel":mapping:e -> "dsgrid.config.mapping_tables.MappingTableByNameModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
}
Fields:
Validators:
field datasets: List[InputDatasetModel] [Required]

List of input datasets for the project.

field description: str [Required]

Detailed project description.

field dimension_mappings: DimensionMappingsModel = DimensionMappingsModel(base_to_supplemental_references=[], dataset_to_project={})

List of project mappings. Initialized with base-to-base and base-to-supplemental mappings. dataset-to-project mappings are added by dsgrid as datasets get registered with the project.

field dimensions: DimensionsModel [Required]

List of base and supplemental dimensions.

field id: str | None = None (alias '_id')

Registry database ID

field key: str | None = None (alias '_key')

Registry database key

field name: str [Required]

A project name to accompany the ID.

field project_id: str [Required]

A unique project identifier that is project-specific (e.g., ‘standard-scenarios-2021’).

Validated by:
field rev: str | None = None (alias '_rev')

Registry database revision

field status: ProjectRegistryStatus = ProjectRegistryStatus.INITIAL_REGISTRATION

project registry status

field version: str | None = None

Version, generated by dsgrid

validator check_project_id_handle  »  project_id[source]

Check for valid characters in project id

pydantic model dsgrid.config.project_config.InputDatasetModel[source]

Defines an input dataset for the project config.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

__init__ uses __pydantic_self__ instead of the more common self for the first arg to allow self as a field name.

digraph "Entity Relationship Diagram created by erdantic" {
   graph [fontcolor=gray66,
      fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=9,
      nodesep=0.5,
      rankdir=LR,
      ranksep=1.5
   ];
   node [fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=14,
      label="\N",
      shape=plain
   ];
   edge [dir=both];
   "dsgrid.config.dimension_mapping_base.DimensionMappingReferenceModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>DimensionMappingReferenceModel</b></td></tr><tr><td>from_dimension_type</td><td port="from_dimension_type">DimensionType</td></tr><tr><td>to_dimension_type</td><td port="to_dimension_type">DimensionType</td></tr><tr><td>mapping_id</td><td port="mapping_id">str</td></tr><tr><td>version</td><td port="version">str</td></tr><tr><td>required_for_validation</td><td port="required_for_validation">Optional[bool]</td></tr></table>>,
      tooltip="dsgrid.config.dimension_mapping_base.DimensionMappingReferenceModel&#xA;&#xA;Reference to a dimension mapping stored in the registry.&#\
xA;&#xA;The DimensionMappingReferenceModel is utilized by the project configuration (project.json5) as well as by the&#xA;dimension \
mapping reference configuration (dimension_mapping_references.json5) that may be required when submitting a dataset to a project.&#\
xA;"];
   "dsgrid.config.project_config.InputDatasetModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>InputDatasetModel</b></td></tr><tr><td>dataset_id</td><td port="dataset_id">str</td></tr><tr><td>dataset_type</td><td port="dataset_type">InputDatasetType</td></tr><tr><td>version</td><td port="version">str</td></tr><tr><td>required_dimensions</td><td port="required_dimensions">RequiredDimensionsModel</td></tr><tr><td>mapping_references</td><td port="mapping_references">List[DimensionMappingReferenceModel]</td></tr><tr><td>status</td><td port="status">DatasetRegistryStatus</td></tr><tr><td>wrap_time_allowed</td><td port="wrap_time_allowed">bool</td></tr></table>>,
      tooltip="dsgrid.config.project_config.InputDatasetModel&#xA;&#xA;Defines an input dataset for the project config.&#xA;"];
   "dsgrid.config.project_config.InputDatasetModel":mapping_references:e -> "dsgrid.config.dimension_mapping_base.DimensionMappingReferenceModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredDimensionsModel</b></td></tr><tr><td>single_dimensional</td><td port="single_dimensional">RequiredDimensionRecordsModel</td></tr><tr><td>multi_dimensional</td><td port="multi_dimensional">list[RequiredDimensionRecordsModel]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredDimensionsModel&#xA;&#xA;Defines required record IDs that must exist for each dimension in \
a dataset.&#xA;Record IDs can reside in the project's base, subset, or supplemental dimensions. Using subset&#xA;dimensions is recommended. \
dsgrid will substitute base records for mapped subset records&#xA;at runtime. If no records are listed for a dimension then all \
project base records are&#xA;required.&#xA;"];
   "dsgrid.config.project_config.InputDatasetModel":required_dimensions:e -> "dsgrid.config.project_config.RequiredDimensionsModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredDimensionRecordsByTypeModel</b></td></tr><tr><td>base</td><td port="base">list[str]</td></tr><tr><td>subset</td><td port="subset">list[RequiredSubsetDimensionRecordsModel]</td></tr><tr><td>supplemental</td><td port="supplemental">list[RequiredSupplementalDimensionRecordsModel]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
   "dsgrid.config.project_config.RequiredSubsetDimensionRecordsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredSubsetDimensionRecordsModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>selectors</td><td port="selectors">list[str]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredSubsetDimensionRecordsModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
   "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":subset:e -> "dsgrid.config.project_config.RequiredSubsetDimensionRecordsModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredSupplementalDimensionRecordsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredSupplementalDimensionRecordsModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>record_ids</td><td port="record_ids">list[str]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredSupplementalDimensionRecordsModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
   "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":supplemental:e -> "dsgrid.config.project_config.RequiredSupplementalDimensionRecordsModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredDimensionRecordsModel</b></td></tr><tr><td>geography</td><td port="geography">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>metric</td><td port="metric">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>model_year</td><td port="model_year">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>scenario</td><td port="scenario">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>sector</td><td port="sector">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>subsector</td><td port="subsector">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>weather_year</td><td port="weather_year">RequiredDimensionRecordsByTypeModel</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredDimensionRecordsModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":geography:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":metric:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":model_year:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":scenario:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":sector:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":subsector:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":weather_year:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionsModel":multi_dimensional:e -> "dsgrid.config.project_config.RequiredDimensionRecordsModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionsModel":single_dimensional:e -> "dsgrid.config.project_config.RequiredDimensionRecordsModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
}
Fields:
field dataset_id: str [Required]

Unique dataset identifier.

field dataset_type: InputDatasetType [Required]

Dataset type.

field mapping_references: List[DimensionMappingReferenceModel] = []

Defines how to map the dataset dimensions to the project.

field required_dimensions: RequiredDimensionsModel = RequiredDimensionsModel(single_dimensional=RequiredDimensionRecordsModel(geography=RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[]), metric=RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[]), model_year=RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[]), scenario=RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[]), sector=RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[]), subsector=RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[]), weather_year=RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[])), multi_dimensional=[])

Defines required record IDs that must exist for each dimension.

field status: DatasetRegistryStatus = DatasetRegistryStatus.UNREGISTERED

Registration status of the dataset, added by dsgrid.

field version: str = None

Version of the registered dataset

field wrap_time_allowed: bool = False

Whether to allow dataset time to be wrapped to project time if different

pydantic model dsgrid.config.project_config.DimensionsModel[source]

Contains dimensions defined by a project

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

__init__ uses __pydantic_self__ instead of the more common self for the first arg to allow self as a field name.

digraph "Entity Relationship Diagram created by erdantic" {
   graph [fontcolor=gray66,
      fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=9,
      nodesep=0.5,
      rankdir=LR,
      ranksep=1.5
   ];
   node [fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=14,
      label="\N",
      shape=plain
   ];
   edge [dir=both];
   "dsgrid.config.dimensions.AnnualTimeDimensionModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>AnnualTimeDimensionModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>display_name</td><td port="display_name">str</td></tr><tr><td>dimension_query_name</td><td port="dimension_query_name">Optional[str]</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">Optional[str]</td></tr><tr><td>version</td><td port="version">Optional[str]</td></tr><tr><td>module</td><td port="module">Optional[str]</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">Optional[Any]</td></tr><tr><td>description</td><td port="description">str</td></tr><tr><td>id</td><td port="id">Optional[str]</td></tr><tr><td>key</td><td port="key">Optional[str]</td></tr><tr><td>rev</td><td port="rev">Optional[str]</td></tr><tr><td>time_type</td><td port="time_type">TimeDimensionType</td></tr><tr><td>measurement_type</td><td port="measurement_type">MeasurementType</td></tr><tr><td>str_format</td><td port="str_format">Optional[str]</td></tr><tr><td>ranges</td><td port="ranges">List[TimeRangeModel]</td></tr><tr><td>include_leap_day</td><td port="include_leap_day">bool</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.AnnualTimeDimensionModel&#xA;&#xA;Defines an annual time dimension where timestamps are years.&#xA;"];
   "dsgrid.config.dimensions.TimeRangeModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>TimeRangeModel</b></td></tr><tr><td>start</td><td port="start">str</td></tr><tr><td>end</td><td port="end">str</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.TimeRangeModel&#xA;&#xA;Defines a continuous range of time.&#xA;"];
   "dsgrid.config.dimensions.AnnualTimeDimensionModel":ranges:e -> "dsgrid.config.dimensions.TimeRangeModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.dimensions.DateTimeDimensionModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>DateTimeDimensionModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>display_name</td><td port="display_name">str</td></tr><tr><td>dimension_query_name</td><td port="dimension_query_name">Optional[str]</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">Optional[str]</td></tr><tr><td>version</td><td port="version">Optional[str]</td></tr><tr><td>module</td><td port="module">Optional[str]</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">Optional[Any]</td></tr><tr><td>description</td><td port="description">str</td></tr><tr><td>id</td><td port="id">Optional[str]</td></tr><tr><td>key</td><td port="key">Optional[str]</td></tr><tr><td>rev</td><td port="rev">Optional[str]</td></tr><tr><td>time_type</td><td port="time_type">TimeDimensionType</td></tr><tr><td>measurement_type</td><td port="measurement_type">MeasurementType</td></tr><tr><td>str_format</td><td port="str_format">Optional[str]</td></tr><tr><td>frequency</td><td port="frequency">timedelta</td></tr><tr><td>ranges</td><td port="ranges">List[TimeRangeModel]</td></tr><tr><td>leap_day_adjustment</td><td port="leap_day_adjustment">Optional[LeapDayAdjustmentType]</td></tr><tr><td>time_interval_type</td><td port="time_interval_type">TimeIntervalType</td></tr><tr><td>timezone</td><td port="timezone">TimeZone</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.DateTimeDimensionModel&#xA;&#xA;Defines a time dimension where timestamps translate to datetime objects.&#\
xA;"];
   "dsgrid.config.dimensions.DateTimeDimensionModel":ranges:e -> "dsgrid.config.dimensions.TimeRangeModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.dimensions.DimensionModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>DimensionModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>display_name</td><td port="display_name">str</td></tr><tr><td>dimension_query_name</td><td port="dimension_query_name">Optional[str]</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">Optional[str]</td></tr><tr><td>version</td><td port="version">Optional[str]</td></tr><tr><td>module</td><td port="module">Optional[str]</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">Optional[Any]</td></tr><tr><td>description</td><td port="description">str</td></tr><tr><td>id</td><td port="id">Optional[str]</td></tr><tr><td>key</td><td port="key">Optional[str]</td></tr><tr><td>rev</td><td port="rev">Optional[str]</td></tr><tr><td>filename</td><td port="filename">Optional[str]</td></tr><tr><td>file_hash</td><td port="file_hash">Optional[str]</td></tr><tr><td>records</td><td port="records">list[]</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.DimensionModel&#xA;&#xA;Defines a non-time dimension&#xA;"];
   "dsgrid.config.dimensions.DimensionReferenceModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>DimensionReferenceModel</b></td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">str</td></tr><tr><td>version</td><td port="version">str</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.DimensionReferenceModel&#xA;&#xA;Reference to a dimension stored in the registry&#xA;"];
   "dsgrid.config.dimensions.MonthRangeModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>MonthRangeModel</b></td></tr><tr><td>start</td><td port="start">int</td></tr><tr><td>end</td><td port="end">int</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.MonthRangeModel&#xA;&#xA;Defines a continuous range of time.&#xA;"];
   "dsgrid.config.dimensions.NoOpTimeDimensionModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>NoOpTimeDimensionModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>display_name</td><td port="display_name">str</td></tr><tr><td>dimension_query_name</td><td port="dimension_query_name">Optional[str]</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">Optional[str]</td></tr><tr><td>version</td><td port="version">Optional[str]</td></tr><tr><td>module</td><td port="module">Optional[str]</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">Optional[Any]</td></tr><tr><td>description</td><td port="description">str</td></tr><tr><td>id</td><td port="id">Optional[str]</td></tr><tr><td>key</td><td port="key">Optional[str]</td></tr><tr><td>rev</td><td port="rev">Optional[str]</td></tr><tr><td>time_type</td><td port="time_type">TimeDimensionType</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.NoOpTimeDimensionModel&#xA;&#xA;Defines a NoOp time dimension.&#xA;"];
   "dsgrid.config.dimensions.RepresentativePeriodTimeDimensionModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RepresentativePeriodTimeDimensionModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>display_name</td><td port="display_name">str</td></tr><tr><td>dimension_query_name</td><td port="dimension_query_name">Optional[str]</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">Optional[str]</td></tr><tr><td>version</td><td port="version">Optional[str]</td></tr><tr><td>module</td><td port="module">Optional[str]</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">Optional[Any]</td></tr><tr><td>description</td><td port="description">str</td></tr><tr><td>id</td><td port="id">Optional[str]</td></tr><tr><td>key</td><td port="key">Optional[str]</td></tr><tr><td>rev</td><td port="rev">Optional[str]</td></tr><tr><td>time_type</td><td port="time_type">TimeDimensionType</td></tr><tr><td>measurement_type</td><td port="measurement_type">MeasurementType</td></tr><tr><td>format</td><td port="format">RepresentativePeriodFormat</td></tr><tr><td>ranges</td><td port="ranges">List[MonthRangeModel]</td></tr><tr><td>time_interval_type</td><td port="time_interval_type">TimeIntervalType</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.RepresentativePeriodTimeDimensionModel&#xA;&#xA;Defines a representative time dimension.&#xA;"];
   "dsgrid.config.dimensions.RepresentativePeriodTimeDimensionModel":ranges:e -> "dsgrid.config.dimensions.MonthRangeModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.mapping_tables.MappingTableByNameModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>MappingTableByNameModel</b></td></tr><tr><td>mapping_type</td><td port="mapping_type">DimensionMappingType</td></tr><tr><td>archetype</td><td port="archetype">Optional[DimensionMappingArchetype]</td></tr><tr><td>description</td><td port="description">str</td></tr><tr><td>from_fraction_tolerance</td><td port="from_fraction_tolerance">Optional[float]</td></tr><tr><td>to_fraction_tolerance</td><td port="to_fraction_tolerance">Optional[float]</td></tr><tr><td>filename</td><td port="filename">str</td></tr></table>>,
      tooltip="dsgrid.config.mapping_tables.MappingTableByNameModel&#xA;&#xA;Attributes for a dimension mapping table for soon-to-be registered \
dimensions by name.&#xA;This will be converted to a MappingTableModel as soon as the dimensions are registered.&#xA;"];
   "dsgrid.config.project_config.DimensionsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>DimensionsModel</b></td></tr><tr><td>base_dimensions</td><td port="base_dimensions">List[Union[DimensionModel, DateTimeDimensionModel, AnnualTimeDimensionModel, RepresentativePeriodTimeDimensionModel, NoOpTimeDimensionModel]]</td></tr><tr><td>base_dimension_references</td><td port="base_dimension_references">List[DimensionReferenceModel]</td></tr><tr><td>subset_dimensions</td><td port="subset_dimensions">list[SubsetDimensionGroupModel]</td></tr><tr><td>supplemental_dimensions</td><td port="supplemental_dimensions">List[SupplementalDimensionModel]</td></tr><tr><td>supplemental_dimension_references</td><td port="supplemental_dimension_references">List[DimensionReferenceModel]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.DimensionsModel&#xA;&#xA;Contains dimensions defined by a project&#xA;"];
   "dsgrid.config.project_config.DimensionsModel":base_dimensions:e -> "dsgrid.config.dimensions.AnnualTimeDimensionModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.DimensionsModel":base_dimensions:e -> "dsgrid.config.dimensions.DateTimeDimensionModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.DimensionsModel":base_dimensions:e -> "dsgrid.config.dimensions.DimensionModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.DimensionsModel":base_dimension_references:e -> "dsgrid.config.dimensions.DimensionReferenceModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.DimensionsModel":supplemental_dimension_references:e -> "dsgrid.config.dimensions.DimensionReferenceModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.DimensionsModel":base_dimensions:e -> "dsgrid.config.dimensions.NoOpTimeDimensionModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.DimensionsModel":base_dimensions:e -> "dsgrid.config.dimensions.RepresentativePeriodTimeDimensionModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.SubsetDimensionGroupModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>SubsetDimensionGroupModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>display_name</td><td port="display_name">str</td></tr><tr><td>dimension_query_name</td><td port="dimension_query_name">Optional[str]</td></tr><tr><td>description</td><td port="description">str</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>filename</td><td port="filename">Optional[str]</td></tr><tr><td>selectors</td><td port="selectors">list[SubsetDimensionSelectorModel]</td></tr><tr><td>selector_references</td><td port="selector_references">list[DimensionReferenceModel]</td></tr><tr><td>create_supplemental_dimension</td><td port="create_supplemental_dimension">bool</td></tr><tr><td>record_ids</td><td port="record_ids">set[str]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.SubsetDimensionGroupModel&#xA;&#xA;Defines one or more subset dimension selectors for a dimension type.&#\
xA;"];
   "dsgrid.config.project_config.DimensionsModel":subset_dimensions:e -> "dsgrid.config.project_config.SubsetDimensionGroupModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.supplemental_dimension.SupplementalDimensionModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>SupplementalDimensionModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>display_name</td><td port="display_name">str</td></tr><tr><td>dimension_query_name</td><td port="dimension_query_name">Optional[str]</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">Optional[str]</td></tr><tr><td>version</td><td port="version">Optional[str]</td></tr><tr><td>module</td><td port="module">Optional[str]</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">Optional[Any]</td></tr><tr><td>description</td><td port="description">str</td></tr><tr><td>id</td><td port="id">Optional[str]</td></tr><tr><td>key</td><td port="key">Optional[str]</td></tr><tr><td>rev</td><td port="rev">Optional[str]</td></tr><tr><td>filename</td><td port="filename">Optional[str]</td></tr><tr><td>file_hash</td><td port="file_hash">Optional[str]</td></tr><tr><td>records</td><td port="records">list[]</td></tr><tr><td>mapping</td><td port="mapping">MappingTableByNameModel</td></tr></table>>,
      tooltip="dsgrid.config.supplemental_dimension.SupplementalDimensionModel&#xA;&#xA;Defines a supplemental dimension.&#xA;"];
   "dsgrid.config.project_config.DimensionsModel":supplemental_dimensions:e -> "dsgrid.config.supplemental_dimension.SupplementalDimensionModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.SubsetDimensionGroupModel":selector_references:e -> "dsgrid.config.dimensions.DimensionReferenceModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.SubsetDimensionSelectorModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>SubsetDimensionSelectorModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>description</td><td port="description">str</td></tr><tr><td>column_values</td><td port="column_values">dict[str, str]</td></tr><tr><td>records</td><td port="records">list[str]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.SubsetDimensionSelectorModel&#xA;&#xA;Defines a subset dimension selector inclusive of the subset's \
records and information&#xA;required to define the selector as a record within the supplemental dimension defined by the&#xA;subset \
dimension group.&#xA;"];
   "dsgrid.config.project_config.SubsetDimensionGroupModel":selectors:e -> "dsgrid.config.project_config.SubsetDimensionSelectorModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.supplemental_dimension.SupplementalDimensionModel":mapping:e -> "dsgrid.config.mapping_tables.MappingTableByNameModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
}
Fields:
Validators:
field base_dimension_references: List[DimensionReferenceModel] = []

List of registry references (DimensionReferenceModel) for a project’s base dimensions.

Validated by:
field base_dimensions: List[DimensionModel | DateTimeDimensionModel | AnnualTimeDimensionModel | RepresentativePeriodTimeDimensionModel | NoOpTimeDimensionModel] = []

List of dimensions for a project’s base dimensions. They will be automatically registered during project registration and then converted to base_dimension_references.

Constraints:
  • func = <function handle_dimension_union at 0x7ff05b0d9ea0>

Validated by:
field subset_dimensions: list[SubsetDimensionGroupModel] = []

List of subset dimension groups

Validated by:
field supplemental_dimension_references: List[DimensionReferenceModel] = []

List of registry references for a project’s supplemental dimensions.

Validated by:
field supplemental_dimensions: List[SupplementalDimensionModel] = []

List of supplemental dimensions. They will be automatically registered during project registration and then converted to supplemental_dimension_references.

Validated by:
validator check_dimension_query_names  »  all fields[source]

Check that all dimension query names are unique.

validator check_dimensions  »  all fields[source]

Validate that the dimensions are complete and consistent.

validator check_files  »  base_dimensions[source]

Validate dimension files are unique across all dimensions

validator check_names  »  base_dimensions[source]

Validate dimension names are unique across all dimensions.

validator check_subset_dimensions  »  subset_dimensions[source]

Check that each subset dimension has a unique name and display_name.

validator check_time_zone  »  base_dimensions[source]

Validate the time zone column in geography records.

validator pre_check_values  »  all fields[source]

Checks that base dimensions are defined.

pydantic model dsgrid.config.project_config.DimensionReferenceModel[source]

Reference to a dimension stored in the registry

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

__init__ uses __pydantic_self__ instead of the more common self for the first arg to allow self as a field name.

digraph "Entity Relationship Diagram created by erdantic" {
   graph [fontcolor=gray66,
      fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=9,
      nodesep=0.5,
      rankdir=LR,
      ranksep=1.5
   ];
   node [fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=14,
      label="\N",
      shape=plain
   ];
   edge [dir=both];
   "dsgrid.config.dimensions.DimensionReferenceModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>DimensionReferenceModel</b></td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">str</td></tr><tr><td>version</td><td port="version">str</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.DimensionReferenceModel&#xA;&#xA;Reference to a dimension stored in the registry&#xA;"];
}
Fields:
field dimension_id: str [Required]

Unique ID of the dimension in the registry

field dimension_type: DimensionType [Required] (alias 'type')

Type of the dimension

field version: str [Required]

Version of the dimension

pydantic model dsgrid.config.project_config.RequiredDimensionsModel[source]

Defines required record IDs that must exist for each dimension in a dataset. Record IDs can reside in the project’s base, subset, or supplemental dimensions. Using subset dimensions is recommended. dsgrid will substitute base records for mapped subset records at runtime. If no records are listed for a dimension then all project base records are required.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

__init__ uses __pydantic_self__ instead of the more common self for the first arg to allow self as a field name.

digraph "Entity Relationship Diagram created by erdantic" {
   graph [fontcolor=gray66,
      fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=9,
      nodesep=0.5,
      rankdir=LR,
      ranksep=1.5
   ];
   node [fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=14,
      label="\N",
      shape=plain
   ];
   edge [dir=both];
   "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredDimensionRecordsByTypeModel</b></td></tr><tr><td>base</td><td port="base">list[str]</td></tr><tr><td>subset</td><td port="subset">list[RequiredSubsetDimensionRecordsModel]</td></tr><tr><td>supplemental</td><td port="supplemental">list[RequiredSupplementalDimensionRecordsModel]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
   "dsgrid.config.project_config.RequiredSubsetDimensionRecordsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredSubsetDimensionRecordsModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>selectors</td><td port="selectors">list[str]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredSubsetDimensionRecordsModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
   "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":subset:e -> "dsgrid.config.project_config.RequiredSubsetDimensionRecordsModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredSupplementalDimensionRecordsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredSupplementalDimensionRecordsModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>record_ids</td><td port="record_ids">list[str]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredSupplementalDimensionRecordsModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
   "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":supplemental:e -> "dsgrid.config.project_config.RequiredSupplementalDimensionRecordsModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredDimensionRecordsModel</b></td></tr><tr><td>geography</td><td port="geography">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>metric</td><td port="metric">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>model_year</td><td port="model_year">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>scenario</td><td port="scenario">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>sector</td><td port="sector">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>subsector</td><td port="subsector">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>weather_year</td><td port="weather_year">RequiredDimensionRecordsByTypeModel</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredDimensionRecordsModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":geography:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":metric:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":model_year:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":scenario:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":sector:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":subsector:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":weather_year:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredDimensionsModel</b></td></tr><tr><td>single_dimensional</td><td port="single_dimensional">RequiredDimensionRecordsModel</td></tr><tr><td>multi_dimensional</td><td port="multi_dimensional">list[RequiredDimensionRecordsModel]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredDimensionsModel&#xA;&#xA;Defines required record IDs that must exist for each dimension in \
a dataset.&#xA;Record IDs can reside in the project's base, subset, or supplemental dimensions. Using subset&#xA;dimensions is recommended. \
dsgrid will substitute base records for mapped subset records&#xA;at runtime. If no records are listed for a dimension then all \
project base records are&#xA;required.&#xA;"];
   "dsgrid.config.project_config.RequiredDimensionsModel":multi_dimensional:e -> "dsgrid.config.project_config.RequiredDimensionRecordsModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionsModel":single_dimensional:e -> "dsgrid.config.project_config.RequiredDimensionRecordsModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
}
Fields:
Validators:
field multi_dimensional: list[RequiredDimensionRecordsModel] = []

Required records for a combination of dimensions. For example, there may be a dataset requirement for only one subsector for a given sector instead of a cross product.

Validated by:
field single_dimensional: RequiredDimensionRecordsModel = RequiredDimensionRecordsModel(geography=RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[]), metric=RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[]), model_year=RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[]), scenario=RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[]), sector=RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[]), subsector=RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[]), weather_year=RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[]))

Required records for a single dimension.

Validated by:
validator check_for_duplicates  »  all fields[source]
pydantic model dsgrid.config.project_config.DimensionMappingsModel[source]

Defines all dimension mappings associated with a dsgrid project, including base-to-supplemental mappings and dataset-to-project mappings.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

__init__ uses __pydantic_self__ instead of the more common self for the first arg to allow self as a field name.

digraph "Entity Relationship Diagram created by erdantic" {
   graph [fontcolor=gray66,
      fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=9,
      nodesep=0.5,
      rankdir=LR,
      ranksep=1.5
   ];
   node [fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=14,
      label="\N",
      shape=plain
   ];
   edge [dir=both];
   "dsgrid.config.dimension_mapping_base.DimensionMappingReferenceModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>DimensionMappingReferenceModel</b></td></tr><tr><td>from_dimension_type</td><td port="from_dimension_type">DimensionType</td></tr><tr><td>to_dimension_type</td><td port="to_dimension_type">DimensionType</td></tr><tr><td>mapping_id</td><td port="mapping_id">str</td></tr><tr><td>version</td><td port="version">str</td></tr><tr><td>required_for_validation</td><td port="required_for_validation">Optional[bool]</td></tr></table>>,
      tooltip="dsgrid.config.dimension_mapping_base.DimensionMappingReferenceModel&#xA;&#xA;Reference to a dimension mapping stored in the registry.&#\
xA;&#xA;The DimensionMappingReferenceModel is utilized by the project configuration (project.json5) as well as by the&#xA;dimension \
mapping reference configuration (dimension_mapping_references.json5) that may be required when submitting a dataset to a project.&#\
xA;"];
   "dsgrid.config.project_config.DimensionMappingsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>DimensionMappingsModel</b></td></tr><tr><td>base_to_supplemental_references</td><td port="base_to_supplemental_references">List[DimensionMappingReferenceModel]</td></tr><tr><td>dataset_to_project</td><td port="dataset_to_project">Dict[str, List[DimensionMappingReferenceModel]]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.DimensionMappingsModel&#xA;&#xA;Defines all dimension mappings associated with a dsgrid project,&#xA;\
including base-to-supplemental mappings and dataset-to-project mappings.&#xA;"];
   "dsgrid.config.project_config.DimensionMappingsModel":base_to_supplemental_references:e -> "dsgrid.config.dimension_mapping_base.DimensionMappingReferenceModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.DimensionMappingsModel":dataset_to_project:e -> "dsgrid.config.dimension_mapping_base.DimensionMappingReferenceModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
}
Fields:
field base_to_supplemental_references: List[DimensionMappingReferenceModel] = []

Base dimension to supplemental dimension mappings (e.g., county-to-state) used to support various queries and dimension transformations.

field dataset_to_project: Dict[str, List[DimensionMappingReferenceModel]] = {}

Dataset-to-project mappings map dataset dimensions to project dimensions.

pydantic model dsgrid.config.project_config.RequiredDimensionRecordsModel[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

__init__ uses __pydantic_self__ instead of the more common self for the first arg to allow self as a field name.

digraph "Entity Relationship Diagram created by erdantic" {
   graph [fontcolor=gray66,
      fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=9,
      nodesep=0.5,
      rankdir=LR,
      ranksep=1.5
   ];
   node [fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=14,
      label="\N",
      shape=plain
   ];
   edge [dir=both];
   "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredDimensionRecordsByTypeModel</b></td></tr><tr><td>base</td><td port="base">list[str]</td></tr><tr><td>subset</td><td port="subset">list[RequiredSubsetDimensionRecordsModel]</td></tr><tr><td>supplemental</td><td port="supplemental">list[RequiredSupplementalDimensionRecordsModel]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
   "dsgrid.config.project_config.RequiredSubsetDimensionRecordsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredSubsetDimensionRecordsModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>selectors</td><td port="selectors">list[str]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredSubsetDimensionRecordsModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
   "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":subset:e -> "dsgrid.config.project_config.RequiredSubsetDimensionRecordsModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredSupplementalDimensionRecordsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredSupplementalDimensionRecordsModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>record_ids</td><td port="record_ids">list[str]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredSupplementalDimensionRecordsModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
   "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":supplemental:e -> "dsgrid.config.project_config.RequiredSupplementalDimensionRecordsModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredDimensionRecordsModel</b></td></tr><tr><td>geography</td><td port="geography">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>metric</td><td port="metric">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>model_year</td><td port="model_year">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>scenario</td><td port="scenario">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>sector</td><td port="sector">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>subsector</td><td port="subsector">RequiredDimensionRecordsByTypeModel</td></tr><tr><td>weather_year</td><td port="weather_year">RequiredDimensionRecordsByTypeModel</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredDimensionRecordsModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":geography:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":metric:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":model_year:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":scenario:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":sector:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":subsector:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredDimensionRecordsModel":weather_year:e -> "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
}
Fields:
field geography: RequiredDimensionRecordsByTypeModel = RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[])
field metric: RequiredDimensionRecordsByTypeModel = RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[])
field model_year: RequiredDimensionRecordsByTypeModel = RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[])
field scenario: RequiredDimensionRecordsByTypeModel = RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[])
field sector: RequiredDimensionRecordsByTypeModel = RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[])
field subsector: RequiredDimensionRecordsByTypeModel = RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[])
field weather_year: RequiredDimensionRecordsByTypeModel = RequiredDimensionRecordsByTypeModel(base=[], subset=[], supplemental=[])
pydantic model dsgrid.config.project_config.RequiredSupplementalDimensionRecordsModel[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

__init__ uses __pydantic_self__ instead of the more common self for the first arg to allow self as a field name.

digraph "Entity Relationship Diagram created by erdantic" {
   graph [fontcolor=gray66,
      fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=9,
      nodesep=0.5,
      rankdir=LR,
      ranksep=1.5
   ];
   node [fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=14,
      label="\N",
      shape=plain
   ];
   edge [dir=both];
   "dsgrid.config.project_config.RequiredSupplementalDimensionRecordsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredSupplementalDimensionRecordsModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>record_ids</td><td port="record_ids">list[str]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredSupplementalDimensionRecordsModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
}
Fields:
field name: str [Required]

Name of a supplemental dimension

field record_ids: list[str] [Required]

One or more record IDs in the supplemental dimension

pydantic model dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel[source]

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

__init__ uses __pydantic_self__ instead of the more common self for the first arg to allow self as a field name.

digraph "Entity Relationship Diagram created by erdantic" {
   graph [fontcolor=gray66,
      fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=9,
      nodesep=0.5,
      rankdir=LR,
      ranksep=1.5
   ];
   node [fontname="Times New Roman,Times,Liberation Serif,serif",
      fontsize=14,
      label="\N",
      shape=plain
   ];
   edge [dir=both];
   "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredDimensionRecordsByTypeModel</b></td></tr><tr><td>base</td><td port="base">list[str]</td></tr><tr><td>subset</td><td port="subset">list[RequiredSubsetDimensionRecordsModel]</td></tr><tr><td>supplemental</td><td port="supplemental">list[RequiredSupplementalDimensionRecordsModel]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
   "dsgrid.config.project_config.RequiredSubsetDimensionRecordsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredSubsetDimensionRecordsModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>selectors</td><td port="selectors">list[str]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredSubsetDimensionRecordsModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
   "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":subset:e -> "dsgrid.config.project_config.RequiredSubsetDimensionRecordsModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "dsgrid.config.project_config.RequiredSupplementalDimensionRecordsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>RequiredSupplementalDimensionRecordsModel</b></td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>record_ids</td><td port="record_ids">list[str]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.RequiredSupplementalDimensionRecordsModel&#xA;&#xA;Base data model for all dsgrid data models&#xA;"];
   "dsgrid.config.project_config.RequiredDimensionRecordsByTypeModel":supplemental:e -> "dsgrid.config.project_config.RequiredSupplementalDimensionRecordsModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
}
Fields:
field base: list[str] = []
field subset: list[RequiredSubsetDimensionRecordsModel] = []
field supplemental: list[RequiredSupplementalDimensionRecordsModel] = []
defines_dimension_requirement() bool[source]

Returns True if the model defines a dimension requirement.