cognite-toolkit 0.7.6__py3-none-any.whl → 0.7.8__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/apps/_upload_app.py +1 -1
- cognite_toolkit/_cdf_tk/cruds/_base_cruds.py +0 -3
- cognite_toolkit/_cdf_tk/cruds/_data_cruds.py +0 -4
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/agent.py +0 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/auth.py +0 -2
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/classic.py +0 -4
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py +0 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/data_organization.py +0 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py +0 -7
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/extraction_pipeline.py +0 -2
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py +0 -2
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py +0 -5
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/function.py +0 -4
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/hosted_extractors.py +0 -4
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/industrial_tool.py +0 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/location.py +0 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/migration.py +0 -3
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/raw.py +0 -2
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/relationship.py +0 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/robotics.py +0 -5
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py +0 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/three_d_model.py +0 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py +0 -2
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py +0 -8
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/workflow.py +0 -3
- cognite_toolkit/_cdf_tk/storageio/__init__.py +2 -2
- cognite_toolkit/_cdf_tk/storageio/_asset_centric.py +36 -80
- cognite_toolkit/_cdf_tk/utils/sql_parser.py +2 -3
- 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.6.dist-info → cognite_toolkit-0.7.8.dist-info}/METADATA +1 -1
- {cognite_toolkit-0.7.6.dist-info → cognite_toolkit-0.7.8.dist-info}/RECORD +37 -37
- {cognite_toolkit-0.7.6.dist-info → cognite_toolkit-0.7.8.dist-info}/WHEEL +0 -0
- {cognite_toolkit-0.7.6.dist-info → cognite_toolkit-0.7.8.dist-info}/entry_points.txt +0 -0
- {cognite_toolkit-0.7.6.dist-info → cognite_toolkit-0.7.8.dist-info}/licenses/LICENSE +0 -0
|
@@ -66,7 +66,7 @@ class UploadApp(typer.Typer):
|
|
|
66
66
|
"""Commands to upload data to CDF."""
|
|
67
67
|
cmd = UploadCommand()
|
|
68
68
|
if input_dir is None:
|
|
69
|
-
input_candidate = sorted({p.parent for p in DEFAULT_INPUT_DIR.rglob(f"
|
|
69
|
+
input_candidate = sorted({p.parent for p in DEFAULT_INPUT_DIR.rglob(f"**/*{DATA_MANIFEST_SUFFIX}")})
|
|
70
70
|
if not input_candidate:
|
|
71
71
|
typer.echo(f"No data manifests found in default directory: {DEFAULT_INPUT_DIR}")
|
|
72
72
|
raise typer.Exit(code=1)
|
|
@@ -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,
|
|
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
|
|
78
|
-
Generic[
|
|
79
|
-
TableStorageIO[AssetCentricSelector,
|
|
80
|
-
ConfigurableStorageIO[AssetCentricSelector,
|
|
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]) ->
|
|
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
|
-
) ->
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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,
|
|
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
|
|
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) ->
|
|
666
|
+
def get_resource_io(self, kind: str) -> AssetCentricIO:
|
|
711
667
|
return self._io_by_kind[kind]
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import importlib.util
|
|
2
|
+
from dataclasses import dataclass
|
|
2
3
|
from typing import TYPE_CHECKING
|
|
3
4
|
|
|
4
5
|
from cognite_toolkit._cdf_tk.exceptions import ToolkitMissingDependencyError
|
|
5
6
|
|
|
6
7
|
if TYPE_CHECKING:
|
|
7
|
-
from sqlparse.sql import Identifier
|
|
8
|
-
from sqlparse.tokens import Token
|
|
9
|
-
from dataclasses import dataclass
|
|
8
|
+
from sqlparse.sql import Identifier, Token
|
|
10
9
|
|
|
11
10
|
|
|
12
11
|
@dataclass(frozen=True)
|
cognite_toolkit/_version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.7.
|
|
1
|
+
__version__ = "0.7.8"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cognite_toolkit
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.8
|
|
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=
|
|
3
|
+
cognite_toolkit/_version.py,sha256=uC8wB9mRblQ0jUBAOUyCQLUQJ39MC2xybVLB_8ZsevU,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
|
|
@@ -25,7 +25,7 @@ cognite_toolkit/_cdf_tk/apps/_profile_app.py,sha256=vSRJW54bEvIul8_4rOqyOYA7ztXx
|
|
|
25
25
|
cognite_toolkit/_cdf_tk/apps/_purge.py,sha256=KYI1wFy7yHFEM1qJnTYc4_8E2FVGu4QhPsWsxop1sZA,14242
|
|
26
26
|
cognite_toolkit/_cdf_tk/apps/_repo_app.py,sha256=jOf_s7oUWJqnRyz89JFiSzT2l8GlyQ7wqidHUQavGo0,1455
|
|
27
27
|
cognite_toolkit/_cdf_tk/apps/_run.py,sha256=eXua4n0hW4qRMkzaxR0PiZh-JFLf8gnWw1_5O-0-vm0,8987
|
|
28
|
-
cognite_toolkit/_cdf_tk/apps/_upload_app.py,sha256=
|
|
28
|
+
cognite_toolkit/_cdf_tk/apps/_upload_app.py,sha256=gI8iAlLpO4Grs6Yc1ZIp_eiA30Ae1V_T3QxJZNYNqrM,4227
|
|
29
29
|
cognite_toolkit/_cdf_tk/builders/__init__.py,sha256=8073Ijf621XiAtiwup-rLfrbYd403H8lo9e65_iP1JA,1186
|
|
30
30
|
cognite_toolkit/_cdf_tk/builders/_base.py,sha256=_4Gd6GtuAmnPvl3IjvuAUfuSQtEVJekUaqzk3IH-tIY,7462
|
|
31
31
|
cognite_toolkit/_cdf_tk/builders/_datamodels.py,sha256=hN3fWQAktrWdaGAItZ0tHpBXqJDu0JfH6t7pO7EIl2Q,3541
|
|
@@ -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=
|
|
144
|
-
cognite_toolkit/_cdf_tk/cruds/_data_cruds.py,sha256=
|
|
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=
|
|
148
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/auth.py,sha256=
|
|
149
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/classic.py,sha256=
|
|
150
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py,sha256
|
|
151
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/data_organization.py,sha256=
|
|
152
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py,sha256=
|
|
153
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/extraction_pipeline.py,sha256=
|
|
154
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py,sha256=
|
|
155
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py,sha256=
|
|
156
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/function.py,sha256=
|
|
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=
|
|
159
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/industrial_tool.py,sha256=
|
|
160
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/location.py,sha256=
|
|
161
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/migration.py,sha256=
|
|
162
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/raw.py,sha256=
|
|
163
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/relationship.py,sha256=
|
|
164
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/robotics.py,sha256=
|
|
165
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py,sha256
|
|
166
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/three_d_model.py,sha256=
|
|
167
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py,sha256=
|
|
168
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py,sha256=
|
|
169
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/workflow.py,sha256=
|
|
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,10 +240,10 @@ 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=
|
|
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=
|
|
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
|
|
@@ -283,7 +283,7 @@ cognite_toolkit/_cdf_tk/utils/producer_worker.py,sha256=1l77HIehkq1ARCBH6SlZ_V-j
|
|
|
283
283
|
cognite_toolkit/_cdf_tk/utils/progress_tracker.py,sha256=LGpC22iSTTlo6FWi38kqBu_E4XouTvZU_N953WAzZWA,3865
|
|
284
284
|
cognite_toolkit/_cdf_tk/utils/repository.py,sha256=voQLZ6NiNvdAFxqeWHbvzDLsLHl6spjQBihiLyCsGW8,4104
|
|
285
285
|
cognite_toolkit/_cdf_tk/utils/sentry_utils.py,sha256=Q3ekrR0bWMtlPVQrfUSsETlkLIaDUZ2u-RdNFFr9-dg,564
|
|
286
|
-
cognite_toolkit/_cdf_tk/utils/sql_parser.py,sha256=
|
|
286
|
+
cognite_toolkit/_cdf_tk/utils/sql_parser.py,sha256=w4yo6LyA8w9EXotEPOTuNRadLUHGTIcv1YJqS-H3nmM,6427
|
|
287
287
|
cognite_toolkit/_cdf_tk/utils/text.py,sha256=1-LQMo633_hEhNhishQo7Buj-7np5Pe4qKk0TQofMzE,3906
|
|
288
288
|
cognite_toolkit/_cdf_tk/utils/thread_safe_dict.py,sha256=NbRHcZvWpF9xHP5OkOMGFpxrPNbi0Q3Eea6PUNbGlt4,3426
|
|
289
289
|
cognite_toolkit/_cdf_tk/utils/useful_types.py,sha256=oK88W6G_aK3hebORSQKZjWrq7jG-pO2lkLWSWYMlngM,1872
|
|
@@ -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=
|
|
307
|
-
cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=
|
|
308
|
-
cognite_toolkit/_resources/cdf.toml,sha256=
|
|
306
|
+
cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=L55NhSDSUlxT5pZbTRphvOlO0MvCiuWXkNsGq4q7Bn4,666
|
|
307
|
+
cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=9i3QNPhYewexcukRhRUaXIFh8Xgd4k8XxTiFWKxyD64,2429
|
|
308
|
+
cognite_toolkit/_resources/cdf.toml,sha256=TN3TRIdZo6zfKthRLj0JW7VatUQ_pLeKUktmm2zl_1E,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.
|
|
312
|
-
cognite_toolkit-0.7.
|
|
313
|
-
cognite_toolkit-0.7.
|
|
314
|
-
cognite_toolkit-0.7.
|
|
315
|
-
cognite_toolkit-0.7.
|
|
311
|
+
cognite_toolkit-0.7.8.dist-info/METADATA,sha256=LCh--Lkkr8NwKHeApUv_HfSm_9p2e1wuMQnMmP76zYQ,4500
|
|
312
|
+
cognite_toolkit-0.7.8.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
313
|
+
cognite_toolkit-0.7.8.dist-info/entry_points.txt,sha256=JlR7MH1_UMogC3QOyN4-1l36VbrCX9xUdQoHGkuJ6-4,83
|
|
314
|
+
cognite_toolkit-0.7.8.dist-info/licenses/LICENSE,sha256=CW0DRcx5tL-pCxLEN7ts2S9g2sLRAsWgHVEX4SN9_Mc,752
|
|
315
|
+
cognite_toolkit-0.7.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|