cognite-toolkit 0.7.7__py3-none-any.whl → 0.7.9__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 (36) hide show
  1. cognite_toolkit/_cdf_tk/cruds/_base_cruds.py +0 -3
  2. cognite_toolkit/_cdf_tk/cruds/_data_cruds.py +0 -4
  3. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/agent.py +0 -1
  4. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/auth.py +0 -2
  5. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/classic.py +0 -4
  6. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py +0 -1
  7. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/data_organization.py +0 -1
  8. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py +0 -7
  9. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/extraction_pipeline.py +0 -2
  10. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py +0 -2
  11. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py +0 -5
  12. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/function.py +0 -4
  13. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/hosted_extractors.py +0 -4
  14. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/industrial_tool.py +0 -1
  15. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/location.py +0 -1
  16. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/migration.py +0 -3
  17. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/raw.py +0 -2
  18. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/relationship.py +0 -1
  19. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/robotics.py +0 -5
  20. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py +0 -1
  21. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/three_d_model.py +0 -1
  22. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py +0 -2
  23. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py +0 -8
  24. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/workflow.py +0 -3
  25. cognite_toolkit/_cdf_tk/storageio/__init__.py +2 -2
  26. cognite_toolkit/_cdf_tk/storageio/_asset_centric.py +36 -80
  27. cognite_toolkit/_cdf_tk/storageio/_raw.py +26 -0
  28. cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml +1 -1
  29. cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml +1 -1
  30. cognite_toolkit/_resources/cdf.toml +1 -1
  31. cognite_toolkit/_version.py +1 -1
  32. {cognite_toolkit-0.7.7.dist-info → cognite_toolkit-0.7.9.dist-info}/METADATA +1 -1
  33. {cognite_toolkit-0.7.7.dist-info → cognite_toolkit-0.7.9.dist-info}/RECORD +36 -36
  34. {cognite_toolkit-0.7.7.dist-info → cognite_toolkit-0.7.9.dist-info}/WHEEL +0 -0
  35. {cognite_toolkit-0.7.7.dist-info → cognite_toolkit-0.7.9.dist-info}/entry_points.txt +0 -0
  36. {cognite_toolkit-0.7.7.dist-info → cognite_toolkit-0.7.9.dist-info}/licenses/LICENSE +0 -0
@@ -40,8 +40,6 @@ class Loader(ABC):
40
40
  Class attributes:
41
41
  filetypes: The filetypes that are supported by this loader. This should be set in all subclasses.
42
42
  folder_name: The name of the folder in the build directory where the files are located. This should be set in all subclasses.
43
- filename_pattern: A regex pattern that is used to filter the files that are supported by this loader. This is used
44
- when two loaders have the same folder name to differentiate between them. If not set, all files are supported.
45
43
  dependencies: A set of loaders that must be loaded before this loader.
46
44
  exclude_filetypes: A set of filetypes that should be excluded from the supported filetypes.
47
45
  """
@@ -49,7 +47,6 @@ class Loader(ABC):
49
47
  filetypes: frozenset[str]
50
48
  folder_name: str
51
49
  kind: str
52
- filename_pattern: str = ""
53
50
  dependencies: "frozenset[type[ResourceCRUD]]" = frozenset()
54
51
  exclude_filetypes: frozenset[str] = frozenset()
55
52
  _doc_base_url: str = "https://api-docs.cognite.com/20230101/tag/"
@@ -91,10 +91,6 @@ class FileCRUD(DataCRUD):
91
91
  kind = "File"
92
92
  filetypes = frozenset()
93
93
  exclude_filetype: frozenset[str] = frozenset({})
94
- filename_pattern = (
95
- # Exclude FileMetadata and CogniteFile
96
- r"(?i)^(?!.*(?:FileMetadata|CogniteFile)$).*$"
97
- )
98
94
  dependencies = frozenset({FileMetadataCRUD, CogniteFileCRUD})
99
95
  _doc_url = "Files/operation/initFileUpload"
100
96
 
@@ -13,7 +13,6 @@ from cognite_toolkit._cdf_tk.utils.diff_list import diff_list_hashable, diff_lis
13
13
 
14
14
  class AgentCRUD(ResourceCRUD[str, AgentUpsert, Agent, AgentUpsertList, AgentList]):
15
15
  folder_name = "agents"
16
- filename_pattern = r".*\.Agent$" # Matches all yaml files whose stem ends with '.Agent'.
17
16
  resource_cls = Agent
18
17
  resource_write_cls = AgentUpsert
19
18
  list_cls = AgentList
@@ -67,7 +67,6 @@ class _ReplaceMethod:
67
67
 
68
68
  class GroupCRUD(ResourceCRUD[str, GroupWrite, Group, GroupWriteList, GroupList]):
69
69
  folder_name = "auth"
70
- filename_pattern = r"^(?!.*SecurityCategory$).*"
71
70
  kind = "Group"
72
71
  resource_cls = Group
73
72
  resource_write_cls = GroupWrite
@@ -482,7 +481,6 @@ class GroupAllScopedCRUD(GroupCRUD):
482
481
  class SecurityCategoryCRUD(
483
482
  ResourceCRUD[str, SecurityCategoryWrite, SecurityCategory, SecurityCategoryWriteList, SecurityCategoryList]
484
483
  ):
485
- filename_pattern = r"^.*SecurityCategory$" # Matches all yaml files who's stem ends with *SecurityCategory.
486
484
  resource_cls = SecurityCategory
487
485
  resource_write_cls = SecurityCategoryWrite
488
486
  list_cls = SecurityCategoryList
@@ -46,7 +46,6 @@ from .data_organization import DataSetsCRUD, LabelCRUD
46
46
  @final
47
47
  class AssetCRUD(ResourceCRUD[str, AssetWrite, Asset, AssetWriteList, AssetList]):
48
48
  folder_name = "classic"
49
- filename_pattern = r"^.*\.Asset$" # Matches all yaml files whose stem ends with '.Asset'.
50
49
  filetypes = frozenset({"yaml", "yml", "csv", "parquet"})
51
50
  resource_cls = Asset
52
51
  resource_write_cls = AssetWrite
@@ -234,7 +233,6 @@ class AssetCRUD(ResourceCRUD[str, AssetWrite, Asset, AssetWriteList, AssetList])
234
233
  @final
235
234
  class SequenceCRUD(ResourceCRUD[str, SequenceWrite, Sequence, SequenceWriteList, SequenceList]):
236
235
  folder_name = "classic"
237
- filename_pattern = r"^.*\.Sequence$"
238
236
  resource_cls = Sequence
239
237
  resource_write_cls = SequenceWrite
240
238
  list_cls = SequenceList
@@ -369,7 +367,6 @@ class SequenceRowCRUD(
369
367
  ]
370
368
  ):
371
369
  folder_name = "classic"
372
- filename_pattern = r"^.*\.SequenceRow$"
373
370
  resource_cls = ToolkitSequenceRows
374
371
  resource_write_cls = ToolkitSequenceRowsWrite
375
372
  list_cls = ToolkitSequenceRowsList
@@ -497,7 +494,6 @@ class SequenceRowCRUD(
497
494
  @final
498
495
  class EventCRUD(ResourceCRUD[str, EventWrite, Event, EventWriteList, EventList]):
499
496
  folder_name = "classic"
500
- filename_pattern = r"^.*\.Event$" # Matches all yaml files whose stem ends with '.Event'.
501
497
  filetypes = frozenset({"yaml", "yml"})
502
498
  resource_cls = Event
503
499
  resource_write_cls = EventWrite
@@ -26,7 +26,6 @@ from .datamodel import ViewCRUD
26
26
  class SearchConfigCRUD(ResourceCRUD[ViewId, SearchConfigWrite, SearchConfig, SearchConfigWriteList, SearchConfigList]):
27
27
  support_drop = False
28
28
  folder_name = "cdf_applications"
29
- filename_pattern = r"^.*SearchConfig$"
30
29
  resource_cls = SearchConfig
31
30
  resource_write_cls = SearchConfigWrite
32
31
  list_cls = SearchConfigList
@@ -162,7 +162,6 @@ class LabelCRUD(
162
162
  ResourceCRUD[str, LabelDefinitionWrite, LabelDefinition, LabelDefinitionWriteList, LabelDefinitionList]
163
163
  ):
164
164
  folder_name = "classic"
165
- filename_pattern = r"^.*Label$" # Matches all yaml files whose stem ends with *Label.
166
165
  resource_cls = LabelDefinition
167
166
  resource_write_cls = LabelDefinitionWrite
168
167
  list_cls = LabelDefinitionList
@@ -121,7 +121,6 @@ from .auth import GroupAllScopedCRUD
121
121
  class SpaceCRUD(ResourceContainerCRUD[str, SpaceApply, Space, SpaceApplyList, SpaceList]):
122
122
  item_name = "nodes and edges"
123
123
  folder_name = "data_modeling"
124
- filename_pattern = r"^.*space$"
125
124
  resource_cls = Space
126
125
  resource_write_cls = SpaceApply
127
126
  list_write_cls = SpaceApplyList
@@ -253,7 +252,6 @@ class SpaceCRUD(ResourceContainerCRUD[str, SpaceApply, Space, SpaceApplyList, Sp
253
252
  class ContainerCRUD(ResourceContainerCRUD[ContainerId, ContainerApply, Container, ContainerApplyList, ContainerList]):
254
253
  item_name = "nodes and edges"
255
254
  folder_name = "data_modeling"
256
- filename_pattern = r"^.*container$"
257
255
  resource_cls = Container
258
256
  resource_write_cls = ContainerApply
259
257
  list_cls = ContainerList
@@ -518,7 +516,6 @@ class ContainerCRUD(ResourceContainerCRUD[ContainerId, ContainerApply, Container
518
516
 
519
517
  class ViewCRUD(ResourceCRUD[ViewId, ViewApply, View, ViewApplyList, ViewList]):
520
518
  folder_name = "data_modeling"
521
- filename_pattern = r"^.*view$"
522
519
  resource_cls = View
523
520
  resource_write_cls = ViewApply
524
521
  list_cls = ViewList
@@ -860,7 +857,6 @@ class ViewCRUD(ResourceCRUD[ViewId, ViewApply, View, ViewApplyList, ViewList]):
860
857
  @final
861
858
  class DataModelCRUD(ResourceCRUD[DataModelId, DataModelApply, DataModel, DataModelApplyList, DataModelList]):
862
859
  folder_name = "data_modeling"
863
- filename_pattern = r"^.*datamodel$"
864
860
  resource_cls = DataModel
865
861
  resource_write_cls = DataModelApply
866
862
  list_cls = DataModelList
@@ -994,7 +990,6 @@ class DataModelCRUD(ResourceCRUD[DataModelId, DataModelApply, DataModel, DataMod
994
990
  class NodeCRUD(ResourceContainerCRUD[NodeId, NodeApply, Node, NodeApplyList, NodeList]):
995
991
  item_name = "nodes"
996
992
  folder_name = "data_modeling"
997
- filename_pattern = r"^.*node$"
998
993
  resource_cls = Node
999
994
  resource_write_cls = NodeApply
1000
995
  list_cls = NodeList
@@ -1154,7 +1149,6 @@ class GraphQLCRUD(
1154
1149
  ]
1155
1150
  ):
1156
1151
  folder_name = "data_modeling"
1157
- filename_pattern = r"^.*GraphQLSchema"
1158
1152
  resource_cls = GraphQLDataModel
1159
1153
  resource_write_cls = GraphQLDataModelWrite
1160
1154
  list_cls = GraphQLDataModelList
@@ -1354,7 +1348,6 @@ class GraphQLCRUD(
1354
1348
  class EdgeCRUD(ResourceContainerCRUD[EdgeId, EdgeApply, Edge, EdgeApplyList, EdgeList]):
1355
1349
  item_name = "edges"
1356
1350
  folder_name = "data_modeling"
1357
- filename_pattern = r"^.*edge"
1358
1351
  resource_cls = Edge
1359
1352
  resource_write_cls = EdgeApply
1360
1353
  list_cls = EdgeList
@@ -65,7 +65,6 @@ class ExtractionPipelineCRUD(
65
65
  ResourceCRUD[str, ExtractionPipelineWrite, ExtractionPipeline, ExtractionPipelineWriteList, ExtractionPipelineList]
66
66
  ):
67
67
  folder_name = "extraction_pipelines"
68
- filename_pattern = r"^(?:(?!\.config).)*$" # Matches all yaml files except file names who's stem contain *.config.
69
68
  resource_cls = ExtractionPipeline
70
69
  resource_write_cls = ExtractionPipelineWrite
71
70
  list_cls = ExtractionPipelineList
@@ -223,7 +222,6 @@ class ExtractionPipelineConfigCRUD(
223
222
  ]
224
223
  ):
225
224
  folder_name = "extraction_pipelines"
226
- filename_pattern = r"^.*config$"
227
225
  resource_cls = ExtractionPipelineConfig
228
226
  resource_write_cls = ExtractionPipelineConfigWrite
229
227
  list_cls = ExtractionPipelineConfigList
@@ -33,7 +33,6 @@ from .group_scoped import GroupResourceScopedCRUD
33
33
  @final
34
34
  class InfieldV1CRUD(ResourceCRUD[str, APMConfigWrite, APMConfig, APMConfigWriteList, APMConfigList]):
35
35
  folder_name = "cdf_applications"
36
- filename_pattern = r"^.*\.InfieldV1$" # Matches all yaml files whose stem ends with '.InfieldV1'.
37
36
  filetypes = frozenset({"yaml", "yml"})
38
37
  resource_cls = APMConfig
39
38
  resource_write_cls = APMConfigWrite
@@ -253,7 +252,6 @@ class InFieldLocationConfigCRUD(
253
252
  ]
254
253
  ):
255
254
  folder_name = "cdf_applications"
256
- filename_pattern = r"^.*\.InFieldLocationConfig$"
257
255
  filetypes = frozenset({"yaml", "yml"})
258
256
  resource_cls = InfieldLocationConfig
259
257
  resource_write_cls = InfieldLocationConfig
@@ -62,10 +62,6 @@ class FileMetadataCRUD(
62
62
  ):
63
63
  item_name = "file contents"
64
64
  folder_name = "files"
65
- filename_pattern = (
66
- # Matches all yaml files except file names whose stem ends with `.CogniteFile` or `File`.
67
- r"(?i)^(?!.*(?:File|CogniteFile)$).*$"
68
- )
69
65
  resource_cls = FileMetadata
70
66
  resource_write_cls = FileMetadataWrite
71
67
  list_cls = FileMetadataList
@@ -209,7 +205,6 @@ class CogniteFileCRUD(
209
205
  template_pattern = "$FILENAME"
210
206
  item_name = "file contents"
211
207
  folder_name = "files"
212
- filename_pattern = r"^.*CogniteFile" # Matches all yaml files whose stem ends with 'CogniteFile'.
213
208
  kind = "CogniteFile"
214
209
  resource_cls = ExtendableCogniteFile
215
210
  resource_write_cls = ExtendableCogniteFileApply
@@ -59,9 +59,6 @@ from .group_scoped import GroupResourceScopedCRUD
59
59
  class FunctionCRUD(ResourceCRUD[str, FunctionWrite, Function, FunctionWriteList, FunctionList]):
60
60
  support_drop = True
61
61
  folder_name = "functions"
62
- filename_pattern = (
63
- r"^(?:(?!schedule).)*$" # Matches all yaml files except file names who's stem contain *.schedule.
64
- )
65
62
  resource_cls = Function
66
63
  resource_write_cls = FunctionWrite
67
64
  list_cls = FunctionList
@@ -432,7 +429,6 @@ class FunctionScheduleCRUD(
432
429
  ]
433
430
  ):
434
431
  folder_name = "functions"
435
- filename_pattern = r"^.*schedule.*$" # Matches all yaml files who's stem contain *.schedule
436
432
  resource_cls = FunctionSchedule
437
433
  resource_write_cls = FunctionScheduleWrite
438
434
  list_cls = FunctionSchedulesList
@@ -50,7 +50,6 @@ from .data_organization import DataSetsCRUD
50
50
 
51
51
  class HostedExtractorSourceCRUD(ResourceCRUD[str, SourceWrite, Source, SourceWriteList, SourceList]):
52
52
  folder_name = "hosted_extractors"
53
- filename_pattern = r".*\.Source$" # Matches all yaml files whose stem ends with '.Source'.
54
53
  resource_cls = Source
55
54
  resource_write_cls = SourceWrite
56
55
  list_cls = SourceList
@@ -155,7 +154,6 @@ class HostedExtractorDestinationCRUD(
155
154
  ResourceCRUD[str, DestinationWrite, Destination, DestinationWriteList, DestinationList]
156
155
  ):
157
156
  folder_name = "hosted_extractors"
158
- filename_pattern = r".*\.Destination$" # Matches all yaml files whose stem ends with '.Destination'.
159
157
  resource_cls = Destination
160
158
  resource_write_cls = DestinationWrite
161
159
  list_cls = DestinationList
@@ -256,7 +254,6 @@ class HostedExtractorDestinationCRUD(
256
254
 
257
255
  class HostedExtractorJobCRUD(ResourceCRUD[str, JobWrite, Job, JobWriteList, JobList]):
258
256
  folder_name = "hosted_extractors"
259
- filename_pattern = r".*\.Job$" # Matches all yaml files whose stem ends with '.Job'.
260
257
  resource_cls = Job
261
258
  resource_write_cls = JobWrite
262
259
  list_cls = JobList
@@ -337,7 +334,6 @@ class HostedExtractorJobCRUD(ResourceCRUD[str, JobWrite, Job, JobWriteList, JobL
337
334
 
338
335
  class HostedExtractorMappingCRUD(ResourceCRUD[str, MappingWrite, Mapping, MappingWriteList, MappingList]):
339
336
  folder_name = "hosted_extractors"
340
- filename_pattern = r".*\.Mapping$" # Matches all yaml files whose stem ends with '.Mapping'.
341
337
  resource_cls = Mapping
342
338
  resource_write_cls = MappingWrite
343
339
  list_cls = MappingList
@@ -36,7 +36,6 @@ from .data_organization import DataSetsCRUD
36
36
  @final
37
37
  class StreamlitCRUD(ResourceCRUD[str, StreamlitWrite, Streamlit, StreamlitWriteList, StreamlitList]):
38
38
  folder_name = "streamlit"
39
- filename_pattern = r".*streamlit$"
40
39
  resource_cls = Streamlit
41
40
  resource_write_cls = StreamlitWrite
42
41
  list_cls = StreamlitList
@@ -32,7 +32,6 @@ class LocationFilterCRUD(
32
32
  ResourceCRUD[str, LocationFilterWrite, LocationFilter, LocationFilterWriteList, LocationFilterList]
33
33
  ):
34
34
  folder_name = "locations"
35
- filename_pattern = r"^.*LocationFilter$"
36
35
  resource_cls = LocationFilter
37
36
  resource_write_cls = LocationFilterWrite
38
37
  list_cls = LocationFilterList
@@ -23,9 +23,6 @@ class ResourceViewMappingCRUD(
23
23
  ResourceCRUD[str, ResourceViewMappingApply, ResourceViewMapping, NodeApplyList, NodeList[ResourceViewMapping]]
24
24
  ):
25
25
  folder_name = "migration"
26
- filename_pattern = (
27
- r"^.*\.ResourceViewMapping$" # Matches all yaml files whose stem ends with '.ResourceViewMapping$'.
28
- )
29
26
  filetypes = frozenset({"yaml", "yml"})
30
27
  resource_cls = ResourceViewMapping
31
28
  resource_write_cls = ResourceViewMappingApply
@@ -40,7 +40,6 @@ from .auth import GroupAllScopedCRUD
40
40
  class RawDatabaseCRUD(ResourceContainerCRUD[RawDatabase, RawDatabase, RawDatabase, RawDatabaseList, RawDatabaseList]):
41
41
  item_name = "raw tables"
42
42
  folder_name = "raw"
43
- filename_pattern = r"^(?!.*Table$).*$"
44
43
  resource_cls = RawDatabase
45
44
  resource_write_cls = RawDatabase
46
45
  list_cls = RawDatabaseList
@@ -154,7 +153,6 @@ class RawDatabaseCRUD(ResourceContainerCRUD[RawDatabase, RawDatabase, RawDatabas
154
153
  class RawTableCRUD(ResourceContainerCRUD[RawTable, RawTable, RawTable, RawTableList, RawTableList]):
155
154
  item_name = "raw rows"
156
155
  folder_name = "raw"
157
- filename_pattern = r"^(?!.*Database$).*$"
158
156
  resource_cls = RawTable
159
157
  resource_write_cls = RawTable
160
158
  list_cls = RawTableList
@@ -24,7 +24,6 @@ from .timeseries import TimeSeriesCRUD
24
24
  @final
25
25
  class RelationshipCRUD(ResourceCRUD[str, RelationshipWrite, Relationship, RelationshipWriteList, RelationshipList]):
26
26
  folder_name = "classic"
27
- filename_pattern = r"^.*\.Relationship$" # Matches all yaml files whose stem ends with '.Asset'.
28
27
  filetypes = frozenset({"yaml", "yml"})
29
28
  resource_cls = Relationship
30
29
  resource_write_cls = RelationshipWrite
@@ -44,7 +44,6 @@ from cognite_toolkit._cdf_tk.utils.diff_list import diff_list_hashable
44
44
 
45
45
  class RoboticFrameCRUD(ResourceCRUD[str, FrameWrite, Frame, FrameWriteList, FrameList]):
46
46
  folder_name = "robotics"
47
- filename_pattern = r"^.*\.Frame$" # Matches all yaml files whose stem ends with '.Frame'.
48
47
  resource_cls = Frame
49
48
  resource_write_cls = FrameWrite
50
49
  list_cls = FrameList
@@ -112,7 +111,6 @@ class RoboticFrameCRUD(ResourceCRUD[str, FrameWrite, Frame, FrameWriteList, Fram
112
111
 
113
112
  class RoboticLocationCRUD(ResourceCRUD[str, LocationWrite, Location, LocationWriteList, LocationList]):
114
113
  folder_name = "robotics"
115
- filename_pattern = r"^.*\.Location$" # Matches all yaml files whose stem ends with '.Location'.
116
114
  resource_cls = Location
117
115
  resource_write_cls = LocationWrite
118
116
  list_cls = LocationList
@@ -187,7 +185,6 @@ class RoboticsDataPostProcessingCRUD(
187
185
  ResourceCRUD[str, DataPostProcessingWrite, DataPostProcessing, DataPostProcessingWriteList, DataPostProcessingList]
188
186
  ):
189
187
  folder_name = "robotics"
190
- filename_pattern = r"^.*\.DataPostProcessing$" # Matches all yaml files whose stem ends with '.DataPostProcessing'.
191
188
  resource_cls = DataPostProcessing
192
189
  resource_write_cls = DataPostProcessingWrite
193
190
  list_cls = DataPostProcessingList
@@ -281,7 +278,6 @@ class RobotCapabilityCRUD(
281
278
  ResourceCRUD[str, RobotCapabilityWrite, RobotCapability, RobotCapabilityWriteList, RobotCapabilityList]
282
279
  ):
283
280
  folder_name = "robotics"
284
- filename_pattern = r"^.*\.RobotCapability$" # Matches all yaml files whose stem ends with '.RobotCapability'.
285
281
  resource_cls = RobotCapability
286
282
  resource_write_cls = RobotCapabilityWrite
287
283
  list_cls = RobotCapabilityList
@@ -376,7 +372,6 @@ class RobotCapabilityCRUD(
376
372
 
377
373
  class RoboticMapCRUD(ResourceCRUD[str, MapWrite, Map, MapWriteList, MapList]):
378
374
  folder_name = "robotics"
379
- filename_pattern = r"^.*\.Map$" # Matches all yaml files whose stem ends with '.Map'.
380
375
  resource_cls = Map
381
376
  resource_write_cls = MapWrite
382
377
  list_cls = MapList
@@ -20,7 +20,6 @@ from .datamodel import ContainerCRUD
20
20
  @final
21
21
  class StreamCRUD(ResourceCRUD[str, StreamRequest, StreamResponse, StreamRequestList, StreamResponseList]):
22
22
  folder_name = "streams"
23
- filename_pattern = r"^.*\.Streams$"
24
23
  filetypes = frozenset({"yaml", "yml"})
25
24
  resource_cls = StreamResponse
26
25
  resource_write_cls = StreamRequest
@@ -22,7 +22,6 @@ from .data_organization import DataSetsCRUD
22
22
  @final
23
23
  class ThreeDModelCRUD(ResourceContainerCRUD[str, ThreeDModelWrite, ThreeDModel, ThreeDModelWriteList, ThreeDModelList]):
24
24
  folder_name = "3dmodels"
25
- filename_pattern = r"^.*\.3DModel$" # Matches all yaml files whose stem ends with '.3DModel'.
26
25
  resource_cls = ThreeDModel
27
26
  resource_write_cls = ThreeDModelWrite
28
27
  list_cls = ThreeDModelList
@@ -46,7 +46,6 @@ from .data_organization import DataSetsCRUD
46
46
  class TimeSeriesCRUD(ResourceContainerCRUD[str, TimeSeriesWrite, TimeSeries, TimeSeriesWriteList, TimeSeriesList]):
47
47
  item_name = "datapoints"
48
48
  folder_name = "timeseries"
49
- filename_pattern = r"^(?!.*DatapointSubscription$).*"
50
49
  resource_cls = TimeSeries
51
50
  resource_write_cls = TimeSeriesWrite
52
51
  list_cls = TimeSeriesList
@@ -187,7 +186,6 @@ class DatapointSubscriptionCRUD(
187
186
  ]
188
187
  ):
189
188
  folder_name = "timeseries"
190
- filename_pattern = r"^.*DatapointSubscription$" # Matches all yaml files who end with *DatapointSubscription.
191
189
  resource_cls = DatapointSubscription
192
190
  resource_write_cls = DataPointSubscriptionWrite
193
191
  list_cls = DatapointSubscriptionList
@@ -107,10 +107,6 @@ class TransformationCRUD(
107
107
  ResourceCRUD[str, TransformationWrite, Transformation, TransformationWriteList, TransformationList]
108
108
  ):
109
109
  folder_name = "transformations"
110
- filename_pattern = (
111
- # Matches all yaml files except file names whose stem contain *.schedule. or .Notification
112
- r"^(?!.*schedule.*|.*\.notification$).*$"
113
- )
114
110
  resource_cls = Transformation
115
111
  resource_write_cls = TransformationWrite
116
112
  list_cls = TransformationList
@@ -519,8 +515,6 @@ class TransformationScheduleCRUD(
519
515
  ]
520
516
  ):
521
517
  folder_name = "transformations"
522
- # Matches all yaml files whose stem contains *schedule or *TransformationSchedule.
523
- filename_pattern = r"^.*schedule$"
524
518
  resource_cls = TransformationSchedule
525
519
  resource_write_cls = TransformationScheduleWrite
526
520
  list_cls = TransformationScheduleList
@@ -617,8 +611,6 @@ class TransformationNotificationCRUD(
617
611
  ]
618
612
  ):
619
613
  folder_name = "transformations"
620
- # Matches all yaml files whose stem ends with *Notification.
621
- filename_pattern = r"^.*Notification$"
622
614
  resource_cls = TransformationNotification
623
615
  resource_write_cls = TransformationNotificationWrite
624
616
  list_cls = TransformationNotificationList
@@ -77,7 +77,6 @@ from .transformation import TransformationCRUD
77
77
  @final
78
78
  class WorkflowCRUD(ResourceCRUD[str, WorkflowUpsert, Workflow, WorkflowUpsertList, WorkflowList]):
79
79
  folder_name = "workflows"
80
- filename_pattern = r"^.*Workflow$"
81
80
  resource_cls = Workflow
82
81
  resource_write_cls = WorkflowUpsert
83
82
  list_cls = WorkflowList
@@ -198,7 +197,6 @@ class WorkflowVersionCRUD(
198
197
  ]
199
198
  ):
200
199
  folder_name = "workflows"
201
- filename_pattern = r"^.*WorkflowVersion$"
202
200
  resource_cls = WorkflowVersion
203
201
  resource_write_cls = WorkflowVersionUpsert
204
202
  list_cls = WorkflowVersionList
@@ -471,7 +469,6 @@ class WorkflowTriggerCRUD(
471
469
  ResourceCRUD[str, WorkflowTriggerUpsert, WorkflowTrigger, WorkflowTriggerUpsertList, WorkflowTriggerList]
472
470
  ):
473
471
  folder_name = "workflows"
474
- filename_pattern = r"^.*WorkflowTrigger$"
475
472
  resource_cls = WorkflowTrigger
476
473
  resource_write_cls = WorkflowTriggerUpsert
477
474
  list_cls = WorkflowTriggerList
@@ -3,8 +3,8 @@ from cognite_toolkit._cdf_tk.utils._auxiliary import get_concrete_subclasses
3
3
  from ._annotations import AnnotationIO
4
4
  from ._applications import CanvasIO, ChartIO
5
5
  from ._asset_centric import (
6
+ AssetCentricIO,
6
7
  AssetIO,
7
- BaseAssetCentricIO,
8
8
  EventIO,
9
9
  FileMetadataIO,
10
10
  HierarchyIO,
@@ -42,8 +42,8 @@ def get_upload_io(selector_cls: type[DataSelector]) -> type[UploadableStorageIO]
42
42
 
43
43
  __all__ = [
44
44
  "AnnotationIO",
45
+ "AssetCentricIO",
45
46
  "AssetIO",
46
- "BaseAssetCentricIO",
47
47
  "CanvasIO",
48
48
  "ChartIO",
49
49
  "ConfigurableStorageIO",
@@ -1,6 +1,6 @@
1
1
  from abc import ABC, abstractmethod
2
2
  from collections import defaultdict
3
- from collections.abc import Iterable, MutableSequence, Sequence
3
+ from collections.abc import Iterable, Sequence
4
4
  from typing import Any, ClassVar, Generic
5
5
 
6
6
  from cognite.client.data_classes import (
@@ -8,26 +8,16 @@ from cognite.client.data_classes import (
8
8
  Asset,
9
9
  AssetList,
10
10
  AssetWrite,
11
- AssetWriteList,
12
11
  Event,
13
12
  EventList,
14
13
  EventWrite,
15
- EventWriteList,
16
14
  FileMetadata,
17
15
  FileMetadataList,
18
- FileMetadataWrite,
19
- FileMetadataWriteList,
20
16
  Label,
21
17
  LabelDefinition,
22
18
  TimeSeries,
23
19
  TimeSeriesList,
24
20
  TimeSeriesWrite,
25
- TimeSeriesWriteList,
26
- )
27
- from cognite.client.data_classes._base import (
28
- T_CogniteResourceList,
29
- T_WritableCogniteResource,
30
- T_WriteClass,
31
21
  )
32
22
 
33
23
  from cognite_toolkit._cdf_tk.client import ToolkitClient
@@ -40,6 +30,7 @@ from cognite_toolkit._cdf_tk.cruds import (
40
30
  TimeSeriesCRUD,
41
31
  )
42
32
  from cognite_toolkit._cdf_tk.exceptions import ToolkitMissingResourceError, ToolkitNotImplementedError
33
+ from cognite_toolkit._cdf_tk.protocols import T_ResourceRequest, T_ResourceResponse
43
34
  from cognite_toolkit._cdf_tk.utils.aggregators import (
44
35
  AssetAggregator,
45
36
  AssetCentricAggregator,
@@ -50,17 +41,10 @@ from cognite_toolkit._cdf_tk.utils.aggregators import (
50
41
  from cognite_toolkit._cdf_tk.utils.cdf import metadata_key_counts
51
42
  from cognite_toolkit._cdf_tk.utils.fileio import FileReader, SchemaColumn
52
43
  from cognite_toolkit._cdf_tk.utils.fileio._readers import TableReader
53
- from cognite_toolkit._cdf_tk.utils.http_client import (
54
- HTTPClient,
55
- HTTPMessage,
56
- SimpleBodyRequest,
57
- )
58
44
  from cognite_toolkit._cdf_tk.utils.useful_types import (
59
- T_ID,
60
45
  AssetCentricResource,
61
46
  AssetCentricType,
62
47
  JsonVal,
63
- T_WritableCogniteResourceList,
64
48
  )
65
49
 
66
50
  from ._base import (
@@ -74,11 +58,10 @@ from ._base import (
74
58
  from .selectors import AssetCentricSelector, AssetSubtreeSelector, DataSetSelector
75
59
 
76
60
 
77
- class BaseAssetCentricIO(
78
- Generic[T_ID, T_WriteClass, T_WritableCogniteResource, T_CogniteResourceList, T_WritableCogniteResourceList],
79
- TableStorageIO[AssetCentricSelector, T_WritableCogniteResource],
80
- ConfigurableStorageIO[AssetCentricSelector, T_WritableCogniteResource],
81
- TableUploadableStorageIO[AssetCentricSelector, T_WritableCogniteResource, T_WriteClass],
61
+ class AssetCentricIO(
62
+ Generic[T_ResourceResponse],
63
+ TableStorageIO[AssetCentricSelector, T_ResourceResponse],
64
+ ConfigurableStorageIO[AssetCentricSelector, T_ResourceResponse],
82
65
  ABC,
83
66
  ):
84
67
  RESOURCE_TYPE: ClassVar[AssetCentricType]
@@ -96,7 +79,7 @@ class BaseAssetCentricIO(
96
79
  raise NotImplementedError()
97
80
 
98
81
  @abstractmethod
99
- def retrieve(self, ids: Sequence[int]) -> T_WritableCogniteResourceList:
82
+ def retrieve(self, ids: Sequence[int]) -> Sequence[T_ResourceResponse]:
100
83
  raise NotImplementedError()
101
84
 
102
85
  def count(self, selector: AssetCentricSelector) -> int | None:
@@ -182,6 +165,26 @@ class BaseAssetCentricIO(
182
165
  asset_ids.update(item.asset_ids or [])
183
166
  self.client.lookup.assets.external_id(list(asset_ids))
184
167
 
168
+ def data_to_row(
169
+ self, data_chunk: Sequence[T_ResourceResponse], selector: AssetCentricSelector | None = None
170
+ ) -> list[dict[str, JsonVal]]:
171
+ rows: list[dict[str, JsonVal]] = []
172
+ for chunk in self.data_to_json_chunk(data_chunk, selector):
173
+ if "metadata" in chunk and isinstance(chunk["metadata"], dict):
174
+ metadata = chunk.pop("metadata")
175
+ # MyPy does understand that metadata is a dict here due to the check above.
176
+ for key, value in metadata.items(): # type: ignore[union-attr]
177
+ chunk[f"metadata.{key}"] = value
178
+ rows.append(chunk)
179
+ return rows
180
+
181
+
182
+ class UploadableAssetCentricIO(
183
+ Generic[T_ResourceResponse, T_ResourceRequest],
184
+ AssetCentricIO[T_ResourceResponse],
185
+ TableUploadableStorageIO[AssetCentricSelector, T_ResourceResponse, T_ResourceRequest],
186
+ ABC,
187
+ ):
185
188
  def _populate_data_set_external_id_cache(self, chunk: Sequence[dict[str, Any]]) -> None:
186
189
  data_set_external_ids: set[str] = set()
187
190
  for item in chunk:
@@ -216,22 +219,9 @@ class BaseAssetCentricIO(
216
219
  security_category_names.add(security_category_external_id)
217
220
  self.client.lookup.security_categories.id(list(security_category_names))
218
221
 
219
- def data_to_row(
220
- self, data_chunk: Sequence[T_WritableCogniteResource], selector: AssetCentricSelector | None = None
221
- ) -> list[dict[str, JsonVal]]:
222
- rows: list[dict[str, JsonVal]] = []
223
- for chunk in self.data_to_json_chunk(data_chunk, selector):
224
- if "metadata" in chunk and isinstance(chunk["metadata"], dict):
225
- metadata = chunk.pop("metadata")
226
- # MyPy does understand that metadata is a dict here due to the check above.
227
- for key, value in metadata.items(): # type: ignore[union-attr]
228
- chunk[f"metadata.{key}"] = value
229
- rows.append(chunk)
230
- return rows
231
-
232
222
  def row_to_resource(
233
223
  self, source_id: str, row: dict[str, JsonVal], selector: AssetCentricSelector | None = None
234
- ) -> T_WriteClass:
224
+ ) -> T_ResourceRequest:
235
225
  metadata: dict[str, JsonVal] = {}
236
226
  cleaned_row: dict[str, JsonVal] = {}
237
227
  for key, value in row.items():
@@ -245,7 +235,7 @@ class BaseAssetCentricIO(
245
235
  return self.json_to_resource(cleaned_row)
246
236
 
247
237
 
248
- class AssetIO(BaseAssetCentricIO[str, AssetWrite, Asset, AssetWriteList, AssetList]):
238
+ class AssetIO(UploadableAssetCentricIO[Asset, AssetWrite]):
249
239
  KIND = "Assets"
250
240
  RESOURCE_TYPE = "asset"
251
241
  SUPPORTED_DOWNLOAD_FORMATS = frozenset({".parquet", ".csv", ".ndjson"})
@@ -371,7 +361,7 @@ class AssetIO(BaseAssetCentricIO[str, AssetWrite, Asset, AssetWriteList, AssetLi
371
361
  current_depth += 1
372
362
 
373
363
 
374
- class FileMetadataIO(BaseAssetCentricIO[str, FileMetadataWrite, FileMetadata, FileMetadataWriteList, FileMetadataList]):
364
+ class FileMetadataIO(AssetCentricIO[FileMetadata]):
375
365
  KIND = "FileMetadata"
376
366
  RESOURCE_TYPE = "file"
377
367
  SUPPORTED_DOWNLOAD_FORMATS = frozenset({".parquet", ".csv", ".ndjson"})
@@ -426,7 +416,7 @@ class FileMetadataIO(BaseAssetCentricIO[str, FileMetadataWrite, FileMetadata, Fi
426
416
  ]
427
417
  return file_schema + metadata_schema
428
418
 
429
- def stream_data(self, selector: AssetCentricSelector, limit: int | None = None) -> Iterable[Page]:
419
+ def stream_data(self, selector: AssetCentricSelector, limit: int | None = None) -> Iterable[Page[FileMetadata]]:
430
420
  asset_subtree_external_ids, data_set_external_ids = self._get_hierarchy_dataset_pair(selector)
431
421
  for file_list in self.client.files(
432
422
  chunk_size=self.CHUNK_SIZE,
@@ -437,28 +427,6 @@ class FileMetadataIO(BaseAssetCentricIO[str, FileMetadataWrite, FileMetadata, Fi
437
427
  self._collect_dependencies(file_list, selector)
438
428
  yield Page(worker_id="main", items=file_list)
439
429
 
440
- def upload_items(
441
- self,
442
- data_chunk: Sequence[UploadItem[FileMetadataWrite]],
443
- http_client: HTTPClient,
444
- selector: AssetCentricSelector | None = None,
445
- ) -> Sequence[HTTPMessage]:
446
- # The /files endpoint only supports creating one file at a time, so we override the default chunked
447
- # upload behavior to upload one by one.
448
- config = http_client.config
449
- results: MutableSequence[HTTPMessage] = []
450
- for item in data_chunk:
451
- responses = http_client.request_with_retries(
452
- message=SimpleBodyRequest(
453
- endpoint_url=config.create_api_url(self.UPLOAD_ENDPOINT),
454
- method="POST",
455
- # MyPy does not understand that .dump is valid json
456
- body_content=item.dump(), # type: ignore[arg-type]
457
- )
458
- )
459
- results.extend(responses.as_item_responses(item.as_id()))
460
- return results
461
-
462
430
  def retrieve(self, ids: Sequence[int]) -> FileMetadataList:
463
431
  return self.client.files.retrieve_multiple(ids)
464
432
 
@@ -473,20 +441,8 @@ class FileMetadataIO(BaseAssetCentricIO[str, FileMetadataWrite, FileMetadata, Fi
473
441
 
474
442
  return [self._crud.dump_resource(item) for item in data_chunk]
475
443
 
476
- def json_chunk_to_data(
477
- self, data_chunk: list[tuple[str, dict[str, JsonVal]]]
478
- ) -> Sequence[UploadItem[FileMetadataWrite]]:
479
- chunks = [item_json for _, item_json in data_chunk]
480
- self._populate_asset_external_ids_cache(chunks)
481
- self._populate_data_set_external_id_cache(chunks)
482
- self._populate_security_category_name_cache(chunks)
483
- return super().json_chunk_to_data(data_chunk)
484
-
485
- def json_to_resource(self, item_json: dict[str, JsonVal]) -> FileMetadataWrite:
486
- return self._crud.load_resource(item_json)
487
-
488
444
 
489
- class TimeSeriesIO(BaseAssetCentricIO[str, TimeSeriesWrite, TimeSeries, TimeSeriesWriteList, TimeSeriesList]):
445
+ class TimeSeriesIO(UploadableAssetCentricIO[TimeSeries, TimeSeriesWrite]):
490
446
  KIND = "TimeSeries"
491
447
  SUPPORTED_DOWNLOAD_FORMATS = frozenset({".parquet", ".csv", ".ndjson"})
492
448
  SUPPORTED_COMPRESSIONS = frozenset({".gz"})
@@ -579,7 +535,7 @@ class TimeSeriesIO(BaseAssetCentricIO[str, TimeSeriesWrite, TimeSeries, TimeSeri
579
535
  return ts_schema + metadata_schema
580
536
 
581
537
 
582
- class EventIO(BaseAssetCentricIO[str, EventWrite, Event, EventWriteList, EventList]):
538
+ class EventIO(UploadableAssetCentricIO[Event, EventWrite]):
583
539
  KIND = "Events"
584
540
  SUPPORTED_DOWNLOAD_FORMATS = frozenset({".parquet", ".csv", ".ndjson"})
585
541
  SUPPORTED_COMPRESSIONS = frozenset({".gz"})
@@ -679,7 +635,7 @@ class HierarchyIO(ConfigurableStorageIO[AssetCentricSelector, AssetCentricResour
679
635
  self._file_io = FileMetadataIO(client)
680
636
  self._timeseries_io = TimeSeriesIO(client)
681
637
  self._event_io = EventIO(client)
682
- self._io_by_kind: dict[str, BaseAssetCentricIO] = {
638
+ self._io_by_kind: dict[str, AssetCentricIO] = {
683
639
  self._asset_io.KIND: self._asset_io,
684
640
  self._file_io.KIND: self._file_io,
685
641
  self._timeseries_io.KIND: self._timeseries_io,
@@ -687,7 +643,7 @@ class HierarchyIO(ConfigurableStorageIO[AssetCentricSelector, AssetCentricResour
687
643
  }
688
644
 
689
645
  def as_id(self, item: AssetCentricResource) -> str:
690
- return item.external_id or BaseAssetCentricIO.create_internal_identifier(item.id, self.client.config.project)
646
+ return item.external_id or AssetCentricIO.create_internal_identifier(item.id, self.client.config.project)
691
647
 
692
648
  def stream_data(
693
649
  self, selector: AssetCentricSelector, limit: int | None = None
@@ -707,5 +663,5 @@ class HierarchyIO(ConfigurableStorageIO[AssetCentricSelector, AssetCentricResour
707
663
  def configurations(self, selector: AssetCentricSelector) -> Iterable[StorageIOConfig]:
708
664
  yield from self.get_resource_io(selector.kind).configurations(selector)
709
665
 
710
- def get_resource_io(self, kind: str) -> BaseAssetCentricIO:
666
+ def get_resource_io(self, kind: str) -> AssetCentricIO:
711
667
  return self._io_by_kind[kind]
@@ -1,4 +1,5 @@
1
1
  from collections.abc import Iterable, Sequence
2
+ from itertools import chain
2
3
  from uuid import uuid4
3
4
 
4
5
  from cognite.client.data_classes import Row, RowWrite
@@ -6,6 +7,8 @@ from cognite.client.data_classes import Row, RowWrite
6
7
  from cognite_toolkit._cdf_tk.cruds import RawDatabaseCRUD, RawTableCRUD
7
8
  from cognite_toolkit._cdf_tk.exceptions import ToolkitValueError
8
9
  from cognite_toolkit._cdf_tk.utils import sanitize_filename
10
+ from cognite_toolkit._cdf_tk.utils.collection import chunker
11
+ from cognite_toolkit._cdf_tk.utils.fileio import MultiFileReader
9
12
  from cognite_toolkit._cdf_tk.utils.http_client import HTTPClient, HTTPMessage, ItemsRequest
10
13
  from cognite_toolkit._cdf_tk.utils.useful_types import JsonVal
11
14
 
@@ -96,3 +99,26 @@ class RawIO(
96
99
  if selector is not None and selector.key is not None and selector.key in row:
97
100
  key = str(row.pop(selector.key))
98
101
  return RowWrite(key=key, columns=row)
102
+
103
+ @classmethod
104
+ def read_chunks(
105
+ cls, reader: MultiFileReader, selector: RawTableSelector
106
+ ) -> Iterable[list[tuple[str, dict[str, JsonVal]]]]:
107
+ if not reader.is_table or selector.key is None:
108
+ yield from super().read_chunks(reader, selector)
109
+ return
110
+ data_name = "row" if reader.is_table else "line"
111
+ # Validate that the key exists in all files
112
+ for input_file in sorted(reader.input_files, key=reader._part_no):
113
+ iterable = reader.reader_class(input_file).read_chunks()
114
+ try:
115
+ first = next(iterable)
116
+ except StopIteration:
117
+ continue
118
+ if selector.key not in first:
119
+ raise ToolkitValueError(
120
+ f"Column '{selector.key}' not found in file {input_file.as_posix()!r}. Please ensure the specified column exists."
121
+ )
122
+ full_iterator = chain([first], iterable)
123
+ line_numbered_iterator = ((f"{data_name} {i}", row) for i, row in enumerate(full_iterator, start=1))
124
+ yield from chunker(line_numbered_iterator, cls.CHUNK_SIZE)
@@ -12,7 +12,7 @@ jobs:
12
12
  environment: dev
13
13
  name: Deploy
14
14
  container:
15
- image: cognite/toolkit:0.7.7
15
+ image: cognite/toolkit:0.7.9
16
16
  env:
17
17
  CDF_CLUSTER: ${{ vars.CDF_CLUSTER }}
18
18
  CDF_PROJECT: ${{ vars.CDF_PROJECT }}
@@ -10,7 +10,7 @@ jobs:
10
10
  environment: dev
11
11
  name: Deploy Dry Run
12
12
  container:
13
- image: cognite/toolkit:0.7.7
13
+ image: cognite/toolkit:0.7.9
14
14
  env:
15
15
  CDF_CLUSTER: ${{ vars.CDF_CLUSTER }}
16
16
  CDF_PROJECT: ${{ vars.CDF_PROJECT }}
@@ -4,7 +4,7 @@ default_env = "<DEFAULT_ENV_PLACEHOLDER>"
4
4
  [modules]
5
5
  # This is the version of the modules. It should not be changed manually.
6
6
  # It will be updated by the 'cdf modules upgrade' command.
7
- version = "0.7.7"
7
+ version = "0.7.9"
8
8
 
9
9
 
10
10
  [plugins]
@@ -1 +1 @@
1
- __version__ = "0.7.7"
1
+ __version__ = "0.7.9"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cognite_toolkit
3
- Version: 0.7.7
3
+ Version: 0.7.9
4
4
  Summary: Official Cognite Data Fusion tool for project templates and configuration deployment
5
5
  Project-URL: Homepage, https://docs.cognite.com/cdf/deploy/cdf_toolkit/
6
6
  Project-URL: Changelog, https://github.com/cognitedata/toolkit/releases
@@ -1,6 +1,6 @@
1
1
  cognite_toolkit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  cognite_toolkit/_cdf.py,sha256=PzDig6dgbDX5VL88AeijQuTeYb2SS_yvenw9gr4fnxY,5794
3
- cognite_toolkit/_version.py,sha256=eOm8myGPtPLNpkuxL0xhVmstPQbwXv3Ok7FbH0re-TA,22
3
+ cognite_toolkit/_version.py,sha256=Plj3sh67uLqQt2X1uejJ0B3ggLdj4Fr1HPHcgyqtneU,22
4
4
  cognite_toolkit/_cdf_tk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  cognite_toolkit/_cdf_tk/cdf_toml.py,sha256=VSWV9h44HusWIaKpWgjrOMrc3hDoPTTXBXlp6-NOrIM,9079
6
6
  cognite_toolkit/_cdf_tk/constants.py,sha256=TplKm2J9pGRHq7nAnLI0caTMHetS04OIz3hfq-jvGzo,7236
@@ -140,33 +140,33 @@ cognite_toolkit/_cdf_tk/commands/_migrate/migration_io.py,sha256=wrdBH5P6NgiZQSY
140
140
  cognite_toolkit/_cdf_tk/commands/_migrate/prepare.py,sha256=RfqaNoso5CyBwc-p6ckwcYqBfZXKhdJgdGIyd0TATaI,2635
141
141
  cognite_toolkit/_cdf_tk/commands/_migrate/selectors.py,sha256=N1H_-rBpPUD6pbrlcofn1uEK1bA694EUXEe1zIXeqyo,2489
142
142
  cognite_toolkit/_cdf_tk/cruds/__init__.py,sha256=Qxb_Vjv6maJePvO7hunUAtUqXIXW3vi1-hLoWQVs__4,6551
143
- cognite_toolkit/_cdf_tk/cruds/_base_cruds.py,sha256=DmdgY5rSKDZuuFvoBEE7FG0X-7fY5qWwjskzFqwA6qg,19371
144
- cognite_toolkit/_cdf_tk/cruds/_data_cruds.py,sha256=PacTXdXaw0sf38tM6_DgNXVYdZXf_J90ZUeLk5v2VRg,9071
143
+ cognite_toolkit/_cdf_tk/cruds/_base_cruds.py,sha256=q8QmRksWzYqZLLCQxrju90QPsUtsWzTDIS1mCe1tY-k,19094
144
+ cognite_toolkit/_cdf_tk/cruds/_data_cruds.py,sha256=DesFye8zkOM83GyehmFtVala8lH2mq-o9y7iG96S7Lk,8938
145
145
  cognite_toolkit/_cdf_tk/cruds/_worker.py,sha256=XdLm6DMFln9DqDgEbeqzepw9WRSXx7WdChbDtmOc89Q,9358
146
146
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/__init__.py,sha256=gSbQHXTgbkguEc2kFckgt13JVO5GXol_JXT2LW4T5o0,2879
147
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/agent.py,sha256=yB6t-ZL6XtcneWE_njIZcVVZtcvKu9yaFsysLnsHJUc,5317
148
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/auth.py,sha256=iGG2_btpEqip3o6OKpcKfrh5IljOH9NbrJcGBKX0bn4,24971
149
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/classic.py,sha256=7RdiWvh6MLI1lLmt3gcqDQj61xbwREhsvoyjFuJn2F0,26402
150
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py,sha256=KrL7bj8q5q18mGB2V-NDkW5U5nfseZOyorXiUbp2uLw,6100
151
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/data_organization.py,sha256=iXn9iAtwA8mhH-7j9GF-MlLomTcaw3GhEbFY28Wx0iA,9927
152
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py,sha256=46bhUnD7162SsVTZkAlnIBs3D7_GU1p-eK9R7Z7Y9cc,65932
153
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/extraction_pipeline.py,sha256=zv36HPO9goRmU3NM_i1wOvWQEdsgpQTI4bcAl-eis1g,18232
154
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py,sha256=SnQMbxiZ3SSYkTLXQ_vIu2HVf_WyD1jplNRJuoeOUfA,16723
155
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py,sha256=F3n2FOWAPder4z3OTYs81VB-6C6r3oUzJsHvigdhaD0,15500
156
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/function.py,sha256=i6ZHeGahCy5G-sV4kXpwZu9uDcT2f9R7CXF1-pffajg,28964
147
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/agent.py,sha256=rEskoeo-qFV3GXZtYtbcmtFe2tMqm9kPtksNAtzOnzc,5223
148
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/auth.py,sha256=PpiY61mUf3HP6g0wCriYMdQ-k1ET9xOcbP9mFl-3c_I,24805
149
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/classic.py,sha256=anxEsLjevFaNTbYxRes3NxfjK_6OhNwFoA-e1NYhHuU,26127
150
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py,sha256=-OvpPBo9SzFGn4X_k8W2tpjQr5Omif1BYuLiV_BTX2Y,6057
151
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/data_organization.py,sha256=xbOZzAedaue6BRwvnDVfsAo__jdwR2_r0xdAfxW9MWs,9836
152
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py,sha256=kQ69UEvsBwILeVz-shQOoACiLm37Jd6RkeDvnGSxb94,65669
153
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/extraction_pipeline.py,sha256=0ZsmkWkT9wt60NWQnRtLfPWj5b4WhC7GwKIbkKt9vWw,18075
154
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py,sha256=8iu-5SwadrLgU65HgAyL0b6bivBIiHJIDaJtTwv7RKM,16566
155
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py,sha256=1DnwTbcet53Y1k32z3yVCElmhofRutNwU6sw7RJ0Oo8,15221
156
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/function.py,sha256=ZAnpR9WkwEfxozPWnT7zEJS1HNOy30qnmSftsMJmrH4,28729
157
157
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/group_scoped.py,sha256=WEg8-CxMP64WfE_XXIlH114zM51K0uLaYa4atd992zI,1690
158
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/hosted_extractors.py,sha256=7y2ffuLjUAafGIXfZqqRkXopQKemmFr_IPi_lD4k-fo,15434
159
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/industrial_tool.py,sha256=x_hHlFZ1AURmixRKltWQ680JgrEr6CswMFyaG3N-fnk,8011
160
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/location.py,sha256=NWbL4JopbHWV-ydnTxYiFqULnyxd6mwnT0Hs4q441Gw,12522
161
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/migration.py,sha256=BPjlYYwU31DSKe0cs24hhYv4UCTHJ87mDSfmQDI_S2o,4744
162
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/raw.py,sha256=8Ojq7MpatpsiYRD0IzlljMFHTbNP3Iwv_OToxggNcNQ,12341
163
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/relationship.py,sha256=eXfMaUL7AIpvTBxTPgDn23oMLtrvNdYjrKWLGmuuzQc,6427
164
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/robotics.py,sha256=dG45TvMcmpwV6OyHAtkaJVEHegOxs2NBBe3a5aui9Bw,17209
165
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py,sha256=-vFcurvfoWZJLBXla7qmMFAtu81Nbcerx2IoizDC7EQ,3266
166
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/three_d_model.py,sha256=YmzIQp1cjU6ttqmwwDfU9wXFkKaW5ZuypdEu-LZsOXY,7545
167
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py,sha256=VUvg6geF8d7N6PY1kMXs6v2xbWReiSbbRhQNqlAlhUM,23518
168
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py,sha256=omaeqM5SKsG-WFyXg2WxaAq3EKifZOYXAYTf5j376Fw,34869
169
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/workflow.py,sha256=OMHOxFY2ZLi0RTw0LmE_dTeOmFUh9LDIEDykyiCOCIw,26773
158
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/hosted_extractors.py,sha256=Ocmal95AwgVgu18lF7bgKrmQ7SawW_G6-dwG34G7S1U,15044
159
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/industrial_tool.py,sha256=yRWMHSc6oiTNvLkhDogN_SaJ6HxA9MmLVX9ifnQAWsc,7972
160
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/location.py,sha256=lH-Zcdoyz7psRsL-upXeLHa34SLlZSLdxf3s-Hzuafw,12477
161
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/migration.py,sha256=h3IZPINPsBcP_Hw0POyTaGp8kpdVM4bMdj457Hj5Q4I,4604
162
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/raw.py,sha256=5e29dM20fSp1jKRvx5IVHxOF64Uo7fWyZ09SHSOU0N4,12252
163
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/relationship.py,sha256=f4T-hV7lA9jw6tqZzbYCLWVgqk1GFUj-uMB-3tYN0js,6325
164
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/robotics.py,sha256=EjRYZBFe_ItZqvGRESvYKG09yiNOHMTUC555XI9O5Dc,16686
165
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py,sha256=yFZ0DURaAX_IHAF-zZD7JdLewXcbDgR2qxYdbWMvjdc,3226
166
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/three_d_model.py,sha256=R4BWgS7vWTrE2697dXbb1eyKTrhF9Qlc6W6-XNoLKOI,7446
167
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py,sha256=xw5pLdNDBcaBq90ippag_aKscfkk9NYhnWF3tXYuEUg,23345
168
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py,sha256=Jqbs6a5Z4JPjcn4VgDaknuDG8YIKeyVh97zqa_xkDSM,34455
169
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/workflow.py,sha256=uTinvkNYhUanowfaRfk11N3p77cOjOslPBajy7fPEzU,26642
170
170
  cognite_toolkit/_cdf_tk/data_classes/__init__.py,sha256=4zL-zR3lgQTCWfcy28LK0HEcukQOndPEFXVqfYfdKHU,1720
171
171
  cognite_toolkit/_cdf_tk/data_classes/_base.py,sha256=0jy9VrYIO6iRgOZIcRASv-xIQjU3QbMICffEEIqzx6A,2673
172
172
  cognite_toolkit/_cdf_tk/data_classes/_build_files.py,sha256=ARZpzcpmcbtG5Jg391d7A-7MJCFeUqqiDfJlO14cvvI,953
@@ -240,16 +240,16 @@ cognite_toolkit/_cdf_tk/resource_classes/robotics/data_postprocessing.py,sha256=
240
240
  cognite_toolkit/_cdf_tk/resource_classes/robotics/frame.py,sha256=XmDqJ0pAxe_vAP0Dhktba1f9o2zg_ORCJ3Hz8cyJMrk,899
241
241
  cognite_toolkit/_cdf_tk/resource_classes/robotics/location.py,sha256=dbc9HT-bc2Qt15hHoR63SM7pg321BhNuTNjI7HHCwSA,468
242
242
  cognite_toolkit/_cdf_tk/resource_classes/robotics/map.py,sha256=j77z7CzCMiMj8r94BdUKCum9EuZRUjaSlUAy9K9DL_Q,942
243
- cognite_toolkit/_cdf_tk/storageio/__init__.py,sha256=T2PzfD2Tf5khE0cmSDLcqTlRy9YEKTU-raKePIFSMNQ,1910
243
+ cognite_toolkit/_cdf_tk/storageio/__init__.py,sha256=RurC7UaL_T36VyuVx4kJKUkUtp8bCJFA5qXkDc4JexE,1902
244
244
  cognite_toolkit/_cdf_tk/storageio/_annotations.py,sha256=JI_g18_Y9S7pbc9gm6dZMyo3Z-bCndJXF9C2lOva0bQ,4848
245
245
  cognite_toolkit/_cdf_tk/storageio/_applications.py,sha256=vena8BW7erki6i-hGdcdiOmDbMU3P9M_Kn_5dPG6Yzw,16084
246
- cognite_toolkit/_cdf_tk/storageio/_asset_centric.py,sha256=mRwcVvBzUES21zNb-mDH7XqZWN37p4GUs0JRx7lbRyw,32817
246
+ cognite_toolkit/_cdf_tk/storageio/_asset_centric.py,sha256=GZZSQ8NLCP8tSQKOc8BUb2NCZAvw_BoCVcA1Og7vnIs,30821
247
247
  cognite_toolkit/_cdf_tk/storageio/_base.py,sha256=4yjjSnmo9gmMlSEREDAOVUXm1cT4qOuInoyxoKQkxx4,12107
248
248
  cognite_toolkit/_cdf_tk/storageio/_data_classes.py,sha256=s3TH04BJ1q7rXndRhEbVMEnoOXjxrGg4n-w9Z5uUL-o,3480
249
249
  cognite_toolkit/_cdf_tk/storageio/_datapoints.py,sha256=AGTQm9CBRbu1oXbBh0X7UGzFrHnlWZExqNvAohT0hM0,8641
250
250
  cognite_toolkit/_cdf_tk/storageio/_file_content.py,sha256=g8HDDHbBPBcb3g6Zp-vHc8uvNZYrZXWs5G0jq_eOc4w,10884
251
251
  cognite_toolkit/_cdf_tk/storageio/_instances.py,sha256=t9fNpHnT6kCk8LDoPj3qZXmHpyDbPF5BZ6pI8ziTyFw,10810
252
- cognite_toolkit/_cdf_tk/storageio/_raw.py,sha256=5WjAFiVR0KKRhMqCy1IRy1TQFWj86D7nGu5WSFNLp6U,3869
252
+ cognite_toolkit/_cdf_tk/storageio/_raw.py,sha256=pgZN5MbqDwMZl9Ow1KouDJUO2Ngga8_b6hwv7H31SVQ,5161
253
253
  cognite_toolkit/_cdf_tk/storageio/selectors/__init__.py,sha256=ELUCirQmhDR52PVIhLRd_2M1DWYURwL44U6WiN9_hEA,2225
254
254
  cognite_toolkit/_cdf_tk/storageio/selectors/_asset_centric.py,sha256=7Iv_ccVX6Vzt3ZLFZ0Er3hN92iEsFTm9wgF-yermOWE,1467
255
255
  cognite_toolkit/_cdf_tk/storageio/selectors/_base.py,sha256=hjFkbmNGsK3QIW-jnJV_8YNmvVROERxzG82qIZhU7SM,3065
@@ -303,13 +303,13 @@ cognite_toolkit/_repo_files/.gitignore,sha256=ip9kf9tcC5OguF4YF4JFEApnKYw0nG0vPi
303
303
  cognite_toolkit/_repo_files/AzureDevOps/.devops/README.md,sha256=OLA0D7yCX2tACpzvkA0IfkgQ4_swSd-OlJ1tYcTBpsA,240
304
304
  cognite_toolkit/_repo_files/AzureDevOps/.devops/deploy-pipeline.yml,sha256=brULcs8joAeBC_w_aoWjDDUHs3JheLMIR9ajPUK96nc,693
305
305
  cognite_toolkit/_repo_files/AzureDevOps/.devops/dry-run-pipeline.yml,sha256=OBFDhFWK1mlT4Dc6mDUE2Es834l8sAlYG50-5RxRtHk,723
306
- cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=Jg1eZBZzh7322ZsyHKpkE0Uwdp_uauQyK_Ta3cqd_2o,666
307
- cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=LWGZ0X3w3dqk5IhuRWVy-oCVOggb-yP2kOMnnRvCec0,2429
308
- cognite_toolkit/_resources/cdf.toml,sha256=p-igYCiOd3HmKhIOiF_r3CNYsoM6Q36h39WM8BixeXY,474
306
+ cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=1_fEjrhRKAHXIqLW4lBT6JS9GmVbyIxZFK1tYku7RA0,666
307
+ cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=3yRJMs7Um0M9HikqM8RlGbnVK7jqdJyEgZrbkfIqMHc,2429
308
+ cognite_toolkit/_resources/cdf.toml,sha256=3vbfRsbDoAwloTprZxOV1lEmobT1VXoNAHniNXimJkI,474
309
309
  cognite_toolkit/demo/__init__.py,sha256=-m1JoUiwRhNCL18eJ6t7fZOL7RPfowhCuqhYFtLgrss,72
310
310
  cognite_toolkit/demo/_base.py,sha256=6xKBUQpXZXGQ3fJ5f7nj7oT0s2n7OTAGIa17ZlKHZ5U,8052
311
- cognite_toolkit-0.7.7.dist-info/METADATA,sha256=PHy3upC8bnYFnSw_Sm6CaQAV6oG_kI4m0OeItqxLSkg,4500
312
- cognite_toolkit-0.7.7.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
313
- cognite_toolkit-0.7.7.dist-info/entry_points.txt,sha256=JlR7MH1_UMogC3QOyN4-1l36VbrCX9xUdQoHGkuJ6-4,83
314
- cognite_toolkit-0.7.7.dist-info/licenses/LICENSE,sha256=CW0DRcx5tL-pCxLEN7ts2S9g2sLRAsWgHVEX4SN9_Mc,752
315
- cognite_toolkit-0.7.7.dist-info/RECORD,,
311
+ cognite_toolkit-0.7.9.dist-info/METADATA,sha256=dCFxCZZyD0iS8h4oBEWmWX7DuM7e9r8iIop0eSha7eY,4500
312
+ cognite_toolkit-0.7.9.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
313
+ cognite_toolkit-0.7.9.dist-info/entry_points.txt,sha256=JlR7MH1_UMogC3QOyN4-1l36VbrCX9xUdQoHGkuJ6-4,83
314
+ cognite_toolkit-0.7.9.dist-info/licenses/LICENSE,sha256=CW0DRcx5tL-pCxLEN7ts2S9g2sLRAsWgHVEX4SN9_Mc,752
315
+ cognite_toolkit-0.7.9.dist-info/RECORD,,