cognite-toolkit 0.7.20__py3-none-any.whl → 0.7.21__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/cruds/_resource_cruds/fieldops.py +1 -0
- cognite_toolkit/_cdf_tk/storageio/_file_content.py +63 -21
- cognite_toolkit/_cdf_tk/storageio/selectors/_file_content.py +6 -8
- 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.20.dist-info → cognite_toolkit-0.7.21.dist-info}/METADATA +1 -1
- {cognite_toolkit-0.7.20.dist-info → cognite_toolkit-0.7.21.dist-info}/RECORD +12 -12
- {cognite_toolkit-0.7.20.dist-info → cognite_toolkit-0.7.21.dist-info}/WHEEL +0 -0
- {cognite_toolkit-0.7.20.dist-info → cognite_toolkit-0.7.21.dist-info}/entry_points.txt +0 -0
- {cognite_toolkit-0.7.20.dist-info → cognite_toolkit-0.7.21.dist-info}/licenses/LICENSE +0 -0
|
@@ -437,4 +437,5 @@ class InFieldCDMLocationConfigCRUD(ResourceCRUD[NodeIdentifier, InFieldCDMLocati
|
|
|
437
437
|
elif len(json_path) == 4 and json_path[:2] == ("dataExplorationConfig", "filters") and json_path[3] == "values":
|
|
438
438
|
# Handles dataExplorationConfig.filters[i].values
|
|
439
439
|
return diff_list_hashable(local, cdf)
|
|
440
|
+
|
|
440
441
|
return super().diff_list(local, cdf, json_path)
|
|
@@ -12,7 +12,9 @@ from cognite.client.data_classes.data_modeling import NodeId, ViewId
|
|
|
12
12
|
from cognite_toolkit._cdf_tk.client import ToolkitClient
|
|
13
13
|
from cognite_toolkit._cdf_tk.cruds import FileMetadataCRUD
|
|
14
14
|
from cognite_toolkit._cdf_tk.exceptions import ToolkitNotImplementedError
|
|
15
|
-
from cognite_toolkit._cdf_tk.
|
|
15
|
+
from cognite_toolkit._cdf_tk.protocols import ResourceResponseProtocol
|
|
16
|
+
from cognite_toolkit._cdf_tk.utils import sanitize_filename
|
|
17
|
+
from cognite_toolkit._cdf_tk.utils.collection import chunker, chunker_sequence
|
|
16
18
|
from cognite_toolkit._cdf_tk.utils.fileio import MultiFileReader
|
|
17
19
|
from cognite_toolkit._cdf_tk.utils.http_client import (
|
|
18
20
|
DataBodyRequest,
|
|
@@ -35,6 +37,7 @@ from .selectors._file_content import (
|
|
|
35
37
|
FileIdentifier,
|
|
36
38
|
FileInstanceID,
|
|
37
39
|
FileInternalID,
|
|
40
|
+
FileTemplateSelector,
|
|
38
41
|
)
|
|
39
42
|
from .selectors._file_content import NodeId as SelectorNodeId
|
|
40
43
|
|
|
@@ -47,7 +50,16 @@ class UploadFileContentItem(UploadItem[FileMetadataWrite]):
|
|
|
47
50
|
mime_type: str
|
|
48
51
|
|
|
49
52
|
|
|
50
|
-
|
|
53
|
+
@dataclass
|
|
54
|
+
class MetadataWithFilePath(ResourceResponseProtocol):
|
|
55
|
+
metadata: FileMetadata
|
|
56
|
+
file_path: Path
|
|
57
|
+
|
|
58
|
+
def as_write(self) -> FileMetadataWrite:
|
|
59
|
+
return self.metadata.as_write()
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
class FileContentIO(UploadableStorageIO[FileContentSelector, MetadataWithFilePath, FileMetadataWrite]):
|
|
51
63
|
SUPPORTED_DOWNLOAD_FORMATS = frozenset({".ndjson"})
|
|
52
64
|
SUPPORTED_COMPRESSIONS = frozenset({".gz"})
|
|
53
65
|
CHUNK_SIZE = 10
|
|
@@ -61,10 +73,12 @@ class FileContentIO(UploadableStorageIO[FileContentSelector, FileMetadata, FileM
|
|
|
61
73
|
self._crud = FileMetadataCRUD(client, None, None)
|
|
62
74
|
self._target_dir = target_dir
|
|
63
75
|
|
|
64
|
-
def as_id(self, item:
|
|
65
|
-
return item.external_id or str(item.id)
|
|
76
|
+
def as_id(self, item: MetadataWithFilePath) -> str:
|
|
77
|
+
return item.metadata.external_id or str(item.metadata.id)
|
|
66
78
|
|
|
67
|
-
def stream_data(
|
|
79
|
+
def stream_data(
|
|
80
|
+
self, selector: FileContentSelector, limit: int | None = None
|
|
81
|
+
) -> Iterable[Page[MetadataWithFilePath]]:
|
|
68
82
|
if not isinstance(selector, FileIdentifierSelector):
|
|
69
83
|
raise ToolkitNotImplementedError(
|
|
70
84
|
f"Download with the manifest, {type(selector).__name__}, is not supported for FileContentIO"
|
|
@@ -77,7 +91,7 @@ class FileContentIO(UploadableStorageIO[FileContentSelector, FileMetadata, FileM
|
|
|
77
91
|
if metadata is None:
|
|
78
92
|
continue
|
|
79
93
|
identifiers_map = self._as_metadata_map(metadata)
|
|
80
|
-
downloaded_files: list[
|
|
94
|
+
downloaded_files: list[MetadataWithFilePath] = []
|
|
81
95
|
for identifier in identifiers:
|
|
82
96
|
if identifier not in identifiers_map:
|
|
83
97
|
continue
|
|
@@ -94,7 +108,12 @@ class FileContentIO(UploadableStorageIO[FileContentSelector, FileMetadata, FileM
|
|
|
94
108
|
with filepath.open(mode="wb") as file_stream:
|
|
95
109
|
for chunk in response.iter_bytes(chunk_size=8192):
|
|
96
110
|
file_stream.write(chunk)
|
|
97
|
-
downloaded_files.append(
|
|
111
|
+
downloaded_files.append(
|
|
112
|
+
MetadataWithFilePath(
|
|
113
|
+
metadata=meta,
|
|
114
|
+
file_path=filepath.relative_to(self._target_dir),
|
|
115
|
+
)
|
|
116
|
+
)
|
|
98
117
|
yield Page(items=downloaded_files, worker_id="Main")
|
|
99
118
|
|
|
100
119
|
def _retrieve_metadata(self, identifiers: Sequence[FileIdentifier]) -> Sequence[FileMetadata] | None:
|
|
@@ -142,13 +161,13 @@ class FileContentIO(UploadableStorageIO[FileContentSelector, FileMetadata, FileM
|
|
|
142
161
|
|
|
143
162
|
def _create_filepath(self, meta: FileMetadata, selector: FileIdentifierSelector) -> Path:
|
|
144
163
|
# We now that metadata always have name set
|
|
145
|
-
filename = Path(cast(str, meta.name))
|
|
164
|
+
filename = Path(sanitize_filename(cast(str, meta.name)))
|
|
146
165
|
if len(filename.suffix) == 0 and meta.mime_type:
|
|
147
166
|
if mime_ext := mimetypes.guess_extension(meta.mime_type):
|
|
148
167
|
filename = filename.with_suffix(mime_ext)
|
|
149
|
-
directory = selector.file_directory
|
|
168
|
+
directory = sanitize_filename(selector.file_directory)
|
|
150
169
|
if isinstance(meta.directory, str) and meta.directory != "":
|
|
151
|
-
directory =
|
|
170
|
+
directory = sanitize_filename(meta.directory.removeprefix("/"))
|
|
152
171
|
|
|
153
172
|
counter = 1
|
|
154
173
|
filepath = self._target_dir / directory / filename
|
|
@@ -185,7 +204,7 @@ class FileContentIO(UploadableStorageIO[FileContentSelector, FileMetadata, FileM
|
|
|
185
204
|
return None
|
|
186
205
|
|
|
187
206
|
def data_to_json_chunk(
|
|
188
|
-
self, data_chunk: Sequence[
|
|
207
|
+
self, data_chunk: Sequence[MetadataWithFilePath], selector: FileContentSelector | None = None
|
|
189
208
|
) -> list[dict[str, JsonVal]]:
|
|
190
209
|
"""Convert a writable Cognite resource list to a JSON-compatible chunk of data.
|
|
191
210
|
|
|
@@ -197,7 +216,8 @@ class FileContentIO(UploadableStorageIO[FileContentSelector, FileMetadata, FileM
|
|
|
197
216
|
"""
|
|
198
217
|
result: list[dict[str, JsonVal]] = []
|
|
199
218
|
for item in data_chunk:
|
|
200
|
-
item_json = self._crud.dump_resource(item)
|
|
219
|
+
item_json = self._crud.dump_resource(item.metadata)
|
|
220
|
+
item_json[FILEPATH] = item.file_path.as_posix()
|
|
201
221
|
result.append(item_json)
|
|
202
222
|
return result
|
|
203
223
|
|
|
@@ -213,7 +233,7 @@ class FileContentIO(UploadableStorageIO[FileContentSelector, FileMetadata, FileM
|
|
|
213
233
|
result: list[UploadFileContentItem] = []
|
|
214
234
|
for source_id, item_json in data_chunk:
|
|
215
235
|
item = self.json_to_resource(item_json)
|
|
216
|
-
filepath = cast(Path, item_json[FILEPATH])
|
|
236
|
+
filepath = Path(cast(str | Path, item_json[FILEPATH]))
|
|
217
237
|
mime_type, _ = mimetypes.guess_type(filepath)
|
|
218
238
|
# application/octet-stream is the standard fallback for binary data when the type is unknown. (at least Claude thinks so)
|
|
219
239
|
result.append(
|
|
@@ -236,7 +256,7 @@ class FileContentIO(UploadableStorageIO[FileContentSelector, FileMetadata, FileM
|
|
|
236
256
|
selector: FileContentSelector | None = None,
|
|
237
257
|
) -> Sequence[HTTPMessage]:
|
|
238
258
|
results: MutableSequence[HTTPMessage] = []
|
|
239
|
-
if isinstance(selector, FileMetadataTemplateSelector):
|
|
259
|
+
if isinstance(selector, FileMetadataTemplateSelector | FileIdentifierSelector):
|
|
240
260
|
upload_url_getter = self._upload_url_asset_centric
|
|
241
261
|
elif isinstance(selector, FileDataModelingTemplateSelector):
|
|
242
262
|
upload_url_getter = self._upload_url_data_modeling
|
|
@@ -379,13 +399,35 @@ class FileContentIO(UploadableStorageIO[FileContentSelector, FileMetadata, FileM
|
|
|
379
399
|
def read_chunks(
|
|
380
400
|
cls, reader: MultiFileReader, selector: FileContentSelector
|
|
381
401
|
) -> Iterable[list[tuple[str, dict[str, JsonVal]]]]:
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
402
|
+
if isinstance(selector, FileTemplateSelector):
|
|
403
|
+
for chunk in chunker_sequence(reader.input_files, cls.CHUNK_SIZE):
|
|
404
|
+
batch: list[tuple[str, dict[str, JsonVal]]] = []
|
|
405
|
+
for file_path in chunk:
|
|
406
|
+
metadata = selector.create_instance(file_path)
|
|
407
|
+
metadata[FILEPATH] = file_path
|
|
408
|
+
batch.append((file_path.as_posix(), metadata))
|
|
409
|
+
yield batch
|
|
410
|
+
elif isinstance(selector, FileIdentifierSelector):
|
|
411
|
+
for item_chunk in chunker(reader.read_chunks(), cls.CHUNK_SIZE):
|
|
412
|
+
batch = []
|
|
413
|
+
for item in item_chunk:
|
|
414
|
+
if FILEPATH not in item:
|
|
415
|
+
# Todo Log warning
|
|
416
|
+
continue
|
|
417
|
+
try:
|
|
418
|
+
file_path = Path(item[FILEPATH])
|
|
419
|
+
except KeyError:
|
|
420
|
+
# Todo Log warning
|
|
421
|
+
continue
|
|
422
|
+
if not file_path.is_absolute():
|
|
423
|
+
file_path = reader.input_file.parent / file_path
|
|
424
|
+
item[FILEPATH] = file_path
|
|
425
|
+
batch.append((file_path.as_posix(), item))
|
|
426
|
+
yield batch
|
|
427
|
+
else:
|
|
428
|
+
raise ToolkitNotImplementedError(
|
|
429
|
+
f"Reading with the manifest, {type(selector).__name__}, is not supported for FileContentIO"
|
|
430
|
+
)
|
|
389
431
|
|
|
390
432
|
@classmethod
|
|
391
433
|
def count_chunks(cls, reader: MultiFileReader) -> int:
|
|
@@ -6,8 +6,6 @@ from typing import Annotated, Any, Literal
|
|
|
6
6
|
|
|
7
7
|
from pydantic import ConfigDict, Field, field_validator, model_validator
|
|
8
8
|
|
|
9
|
-
from cognite_toolkit._cdf_tk.exceptions import ToolkitNotImplementedError
|
|
10
|
-
|
|
11
9
|
from ._base import DataSelector, SelectorObject
|
|
12
10
|
from ._instances import SelectedView
|
|
13
11
|
|
|
@@ -17,6 +15,9 @@ FILEPATH = "$FILEPATH"
|
|
|
17
15
|
|
|
18
16
|
class FileContentSelector(DataSelector, ABC):
|
|
19
17
|
kind: Literal["FileContent"] = "FileContent"
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class FileTemplateSelector(FileContentSelector, ABC):
|
|
20
21
|
file_directory: Path
|
|
21
22
|
|
|
22
23
|
def find_data_files(self, input_dir: Path, manifest_file: Path) -> list[Path]:
|
|
@@ -52,7 +53,7 @@ class FileMetadataTemplate(FileTemplate):
|
|
|
52
53
|
return v
|
|
53
54
|
|
|
54
55
|
|
|
55
|
-
class FileMetadataTemplateSelector(
|
|
56
|
+
class FileMetadataTemplateSelector(FileTemplateSelector):
|
|
56
57
|
type: Literal["fileMetadataTemplate"] = "fileMetadataTemplate"
|
|
57
58
|
template: FileMetadataTemplate
|
|
58
59
|
|
|
@@ -96,7 +97,7 @@ class FileDataModelingTemplate(FileTemplate):
|
|
|
96
97
|
return data
|
|
97
98
|
|
|
98
99
|
|
|
99
|
-
class FileDataModelingTemplateSelector(
|
|
100
|
+
class FileDataModelingTemplateSelector(FileTemplateSelector):
|
|
100
101
|
type: Literal["fileDataModelingTemplate"] = "fileDataModelingTemplate"
|
|
101
102
|
view_id: SelectedView = SelectedView(space="cdf_cdm", external_id="CogniteFile", version="v1")
|
|
102
103
|
template: FileDataModelingTemplate
|
|
@@ -150,7 +151,7 @@ FileIdentifier = Annotated[FileInstanceID | FileExternalID | FileInternalID, Fie
|
|
|
150
151
|
|
|
151
152
|
class FileIdentifierSelector(FileContentSelector):
|
|
152
153
|
type: Literal["fileIdentifier"] = "fileIdentifier"
|
|
153
|
-
file_directory:
|
|
154
|
+
file_directory: str = "file_content"
|
|
154
155
|
use_metadata_directory: bool = True
|
|
155
156
|
identifiers: tuple[FileIdentifier, ...]
|
|
156
157
|
|
|
@@ -161,6 +162,3 @@ class FileIdentifierSelector(FileContentSelector):
|
|
|
161
162
|
def __str__(self) -> str:
|
|
162
163
|
hash_ = hashlib.md5(",".join(sorted(str(self.identifiers))).encode()).hexdigest()[:8]
|
|
163
164
|
return f"file_{len(self.identifiers)}_identifiers_{hash_}"
|
|
164
|
-
|
|
165
|
-
def create_instance(self, filepath: Path) -> dict[str, Any]:
|
|
166
|
-
raise ToolkitNotImplementedError("FileIdentifierSelector does not support creating instances from file paths.")
|
cognite_toolkit/_version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.7.
|
|
1
|
+
__version__ = "0.7.21"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cognite_toolkit
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.21
|
|
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=sefGD2JQuOTBZhEqSj_ECbNZ7nTRN4AwGwX1pSUhoow,5636
|
|
3
|
-
cognite_toolkit/_version.py,sha256=
|
|
3
|
+
cognite_toolkit/_version.py,sha256=dsLz3w-bEQrCd7hoih-4i3AFeJ0J6O2MZqka_Yl9j0A,23
|
|
4
4
|
cognite_toolkit/config.dev.yaml,sha256=M33FiIKdS3XKif-9vXniQ444GTZ-bLXV8aFH86u9iUQ,332
|
|
5
5
|
cognite_toolkit/_cdf_tk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
6
|
cognite_toolkit/_cdf_tk/cdf_toml.py,sha256=VSWV9h44HusWIaKpWgjrOMrc3hDoPTTXBXlp6-NOrIM,9079
|
|
@@ -152,7 +152,7 @@ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py,sha256=plVGY-hvT0
|
|
|
152
152
|
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/data_organization.py,sha256=U0ItuoNr1KEtoFQAiIe-K19_72ht9-kGndFVgF-iC10,9524
|
|
153
153
|
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py,sha256=SagiSp3JERgEU3SnkjQ76vrxSM7gRA17lvoh0BW4KeQ,64867
|
|
154
154
|
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/extraction_pipeline.py,sha256=a2HywkruYNJGLZxqOjlp8mrpRGtJDPqIb6qY00eUbEI,17701
|
|
155
|
-
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py,sha256=
|
|
155
|
+
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py,sha256=Tzrkfp9mtseUgnMdpVy_iBTup8S_1caypR5tknedeH4,20791
|
|
156
156
|
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py,sha256=vyeRsiIOEbUeYslBsgXoyCk5hozDsubUilA7bdjqS5c,14855
|
|
157
157
|
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/function.py,sha256=v3kjn3igwTF53LJ6pp0O8d4S1XFJ1eXQGCchWAcaAx0,28439
|
|
158
158
|
cognite_toolkit/_cdf_tk/cruds/_resource_cruds/group_scoped.py,sha256=WEg8-CxMP64WfE_XXIlH114zM51K0uLaYa4atd992zI,1690
|
|
@@ -249,7 +249,7 @@ cognite_toolkit/_cdf_tk/storageio/_asset_centric.py,sha256=TirKLSNPoLqKjczsw0djW
|
|
|
249
249
|
cognite_toolkit/_cdf_tk/storageio/_base.py,sha256=ElvqhIEBnhcz0yY1Ds164wVN0_7CFNK-uT0-z7LcR9U,13067
|
|
250
250
|
cognite_toolkit/_cdf_tk/storageio/_data_classes.py,sha256=s3TH04BJ1q7rXndRhEbVMEnoOXjxrGg4n-w9Z5uUL-o,3480
|
|
251
251
|
cognite_toolkit/_cdf_tk/storageio/_datapoints.py,sha256=xE1YgoP98-mJjIeF5536KwChzhVY90KYl-bW5sRVhFQ,20206
|
|
252
|
-
cognite_toolkit/_cdf_tk/storageio/_file_content.py,sha256=
|
|
252
|
+
cognite_toolkit/_cdf_tk/storageio/_file_content.py,sha256=Wo31GekIP2VZAUpUy-f0qW2b4IjkRo7aiTXIZxbHoFo,18965
|
|
253
253
|
cognite_toolkit/_cdf_tk/storageio/_instances.py,sha256=t9fNpHnT6kCk8LDoPj3qZXmHpyDbPF5BZ6pI8ziTyFw,10810
|
|
254
254
|
cognite_toolkit/_cdf_tk/storageio/_raw.py,sha256=pgZN5MbqDwMZl9Ow1KouDJUO2Ngga8_b6hwv7H31SVQ,5161
|
|
255
255
|
cognite_toolkit/_cdf_tk/storageio/selectors/__init__.py,sha256=VUK1A76zsu4a25A3oaPUrQEEuRcCpUBK6o8UMMKw7qg,2458
|
|
@@ -258,7 +258,7 @@ cognite_toolkit/_cdf_tk/storageio/selectors/_base.py,sha256=hjFkbmNGsK3QIW-jnJV_
|
|
|
258
258
|
cognite_toolkit/_cdf_tk/storageio/selectors/_canvas.py,sha256=E9S-wr-JUqRosI_2cSCfR0tF8MdIFTrMxDItuWRcuO4,597
|
|
259
259
|
cognite_toolkit/_cdf_tk/storageio/selectors/_charts.py,sha256=lQHuNtF3i6SEIMPAlziMm0QlqRcvZJ7MKIug6HMTDrs,1012
|
|
260
260
|
cognite_toolkit/_cdf_tk/storageio/selectors/_datapoints.py,sha256=qdR9wttPUoHZIRQjt2RiLO0cPH8C4CD09GsH1KA5KF4,2343
|
|
261
|
-
cognite_toolkit/_cdf_tk/storageio/selectors/_file_content.py,sha256=
|
|
261
|
+
cognite_toolkit/_cdf_tk/storageio/selectors/_file_content.py,sha256=e7riknOinuhJszkROHeg7iv3foiVz7mIJmva6lMTiOs,5116
|
|
262
262
|
cognite_toolkit/_cdf_tk/storageio/selectors/_instances.py,sha256=NCFSJrAw52bNX6UTfOali8PvNjlqHnvxzL0hYBr7ZmA,4934
|
|
263
263
|
cognite_toolkit/_cdf_tk/storageio/selectors/_raw.py,sha256=sZq9C4G9DMe3S46_usKet0FphQ6ow7cWM_PfXrEAakk,503
|
|
264
264
|
cognite_toolkit/_cdf_tk/tk_warnings/__init__.py,sha256=U9bT-G2xKrX6mmtZ7nZ1FfQeCjNKfKP_p7pev90dwOE,2316
|
|
@@ -305,13 +305,13 @@ cognite_toolkit/_repo_files/.gitignore,sha256=ip9kf9tcC5OguF4YF4JFEApnKYw0nG0vPi
|
|
|
305
305
|
cognite_toolkit/_repo_files/AzureDevOps/.devops/README.md,sha256=OLA0D7yCX2tACpzvkA0IfkgQ4_swSd-OlJ1tYcTBpsA,240
|
|
306
306
|
cognite_toolkit/_repo_files/AzureDevOps/.devops/deploy-pipeline.yml,sha256=brULcs8joAeBC_w_aoWjDDUHs3JheLMIR9ajPUK96nc,693
|
|
307
307
|
cognite_toolkit/_repo_files/AzureDevOps/.devops/dry-run-pipeline.yml,sha256=OBFDhFWK1mlT4Dc6mDUE2Es834l8sAlYG50-5RxRtHk,723
|
|
308
|
-
cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=
|
|
309
|
-
cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=
|
|
310
|
-
cognite_toolkit/_resources/cdf.toml,sha256=
|
|
308
|
+
cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=7RefWun5puw2176WrJSLEVlc9W2-3RR4hZoUZbCamn8,667
|
|
309
|
+
cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=KcvP5c2MmkhPJj4kDXu8xRIH98Iyj-VOTzb7gdSMoJ8,2430
|
|
310
|
+
cognite_toolkit/_resources/cdf.toml,sha256=bWCeSoZrULc_3jDfIFKhHbtEmAu5Yt7tuSrGS2LeEkg,475
|
|
311
311
|
cognite_toolkit/demo/__init__.py,sha256=-m1JoUiwRhNCL18eJ6t7fZOL7RPfowhCuqhYFtLgrss,72
|
|
312
312
|
cognite_toolkit/demo/_base.py,sha256=6xKBUQpXZXGQ3fJ5f7nj7oT0s2n7OTAGIa17ZlKHZ5U,8052
|
|
313
|
-
cognite_toolkit-0.7.
|
|
314
|
-
cognite_toolkit-0.7.
|
|
315
|
-
cognite_toolkit-0.7.
|
|
316
|
-
cognite_toolkit-0.7.
|
|
317
|
-
cognite_toolkit-0.7.
|
|
313
|
+
cognite_toolkit-0.7.21.dist-info/METADATA,sha256=_5E4GZxcoVkuzuabVj4_txqit-4Sl4YD62ORO8PkI8U,4501
|
|
314
|
+
cognite_toolkit-0.7.21.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
315
|
+
cognite_toolkit-0.7.21.dist-info/entry_points.txt,sha256=JlR7MH1_UMogC3QOyN4-1l36VbrCX9xUdQoHGkuJ6-4,83
|
|
316
|
+
cognite_toolkit-0.7.21.dist-info/licenses/LICENSE,sha256=CW0DRcx5tL-pCxLEN7ts2S9g2sLRAsWgHVEX4SN9_Mc,752
|
|
317
|
+
cognite_toolkit-0.7.21.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|