Skip to content

Commit fe65cc2

Browse files
committed
Update with latest metamodel and pydantic gen changes
1 parent 0adf64b commit fe65cc2

File tree

2 files changed

+41
-67
lines changed

2 files changed

+41
-67
lines changed

tests/input/temperature_dataset.yaml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,22 @@
11
id: https://example.org/arrays
2-
name: arrays-example
2+
name: arrays-temperature-example
3+
title: Array Temperature Example
4+
description: |-
5+
Example LinkML schema to demonstrate a 3D DataArray of temperature values with labeled axes
6+
license: MIT
7+
38
prefixes:
49
linkml: https://w3id.org/linkml/
510
wgs84: http://www.w3.org/2003/01/geo/wgs84_pos#
611
example: https://example.org/
12+
713
default_prefix: example
14+
815
imports:
916
- linkml:types
1017

1118
classes:
19+
1220
TemperatureDataset:
1321
tree_root: true
1422
implements:
@@ -58,6 +66,7 @@ classes:
5866
required: true
5967
unit:
6068
ucum_code: K
69+
annotations:
6170
dimensions: 3
6271

6372
LatitudeSeries:
@@ -73,6 +82,7 @@ classes:
7382
required: true
7483
unit:
7584
ucum_code: deg
85+
annotations:
7686
dimensions: 1
7787

7888
LongitudeSeries:
@@ -88,6 +98,7 @@ classes:
8898
required: true
8999
unit:
90100
ucum_code: deg
101+
annotations:
91102
dimensions: 1
92103

93104
DaySeries:
@@ -103,4 +114,5 @@ classes:
103114
required: true
104115
unit:
105116
ucum_code: d
117+
annotations:
106118
dimensions: 1

tests/test_dumpers/array_classes.py

Lines changed: 28 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -28,92 +28,54 @@ class ConfiguredBaseModel(WeakRefShimBaseModel,
2828
pass
2929

3030

31-
class TimestampSeries(ConfiguredBaseModel):
32-
33-
None
34-
35-
36-
37-
class IrregularlySampledTimestampSeries(TimestampSeries):
38-
39-
name: str = Field(...)
40-
values: Union[np.ndarray, NDArrayProxy] = Field(...)
41-
42-
43-
44-
class RegularlySampledTimestampSeries(TimestampSeries):
45-
46-
name: str = Field(...)
47-
sampling_rate: float = Field(...)
48-
starting_time: float = Field(...)
49-
length: Optional[int] = Field(None)
50-
values: Optional[Union[np.ndarray, NDArrayProxy]] = Field(None)
51-
52-
53-
54-
class Electrode(ConfiguredBaseModel):
31+
class TemperatureDataset(ConfiguredBaseModel):
5532

5633
name: str = Field(...)
57-
impedance: Optional[float] = Field(None)
34+
latitude_in_deg: LatitudeSeries = Field(...)
35+
longitude_in_deg: LongitudeSeries = Field(...)
36+
time_in_d: DaySeries = Field(...)
37+
temperatures_in_K: TemperatureMatrix = Field(...)
5838

5939

6040

61-
class ElectrodeSeries(ConfiguredBaseModel):
62-
63-
values: Union[np.ndarray, NDArrayProxy] = Field(...)
64-
65-
66-
67-
class ElectricalDataMatrix(ConfiguredBaseModel):
41+
class TemperatureMatrix(ConfiguredBaseModel):
6842
"""
69-
A 2D array of electrode voltage measurements over time. See ElectricalDataArray for its usage with axes labels.
43+
A 3D array of temperatures
7044
"""
71-
values: Union[np.ndarray, NDArrayProxy] = Field(...)
72-
73-
74-
75-
class ElectricalDataArray(ConfiguredBaseModel):
76-
77-
time: TimestampSeries = Field(...)
78-
electrode: ElectrodeSeries = Field(...)
79-
values: ElectricalDataMatrix = Field(...)
45+
values: np.ndarray = Field(None)
8046

8147

8248

83-
class IrregularlySampledElectricalDataArray(ElectricalDataArray):
84-
85-
time: IrregularlySampledTimestampSeries = Field(...)
86-
electrode: ElectrodeSeries = Field(...)
87-
values: ElectricalDataMatrix = Field(...)
49+
class LatitudeSeries(ConfiguredBaseModel):
50+
"""
51+
A series whose values represent latitude
52+
"""
53+
values: np.ndarray = Field(None)
8854

8955

9056

91-
class RegularlySampledElectricalDataArray(ElectricalDataArray):
92-
93-
time: Optional[str] = Field(None)
94-
electrode: ElectrodeSeries = Field(...)
95-
values: ElectricalDataMatrix = Field(...)
57+
class LongitudeSeries(ConfiguredBaseModel):
58+
"""
59+
A series whose values represent longitude
60+
"""
61+
values: np.ndarray = Field(None)
9662

9763

9864

99-
class File(ConfiguredBaseModel):
100-
101-
electrical_data_arrays: Optional[List[ElectricalDataArray]] = Field(default_factory=list)
102-
electrodes: Optional[List[Electrode]] = Field(default_factory=list)
65+
class DaySeries(ConfiguredBaseModel):
66+
"""
67+
A series whose values represent the days since the start of the measurement period
68+
"""
69+
values: np.ndarray = Field(None)
10370

10471

10572

10673

10774
# Update forward refs
10875
# see https://pydantic-docs.helpmanual.io/usage/postponed_annotations/
109-
TimestampSeries.update_forward_refs()
110-
IrregularlySampledTimestampSeries.update_forward_refs()
111-
RegularlySampledTimestampSeries.update_forward_refs()
112-
Electrode.update_forward_refs()
113-
ElectrodeSeries.update_forward_refs()
114-
ElectricalDataMatrix.update_forward_refs()
115-
ElectricalDataArray.update_forward_refs()
116-
IrregularlySampledElectricalDataArray.update_forward_refs()
117-
RegularlySampledElectricalDataArray.update_forward_refs()
118-
File.update_forward_refs()
76+
TemperatureDataset.update_forward_refs()
77+
TemperatureMatrix.update_forward_refs()
78+
LatitudeSeries.update_forward_refs()
79+
LongitudeSeries.update_forward_refs()
80+
DaySeries.update_forward_refs()
11981

0 commit comments

Comments
 (0)