cognite-toolkit 0.7.9__py3-none-any.whl → 0.7.11__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.
Files changed (45) hide show
  1. cognite_toolkit/_cdf_tk/commands/_purge.py +27 -28
  2. cognite_toolkit/_cdf_tk/commands/_upload.py +6 -2
  3. cognite_toolkit/_cdf_tk/commands/clean.py +11 -13
  4. cognite_toolkit/_cdf_tk/commands/deploy.py +9 -17
  5. cognite_toolkit/_cdf_tk/commands/dump_resource.py +6 -4
  6. cognite_toolkit/_cdf_tk/commands/pull.py +6 -19
  7. cognite_toolkit/_cdf_tk/cruds/_base_cruds.py +7 -25
  8. cognite_toolkit/_cdf_tk/cruds/_data_cruds.py +3 -6
  9. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/agent.py +4 -6
  10. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/auth.py +4 -12
  11. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/classic.py +19 -36
  12. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py +4 -10
  13. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/data_organization.py +4 -12
  14. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py +16 -41
  15. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/extraction_pipeline.py +5 -15
  16. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py +8 -21
  17. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py +6 -22
  18. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/function.py +5 -15
  19. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/hosted_extractors.py +12 -26
  20. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/industrial_tool.py +3 -6
  21. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/location.py +3 -14
  22. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/migration.py +4 -8
  23. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/raw.py +4 -8
  24. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/relationship.py +3 -6
  25. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/robotics.py +15 -34
  26. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py +2 -5
  27. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/three_d_model.py +3 -6
  28. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py +5 -13
  29. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py +4 -19
  30. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/workflow.py +20 -37
  31. cognite_toolkit/_cdf_tk/cruds/_worker.py +13 -30
  32. cognite_toolkit/_cdf_tk/storageio/__init__.py +3 -3
  33. cognite_toolkit/_cdf_tk/storageio/_base.py +23 -0
  34. cognite_toolkit/_cdf_tk/storageio/_file_content.py +4 -0
  35. cognite_toolkit/_cdf_tk/storageio/selectors/_datapoints.py +1 -1
  36. cognite_toolkit/_cdf_tk/utils/fileio/_readers.py +42 -1
  37. cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml +1 -1
  38. cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml +1 -1
  39. cognite_toolkit/_resources/cdf.toml +1 -1
  40. cognite_toolkit/_version.py +1 -1
  41. {cognite_toolkit-0.7.9.dist-info → cognite_toolkit-0.7.11.dist-info}/METADATA +1 -1
  42. {cognite_toolkit-0.7.9.dist-info → cognite_toolkit-0.7.11.dist-info}/RECORD +45 -45
  43. {cognite_toolkit-0.7.9.dist-info → cognite_toolkit-0.7.11.dist-info}/WHEEL +0 -0
  44. {cognite_toolkit-0.7.9.dist-info → cognite_toolkit-0.7.11.dist-info}/entry_points.txt +0 -0
  45. {cognite_toolkit-0.7.9.dist-info → cognite_toolkit-0.7.11.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  import collections.abc
2
2
  import io
3
- from collections.abc import Hashable, Iterable
3
+ from collections.abc import Hashable, Iterable, Sequence
4
4
  from pathlib import Path
5
5
  from typing import Any, final
6
6
 
@@ -10,17 +10,14 @@ from cognite.client.data_classes import (
10
10
  Asset,
11
11
  AssetList,
12
12
  AssetWrite,
13
- AssetWriteList,
14
13
  Event,
15
14
  EventList,
16
15
  EventWrite,
17
- EventWriteList,
18
- Sequence,
19
16
  SequenceList,
20
17
  SequenceWrite,
21
- SequenceWriteList,
22
18
  capabilities,
23
19
  )
20
+ from cognite.client.data_classes import Sequence as CDFSequence
24
21
  from cognite.client.data_classes.capabilities import Capability
25
22
  from cognite.client.exceptions import CogniteAPIError, CogniteNotFoundError
26
23
  from cognite.client.utils.useful_types import SequenceNotStr
@@ -31,7 +28,6 @@ from cognite_toolkit._cdf_tk.client.data_classes.sequences import (
31
28
  ToolkitSequenceRows,
32
29
  ToolkitSequenceRowsList,
33
30
  ToolkitSequenceRowsWrite,
34
- ToolkitSequenceRowsWriteList,
35
31
  )
36
32
  from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
37
33
  from cognite_toolkit._cdf_tk.resource_classes import AssetYAML, EventYAML, SequenceRowYAML, SequenceYAML
@@ -44,13 +40,11 @@ from .data_organization import DataSetsCRUD, LabelCRUD
44
40
 
45
41
 
46
42
  @final
47
- class AssetCRUD(ResourceCRUD[str, AssetWrite, Asset, AssetWriteList, AssetList]):
43
+ class AssetCRUD(ResourceCRUD[str, AssetWrite, Asset]):
48
44
  folder_name = "classic"
49
45
  filetypes = frozenset({"yaml", "yml", "csv", "parquet"})
50
46
  resource_cls = Asset
51
47
  resource_write_cls = AssetWrite
52
- list_cls = AssetList
53
- list_write_cls = AssetWriteList
54
48
  yaml_cls = AssetYAML
55
49
  kind = "Asset"
56
50
  dependencies = frozenset({DataSetsCRUD, LabelCRUD})
@@ -102,13 +96,13 @@ class AssetCRUD(ResourceCRUD[str, AssetWrite, Asset, AssetWriteList, AssetList])
102
96
 
103
97
  return capabilities.AssetsAcl(actions, scope)
104
98
 
105
- def create(self, items: AssetWriteList) -> AssetList:
99
+ def create(self, items: Sequence[AssetWrite]) -> AssetList:
106
100
  return self.client.assets.create(items)
107
101
 
108
102
  def retrieve(self, ids: SequenceNotStr[str]) -> AssetList:
109
103
  return self.client.assets.retrieve_multiple(external_ids=ids, ignore_unknown_ids=True)
110
104
 
111
- def update(self, items: AssetWriteList) -> AssetList:
105
+ def update(self, items: Sequence[AssetWrite]) -> AssetList:
112
106
  return self.client.assets.update(items, mode="replace")
113
107
 
114
108
  def delete(self, ids: SequenceNotStr[str | int]) -> int:
@@ -231,12 +225,10 @@ class AssetCRUD(ResourceCRUD[str, AssetWrite, Asset, AssetWriteList, AssetList])
231
225
 
232
226
 
233
227
  @final
234
- class SequenceCRUD(ResourceCRUD[str, SequenceWrite, Sequence, SequenceWriteList, SequenceList]):
228
+ class SequenceCRUD(ResourceCRUD[str, SequenceWrite, CDFSequence]):
235
229
  folder_name = "classic"
236
- resource_cls = Sequence
230
+ resource_cls = CDFSequence
237
231
  resource_write_cls = SequenceWrite
238
- list_cls = SequenceList
239
- list_write_cls = SequenceWriteList
240
232
  kind = "Sequence"
241
233
  dependencies = frozenset({DataSetsCRUD, AssetCRUD})
242
234
  yaml_cls = SequenceYAML
@@ -247,7 +239,7 @@ class SequenceCRUD(ResourceCRUD[str, SequenceWrite, Sequence, SequenceWriteList,
247
239
  return "sequences"
248
240
 
249
241
  @classmethod
250
- def get_id(cls, item: Sequence | SequenceWrite | dict) -> str:
242
+ def get_id(cls, item: CDFSequence | SequenceWrite | dict) -> str:
251
243
  if isinstance(item, dict):
252
244
  return item["externalId"]
253
245
  if not item.external_id:
@@ -255,7 +247,7 @@ class SequenceCRUD(ResourceCRUD[str, SequenceWrite, Sequence, SequenceWriteList,
255
247
  return item.external_id
256
248
 
257
249
  @classmethod
258
- def get_internal_id(cls, item: Sequence | dict) -> int:
250
+ def get_internal_id(cls, item: CDFSequence | dict) -> int:
259
251
  if isinstance(item, dict):
260
252
  return item["id"]
261
253
  if not item.id:
@@ -268,7 +260,7 @@ class SequenceCRUD(ResourceCRUD[str, SequenceWrite, Sequence, SequenceWriteList,
268
260
 
269
261
  @classmethod
270
262
  def get_required_capability(
271
- cls, items: collections.abc.Sequence[SequenceWrite] | None, read_only: bool
263
+ cls, items: Sequence[SequenceWrite] | None, read_only: bool
272
264
  ) -> Capability | list[Capability]:
273
265
  if not items and items is not None:
274
266
  return []
@@ -292,7 +284,7 @@ class SequenceCRUD(ResourceCRUD[str, SequenceWrite, Sequence, SequenceWriteList,
292
284
  resource["assetId"] = self.client.lookup.assets.id(asset_external_id, is_dry_run)
293
285
  return SequenceWrite._load(resource)
294
286
 
295
- def dump_resource(self, resource: Sequence, local: dict[str, Any] | None = None) -> dict[str, Any]:
287
+ def dump_resource(self, resource: CDFSequence, local: dict[str, Any] | None = None) -> dict[str, Any]:
296
288
  dumped = resource.as_write().dump()
297
289
  local = local or {}
298
290
  if data_set_id := dumped.pop("dataSetId", None):
@@ -320,13 +312,13 @@ class SequenceCRUD(ResourceCRUD[str, SequenceWrite, Sequence, SequenceWriteList,
320
312
  return super().diff_list(local, cdf, json_path)
321
313
  return diff_list_identifiable(local, cdf, get_identifier=lambda col: col["externalId"])
322
314
 
323
- def create(self, items: SequenceWriteList) -> SequenceList:
315
+ def create(self, items: Sequence[SequenceWrite]) -> SequenceList:
324
316
  return self.client.sequences.create(items)
325
317
 
326
318
  def retrieve(self, ids: SequenceNotStr[str]) -> SequenceList:
327
319
  return self.client.sequences.retrieve_multiple(external_ids=ids, ignore_unknown_ids=True)
328
320
 
329
- def update(self, items: SequenceWriteList) -> SequenceList:
321
+ def update(self, items: Sequence[SequenceWrite]) -> SequenceList:
330
322
  return self.client.sequences.upsert(items, mode="replace")
331
323
 
332
324
  def delete(self, ids: SequenceNotStr[str | int]) -> int:
@@ -347,7 +339,7 @@ class SequenceCRUD(ResourceCRUD[str, SequenceWrite, Sequence, SequenceWriteList,
347
339
  data_set_external_id: str | None = None,
348
340
  space: str | None = None,
349
341
  parent_ids: list[Hashable] | None = None,
350
- ) -> Iterable[Sequence]:
342
+ ) -> Iterable[CDFSequence]:
351
343
  return iter(
352
344
  self.client.sequences(data_set_external_ids=[data_set_external_id] if data_set_external_id else None)
353
345
  )
@@ -361,16 +353,10 @@ class SequenceCRUD(ResourceCRUD[str, SequenceWrite, Sequence, SequenceWriteList,
361
353
 
362
354
 
363
355
  @final
364
- class SequenceRowCRUD(
365
- ResourceCRUD[
366
- str, ToolkitSequenceRowsWrite, ToolkitSequenceRows, ToolkitSequenceRowsWriteList, ToolkitSequenceRowsList
367
- ]
368
- ):
356
+ class SequenceRowCRUD(ResourceCRUD[str, ToolkitSequenceRowsWrite, ToolkitSequenceRows]):
369
357
  folder_name = "classic"
370
358
  resource_cls = ToolkitSequenceRows
371
359
  resource_write_cls = ToolkitSequenceRowsWrite
372
- list_cls = ToolkitSequenceRowsList
373
- list_write_cls = ToolkitSequenceRowsWriteList
374
360
  kind = "SequenceRow"
375
361
  dependencies = frozenset({SequenceCRUD})
376
362
  parent_resource = frozenset({SequenceCRUD})
@@ -415,8 +401,7 @@ class SequenceRowCRUD(
415
401
  # We don't have any capabilities for SequenceRows, that is already handled by the Sequence
416
402
  return []
417
403
 
418
- def create(self, items: ToolkitSequenceRowsWriteList) -> ToolkitSequenceRowsWriteList:
419
- item: ToolkitSequenceRowsWrite
404
+ def create(self, items: Sequence[ToolkitSequenceRowsWrite]) -> Sequence[ToolkitSequenceRowsWrite]:
420
405
  for item in items:
421
406
  self.client.sequences.rows.insert(item.as_sequence_rows(), external_id=item.external_id)
422
407
  return items
@@ -492,13 +477,11 @@ class SequenceRowCRUD(
492
477
 
493
478
 
494
479
  @final
495
- class EventCRUD(ResourceCRUD[str, EventWrite, Event, EventWriteList, EventList]):
480
+ class EventCRUD(ResourceCRUD[str, EventWrite, Event]):
496
481
  folder_name = "classic"
497
482
  filetypes = frozenset({"yaml", "yml"})
498
483
  resource_cls = Event
499
484
  resource_write_cls = EventWrite
500
- list_cls = EventList
501
- list_write_cls = EventWriteList
502
485
  yaml_cls = EventYAML
503
486
  kind = "Event"
504
487
  dependencies = frozenset({DataSetsCRUD, AssetCRUD})
@@ -550,13 +533,13 @@ class EventCRUD(ResourceCRUD[str, EventWrite, Event, EventWriteList, EventList])
550
533
 
551
534
  return capabilities.EventsAcl(actions, scope)
552
535
 
553
- def create(self, items: EventWriteList) -> EventList:
536
+ def create(self, items: Sequence[EventWrite]) -> EventList:
554
537
  return self.client.events.create(items)
555
538
 
556
539
  def retrieve(self, ids: SequenceNotStr[str]) -> EventList:
557
540
  return self.client.events.retrieve_multiple(external_ids=ids, ignore_unknown_ids=True)
558
541
 
559
- def update(self, items: EventWriteList) -> EventList:
542
+ def update(self, items: Sequence[EventWrite]) -> EventList:
560
543
  return self.client.events.update(items, mode="replace")
561
544
 
562
545
  def delete(self, ids: SequenceNotStr[str | int]) -> int:
@@ -11,7 +11,6 @@ from cognite_toolkit._cdf_tk.client.data_classes.search_config import (
11
11
  SearchConfig,
12
12
  SearchConfigList,
13
13
  SearchConfigWrite,
14
- SearchConfigWriteList,
15
14
  ViewId,
16
15
  )
17
16
  from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
@@ -23,13 +22,11 @@ from .datamodel import ViewCRUD
23
22
 
24
23
 
25
24
  @final
26
- class SearchConfigCRUD(ResourceCRUD[ViewId, SearchConfigWrite, SearchConfig, SearchConfigWriteList, SearchConfigList]):
25
+ class SearchConfigCRUD(ResourceCRUD[ViewId, SearchConfigWrite, SearchConfig]):
27
26
  support_drop = False
28
27
  folder_name = "cdf_applications"
29
28
  resource_cls = SearchConfig
30
29
  resource_write_cls = SearchConfigWrite
31
- list_cls = SearchConfigList
32
- list_write_cls = SearchConfigWriteList
33
30
  yaml_cls = SearchConfigYAML
34
31
  dependencies = frozenset({ViewCRUD})
35
32
  kind = "SearchConfig"
@@ -103,20 +100,17 @@ class SearchConfigCRUD(ResourceCRUD[ViewId, SearchConfigWrite, SearchConfig, Sea
103
100
  return diff_list_identifiable(local, cdf, get_identifier=dm_identifier)
104
101
  return super().diff_list(local, cdf, json_path)
105
102
 
106
- def _upsert(self, items: SearchConfigWrite | SearchConfigWriteList) -> SearchConfigList:
103
+ def _upsert(self, items: Sequence[SearchConfigWrite]) -> SearchConfigList:
107
104
  """
108
105
  Upsert search configurations using the upsert method
109
106
  """
110
- if isinstance(items, SearchConfigWrite):
111
- items = SearchConfigWriteList([items])
112
-
113
107
  result = SearchConfigList([])
114
108
  for item in items:
115
109
  created = self.client.search.configurations.upsert(item)
116
110
  result.append(created)
117
111
  return result
118
112
 
119
- def create(self, items: SearchConfigWriteList) -> SearchConfigList:
113
+ def create(self, items: Sequence[SearchConfigWrite]) -> SearchConfigList:
120
114
  """
121
115
  Create new search configurations using the upsert method
122
116
  """
@@ -128,7 +122,7 @@ class SearchConfigCRUD(ResourceCRUD[ViewId, SearchConfigWrite, SearchConfig, Sea
128
122
  # The API does not support server-side filtering, so we filter in memory.
129
123
  return SearchConfigList([config for config in all_configs if config.view in ids])
130
124
 
131
- def update(self, items: SearchConfigWriteList) -> SearchConfigList:
125
+ def update(self, items: Sequence[SearchConfigWrite]) -> SearchConfigList:
132
126
  """
133
127
  Update search configurations using the upsert method
134
128
  """
@@ -21,7 +21,6 @@ from cognite.client.data_classes import (
21
21
  DataSet,
22
22
  DataSetList,
23
23
  DataSetWrite,
24
- DataSetWriteList,
25
24
  LabelDefinition,
26
25
  LabelDefinitionList,
27
26
  LabelDefinitionWrite,
@@ -31,7 +30,6 @@ from cognite.client.data_classes.capabilities import (
31
30
  Capability,
32
31
  DataSetsAcl,
33
32
  )
34
- from cognite.client.data_classes.labels import LabelDefinitionWriteList
35
33
  from cognite.client.exceptions import CogniteAPIError, CogniteDuplicatedError, CogniteNotFoundError
36
34
  from cognite.client.utils.useful_types import SequenceNotStr
37
35
 
@@ -45,13 +43,11 @@ from .auth import GroupAllScopedCRUD
45
43
 
46
44
 
47
45
  @final
48
- class DataSetsCRUD(ResourceCRUD[str, DataSetWrite, DataSet, DataSetWriteList, DataSetList]):
46
+ class DataSetsCRUD(ResourceCRUD[str, DataSetWrite, DataSet]):
49
47
  support_drop = False
50
48
  folder_name = "data_sets"
51
49
  resource_cls = DataSet
52
50
  resource_write_cls = DataSetWrite
53
- list_cls = DataSetList
54
- list_write_cls = DataSetWriteList
55
51
  yaml_cls = DataSetYAML
56
52
  kind = "DataSet"
57
53
  dependencies = frozenset({GroupAllScopedCRUD})
@@ -142,7 +138,7 @@ class DataSetsCRUD(ResourceCRUD[str, DataSetWrite, DataSet, DataSetWriteList, Da
142
138
  def retrieve(self, ids: SequenceNotStr[str]) -> DataSetList:
143
139
  return self.client.data_sets.retrieve_multiple(external_ids=ids, ignore_unknown_ids=True)
144
140
 
145
- def update(self, items: DataSetWriteList) -> DataSetList:
141
+ def update(self, items: Sequence[DataSetWrite]) -> DataSetList:
146
142
  return self.client.data_sets.update(items, mode="replace")
147
143
 
148
144
  def delete(self, ids: SequenceNotStr[str]) -> int:
@@ -158,14 +154,10 @@ class DataSetsCRUD(ResourceCRUD[str, DataSetWrite, DataSet, DataSetWriteList, Da
158
154
 
159
155
 
160
156
  @final
161
- class LabelCRUD(
162
- ResourceCRUD[str, LabelDefinitionWrite, LabelDefinition, LabelDefinitionWriteList, LabelDefinitionList]
163
- ):
157
+ class LabelCRUD(ResourceCRUD[str, LabelDefinitionWrite, LabelDefinition]):
164
158
  folder_name = "classic"
165
159
  resource_cls = LabelDefinition
166
160
  resource_write_cls = LabelDefinitionWrite
167
- list_cls = LabelDefinitionList
168
- list_write_cls = LabelDefinitionWriteList
169
161
  yaml_cls = LabelsYAML
170
162
  kind = "Label"
171
163
  dependencies = frozenset({DataSetsCRUD, GroupAllScopedCRUD})
@@ -209,7 +201,7 @@ class LabelCRUD(
209
201
 
210
202
  return capabilities.LabelsAcl(actions, scope)
211
203
 
212
- def create(self, items: LabelDefinitionWriteList) -> LabelDefinitionList:
204
+ def create(self, items: Sequence[LabelDefinitionWrite]) -> LabelDefinitionList:
213
205
  return self.client.labels.create(items)
214
206
 
215
207
  def retrieve(self, ids: SequenceNotStr[str]) -> LabelDefinitionList:
@@ -34,32 +34,26 @@ from cognite.client.data_classes.capabilities import (
34
34
  from cognite.client.data_classes.data_modeling import (
35
35
  Container,
36
36
  ContainerApply,
37
- ContainerApplyList,
38
37
  ContainerList,
39
38
  DataModel,
40
39
  DataModelApply,
41
- DataModelApplyList,
42
40
  DataModelList,
43
41
  DirectRelation,
44
42
  Edge,
45
43
  EdgeApply,
46
- EdgeApplyList,
47
44
  EdgeApplyResultList,
48
45
  EdgeList,
49
46
  MappedProperty,
50
47
  Node,
51
48
  NodeApply,
52
- NodeApplyList,
53
49
  NodeApplyResultList,
54
50
  NodeList,
55
51
  RequiresConstraint,
56
52
  Space,
57
53
  SpaceApply,
58
- SpaceApplyList,
59
54
  SpaceList,
60
55
  View,
61
56
  ViewApply,
62
- ViewApplyList,
63
57
  ViewList,
64
58
  )
65
59
  from cognite.client.data_classes.data_modeling.graphql import DMLApplyResult
@@ -83,7 +77,6 @@ from cognite_toolkit._cdf_tk.client.data_classes.graphql_data_models import (
83
77
  GraphQLDataModel,
84
78
  GraphQLDataModelList,
85
79
  GraphQLDataModelWrite,
86
- GraphQLDataModelWriteList,
87
80
  )
88
81
  from cognite_toolkit._cdf_tk.constants import BUILD_FOLDER_ENCODING, HAS_DATA_FILTER_LIMIT
89
82
  from cognite_toolkit._cdf_tk.cruds._base_cruds import (
@@ -118,13 +111,11 @@ from .auth import GroupAllScopedCRUD
118
111
 
119
112
 
120
113
  @final
121
- class SpaceCRUD(ResourceContainerCRUD[str, SpaceApply, Space, SpaceApplyList, SpaceList]):
114
+ class SpaceCRUD(ResourceContainerCRUD[str, SpaceApply, Space]):
122
115
  item_name = "nodes and edges"
123
116
  folder_name = "data_modeling"
124
117
  resource_cls = Space
125
118
  resource_write_cls = SpaceApply
126
- list_write_cls = SpaceApplyList
127
- list_cls = SpaceList
128
119
  kind = "Space"
129
120
  yaml_cls = SpaceYAML
130
121
  dependencies = frozenset({GroupAllScopedCRUD})
@@ -249,13 +240,11 @@ class SpaceCRUD(ResourceContainerCRUD[str, SpaceApply, Space, SpaceApplyList, Sp
249
240
  yield instances.as_ids()
250
241
 
251
242
 
252
- class ContainerCRUD(ResourceContainerCRUD[ContainerId, ContainerApply, Container, ContainerApplyList, ContainerList]):
243
+ class ContainerCRUD(ResourceContainerCRUD[ContainerId, ContainerApply, Container]):
253
244
  item_name = "nodes and edges"
254
245
  folder_name = "data_modeling"
255
246
  resource_cls = Container
256
247
  resource_write_cls = ContainerApply
257
- list_cls = ContainerList
258
- list_write_cls = ContainerApplyList
259
248
  kind = "Container"
260
249
  dependencies = frozenset({SpaceCRUD})
261
250
  yaml_cls = ContainerYAML
@@ -514,12 +503,10 @@ class ContainerCRUD(ResourceContainerCRUD[ContainerId, ContainerApply, Container
514
503
  return sanitize_filename(f"{id.space}_{id.external_id}")
515
504
 
516
505
 
517
- class ViewCRUD(ResourceCRUD[ViewId, ViewApply, View, ViewApplyList, ViewList]):
506
+ class ViewCRUD(ResourceCRUD[ViewId, ViewApply, View]):
518
507
  folder_name = "data_modeling"
519
508
  resource_cls = View
520
509
  resource_write_cls = ViewApply
521
- list_cls = ViewList
522
- list_write_cls = ViewApplyList
523
510
  kind = "View"
524
511
  dependencies = frozenset({SpaceCRUD, ContainerCRUD})
525
512
  yaml_cls = ViewYAML
@@ -855,12 +842,10 @@ class ViewCRUD(ResourceCRUD[ViewId, ViewApply, View, ViewApplyList, ViewList]):
855
842
 
856
843
 
857
844
  @final
858
- class DataModelCRUD(ResourceCRUD[DataModelId, DataModelApply, DataModel, DataModelApplyList, DataModelList]):
845
+ class DataModelCRUD(ResourceCRUD[DataModelId, DataModelApply, DataModel]):
859
846
  folder_name = "data_modeling"
860
847
  resource_cls = DataModel
861
848
  resource_write_cls = DataModelApply
862
- list_cls = DataModelList
863
- list_write_cls = DataModelApplyList
864
849
  kind = "DataModel"
865
850
  dependencies = frozenset({SpaceCRUD, ViewCRUD})
866
851
  yaml_cls = DataModelYAML
@@ -937,13 +922,13 @@ class DataModelCRUD(ResourceCRUD[DataModelId, DataModelApply, DataModel, DataMod
937
922
  return diff_list_identifiable(local, cdf, get_identifier=dm_identifier)
938
923
  return super().diff_list(local, cdf, json_path)
939
924
 
940
- def create(self, items: DataModelApplyList) -> DataModelList:
925
+ def create(self, items: Sequence[DataModelApply]) -> DataModelList:
941
926
  return self.client.data_modeling.data_models.apply(items)
942
927
 
943
928
  def retrieve(self, ids: SequenceNotStr[DataModelId]) -> DataModelList:
944
929
  return self.client.data_modeling.data_models.retrieve(cast(Sequence, ids))
945
930
 
946
- def update(self, items: DataModelApplyList) -> DataModelList:
931
+ def update(self, items: Sequence[DataModelApply]) -> DataModelList:
947
932
  updated = self.create(items)
948
933
  # There is a bug in the API not raising an exception if view is removed from a data model.
949
934
  # So we check here that the update was fixed.
@@ -987,13 +972,11 @@ class DataModelCRUD(ResourceCRUD[DataModelId, DataModelApply, DataModel, DataMod
987
972
 
988
973
 
989
974
  @final
990
- class NodeCRUD(ResourceContainerCRUD[NodeId, NodeApply, Node, NodeApplyList, NodeList]):
975
+ class NodeCRUD(ResourceContainerCRUD[NodeId, NodeApply, Node]):
991
976
  item_name = "nodes"
992
977
  folder_name = "data_modeling"
993
978
  resource_cls = Node
994
979
  resource_write_cls = NodeApply
995
- list_cls = NodeList
996
- list_write_cls = NodeApplyList
997
980
  kind = "Node"
998
981
  yaml_cls = NodeYAML
999
982
  dependencies = frozenset({SpaceCRUD, ViewCRUD, ContainerCRUD})
@@ -1094,7 +1077,7 @@ class NodeCRUD(ResourceContainerCRUD[NodeId, NodeApply, Node, NodeApplyList, Nod
1094
1077
 
1095
1078
  return dumped
1096
1079
 
1097
- def create(self, items: NodeApplyList) -> NodeApplyResultList:
1080
+ def create(self, items: Sequence[NodeApply]) -> NodeApplyResultList:
1098
1081
  result = self.client.data_modeling.instances.apply(
1099
1082
  # Note replace should never be relevant as Toolkit always checks whether the node exists before applying.
1100
1083
  nodes=items,
@@ -1106,7 +1089,7 @@ class NodeCRUD(ResourceContainerCRUD[NodeId, NodeApply, Node, NodeApplyList, Nod
1106
1089
  def retrieve(self, ids: SequenceNotStr[NodeId]) -> NodeList:
1107
1090
  return self.client.data_modeling.instances.retrieve(nodes=cast(Sequence, ids), sources=self.view_id).nodes
1108
1091
 
1109
- def update(self, items: NodeApplyList) -> NodeApplyResultList:
1092
+ def update(self, items: Sequence[NodeApply]) -> NodeApplyResultList:
1110
1093
  result = self.client.data_modeling.instances.apply(
1111
1094
  nodes=items, auto_create_direct_relations=True, replace=False
1112
1095
  )
@@ -1143,16 +1126,10 @@ class NodeCRUD(ResourceContainerCRUD[NodeId, NodeApply, Node, NodeApplyList, Nod
1143
1126
  return sanitize_filename(f"{id.space}_{id.external_id}")
1144
1127
 
1145
1128
 
1146
- class GraphQLCRUD(
1147
- ResourceContainerCRUD[
1148
- DataModelId, GraphQLDataModelWrite, GraphQLDataModel, GraphQLDataModelWriteList, GraphQLDataModelList
1149
- ]
1150
- ):
1129
+ class GraphQLCRUD(ResourceContainerCRUD[DataModelId, GraphQLDataModelWrite, GraphQLDataModel]):
1151
1130
  folder_name = "data_modeling"
1152
1131
  resource_cls = GraphQLDataModel
1153
1132
  resource_write_cls = GraphQLDataModelWrite
1154
- list_cls = GraphQLDataModelList
1155
- list_write_cls = GraphQLDataModelWriteList
1156
1133
  kind = "GraphQLSchema"
1157
1134
  dependencies = frozenset({SpaceCRUD, ContainerCRUD})
1158
1135
  item_name = "views"
@@ -1266,7 +1243,7 @@ class GraphQLCRUD(
1266
1243
  dumped["graphqlFile"] = match.group(3)
1267
1244
  return dumped
1268
1245
 
1269
- def create(self, items: GraphQLDataModelWriteList) -> list[DMLApplyResult]:
1246
+ def create(self, items: Sequence[GraphQLDataModelWrite]) -> list[DMLApplyResult]:
1270
1247
  creation_order = self._topological_sort(items)
1271
1248
 
1272
1249
  created_list: list[DMLApplyResult] = []
@@ -1297,7 +1274,7 @@ class GraphQLCRUD(
1297
1274
  result = self.client.data_modeling.data_models.retrieve(list(ids), inline_views=False)
1298
1275
  return GraphQLDataModelList([GraphQLDataModel._load(d.dump()) for d in result])
1299
1276
 
1300
- def update(self, items: GraphQLDataModelWriteList) -> list[DMLApplyResult]:
1277
+ def update(self, items: Sequence[GraphQLDataModelWrite]) -> list[DMLApplyResult]:
1301
1278
  return self.create(items)
1302
1279
 
1303
1280
  def delete(self, ids: SequenceNotStr[DataModelId]) -> int:
@@ -1322,7 +1299,7 @@ class GraphQLCRUD(
1322
1299
  def drop_data(self, ids: SequenceNotStr[DataModelId]) -> int:
1323
1300
  return self.delete(ids)
1324
1301
 
1325
- def _topological_sort(self, items: GraphQLDataModelWriteList) -> list[GraphQLDataModelWrite]:
1302
+ def _topological_sort(self, items: Sequence[GraphQLDataModelWrite]) -> list[GraphQLDataModelWrite]:
1326
1303
  to_sort = {item.as_id(): item for item in items}
1327
1304
  dependencies: dict[DataModelId, set[DataModelId]] = {}
1328
1305
  for item in items:
@@ -1345,13 +1322,11 @@ class GraphQLCRUD(
1345
1322
 
1346
1323
 
1347
1324
  @final
1348
- class EdgeCRUD(ResourceContainerCRUD[EdgeId, EdgeApply, Edge, EdgeApplyList, EdgeList]):
1325
+ class EdgeCRUD(ResourceContainerCRUD[EdgeId, EdgeApply, Edge]):
1349
1326
  item_name = "edges"
1350
1327
  folder_name = "data_modeling"
1351
1328
  resource_cls = Edge
1352
1329
  resource_write_cls = EdgeApply
1353
- list_cls = EdgeList
1354
- list_write_cls = EdgeApplyList
1355
1330
  kind = "Edge"
1356
1331
  yaml_cls = EdgeYAML
1357
1332
  dependencies = frozenset({SpaceCRUD, ViewCRUD, ContainerCRUD, NodeCRUD})
@@ -1442,7 +1417,7 @@ class EdgeCRUD(ResourceContainerCRUD[EdgeId, EdgeApply, Edge, EdgeApplyList, Edg
1442
1417
 
1443
1418
  return dumped
1444
1419
 
1445
- def create(self, items: EdgeApplyList) -> EdgeApplyResultList:
1420
+ def create(self, items: Sequence[EdgeApply]) -> EdgeApplyResultList:
1446
1421
  result = self.client.data_modeling.instances.apply(
1447
1422
  edges=items, auto_create_direct_relations=True, replace=False
1448
1423
  )
@@ -1451,7 +1426,7 @@ class EdgeCRUD(ResourceContainerCRUD[EdgeId, EdgeApply, Edge, EdgeApplyList, Edg
1451
1426
  def retrieve(self, ids: SequenceNotStr[EdgeId]) -> EdgeList:
1452
1427
  return self.client.data_modeling.instances.retrieve(nodes=cast(Sequence, ids)).edges
1453
1428
 
1454
- def update(self, items: EdgeApplyList) -> EdgeApplyResultList:
1429
+ def update(self, items: Sequence[EdgeApply]) -> EdgeApplyResultList:
1455
1430
  result = self.client.data_modeling.instances.apply(
1456
1431
  edges=items, auto_create_direct_relations=False, replace=True
1457
1432
  )
@@ -30,9 +30,7 @@ from cognite.client.data_classes.capabilities import (
30
30
  from cognite.client.data_classes.extractionpipelines import (
31
31
  ExtractionPipelineConfigList,
32
32
  ExtractionPipelineConfigWrite,
33
- ExtractionPipelineConfigWriteList,
34
33
  ExtractionPipelineWrite,
35
- ExtractionPipelineWriteList,
36
34
  )
37
35
  from cognite.client.exceptions import CogniteAPIError, CogniteDuplicatedError, CogniteNotFoundError
38
36
  from cognite.client.utils.useful_types import SequenceNotStr
@@ -61,14 +59,10 @@ from .raw import RawDatabaseCRUD, RawTableCRUD
61
59
 
62
60
 
63
61
  @final
64
- class ExtractionPipelineCRUD(
65
- ResourceCRUD[str, ExtractionPipelineWrite, ExtractionPipeline, ExtractionPipelineWriteList, ExtractionPipelineList]
66
- ):
62
+ class ExtractionPipelineCRUD(ResourceCRUD[str, ExtractionPipelineWrite, ExtractionPipeline]):
67
63
  folder_name = "extraction_pipelines"
68
64
  resource_cls = ExtractionPipeline
69
65
  resource_write_cls = ExtractionPipelineWrite
70
- list_cls = ExtractionPipelineList
71
- list_write_cls = ExtractionPipelineWriteList
72
66
  kind = "ExtractionPipeline"
73
67
  dependencies = frozenset({DataSetsCRUD, RawDatabaseCRUD, RawTableCRUD, GroupAllScopedCRUD})
74
68
  yaml_cls = ExtractionPipelineYAML
@@ -176,7 +170,7 @@ class ExtractionPipelineCRUD(
176
170
  def retrieve(self, ids: SequenceNotStr[str]) -> ExtractionPipelineList:
177
171
  return self.client.extraction_pipelines.retrieve_multiple(external_ids=ids, ignore_unknown_ids=True)
178
172
 
179
- def update(self, items: ExtractionPipelineWriteList) -> ExtractionPipelineList:
173
+ def update(self, items: Sequence[ExtractionPipelineWrite]) -> ExtractionPipelineList:
180
174
  # Bug in SDK overload so need the ignore.
181
175
  return self.client.extraction_pipelines.update(items, mode="replace") # type: ignore[call-overload]
182
176
 
@@ -217,15 +211,11 @@ class ExtractionPipelineConfigCRUD(
217
211
  str,
218
212
  ExtractionPipelineConfigWrite,
219
213
  ExtractionPipelineConfig,
220
- ExtractionPipelineConfigWriteList,
221
- ExtractionPipelineConfigList,
222
214
  ]
223
215
  ):
224
216
  folder_name = "extraction_pipelines"
225
217
  resource_cls = ExtractionPipelineConfig
226
218
  resource_write_cls = ExtractionPipelineConfigWrite
227
- list_cls = ExtractionPipelineConfigList
228
- list_write_cls = ExtractionPipelineConfigWriteList
229
219
  kind = "Config"
230
220
  dependencies = frozenset({ExtractionPipelineCRUD})
231
221
  _doc_url = "Extraction-Pipelines-Config/operation/createExtPipeConfig"
@@ -345,18 +335,18 @@ class ExtractionPipelineConfigCRUD(
345
335
  return diff_list_force_hashable(local, cdf)
346
336
  return super().diff_list(local, cdf, json_path)
347
337
 
348
- def _upsert(self, items: ExtractionPipelineConfigWriteList) -> ExtractionPipelineConfigList:
338
+ def _upsert(self, items: Sequence[ExtractionPipelineConfigWrite]) -> ExtractionPipelineConfigList:
349
339
  upserted = ExtractionPipelineConfigList([])
350
340
  for item in items:
351
341
  created = self.client.extraction_pipelines.config.create(item)
352
342
  upserted.append(created)
353
343
  return upserted
354
344
 
355
- def create(self, items: ExtractionPipelineConfigWriteList) -> ExtractionPipelineConfigList:
345
+ def create(self, items: Sequence[ExtractionPipelineConfigWrite]) -> ExtractionPipelineConfigList:
356
346
  return self._upsert(items)
357
347
 
358
348
  # configs cannot be updated, instead new revision is created
359
- def update(self, items: ExtractionPipelineConfigWriteList) -> ExtractionPipelineConfigList:
349
+ def update(self, items: Sequence[ExtractionPipelineConfigWrite]) -> ExtractionPipelineConfigList:
360
350
  return self._upsert(items)
361
351
 
362
352
  def retrieve(self, ids: SequenceNotStr[str]) -> ExtractionPipelineConfigList: