cognite-toolkit 0.7.27__py3-none-any.whl → 0.7.28__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cognite_toolkit/_cdf_tk/client/data_classes/charts.py +3 -3
- cognite_toolkit/_cdf_tk/client/data_classes/charts_data.py +94 -232
- cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py +3 -5
- cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml +1 -1
- cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml +1 -1
- cognite_toolkit/_resources/cdf.toml +1 -1
- cognite_toolkit/_version.py +1 -1
- {cognite_toolkit-0.7.27.dist-info → cognite_toolkit-0.7.28.dist-info}/METADATA +1 -1
- {cognite_toolkit-0.7.27.dist-info → cognite_toolkit-0.7.28.dist-info}/RECORD +11 -11
- {cognite_toolkit-0.7.27.dist-info → cognite_toolkit-0.7.28.dist-info}/WHEEL +0 -0
- {cognite_toolkit-0.7.27.dist-info → cognite_toolkit-0.7.28.dist-info}/entry_points.txt +0 -0
|
@@ -36,7 +36,7 @@ class ChartCore(WriteableCogniteResource["ChartWrite"], ABC):
|
|
|
36
36
|
def dump(self, camel_case: bool = True) -> dict[str, Any]:
|
|
37
37
|
"""Convert the chart to a dictionary representation."""
|
|
38
38
|
output = super().dump(camel_case=camel_case)
|
|
39
|
-
output["data"] = self.data.
|
|
39
|
+
output["data"] = self.data.model_dump(mode="json", by_alias=camel_case, exclude_unset=True)
|
|
40
40
|
return output
|
|
41
41
|
|
|
42
42
|
|
|
@@ -58,7 +58,7 @@ class ChartWrite(ChartCore):
|
|
|
58
58
|
return cls(
|
|
59
59
|
external_id=resource["externalId"],
|
|
60
60
|
visibility=resource["visibility"],
|
|
61
|
-
data=ChartData._load(resource["data"]
|
|
61
|
+
data=ChartData._load(resource["data"]),
|
|
62
62
|
)
|
|
63
63
|
|
|
64
64
|
|
|
@@ -98,7 +98,7 @@ class Chart(ChartCore):
|
|
|
98
98
|
created_time=resource["createdTime"],
|
|
99
99
|
last_updated_time=resource["lastUpdatedTime"],
|
|
100
100
|
visibility=resource["visibility"],
|
|
101
|
-
data=ChartData._load(resource["data"]
|
|
101
|
+
data=ChartData._load(resource["data"]),
|
|
102
102
|
owner_id=resource["ownerId"],
|
|
103
103
|
)
|
|
104
104
|
|
|
@@ -1,70 +1,30 @@
|
|
|
1
|
-
import sys
|
|
2
|
-
from dataclasses import dataclass, field, fields
|
|
3
|
-
from functools import lru_cache
|
|
4
1
|
from typing import Any
|
|
5
2
|
|
|
6
|
-
from cognite.client import CogniteClient
|
|
7
|
-
from cognite.client.data_classes._base import CogniteObject
|
|
8
3
|
from cognite.client.data_classes.data_modeling import NodeId, ViewId
|
|
9
|
-
from
|
|
4
|
+
from pydantic import JsonValue, field_serializer, field_validator
|
|
10
5
|
|
|
11
|
-
|
|
12
|
-
from typing import Self
|
|
13
|
-
else:
|
|
14
|
-
from typing_extensions import Self
|
|
6
|
+
from .base import BaseModelObject
|
|
15
7
|
|
|
16
8
|
|
|
17
|
-
|
|
18
|
-
class ChartObject(CogniteObject):
|
|
19
|
-
# ChartObjects are used in the frontend and the backend does not do any validation of these fields.
|
|
20
|
-
# Therefore, to ensure that we do not lose any data, we store unknown fields in a separate dictionary.
|
|
21
|
-
# This allows unknown fields to be preserved when loading and dumping ChartObjects
|
|
22
|
-
# (serialization and deserialization).
|
|
23
|
-
_unknown_fields: dict[str, object] | None = field(default=None, init=False, repr=False)
|
|
24
|
-
|
|
25
|
-
@classmethod
|
|
26
|
-
def _load(cls, resource: dict[str, Any], cognite_client: CogniteClient | None = None) -> Self:
|
|
27
|
-
"""Load a ChartObject from a dictionary."""
|
|
28
|
-
instance = super()._load(resource, cognite_client=cognite_client)
|
|
29
|
-
instance._unknown_fields = {k: v for k, v in resource.items() if k not in cls._known_camel_case_props()}
|
|
30
|
-
return instance
|
|
31
|
-
|
|
32
|
-
@classmethod
|
|
33
|
-
@lru_cache(maxsize=1)
|
|
34
|
-
def _known_camel_case_props(cls) -> set[str]:
|
|
35
|
-
return {to_camel_case(f.name) for f in fields(cls)}
|
|
36
|
-
|
|
37
|
-
def dump(self, camel_case: bool = True) -> dict[str, Any]:
|
|
38
|
-
"""Dump the ChartObject to a dictionary."""
|
|
39
|
-
data = super().dump(camel_case=camel_case)
|
|
40
|
-
if self._unknown_fields:
|
|
41
|
-
data.update(self._unknown_fields)
|
|
42
|
-
return data
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
@dataclass
|
|
46
|
-
class UserInfo(ChartObject):
|
|
9
|
+
class UserInfo(BaseModelObject):
|
|
47
10
|
id: str | None = None
|
|
48
11
|
email: str | None = None
|
|
49
12
|
display_name: str | None = None
|
|
50
13
|
|
|
51
14
|
|
|
52
|
-
|
|
53
|
-
class ChartSettings(ChartObject):
|
|
15
|
+
class ChartSettings(BaseModelObject):
|
|
54
16
|
show_y_axis: bool = True
|
|
55
17
|
show_min_max: bool = True
|
|
56
18
|
show_gridlines: bool = True
|
|
57
19
|
merge_units: bool = False
|
|
58
20
|
|
|
59
21
|
|
|
60
|
-
|
|
61
|
-
class ThresholdFilter(ChartObject):
|
|
22
|
+
class ThresholdFilter(BaseModelObject):
|
|
62
23
|
min_unit: str | None = None
|
|
63
24
|
max_unit: str | None = None
|
|
64
25
|
|
|
65
26
|
|
|
66
|
-
|
|
67
|
-
class ChartCall(ChartObject):
|
|
27
|
+
class ChartCall(BaseModelObject):
|
|
68
28
|
id: str | None = None
|
|
69
29
|
hash: int | None = None
|
|
70
30
|
call_id: str | None = None
|
|
@@ -72,182 +32,143 @@ class ChartCall(ChartObject):
|
|
|
72
32
|
status: str | None = None
|
|
73
33
|
|
|
74
34
|
|
|
75
|
-
|
|
76
|
-
class SubSetting(ChartObject):
|
|
35
|
+
class SubSetting(BaseModelObject):
|
|
77
36
|
auto_align: bool | None = None
|
|
78
37
|
|
|
79
38
|
|
|
80
|
-
|
|
81
|
-
|
|
39
|
+
class ChartPosition(BaseModelObject):
|
|
40
|
+
x: float | None = None
|
|
41
|
+
y: float | None = None
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class FlowElement(BaseModelObject):
|
|
82
45
|
id: str | None = None
|
|
83
46
|
type: str | None = None
|
|
84
|
-
position:
|
|
85
|
-
data:
|
|
47
|
+
position: ChartPosition | None = None
|
|
48
|
+
data: JsonValue | None = None
|
|
49
|
+
source: str | None = None
|
|
50
|
+
target: str | None = None
|
|
51
|
+
source_handle: str | None = None
|
|
52
|
+
target_handle: str | None = None
|
|
86
53
|
|
|
87
54
|
|
|
88
|
-
|
|
89
|
-
class Flow(ChartObject):
|
|
55
|
+
class Flow(BaseModelObject):
|
|
90
56
|
zoom: float | None = None
|
|
91
57
|
elements: list[FlowElement] | None = None
|
|
92
58
|
position: tuple[float | None, float | None] | None = None
|
|
93
59
|
|
|
94
|
-
def dump(self, camel_case: bool = True) -> dict[str, Any]:
|
|
95
|
-
data = super().dump(camel_case=camel_case)
|
|
96
|
-
if self.elements:
|
|
97
|
-
data["elements"] = [el.dump(camel_case=camel_case) for el in self.elements]
|
|
98
|
-
return data
|
|
99
60
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
instance = super()._load(resource, cognite_client=cognite_client)
|
|
104
|
-
if "elements" in resource:
|
|
105
|
-
instance.elements = [FlowElement._load(el, cognite_client=cognite_client) for el in resource["elements"]]
|
|
106
|
-
return instance
|
|
61
|
+
class ChartElement(BaseModelObject):
|
|
62
|
+
id: str | None = None
|
|
63
|
+
type: str | None = None
|
|
107
64
|
|
|
108
65
|
|
|
109
|
-
|
|
110
|
-
class ChartSource(ChartObject):
|
|
111
|
-
type: str | None = None
|
|
112
|
-
id: str | None = None
|
|
66
|
+
class ChartSource(ChartElement): ...
|
|
113
67
|
|
|
114
68
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
name: str | None = None
|
|
69
|
+
class ChartCoreTimeseries(ChartElement):
|
|
70
|
+
node_reference: NodeId | None = None
|
|
71
|
+
view_reference: ViewId | None = None
|
|
72
|
+
display_mode: str | None = None
|
|
120
73
|
color: str | None = None
|
|
74
|
+
created_at: int | None = None
|
|
121
75
|
enabled: bool | None = None
|
|
122
|
-
line_weight: float | None = None
|
|
123
|
-
line_style: str | None = None
|
|
124
76
|
interpolation: str | None = None
|
|
125
|
-
|
|
77
|
+
line_style: str | None = None
|
|
78
|
+
line_weight: float | None = None
|
|
79
|
+
name: str | None = None
|
|
126
80
|
preferred_unit: str | None = None
|
|
127
|
-
|
|
128
|
-
range: tuple[float | None, float | None] | None = None
|
|
129
|
-
description: str | None = None
|
|
81
|
+
range: list[float | None] | None = None
|
|
130
82
|
|
|
83
|
+
@field_serializer("node_reference", when_used="always")
|
|
84
|
+
def serialize_node_reference(self, node_reference: NodeId | None) -> dict[str, Any] | None:
|
|
85
|
+
if node_reference:
|
|
86
|
+
return node_reference.dump(include_instance_type=False)
|
|
87
|
+
return None
|
|
131
88
|
|
|
132
|
-
@
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
89
|
+
@field_serializer("view_reference", when_used="always")
|
|
90
|
+
def serialize_view_reference(self, view_reference: ViewId | None) -> dict[str, Any] | None:
|
|
91
|
+
if view_reference:
|
|
92
|
+
return view_reference.dump(include_type=False)
|
|
93
|
+
return None
|
|
137
94
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
key = "viewReference" if camel_case else "view_reference"
|
|
145
|
-
data[key] = self.view_reference.dump(include_type=False)
|
|
146
|
-
return data
|
|
95
|
+
@field_validator("node_reference", mode="before")
|
|
96
|
+
@classmethod
|
|
97
|
+
def validate_node_reference(cls, value: Any) -> NodeId | None:
|
|
98
|
+
if value is None or isinstance(value, NodeId):
|
|
99
|
+
return value
|
|
100
|
+
return NodeId.load(value)
|
|
147
101
|
|
|
102
|
+
@field_validator("view_reference", mode="before")
|
|
148
103
|
@classmethod
|
|
149
|
-
def
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
104
|
+
def validate_view_reference(cls, value: Any) -> ViewId | None:
|
|
105
|
+
if value is None or isinstance(value, ViewId):
|
|
106
|
+
return value
|
|
107
|
+
return ViewId.load(value)
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
class ChartTimeseries(ChartElement):
|
|
111
|
+
color: str | None = None
|
|
112
|
+
created_at: int | None = None
|
|
113
|
+
enabled: bool | None = None
|
|
114
|
+
interpolation: str | None = None
|
|
115
|
+
line_style: str | None = None
|
|
116
|
+
line_weight: float | None = None
|
|
117
|
+
name: str | None = None
|
|
118
|
+
preferred_unit: str | None = None
|
|
119
|
+
range: list[float | None] | None = None
|
|
120
|
+
unit: str | None = None
|
|
161
121
|
ts_id: int | None = None
|
|
162
122
|
ts_external_id: str | None = None
|
|
163
123
|
display_mode: str | None = None
|
|
164
124
|
original_unit: str | None = None
|
|
125
|
+
description: str | None = None
|
|
165
126
|
|
|
166
127
|
|
|
167
|
-
|
|
168
|
-
class ChartWorkflow(BaseChartElement):
|
|
128
|
+
class ChartWorkflow(ChartElement):
|
|
169
129
|
version: str | None = None
|
|
130
|
+
name: str | None = None
|
|
131
|
+
color: str | None = None
|
|
132
|
+
enabled: bool | None = None
|
|
133
|
+
line_weight: float | None = None
|
|
134
|
+
line_style: str | None = None
|
|
135
|
+
interpolation: str | None = None
|
|
136
|
+
unit: str | None = None
|
|
137
|
+
preferred_unit: str | None = None
|
|
138
|
+
range: list[float | None] | None = None
|
|
139
|
+
created_at: int | None = None
|
|
170
140
|
settings: SubSetting | None = None
|
|
171
141
|
flow: Flow | None = None
|
|
172
142
|
calls: list[ChartCall] | None = None
|
|
173
143
|
|
|
174
|
-
def dump(self, camel_case: bool = True) -> dict[str, Any]:
|
|
175
|
-
data = super().dump(camel_case=camel_case)
|
|
176
|
-
if self.settings:
|
|
177
|
-
data["settings"] = self.settings.dump(camel_case=camel_case)
|
|
178
|
-
if self.flow:
|
|
179
|
-
data["flow"] = self.flow.dump(camel_case=camel_case)
|
|
180
|
-
if self.calls:
|
|
181
|
-
data["calls"] = [c.dump(camel_case=camel_case) for c in self.calls]
|
|
182
|
-
return data
|
|
183
144
|
|
|
184
|
-
|
|
185
|
-
def _load(cls, resource: dict[str, Any], cognite_client: CogniteClient | None = None) -> Self:
|
|
186
|
-
"""Load a ChartWorkflow object from a dictionary."""
|
|
187
|
-
instance = super()._load(resource, cognite_client=cognite_client)
|
|
188
|
-
if "settings" in resource:
|
|
189
|
-
instance.settings = SubSetting._load(resource["settings"], cognite_client=cognite_client)
|
|
190
|
-
if "flow" in resource:
|
|
191
|
-
instance.flow = Flow._load(resource["flow"], cognite_client=cognite_client)
|
|
192
|
-
if "calls" in resource:
|
|
193
|
-
instance.calls = [ChartCall._load(call, cognite_client=cognite_client) for call in resource["calls"]]
|
|
194
|
-
return instance
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
@dataclass
|
|
198
|
-
class ChartThreshold(BaseChartElement):
|
|
145
|
+
class ChartThreshold(ChartElement):
|
|
199
146
|
visible: bool | None = None
|
|
147
|
+
name: str | None = None
|
|
200
148
|
source_id: str | None = None
|
|
201
149
|
upper_limit: float | None = None
|
|
202
150
|
filter: ThresholdFilter | None = None
|
|
203
151
|
calls: list[ChartCall] | None = None
|
|
204
152
|
|
|
205
|
-
def dump(self, camel_case: bool = True) -> dict[str, Any]:
|
|
206
|
-
data = super().dump(camel_case=camel_case)
|
|
207
|
-
if self.filter:
|
|
208
|
-
data["filter"] = self.filter.dump(camel_case=camel_case)
|
|
209
|
-
if self.calls:
|
|
210
|
-
data["calls"] = [c.dump(camel_case=camel_case) for c in self.calls]
|
|
211
|
-
return data
|
|
212
153
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
class ChartScheduledCalculation(BaseChartElement):
|
|
154
|
+
class ChartScheduledCalculation(ChartElement):
|
|
155
|
+
color: str | None = None
|
|
156
|
+
created_at: int | None = None
|
|
157
|
+
description: str | None = None
|
|
158
|
+
enabled: bool | None = None
|
|
159
|
+
interpolation: str | None = None
|
|
160
|
+
line_style: str | None = None
|
|
161
|
+
line_weight: float | None = None
|
|
162
|
+
name: str | None = None
|
|
163
|
+
preferred_unit: str | None = None
|
|
164
|
+
range: list[float | None] | None = None
|
|
165
|
+
unit: str | None = None
|
|
226
166
|
version: str | None = None
|
|
227
167
|
settings: SubSetting | None = None
|
|
228
168
|
flow: Flow | None = None
|
|
229
169
|
|
|
230
|
-
def dump(self, camel_case: bool = True) -> dict[str, Any]:
|
|
231
|
-
data = super().dump(camel_case=camel_case)
|
|
232
|
-
if self.settings:
|
|
233
|
-
data["settings"] = self.settings.dump(camel_case=camel_case)
|
|
234
|
-
if self.flow:
|
|
235
|
-
data["flow"] = self.flow.dump(camel_case=camel_case)
|
|
236
|
-
return data
|
|
237
170
|
|
|
238
|
-
|
|
239
|
-
def _load(cls, resource: dict[str, Any], cognite_client: CogniteClient | None = None) -> Self:
|
|
240
|
-
"""Load a ChartScheduledCalculation object from a dictionary."""
|
|
241
|
-
instance = super()._load(resource, cognite_client=cognite_client)
|
|
242
|
-
if "settings" in resource:
|
|
243
|
-
instance.settings = SubSetting._load(resource["settings"], cognite_client=cognite_client)
|
|
244
|
-
if "flow" in resource:
|
|
245
|
-
instance.flow = Flow._load(resource["flow"], cognite_client=cognite_client)
|
|
246
|
-
return instance
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
@dataclass
|
|
250
|
-
class ChartData(ChartObject):
|
|
171
|
+
class ChartData(BaseModelObject):
|
|
251
172
|
version: int | None = None
|
|
252
173
|
name: str | None = None
|
|
253
174
|
date_from: str | None = None
|
|
@@ -261,62 +182,3 @@ class ChartData(ChartObject):
|
|
|
261
182
|
threshold_collection: list[ChartThreshold] | None = None
|
|
262
183
|
scheduled_calculation_collection: list[ChartScheduledCalculation] | None = None
|
|
263
184
|
settings: ChartSettings | None = None
|
|
264
|
-
|
|
265
|
-
def dump(self, camel_case: bool = True) -> dict[str, Any]:
|
|
266
|
-
"""Dump the ChartData object to a dictionary."""
|
|
267
|
-
data = super().dump(camel_case=camel_case)
|
|
268
|
-
list_attrs = [
|
|
269
|
-
"time_series_collection",
|
|
270
|
-
"core_timeseries_collection",
|
|
271
|
-
"workflow_collection",
|
|
272
|
-
"source_collection",
|
|
273
|
-
"threshold_collection",
|
|
274
|
-
"scheduled_calculation_collection",
|
|
275
|
-
]
|
|
276
|
-
for attr_name in list_attrs:
|
|
277
|
-
if collection := getattr(self, attr_name):
|
|
278
|
-
key = to_camel_case(attr_name) if camel_case else attr_name
|
|
279
|
-
data[key] = [item.dump(camel_case=camel_case) for item in collection]
|
|
280
|
-
|
|
281
|
-
single_attrs_map = {
|
|
282
|
-
"user_info": "userInfo",
|
|
283
|
-
"settings": "settings",
|
|
284
|
-
}
|
|
285
|
-
for attr_name, camel_key in single_attrs_map.items():
|
|
286
|
-
if item := getattr(self, attr_name):
|
|
287
|
-
key = camel_key if camel_case else attr_name
|
|
288
|
-
data[key] = item.dump(camel_case=camel_case)
|
|
289
|
-
return data
|
|
290
|
-
|
|
291
|
-
@classmethod
|
|
292
|
-
def _load(cls, resource: dict[str, Any], cognite_client: CogniteClient | None = None) -> Self:
|
|
293
|
-
"""Load a ChartData object from a dictionary."""
|
|
294
|
-
instance = super()._load(resource, cognite_client=cognite_client)
|
|
295
|
-
collections_map = [
|
|
296
|
-
("timeSeriesCollection", "time_series_collection", ChartTimeseries),
|
|
297
|
-
("coreTimeseriesCollection", "core_timeseries_collection", ChartCoreTimeseries),
|
|
298
|
-
("workflowCollection", "workflow_collection", ChartWorkflow),
|
|
299
|
-
("sourceCollection", "source_collection", ChartSource),
|
|
300
|
-
("thresholdCollection", "threshold_collection", ChartThreshold),
|
|
301
|
-
("scheduledCalculationCollection", "scheduled_calculation_collection", ChartScheduledCalculation),
|
|
302
|
-
]
|
|
303
|
-
for resource_key, attr_name, subclass in collections_map:
|
|
304
|
-
if resource_key in resource:
|
|
305
|
-
setattr(
|
|
306
|
-
instance,
|
|
307
|
-
attr_name,
|
|
308
|
-
[subclass._load(item, cognite_client=cognite_client) for item in resource[resource_key]], # type: ignore[attr-defined]
|
|
309
|
-
)
|
|
310
|
-
attribute_map = [
|
|
311
|
-
("userInfo", "user_info", UserInfo),
|
|
312
|
-
("settings", "settings", ChartSettings),
|
|
313
|
-
]
|
|
314
|
-
for resource_key, attr_name, subclass in attribute_map:
|
|
315
|
-
if resource_key in resource:
|
|
316
|
-
setattr(
|
|
317
|
-
instance,
|
|
318
|
-
attr_name,
|
|
319
|
-
subclass._load(resource[resource_key], cognite_client=cognite_client), # type: ignore[attr-defined]
|
|
320
|
-
)
|
|
321
|
-
|
|
322
|
-
return instance
|
|
@@ -210,16 +210,14 @@ class ChartMapper(DataMapper[ChartSelector, Chart, ChartWrite]):
|
|
|
210
210
|
def _create_new_timeseries_core(
|
|
211
211
|
self, ts_item: ChartTimeseries, node_id: NodeId, consumer_view_id: ViewId | None
|
|
212
212
|
) -> ChartCoreTimeseries:
|
|
213
|
-
dumped = ts_item.
|
|
214
|
-
for asset_centric_key in ["tsId", "tsExternalId", "originalUnit"]:
|
|
215
|
-
dumped.pop(asset_centric_key, None)
|
|
216
|
-
|
|
213
|
+
dumped = ts_item.model_dump(mode="json", by_alias=True, exclude_unset=True)
|
|
217
214
|
dumped["nodeReference"] = node_id
|
|
218
215
|
dumped["viewReference"] = consumer_view_id
|
|
219
216
|
new_uuid = str(uuid4())
|
|
220
217
|
dumped["id"] = new_uuid
|
|
221
218
|
dumped["type"] = "coreTimeseries"
|
|
222
|
-
|
|
219
|
+
# We ignore extra here to only include the fields that are shared between ChartTimeseries and ChartCoreTimeseries
|
|
220
|
+
core_timeseries = ChartCoreTimeseries.model_validate(dumped, extra="ignore")
|
|
223
221
|
return core_timeseries
|
|
224
222
|
|
|
225
223
|
def _get_node_id_consumer_view_id(self, ts_item: ChartTimeseries) -> tuple[NodeId | None, ViewId | None]:
|
cognite_toolkit/_version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.7.
|
|
1
|
+
__version__ = "0.7.28"
|
|
@@ -67,8 +67,8 @@ cognite_toolkit/_cdf_tk/client/data_classes/apm_config_v1.py,sha256=0bPq7R0qvdf8
|
|
|
67
67
|
cognite_toolkit/_cdf_tk/client/data_classes/base.py,sha256=QG4S0HlByMB6zwxUXWaVHwP-DrA2Y97XGN_o6QsL6FY,2776
|
|
68
68
|
cognite_toolkit/_cdf_tk/client/data_classes/canvas.py,sha256=DrE-7HOLnk1ELhydySsEhw-VOjriUqB_zzon5qb7CDk,50721
|
|
69
69
|
cognite_toolkit/_cdf_tk/client/data_classes/capabilities.py,sha256=muqpAC2JLCFcEpRPzuh_3sS3o_q42WFyfsGzl-LfB_U,8773
|
|
70
|
-
cognite_toolkit/_cdf_tk/client/data_classes/charts.py,sha256=
|
|
71
|
-
cognite_toolkit/_cdf_tk/client/data_classes/charts_data.py,sha256
|
|
70
|
+
cognite_toolkit/_cdf_tk/client/data_classes/charts.py,sha256=4ZSZDJhDP8uNubXfzphuLJzKJhL1F01grB4UesxtSbQ,3745
|
|
71
|
+
cognite_toolkit/_cdf_tk/client/data_classes/charts_data.py,sha256=-dFfY53cos5DwASLU18aBfYF1VC6bfaUshC2HiGJ2uI,5571
|
|
72
72
|
cognite_toolkit/_cdf_tk/client/data_classes/extendable_cognite_file.py,sha256=0iyLiXEzB4WBU-DL6DZS6nD5E526cDsftMGEYXwI8r8,9764
|
|
73
73
|
cognite_toolkit/_cdf_tk/client/data_classes/extended_filemetadata.py,sha256=8zfXl_bhkums3quJzdOwAjxVNY6B0hpAs6jbkekn79o,5488
|
|
74
74
|
cognite_toolkit/_cdf_tk/client/data_classes/extended_filemetdata.py,sha256=gKA5UcDKweH7SlzXfyZCspMyHUo0t8R5DbzeCPpzInM,6002
|
|
@@ -103,7 +103,7 @@ cognite_toolkit/_cdf_tk/commands/_migrate/command.py,sha256=l2P0Em05aEJvNZH4WkEI
|
|
|
103
103
|
cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py,sha256=Ew9JRYrd-Ol9G9csTzpnhXAgCFnX67MwDYOTsdJLP3E,16803
|
|
104
104
|
cognite_toolkit/_cdf_tk/commands/_migrate/creators.py,sha256=FTu7w3G8KyPY8pagG3KdPpOmpLcjehaAg2auEy6iM7A,9605
|
|
105
105
|
cognite_toolkit/_cdf_tk/commands/_migrate/data_classes.py,sha256=_vMS_qAPj4yup1VnmmojPVigAZtyPQH7PM0Raby5tao,10619
|
|
106
|
-
cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py,sha256=
|
|
106
|
+
cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py,sha256=b_6_yYibtzWiBFrYq5pB8NZUi1TRuf-DIy_GRroj4wg,18551
|
|
107
107
|
cognite_toolkit/_cdf_tk/commands/_migrate/data_model.py,sha256=i1eUsNX6Dueol9STIEwyksBnBsWUk13O8qHIjW964pM,7860
|
|
108
108
|
cognite_toolkit/_cdf_tk/commands/_migrate/default_mappings.py,sha256=ERn3qFrJFXdtXaMjHq3Gk7MxH03MGFk3FrtWCOBJQts,5544
|
|
109
109
|
cognite_toolkit/_cdf_tk/commands/_migrate/issues.py,sha256=n8en744-r7GL9eUyxEojFes1yk69V04SnlpVXHrdPOQ,6972
|
|
@@ -302,14 +302,14 @@ cognite_toolkit/_repo_files/.gitignore,sha256=ip9kf9tcC5OguF4YF4JFEApnKYw0nG0vPi
|
|
|
302
302
|
cognite_toolkit/_repo_files/AzureDevOps/.devops/README.md,sha256=OLA0D7yCX2tACpzvkA0IfkgQ4_swSd-OlJ1tYcTBpsA,240
|
|
303
303
|
cognite_toolkit/_repo_files/AzureDevOps/.devops/deploy-pipeline.yml,sha256=brULcs8joAeBC_w_aoWjDDUHs3JheLMIR9ajPUK96nc,693
|
|
304
304
|
cognite_toolkit/_repo_files/AzureDevOps/.devops/dry-run-pipeline.yml,sha256=OBFDhFWK1mlT4Dc6mDUE2Es834l8sAlYG50-5RxRtHk,723
|
|
305
|
-
cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=
|
|
306
|
-
cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=
|
|
307
|
-
cognite_toolkit/_resources/cdf.toml,sha256=
|
|
308
|
-
cognite_toolkit/_version.py,sha256=
|
|
305
|
+
cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=WjbXrAgIoTssRXTsTBHolXqsIg4BKfCLRtfmT37lTM4,667
|
|
306
|
+
cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=qfSb9a7NFcwbEDJo8JoRrnvPvjyrjlWO7SVjxqVMjjM,2430
|
|
307
|
+
cognite_toolkit/_resources/cdf.toml,sha256=kw_vOm_sjuQP0yBUwjl4b5PP2mLyTEyG3HzTXFWtGFk,475
|
|
308
|
+
cognite_toolkit/_version.py,sha256=zxRa3gUEpxj8fTU5qOT60NDmCfmdbg7_Z6ZkpKAhrNg,23
|
|
309
309
|
cognite_toolkit/config.dev.yaml,sha256=M33FiIKdS3XKif-9vXniQ444GTZ-bLXV8aFH86u9iUQ,332
|
|
310
310
|
cognite_toolkit/demo/__init__.py,sha256=-m1JoUiwRhNCL18eJ6t7fZOL7RPfowhCuqhYFtLgrss,72
|
|
311
311
|
cognite_toolkit/demo/_base.py,sha256=6xKBUQpXZXGQ3fJ5f7nj7oT0s2n7OTAGIa17ZlKHZ5U,8052
|
|
312
|
-
cognite_toolkit-0.7.
|
|
313
|
-
cognite_toolkit-0.7.
|
|
314
|
-
cognite_toolkit-0.7.
|
|
315
|
-
cognite_toolkit-0.7.
|
|
312
|
+
cognite_toolkit-0.7.28.dist-info/WHEEL,sha256=93kfTGt3a0Dykt_T-gsjtyS5_p8F_d6CE1NwmBOirzo,79
|
|
313
|
+
cognite_toolkit-0.7.28.dist-info/entry_points.txt,sha256=EtZ17K2mUjh-AY0QNU1CPIB_aDSSOdmtNI_4Fj967mA,84
|
|
314
|
+
cognite_toolkit-0.7.28.dist-info/METADATA,sha256=8484D-s0BzjQMFkFVIPhKFv2p4jELcUAVka0_qC7yT4,4507
|
|
315
|
+
cognite_toolkit-0.7.28.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|