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.

self is explicitly positional-only 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">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.AlignedTime"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>AlignedTime</b></td></tr><tr><td>format_type</td><td port="format_type">Literal[DatetimeFormat.ALIGNED]</td></tr><tr><td>timezone</td><td port="timezone">TimeZone</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.AlignedTime&#xA;&#xA;Data has absolute timestamps that are aligned with the same start and end&#xA;for \
each geography.&#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">str</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">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">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">str</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">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>datetime_format</td><td port="datetime_format">Union[AlignedTime, LocalTimeAsStrings]</td></tr><tr><td>measurement_type</td><td port="measurement_type">MeasurementType</td></tr><tr><td>str_format</td><td port="str_format">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>time_interval_type</td><td port="time_interval_type">TimeIntervalType</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":datetime_format:e -> "dsgrid.config.dimensions.AlignedTime":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.dimensions.LocalTimeAsStrings"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>LocalTimeAsStrings</b></td></tr><tr><td>format_type</td><td port="format_type">Literal[DatetimeFormat.LOCAL_AS_STRINGS]</td></tr><tr><td>data_str_format</td><td port="data_str_format">str</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.LocalTimeAsStrings&#xA;&#xA;Data has absolute timestamps formatted as strings with offsets from UTC.&#xA;\
They are aligned for each geography when adjusted for time zone but staggered&#xA;in an absolute time scale.&#xA;"];
   "dsgrid.config.dimensions.DateTimeDimensionModel":datetime_format:e -> "dsgrid.config.dimensions.LocalTimeAsStrings":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "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">str</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">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.IndexRangeModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>IndexRangeModel</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.IndexRangeModel&#xA;&#xA;Defines a continuous range of indices.&#xA;"];
   "dsgrid.config.dimensions.IndexTimeDimensionModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>IndexTimeDimensionModel</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">str</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">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>ranges</td><td port="ranges">list[IndexRangeModel]</td></tr><tr><td>frequency</td><td port="frequency">timedelta</td></tr><tr><td>starting_timestamps</td><td port="starting_timestamps">list[str]</td></tr><tr><td>str_format</td><td port="str_format">str</td></tr><tr><td>time_interval_type</td><td port="time_interval_type">TimeIntervalType</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.IndexTimeDimensionModel&#xA;&#xA;Defines a time dimension where timestamps are indices.&#xA;"];
   "dsgrid.config.dimensions.IndexTimeDimensionModel":ranges:e -> "dsgrid.config.dimensions.IndexRangeModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "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">str</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">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">str</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">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">float</td></tr><tr><td>to_fraction_tolerance</td><td port="to_fraction_tolerance">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, IndexTimeDimensionModel, 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.IndexTimeDimensionModel":_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">str</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">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><tr><td>time_based_data_adjustment</td><td port="time_based_data_adjustment">TimeBasedDataAdjustmentModel</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.dimension.time.TimeBasedDataAdjustmentModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>TimeBasedDataAdjustmentModel</b></td></tr><tr><td>leap_day_adjustment</td><td port="leap_day_adjustment">LeapDayAdjustmentType</td></tr><tr><td>daylight_saving_adjustment</td><td port="daylight_saving_adjustment">DaylightSavingAdjustmentModel</td></tr></table>>,
      tooltip="dsgrid.dimension.time.TimeBasedDataAdjustmentModel&#xA;&#xA;Defines how data needs to be adjusted with respect to time.&#xA;For \
leap day adjustment, up to one full day of timestamps and data are dropped.&#xA;For daylight savings, the dataframe is adjusted \
alongside the timestamps.&#xA;This is useful when the load profiles are modeled in standard time and&#xA;need to be converted to \
get clock time load profiles.&#xA;"];
   "dsgrid.config.project_config.InputDatasetModel":time_based_data_adjustment:e -> "dsgrid.dimension.time.TimeBasedDataAdjustmentModel":_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>base_missing</td><td port="base_missing">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];
   "dsgrid.dimension.time.DaylightSavingAdjustmentModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>DaylightSavingAdjustmentModel</b></td></tr><tr><td>spring_forward_hour</td><td port="spring_forward_hour">DaylightSavingSpringForwardType</td></tr><tr><td>fall_back_hour</td><td port="fall_back_hour">DaylightSavingFallBackType</td></tr></table>>,
      tooltip="dsgrid.dimension.time.DaylightSavingAdjustmentModel&#xA;&#xA;Defines how to drop and add data along with timestamps to convert standard \
time&#xA;load profiles to clock time&#xA;"];
   "dsgrid.dimension.time.TimeBasedDataAdjustmentModel":daylight_saving_adjustment:e -> "dsgrid.dimension.time.DaylightSavingAdjustmentModel":_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.

self is explicitly positional-only 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">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><tr><td>time_based_data_adjustment</td><td port="time_based_data_adjustment">TimeBasedDataAdjustmentModel</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.dimension.time.TimeBasedDataAdjustmentModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>TimeBasedDataAdjustmentModel</b></td></tr><tr><td>leap_day_adjustment</td><td port="leap_day_adjustment">LeapDayAdjustmentType</td></tr><tr><td>daylight_saving_adjustment</td><td port="daylight_saving_adjustment">DaylightSavingAdjustmentModel</td></tr></table>>,
      tooltip="dsgrid.dimension.time.TimeBasedDataAdjustmentModel&#xA;&#xA;Defines how data needs to be adjusted with respect to time.&#xA;For \
leap day adjustment, up to one full day of timestamps and data are dropped.&#xA;For daylight savings, the dataframe is adjusted \
alongside the timestamps.&#xA;This is useful when the load profiles are modeled in standard time and&#xA;need to be converted to \
get clock time load profiles.&#xA;"];
   "dsgrid.config.project_config.InputDatasetModel":time_based_data_adjustment:e -> "dsgrid.dimension.time.TimeBasedDataAdjustmentModel":_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>base_missing</td><td port="base_missing">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.dimension.time.DaylightSavingAdjustmentModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>DaylightSavingAdjustmentModel</b></td></tr><tr><td>spring_forward_hour</td><td port="spring_forward_hour">DaylightSavingSpringForwardType</td></tr><tr><td>fall_back_hour</td><td port="fall_back_hour">DaylightSavingFallBackType</td></tr></table>>,
      tooltip="dsgrid.dimension.time.DaylightSavingAdjustmentModel&#xA;&#xA;Defines how to drop and add data along with timestamps to convert standard \
time&#xA;load profiles to clock time&#xA;"];
   "dsgrid.dimension.time.TimeBasedDataAdjustmentModel":daylight_saving_adjustment:e -> "dsgrid.dimension.time.DaylightSavingAdjustmentModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
}
Fields:
Validators:
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=[], base_missing=[], subset=[], supplemental=[]), metric=RequiredDimensionRecordsByTypeModel(base=[], base_missing=[], subset=[], supplemental=[]), model_year=RequiredDimensionRecordsByTypeModel(base=[], base_missing=[], subset=[], supplemental=[]), scenario=RequiredDimensionRecordsByTypeModel(base=[], base_missing=[], subset=[], supplemental=[]), sector=RequiredDimensionRecordsByTypeModel(base=[], base_missing=[], subset=[], supplemental=[]), subsector=RequiredDimensionRecordsByTypeModel(base=[], base_missing=[], subset=[], supplemental=[]), weather_year=RequiredDimensionRecordsByTypeModel(base=[], base_missing=[], 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 time_based_data_adjustment: TimeBasedDataAdjustmentModel = TimeBasedDataAdjustmentModel(leap_day_adjustment=<LeapDayAdjustmentType.NONE: 'none'>, daylight_saving_adjustment=DaylightSavingAdjustmentModel(spring_forward_hour=<DaylightSavingSpringForwardType.NONE: 'none'>, fall_back_hour=<DaylightSavingFallBackType.NONE: 'none'>))

Defines how the rest of the dataframe is adjusted with respect to time. E.g., when drop associated data when dropping a leap day timestamp.

Validated by:
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

validator check_data_adjustment  »  time_based_data_adjustment[source]

Check daylight saving adjustment

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.

self is explicitly positional-only 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.AlignedTime"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>AlignedTime</b></td></tr><tr><td>format_type</td><td port="format_type">Literal[DatetimeFormat.ALIGNED]</td></tr><tr><td>timezone</td><td port="timezone">TimeZone</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.AlignedTime&#xA;&#xA;Data has absolute timestamps that are aligned with the same start and end&#xA;for \
each geography.&#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">str</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">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">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">str</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">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>datetime_format</td><td port="datetime_format">Union[AlignedTime, LocalTimeAsStrings]</td></tr><tr><td>measurement_type</td><td port="measurement_type">MeasurementType</td></tr><tr><td>str_format</td><td port="str_format">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>time_interval_type</td><td port="time_interval_type">TimeIntervalType</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":datetime_format:e -> "dsgrid.config.dimensions.AlignedTime":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.dimensions.LocalTimeAsStrings"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>LocalTimeAsStrings</b></td></tr><tr><td>format_type</td><td port="format_type">Literal[DatetimeFormat.LOCAL_AS_STRINGS]</td></tr><tr><td>data_str_format</td><td port="data_str_format">str</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.LocalTimeAsStrings&#xA;&#xA;Data has absolute timestamps formatted as strings with offsets from UTC.&#xA;\
They are aligned for each geography when adjusted for time zone but staggered&#xA;in an absolute time scale.&#xA;"];
   "dsgrid.config.dimensions.DateTimeDimensionModel":datetime_format:e -> "dsgrid.config.dimensions.LocalTimeAsStrings":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "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">str</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">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.IndexRangeModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>IndexRangeModel</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.IndexRangeModel&#xA;&#xA;Defines a continuous range of indices.&#xA;"];
   "dsgrid.config.dimensions.IndexTimeDimensionModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>IndexTimeDimensionModel</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">str</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">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>ranges</td><td port="ranges">list[IndexRangeModel]</td></tr><tr><td>frequency</td><td port="frequency">timedelta</td></tr><tr><td>starting_timestamps</td><td port="starting_timestamps">list[str]</td></tr><tr><td>str_format</td><td port="str_format">str</td></tr><tr><td>time_interval_type</td><td port="time_interval_type">TimeIntervalType</td></tr></table>>,
      tooltip="dsgrid.config.dimensions.IndexTimeDimensionModel&#xA;&#xA;Defines a time dimension where timestamps are indices.&#xA;"];
   "dsgrid.config.dimensions.IndexTimeDimensionModel":ranges:e -> "dsgrid.config.dimensions.IndexRangeModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "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">str</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">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">str</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">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">float</td></tr><tr><td>to_fraction_tolerance</td><td port="to_fraction_tolerance">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, IndexTimeDimensionModel, 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.IndexTimeDimensionModel":_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">str</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">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: Annotated[list[DimensionModel | DateTimeDimensionModel | AnnualTimeDimensionModel | RepresentativePeriodTimeDimensionModel | IndexTimeDimensionModel | NoOpTimeDimensionModel], BeforeValidator(func=handle_dimension_union, json_schema_input_type=PydanticUndefined)] = []

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 0x7fdfb5e6f380>

  • json_schema_input_type = PydanticUndefined

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.

self is explicitly positional-only 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.

self is explicitly positional-only 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>base_missing</td><td port="base_missing">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=[], base_missing=[], subset=[], supplemental=[]), metric=RequiredDimensionRecordsByTypeModel(base=[], base_missing=[], subset=[], supplemental=[]), model_year=RequiredDimensionRecordsByTypeModel(base=[], base_missing=[], subset=[], supplemental=[]), scenario=RequiredDimensionRecordsByTypeModel(base=[], base_missing=[], subset=[], supplemental=[]), sector=RequiredDimensionRecordsByTypeModel(base=[], base_missing=[], subset=[], supplemental=[]), subsector=RequiredDimensionRecordsByTypeModel(base=[], base_missing=[], subset=[], supplemental=[]), weather_year=RequiredDimensionRecordsByTypeModel(base=[], base_missing=[], 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.

self is explicitly positional-only 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">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.

self is explicitly positional-only 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>base_missing</td><td port="base_missing">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=[], base_missing=[], subset=[], supplemental=[])
field metric: RequiredDimensionRecordsByTypeModel = RequiredDimensionRecordsByTypeModel(base=[], base_missing=[], subset=[], supplemental=[])
field model_year: RequiredDimensionRecordsByTypeModel = RequiredDimensionRecordsByTypeModel(base=[], base_missing=[], subset=[], supplemental=[])
field scenario: RequiredDimensionRecordsByTypeModel = RequiredDimensionRecordsByTypeModel(base=[], base_missing=[], subset=[], supplemental=[])
field sector: RequiredDimensionRecordsByTypeModel = RequiredDimensionRecordsByTypeModel(base=[], base_missing=[], subset=[], supplemental=[])
field subsector: RequiredDimensionRecordsByTypeModel = RequiredDimensionRecordsByTypeModel(base=[], base_missing=[], subset=[], supplemental=[])
field weather_year: RequiredDimensionRecordsByTypeModel = RequiredDimensionRecordsByTypeModel(base=[], base_missing=[], 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.

self is explicitly positional-only 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.

self is explicitly positional-only 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>base_missing</td><td port="base_missing">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:
Validators:
field base: list[str] = []
Validated by:
field base_missing: list[str] = []
Validated by:
field subset: list[RequiredSubsetDimensionRecordsModel] = []
Validated by:
field supplemental: list[RequiredSupplementalDimensionRecordsModel] = []
Validated by:
validator check_base  »  all fields[source]
defines_dimension_requirement() bool[source]

Returns True if the model defines a dimension requirement.

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

Defines one or more subset dimension selectors for a dimension type.

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.

self is explicitly positional-only 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;"];
   "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.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];
}
Fields:
Validators:
field create_supplemental_dimension: bool = True

Auto-generate supplemental dimensions in order to allow aggregrations on the subsets.

Validated by:
field description: str [Required]
Validated by:
field dimension_query_name: str | None = None

Auto-generated query name for SQL queries.

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

Type of the dimension

Validated by:
field display_name: str [Required]
Validated by:
field filename: str | None = None (alias 'file')

Filename containing dimension records. Only populated for initial registration. Each selector’s records are stored as JSON objects in the dsgrid registry.

Validated by:
field name: str [Required]
Validated by:
field record_ids: set[str] = {}
Validated by:
field selector_references: list[DimensionReferenceModel] = []

References to the subset dimensions generated by dsgrid during registration.

Validated by:
field selectors: list[SubsetDimensionSelectorModel] [Required]

Dimension selectors

Validated by:
validator check_display_name  »  display_name[source]
validator check_query_name  »  dimension_query_name[source]
validator check_selectors  »  selectors[source]

Check that the selectors are defined consistently.

validator load_records  »  all fields[source]

Load the records for each subset dimension selector.

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

Defines a list of subset dimensions.

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.

self is explicitly positional-only 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;"];
   "dsgrid.config.project_config.SubsetDimensionGroupListModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>SubsetDimensionGroupListModel</b></td></tr><tr><td>subset_dimensions</td><td port="subset_dimensions">List[SubsetDimensionGroupModel]</td></tr></table>>,
      tooltip="dsgrid.config.project_config.SubsetDimensionGroupListModel&#xA;&#xA;Defines a list of subset dimensions.&#xA;"];
   "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.SubsetDimensionGroupListModel":subset_dimensions:e -> "dsgrid.config.project_config.SubsetDimensionGroupModel":_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];
}
Fields:
field subset_dimensions: Annotated[List[SubsetDimensionGroupModel], Len(min_length=1, max_length=None)] [Required]

List of subset dimensions to be registered

Constraints:
  • min_length = 1

To add new supplemental dimensions

pydantic model dsgrid.config.supplemental_dimension.SupplementalDimensionsListModel[source]

Defines a list of supplemental dimensions.

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.

self is explicitly positional-only 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.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">float</td></tr><tr><td>to_fraction_tolerance</td><td port="to_fraction_tolerance">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.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">str</td></tr><tr><td>class_name</td><td port="class_name">str</td></tr><tr><td>cls</td><td port="cls">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.supplemental_dimension.SupplementalDimensionModel":mapping:e -> "dsgrid.config.mapping_tables.MappingTableByNameModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
   "dsgrid.config.supplemental_dimension.SupplementalDimensionsListModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>SupplementalDimensionsListModel</b></td></tr><tr><td>supplemental_dimensions</td><td port="supplemental_dimensions">List[SupplementalDimensionModel]</td></tr></table>>,
      tooltip="dsgrid.config.supplemental_dimension.SupplementalDimensionsListModel&#xA;&#xA;Defines a list of supplemental dimensions.&#xA;"];
   "dsgrid.config.supplemental_dimension.SupplementalDimensionsListModel":supplemental_dimensions:e -> "dsgrid.config.supplemental_dimension.SupplementalDimensionModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
}
Fields:
field supplemental_dimensions: Annotated[List[SupplementalDimensionModel], Len(min_length=1, max_length=None)] [Required]

List of supplemental dimensions and mappings to be registered

Constraints:
  • min_length = 1

To add new dataset requirements

pydantic model dsgrid.config.input_dataset_requirements.InputDatasetListModel[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.

self is explicitly positional-only 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">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.input_dataset_requirements.InputDatasetListModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>InputDatasetListModel</b></td></tr><tr><td>datasets</td><td port="datasets">List[InputDatasetModel]</td></tr></table>>,
      tooltip="dsgrid.config.input_dataset_requirements.InputDatasetListModel&#xA;&#xA;Base data model for all dsgrid data models&#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><tr><td>time_based_data_adjustment</td><td port="time_based_data_adjustment">TimeBasedDataAdjustmentModel</td></tr></table>>,
      tooltip="dsgrid.config.project_config.InputDatasetModel&#xA;&#xA;Defines an input dataset for the project config.&#xA;"];
   "dsgrid.config.input_dataset_requirements.InputDatasetListModel":datasets:e -> "dsgrid.config.project_config.InputDatasetModel":_root:w   [arrowhead=crownone,
      arrowtail=nonenone];
   "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.dimension.time.TimeBasedDataAdjustmentModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>TimeBasedDataAdjustmentModel</b></td></tr><tr><td>leap_day_adjustment</td><td port="leap_day_adjustment">LeapDayAdjustmentType</td></tr><tr><td>daylight_saving_adjustment</td><td port="daylight_saving_adjustment">DaylightSavingAdjustmentModel</td></tr></table>>,
      tooltip="dsgrid.dimension.time.TimeBasedDataAdjustmentModel&#xA;&#xA;Defines how data needs to be adjusted with respect to time.&#xA;For \
leap day adjustment, up to one full day of timestamps and data are dropped.&#xA;For daylight savings, the dataframe is adjusted \
alongside the timestamps.&#xA;This is useful when the load profiles are modeled in standard time and&#xA;need to be converted to \
get clock time load profiles.&#xA;"];
   "dsgrid.config.project_config.InputDatasetModel":time_based_data_adjustment:e -> "dsgrid.dimension.time.TimeBasedDataAdjustmentModel":_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>base_missing</td><td port="base_missing">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.dimension.time.DaylightSavingAdjustmentModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>DaylightSavingAdjustmentModel</b></td></tr><tr><td>spring_forward_hour</td><td port="spring_forward_hour">DaylightSavingSpringForwardType</td></tr><tr><td>fall_back_hour</td><td port="fall_back_hour">DaylightSavingFallBackType</td></tr></table>>,
      tooltip="dsgrid.dimension.time.DaylightSavingAdjustmentModel&#xA;&#xA;Defines how to drop and add data along with timestamps to convert standard \
time&#xA;load profiles to clock time&#xA;"];
   "dsgrid.dimension.time.TimeBasedDataAdjustmentModel":daylight_saving_adjustment:e -> "dsgrid.dimension.time.DaylightSavingAdjustmentModel":_root:w   [arrowhead=noneteetee,
      arrowtail=nonenone];
}
Fields:
field datasets: Annotated[List[InputDatasetModel], Len(min_length=1, max_length=None)] [Required]

List of input datasets for the project.

Constraints:
  • min_length = 1

To replace dataset dimension requirements

pydantic model dsgrid.config.input_dataset_requirements.InputDatasetDimensionRequirementsListModel[source]

Defines a list of dataset dimension requirements.

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.

self is explicitly positional-only 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.input_dataset_requirements.InputDatasetDimensionRequirementsListModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>InputDatasetDimensionRequirementsListModel</b></td></tr><tr><td>dataset_dimension_requirements</td><td port="dataset_dimension_requirements">List[InputDatasetDimensionRequirementsModel]</td></tr></table>>,
      tooltip="dsgrid.config.input_dataset_requirements.InputDatasetDimensionRequirementsListModel&#xA;&#xA;Defines a list of dataset dimension \
requirements.&#xA;"];
   "dsgrid.config.input_dataset_requirements.InputDatasetDimensionRequirementsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>InputDatasetDimensionRequirementsModel</b></td></tr><tr><td>dataset_id</td><td port="dataset_id">str</td></tr><tr><td>required_dimensions</td><td port="required_dimensions">RequiredDimensionsModel</td></tr></table>>,
      tooltip="dsgrid.config.input_dataset_requirements.InputDatasetDimensionRequirementsModel&#xA;&#xA;Defines dataset dimension requirements.&#\
xA;"];
   "dsgrid.config.input_dataset_requirements.InputDatasetDimensionRequirementsListModel":dataset_dimension_requirements:e -> "dsgrid.config.input_dataset_requirements.InputDatasetDimensionRequirementsModel":_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.input_dataset_requirements.InputDatasetDimensionRequirementsModel":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>base_missing</td><td port="base_missing">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_dimension_requirements: Annotated[List[InputDatasetDimensionRequirementsModel], Len(min_length=1, max_length=None)] [Required]

List of dataset dimension requirements

Constraints:
  • min_length = 1

pydantic model dsgrid.config.input_dataset_requirements.InputDatasetDimensionRequirementsModel[source]

Defines dataset dimension requirements.

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.

self is explicitly positional-only 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.input_dataset_requirements.InputDatasetDimensionRequirementsModel"   [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>InputDatasetDimensionRequirementsModel</b></td></tr><tr><td>dataset_id</td><td port="dataset_id">str</td></tr><tr><td>required_dimensions</td><td port="required_dimensions">RequiredDimensionsModel</td></tr></table>>,
      tooltip="dsgrid.config.input_dataset_requirements.InputDatasetDimensionRequirementsModel&#xA;&#xA;Defines dataset dimension requirements.&#\
xA;"];
   "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.input_dataset_requirements.InputDatasetDimensionRequirementsModel":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>base_missing</td><td port="base_missing">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]
field required_dimensions: RequiredDimensionsModel [Required]

Defines required record IDs that must exist for each dimension.