Dimension Config¶
- pydantic model dsgrid.config.dimensions.DimensionModel[source]¶
Defines a non-time dimension
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.DimensionModel" [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>DimensionModel</b></td></tr><tr><td>id</td><td port="id">int | None</td></tr><tr><td>version</td><td port="version">str | None</td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">str | None</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 | None</td></tr><tr><td>filename</td><td port="filename">str | None</td></tr><tr><td>file_hash</td><td port="file_hash">str | None</td></tr><tr><td>records</td><td port="records">list</td></tr></table>>,
tooltip="dsgrid.config.dimensions.DimensionModel

Defines a non-time dimension
"];
}](../../_images/graphviz-e924e9416975f0a45ddc8e7e1258bfc562bfad97.png)
- Fields:
- Validators:
- field file_hash: str | None = None¶
Hash of the contents of the file
- Validated by:
- field filename: str | None = None (alias 'file')¶
Filename containing dimension records. Only assigned for user input and output purposes. The registry database stores records in the dimension JSON document.
- Validated by:
- field records: list = []¶
Dimension records that can either be loaded from filename at runtime or provided directly. Example of records provided directly: records: [
{id: ‘scenario_1’, name: ‘Scenario 1’}, {id: ‘scenario_2’, name: ‘Scenario 2’},
],
- Validated by:
DateTime Dimension Config¶
- pydantic model dsgrid.config.dimensions.DateTimeDimensionModel[source]¶
Defines a time dimension where timestamps translate to datetime objects.
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

Data has absolute timestamps that are aligned with the same start and end
for \
each geography.
"];
"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>id</td><td port="id">int | None</td></tr><tr><td>version</td><td port="version">str | None</td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">str | None</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 | None</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

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

Data has absolute timestamps formatted as strings with offsets from UTC.
\
They are aligned for each geography when adjusted for time zone but staggered
in an absolute time scale.
"];
"dsgrid.config.dimensions.DateTimeDimensionModel":datetime_format:e -> "dsgrid.config.dimensions.LocalTimeAsStrings":_root:w [arrowhead=noneteetee,
arrowtail=nonenone];
"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

Defines a continuous range of time.
"];
"dsgrid.config.dimensions.DateTimeDimensionModel":ranges:e -> "dsgrid.config.dimensions.TimeRangeModel":_root:w [arrowhead=crownone,
arrowtail=nonenone];
}](../../_images/graphviz-36059f500500344eae010fec5924b1a4df4c2d6f.png)
- Fields:
- Validators:
handle_legacy_fields»all fields
- field datetime_format: AlignedTime | LocalTimeAsStrings [Required]¶
Format of the datetime used to define the data format, alignment between geography, and time zone information.
- Validated by:
- field frequency: timedelta [Required]¶
Resolution of the timestamps
- Validated by:
- field measurement_type: MeasurementType = MeasurementType.TOTAL¶
- The type of measurement represented by a value associated with a timestamp:
mean, min, max, measured, total
- Validated by:
- field ranges: list[TimeRangeModel] [Required]¶
Defines the continuous ranges of time in the data, inclusive of start and end time.
- Validated by:
- field str_format: str = '%Y-%m-%d %H:%M:%s'¶
Timestamp string format (for parsing the time ranges). The string format is used to parse the timestamps provided in the time ranges.Cheatsheet reference: https://strftime.org/.
- Validated by:
- field time_interval_type: TimeIntervalType [Required]¶
The range of time that the value associated with a timestamp represents, e.g., period-beginning
- Validated by:
Annual Time Dimension Config¶
- pydantic model dsgrid.config.dimensions.AnnualTimeDimensionModel[source]¶
Defines an annual time dimension where timestamps are years.
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.AnnualTimeDimensionModel" [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>AnnualTimeDimensionModel</b></td></tr><tr><td>id</td><td port="id">int | None</td></tr><tr><td>version</td><td port="version">str | None</td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">str | None</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 | None</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

Defines an annual time dimension where timestamps are years.
"];
"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

Defines a continuous range of time.
"];
"dsgrid.config.dimensions.AnnualTimeDimensionModel":ranges:e -> "dsgrid.config.dimensions.TimeRangeModel":_root:w [arrowhead=crownone,
arrowtail=nonenone];
}](../../_images/graphviz-33b24287723a007f6426fb9015257648a5d822fa.png)
- Fields:
- Validators:
- field include_leap_day: bool = False¶
Whether annual time includes leap day.
- field measurement_type: MeasurementType = MeasurementType.TOTAL¶
- The type of measurement represented by a value associated with a timestamp:
e.g., mean, total
- Validated by:
- field ranges: list[TimeRangeModel] = []¶
Defines the contiguous ranges of time in the data, inclusive of start and end time.
- Validated by:
- field str_format: str = '%Y'¶
Timestamp string format. The string format is used to parse the timestamps provided in the time ranges. Cheatsheet reference: https://strftime.org/.
- field time_type: TimeDimensionType = TimeDimensionType.ANNUAL¶
- validator check_measurement_type » measurement_type[source]¶
Representative Period Time Dimension Config¶
- pydantic model dsgrid.config.dimensions.RepresentativePeriodTimeDimensionModel[source]¶
Defines a representative time dimension.
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.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

Defines a continuous range of time.
"];
"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>id</td><td port="id">int | None</td></tr><tr><td>version</td><td port="version">str | None</td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">str | None</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 | None</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

Defines a representative time dimension.
"];
"dsgrid.config.dimensions.RepresentativePeriodTimeDimensionModel":ranges:e -> "dsgrid.config.dimensions.MonthRangeModel":_root:w [arrowhead=crownone,
arrowtail=nonenone];
}](../../_images/graphviz-3b3c53f993a95a6b914c7a61af8b5b9dfba8be16.png)
- Fields:
- Validators:
- field format: RepresentativePeriodFormat [Required]¶
Format of the timestamps in the load data
- field measurement_type: MeasurementType = MeasurementType.TOTAL¶
- The type of measurement represented by a value associated with a timestamp:
e.g., mean, total
- field ranges: list[MonthRangeModel] [Required]¶
Defines the continuous ranges of time in the data, inclusive of start and end time.
- field time_interval_type: TimeIntervalType [Required]¶
The range of time that the value associated with a timestamp represents
- field time_type: TimeDimensionType = TimeDimensionType.REPRESENTATIVE_PERIOD¶
No-op Time Dimension Config¶
- pydantic model dsgrid.config.dimensions.NoOpTimeDimensionModel[source]¶
Defines a NoOp time dimension.
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.NoOpTimeDimensionModel" [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>NoOpTimeDimensionModel</b></td></tr><tr><td>id</td><td port="id">int | None</td></tr><tr><td>version</td><td port="version">str | None</td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">str | None</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 | None</td></tr><tr><td>time_type</td><td port="time_type">TimeDimensionType</td></tr></table>>,
tooltip="dsgrid.config.dimensions.NoOpTimeDimensionModel

Defines a NoOp time dimension.
"];
}](../../_images/graphviz-96502f88e3fe42893796f0b3113234dc691f3542.png)
- Fields:
- Validators:
- field time_type: TimeDimensionType = TimeDimensionType.NOOP¶
- pydantic model dsgrid.config.dimensions.TimeRangeModel[source]¶
Defines a continuous range of time.
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.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

Defines a continuous range of time.
"];
}](../../_images/graphviz-922ee3254b8e0b9ca9d376b3e3ba9545919da086.png)
- Fields:
- field end: str [Required]¶
Last timestamp in the data (inclusive)
- field start: str [Required]¶
First timestamp in the data
- pydantic model dsgrid.config.dimensions.MonthRangeModel[source]¶
Defines a continuous range of time.
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.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

Defines a continuous range of time.
"];
}](../../_images/graphviz-f1c409cc9696e5b7ef891c624f30ce1ec6240d3c.png)
- Fields:
- field end: int [Required]¶
Last month in the data (inclusive)
- field start: int [Required]¶
First month in the data (January is 1, December is 12)
Dimension Reference¶
- pydantic model dsgrid.config.dimensions.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

Reference to a dimension stored in the registry
"];
}](../../_images/graphviz-cb1681db257735fdea0f225f8b4c8a7b61e377b0.png)
- Fields:
- field dimension_id: str [Required]¶
Unique ID of the dimension in the registry. The dimension ID is generated by dsgrid when a dimension is registered. Only alphanumerics and dashes are supported.
- field dimension_type: DimensionType [Required] (alias 'type')¶
Type of the dimension
- field version: str [Required]¶
Version of the dimension. The version string must be in semver format (e.g., ‘1.0.0’) and it must be a valid/existing version in the registry.
Dimensions Config¶
- pydantic model dsgrid.config.dimensions_config.DimensionsConfigModel[source]¶
Represents multiple dimension models.
Used when registering multiple dimensions in one command.
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

Data has absolute timestamps that are aligned with the same start and end
for \
each geography.
"];
"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>id</td><td port="id">int | None</td></tr><tr><td>version</td><td port="version">str | None</td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">str | None</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 | None</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

Defines an annual time dimension where timestamps are years.
"];
"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

Defines a continuous range of time.
"];
"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>id</td><td port="id">int | None</td></tr><tr><td>version</td><td port="version">str | None</td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">str | None</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 | None</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

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

Data has absolute timestamps formatted as strings with offsets from UTC.
\
They are aligned for each geography when adjusted for time zone but staggered
in an absolute time scale.
"];
"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>id</td><td port="id">int | None</td></tr><tr><td>version</td><td port="version">str | None</td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">str | None</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 | None</td></tr><tr><td>filename</td><td port="filename">str | None</td></tr><tr><td>file_hash</td><td port="file_hash">str | None</td></tr><tr><td>records</td><td port="records">list</td></tr></table>>,
tooltip="dsgrid.config.dimensions.DimensionModel

Defines a non-time dimension
"];
"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

Defines a continuous range of indices.
"];
"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>id</td><td port="id">int | None</td></tr><tr><td>version</td><td port="version">str | None</td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">str | None</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 | None</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

Defines a time dimension where timestamps are indices.
"];
"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

Defines a continuous range of time.
"];
"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>id</td><td port="id">int | None</td></tr><tr><td>version</td><td port="version">str | None</td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">str | None</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 | None</td></tr><tr><td>time_type</td><td port="time_type">TimeDimensionType</td></tr></table>>,
tooltip="dsgrid.config.dimensions.NoOpTimeDimensionModel

Defines a NoOp time dimension.
"];
"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>id</td><td port="id">int | None</td></tr><tr><td>version</td><td port="version">str | None</td></tr><tr><td>name</td><td port="name">str</td></tr><tr><td>dimension_type</td><td port="dimension_type">DimensionType</td></tr><tr><td>dimension_id</td><td port="dimension_id">str | None</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 | None</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

Defines a representative time dimension.
"];
"dsgrid.config.dimensions.RepresentativePeriodTimeDimensionModel":ranges:e -> "dsgrid.config.dimensions.MonthRangeModel":_root:w [arrowhead=crownone,
arrowtail=nonenone];
"dsgrid.config.dimensions_config.DimensionsConfigModel" [label=<<table border="0" cellborder="1" cellspacing="0"><tr><td port="_root" colspan="2"><b>DimensionsConfigModel</b></td></tr><tr><td>dimensions</td><td port="dimensions">list[Union[DimensionModel, DateTimeDimensionModel, AnnualTimeDimensionModel, RepresentativePeriodTimeDimensionModel, IndexTimeDimensionModel, NoOpTimeDimensionModel]]</td></tr></table>>,
tooltip="dsgrid.config.dimensions_config.DimensionsConfigModel

Represents multiple dimension models.

Used when registering \
multiple dimensions in one command.
"];
"dsgrid.config.dimensions_config.DimensionsConfigModel":dimensions:e -> "dsgrid.config.dimensions.AnnualTimeDimensionModel":_root:w [arrowhead=crownone,
arrowtail=nonenone];
"dsgrid.config.dimensions_config.DimensionsConfigModel":dimensions:e -> "dsgrid.config.dimensions.DateTimeDimensionModel":_root:w [arrowhead=crownone,
arrowtail=nonenone];
"dsgrid.config.dimensions_config.DimensionsConfigModel":dimensions:e -> "dsgrid.config.dimensions.DimensionModel":_root:w [arrowhead=crownone,
arrowtail=nonenone];
"dsgrid.config.dimensions_config.DimensionsConfigModel":dimensions:e -> "dsgrid.config.dimensions.IndexTimeDimensionModel":_root:w [arrowhead=crownone,
arrowtail=nonenone];
"dsgrid.config.dimensions_config.DimensionsConfigModel":dimensions:e -> "dsgrid.config.dimensions.NoOpTimeDimensionModel":_root:w [arrowhead=crownone,
arrowtail=nonenone];
"dsgrid.config.dimensions_config.DimensionsConfigModel":dimensions:e -> "dsgrid.config.dimensions.RepresentativePeriodTimeDimensionModel":_root:w [arrowhead=crownone,
arrowtail=nonenone];
}](../../_images/graphviz-f70c3280f6fb74c36a97506d59a4b33da5f60fb6.png)
- Fields:
- Validators:
- field dimensions: Annotated[list[DimensionModel | DateTimeDimensionModel | AnnualTimeDimensionModel | RepresentativePeriodTimeDimensionModel | IndexTimeDimensionModel | NoOpTimeDimensionModel], BeforeValidator(func=handle_dimension_union, json_schema_input_type=PydanticUndefined)] [Required]¶
Dimensions for submission to the dimension registry
- Constraints:
func = <function handle_dimension_union at 0x7f79613d8ae0>
json_schema_input_type = PydanticUndefined
- Validated by:
- validator check_files » dimensions[source]¶
Validate dimension files are unique across all dimensions
- validator check_names » dimensions[source]¶
Validate dimension names are unique across all dimensions.