Skip to content

Commit 5816f83

Browse files
authored
V1 schema review (#553)
* Update from list to discrete values for coordinate metadata * Add docs to help users understand difference * Update docs and fix case sensitivity. * Linting * Add CoordianteMetadata to docs
1 parent ecb69d6 commit 5816f83

File tree

2 files changed

+21
-8
lines changed

2 files changed

+21
-8
lines changed

docs/data_models/version_1.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@
4545
.. autopydantic_model:: mdio.schemas.v1.variable.Coordinate
4646
:inherited-members: BaseModel
4747
48+
.. autopydantic_model:: mdio.schemas.v1.variable.CoordinateMetadata
49+
:inherited-members: BaseModel
50+
4851
.. automodule:: mdio.schemas.metadata
4952
:members: UserAttributes
5053

src/mdio/schemas/v1/variable.py

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,23 @@
2323
from mdio.schemas.v1.stats import StatisticsMetadata
2424
from mdio.schemas.v1.units import AllUnits
2525

26+
CoordinateMetadata = create_model(
27+
"CoordinateMetadata",
28+
**model_fields(AllUnits),
29+
**model_fields(UserAttributes),
30+
__base__=CamelCaseStrictModel,
31+
__doc__="Reduced Metadata, perfect for simple Coordinates.",
32+
)
33+
2634

2735
class Coordinate(NamedArray):
28-
"""An MDIO coordinate array with metadata."""
36+
"""A simple MDIO Coordinate array with metadata.
2937
30-
data_type: ScalarType = Field(..., description="Data type of coordinate.")
31-
metadata: list[AllUnits | UserAttributes] | None = Field(
32-
default=None, description="Coordinate metadata."
33-
)
38+
For large or complex Coordinates, define a Variable instead.
39+
"""
40+
41+
data_type: ScalarType = Field(..., description="Data type of Coordinate.")
42+
metadata: CoordinateMetadata | None = Field(default=None, description="Coordinate Metadata.")
3443

3544

3645
VariableMetadata = create_model(
@@ -40,14 +49,15 @@ class Coordinate(NamedArray):
4049
**model_fields(StatisticsMetadata),
4150
**model_fields(UserAttributes),
4251
__base__=CamelCaseStrictModel,
52+
__doc__="Complete Metadata for Variables and complex or large Coordinates.",
4353
)
4454

4555

4656
class Variable(NamedArray):
47-
"""An MDIO variable that has coordinates and metadata."""
57+
"""An MDIO Variable that has coordinates and metadata."""
4858

4959
coordinates: list[Coordinate] | list[str] | None = Field(
5060
default=None,
51-
description="Coordinates of the MDIO variable dimensions.",
61+
description="Coordinates of the MDIO Variable dimensions.",
5262
)
53-
metadata: VariableMetadata | None = Field(default=None, description="Variable metadata.")
63+
metadata: VariableMetadata | None = Field(default=None, description="Variable Metadata.")

0 commit comments

Comments
 (0)