cognite-toolkit 0.6.115__py3-none-any.whl → 0.6.117__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/_dump_app.py +36 -0
- cognite_toolkit/_cdf_tk/feature_flags.py +4 -0
- cognite_toolkit/_cdf_tk/storageio/_file_content.py +131 -28
- cognite_toolkit/_cdf_tk/storageio/selectors/__init__.py +2 -0
- cognite_toolkit/_cdf_tk/storageio/selectors/_file_content.py +17 -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.6.115.dist-info → cognite_toolkit-0.6.117.dist-info}/METADATA +1 -1
- {cognite_toolkit-0.6.115.dist-info → cognite_toolkit-0.6.117.dist-info}/RECORD +14 -14
- {cognite_toolkit-0.6.115.dist-info → cognite_toolkit-0.6.117.dist-info}/WHEEL +0 -0
- {cognite_toolkit-0.6.115.dist-info → cognite_toolkit-0.6.117.dist-info}/entry_points.txt +0 -0
- {cognite_toolkit-0.6.115.dist-info → cognite_toolkit-0.6.117.dist-info}/licenses/LICENSE +0 -0
|
@@ -862,6 +862,15 @@ class DumpDataApp(typer.Typer):
|
|
|
862
862
|
] = False,
|
|
863
863
|
) -> None:
|
|
864
864
|
"""This command will dump the selected assets in the selected format to the folder specified, defaults to /tmp."""
|
|
865
|
+
if Flags.v07:
|
|
866
|
+
print(
|
|
867
|
+
"[bold yellow]Warning:[/] This command has been removed. Please use `cdf data download assets` instead."
|
|
868
|
+
)
|
|
869
|
+
return None
|
|
870
|
+
elif Flags.v08:
|
|
871
|
+
raise ValueError(
|
|
872
|
+
"The `cdf dump data asset` command has been removed. Please use `cdf data download assets` instead."
|
|
873
|
+
)
|
|
865
874
|
cmd = DumpDataCommand()
|
|
866
875
|
client = EnvironmentVariables.create_from_environment().get_client()
|
|
867
876
|
if hierarchy is None and data_set is None:
|
|
@@ -940,6 +949,15 @@ class DumpDataApp(typer.Typer):
|
|
|
940
949
|
] = False,
|
|
941
950
|
) -> None:
|
|
942
951
|
"""This command will dump the selected events to the selected format in the folder specified, defaults to /tmp."""
|
|
952
|
+
if Flags.v07:
|
|
953
|
+
print(
|
|
954
|
+
"[bold yellow]Warning:[/] This command has been removed. Please use `cdf data download files` instead."
|
|
955
|
+
)
|
|
956
|
+
return None
|
|
957
|
+
elif Flags.v08:
|
|
958
|
+
raise ValueError(
|
|
959
|
+
"The `cdf dump data files-metadata` command has been removed. Please use `cdf data download files` instead."
|
|
960
|
+
)
|
|
943
961
|
cmd = DumpDataCommand()
|
|
944
962
|
cmd.validate_directory(output_dir, clean)
|
|
945
963
|
client = EnvironmentVariables.create_from_environment().get_client()
|
|
@@ -1018,6 +1036,15 @@ class DumpDataApp(typer.Typer):
|
|
|
1018
1036
|
] = False,
|
|
1019
1037
|
) -> None:
|
|
1020
1038
|
"""This command will dump the selected timeseries to the selected format in the folder specified, defaults to /tmp."""
|
|
1039
|
+
if Flags.v07:
|
|
1040
|
+
print(
|
|
1041
|
+
"[bold yellow]Warning:[/] This command has been removed. Please use `cdf data download timeseries` instead."
|
|
1042
|
+
)
|
|
1043
|
+
return None
|
|
1044
|
+
elif Flags.v08:
|
|
1045
|
+
raise ValueError(
|
|
1046
|
+
"The `cdf dump data timeseries` command has been removed. Please use `cdf data download timeseries` instead."
|
|
1047
|
+
)
|
|
1021
1048
|
cmd = DumpDataCommand()
|
|
1022
1049
|
client = EnvironmentVariables.create_from_environment().get_client()
|
|
1023
1050
|
if hierarchy is None and data_set is None:
|
|
@@ -1095,6 +1122,15 @@ class DumpDataApp(typer.Typer):
|
|
|
1095
1122
|
] = False,
|
|
1096
1123
|
) -> None:
|
|
1097
1124
|
"""This command will dump the selected events to the selected format in the folder specified, defaults to /tmp."""
|
|
1125
|
+
if Flags.v07:
|
|
1126
|
+
print(
|
|
1127
|
+
"[bold yellow]Warning:[/] This command has been removed. Please use `cdf data download events` instead."
|
|
1128
|
+
)
|
|
1129
|
+
return None
|
|
1130
|
+
elif Flags.v08:
|
|
1131
|
+
raise ValueError(
|
|
1132
|
+
"The `cdf dump data event` command has been removed. Please use `cdf data download events` instead."
|
|
1133
|
+
)
|
|
1098
1134
|
cmd = DumpDataCommand()
|
|
1099
1135
|
cmd.validate_directory(output_dir, clean)
|
|
1100
1136
|
client = EnvironmentVariables.create_from_environment().get_client()
|
|
@@ -89,6 +89,10 @@ class Flags(Enum):
|
|
|
89
89
|
visible=True,
|
|
90
90
|
description="Enables the support for the streams resources",
|
|
91
91
|
)
|
|
92
|
+
v08 = FlagMetadata(
|
|
93
|
+
visible=False,
|
|
94
|
+
description="Enables features planned for Cognite Toolkit version 0.8.0",
|
|
95
|
+
)
|
|
92
96
|
|
|
93
97
|
def is_enabled(self) -> bool:
|
|
94
98
|
return FeatureFlag.is_enabled(self)
|
|
@@ -6,6 +6,7 @@ from pathlib import Path
|
|
|
6
6
|
from typing import cast
|
|
7
7
|
|
|
8
8
|
from cognite.client.data_classes import FileMetadata, FileMetadataWrite
|
|
9
|
+
from cognite.client.data_classes.data_modeling import NodeId, ViewId
|
|
9
10
|
|
|
10
11
|
from cognite_toolkit._cdf_tk.client import ToolkitClient
|
|
11
12
|
from cognite_toolkit._cdf_tk.cruds import FileMetadataCRUD
|
|
@@ -15,16 +16,20 @@ from cognite_toolkit._cdf_tk.utils.fileio import MultiFileReader
|
|
|
15
16
|
from cognite_toolkit._cdf_tk.utils.http_client import (
|
|
16
17
|
DataBodyRequest,
|
|
17
18
|
ErrorDetails,
|
|
19
|
+
FailedResponse,
|
|
18
20
|
FailedResponseItems,
|
|
19
21
|
HTTPClient,
|
|
20
22
|
HTTPMessage,
|
|
23
|
+
ResponseList,
|
|
21
24
|
SimpleBodyRequest,
|
|
22
25
|
)
|
|
23
26
|
from cognite_toolkit._cdf_tk.utils.useful_types import JsonVal
|
|
24
27
|
|
|
25
28
|
from ._base import Page, UploadableStorageIO, UploadItem
|
|
26
29
|
from .selectors import FileContentSelector, FileMetadataTemplateSelector
|
|
27
|
-
from .selectors._file_content import FILEPATH
|
|
30
|
+
from .selectors._file_content import FILEPATH, FileDataModelingTemplateSelector
|
|
31
|
+
|
|
32
|
+
COGNITE_FILE_VIEW = ViewId("cdf_cdm", "CogniteFile", "v1")
|
|
28
33
|
|
|
29
34
|
|
|
30
35
|
@dataclass
|
|
@@ -94,35 +99,20 @@ class FileContentIO(UploadableStorageIO[FileContentSelector, FileMetadata, FileM
|
|
|
94
99
|
http_client: HTTPClient,
|
|
95
100
|
selector: FileContentSelector | None = None,
|
|
96
101
|
) -> Sequence[HTTPMessage]:
|
|
97
|
-
if not isinstance(selector, FileMetadataTemplateSelector):
|
|
98
|
-
raise ToolkitNotImplementedError("Only uploading of file metadata is currently supported.")
|
|
99
|
-
config = http_client.config
|
|
100
102
|
results: MutableSequence[HTTPMessage] = []
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
103
|
+
if isinstance(selector, FileMetadataTemplateSelector):
|
|
104
|
+
upload_url_getter = self._upload_url_asset_centric
|
|
105
|
+
elif isinstance(selector, FileDataModelingTemplateSelector):
|
|
106
|
+
upload_url_getter = self._upload_url_data_modeling
|
|
107
|
+
elif selector is None:
|
|
108
|
+
raise ToolkitNotImplementedError("Selector must be provided for FileContentIO upload")
|
|
109
|
+
else:
|
|
110
|
+
raise ToolkitNotImplementedError(
|
|
111
|
+
f"Upload for the given selector, {type(selector).__name__}, is not supported for FileContentIO"
|
|
109
112
|
)
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
results.extend(responses.as_item_responses(item.as_id()))
|
|
114
|
-
continue
|
|
115
|
-
try:
|
|
116
|
-
upload_url = cast(str, body["uploadUrl"])
|
|
117
|
-
except (KeyError, IndexError):
|
|
118
|
-
results.append(
|
|
119
|
-
FailedResponseItems(
|
|
120
|
-
status_code=200,
|
|
121
|
-
body=json.dumps(body),
|
|
122
|
-
error=ErrorDetails(code=200, message="Malformed response"),
|
|
123
|
-
ids=[item.as_id()],
|
|
124
|
-
)
|
|
125
|
-
)
|
|
113
|
+
|
|
114
|
+
for item in cast(Sequence[UploadFileContentItem], data_chunk):
|
|
115
|
+
if not (upload_url := upload_url_getter(item, http_client, results)):
|
|
126
116
|
continue
|
|
127
117
|
|
|
128
118
|
upload_response = http_client.request_with_retries(
|
|
@@ -136,6 +126,119 @@ class FileContentIO(UploadableStorageIO[FileContentSelector, FileMetadata, FileM
|
|
|
136
126
|
results.extend(upload_response.as_item_responses(item.as_id()))
|
|
137
127
|
return results
|
|
138
128
|
|
|
129
|
+
def _upload_url_asset_centric(
|
|
130
|
+
self, item: UploadFileContentItem, http_client: HTTPClient, results: MutableSequence[HTTPMessage]
|
|
131
|
+
) -> str | None:
|
|
132
|
+
responses = http_client.request_with_retries(
|
|
133
|
+
message=SimpleBodyRequest(
|
|
134
|
+
endpoint_url=http_client.config.create_api_url(self.UPLOAD_ENDPOINT),
|
|
135
|
+
method="POST",
|
|
136
|
+
# MyPy does not understand that .dump is valid json
|
|
137
|
+
body_content=item.dump(), # type: ignore[arg-type]
|
|
138
|
+
)
|
|
139
|
+
)
|
|
140
|
+
return self._parse_upload_link_response(responses, item, results)
|
|
141
|
+
|
|
142
|
+
def _upload_url_data_modeling(
|
|
143
|
+
self,
|
|
144
|
+
item: UploadFileContentItem,
|
|
145
|
+
http_client: HTTPClient,
|
|
146
|
+
results: MutableSequence[HTTPMessage],
|
|
147
|
+
created_node: bool = False,
|
|
148
|
+
) -> str | None:
|
|
149
|
+
"""Get upload URL for data modeling file upload.
|
|
150
|
+
|
|
151
|
+
We first try to get the upload link assuming the CogniteFile node already exists.
|
|
152
|
+
If we get a "not found" error, we create the CogniteFile node and try again.
|
|
153
|
+
|
|
154
|
+
Args:
|
|
155
|
+
item: The upload item containing file metadata.
|
|
156
|
+
http_client: The HTTP client to use for requests.
|
|
157
|
+
results: A mutable sequence to collect HTTP messages and errors.
|
|
158
|
+
created_node: A flag indicating whether the CogniteFile node has already been created.
|
|
159
|
+
This prevents infinite recursion.
|
|
160
|
+
|
|
161
|
+
Returns:
|
|
162
|
+
The upload URL as a string, or None if there was an error.
|
|
163
|
+
|
|
164
|
+
"""
|
|
165
|
+
# We know that instance_id is always set for data modeling uploads
|
|
166
|
+
instance_id = cast(NodeId, item.item.instance_id)
|
|
167
|
+
responses = http_client.request_with_retries(
|
|
168
|
+
message=SimpleBodyRequest(
|
|
169
|
+
endpoint_url=http_client.config.create_api_url("/files/uploadlink"),
|
|
170
|
+
method="POST",
|
|
171
|
+
body_content={"items": [{"instanceId": instance_id.dump(include_instance_type=False)}]}, # type: ignore[dict-item]
|
|
172
|
+
)
|
|
173
|
+
)
|
|
174
|
+
# We know there is only one response since we only requested one upload link
|
|
175
|
+
response = responses[0]
|
|
176
|
+
if isinstance(response, FailedResponse) and response.error.missing and not created_node:
|
|
177
|
+
if self._create_cognite_file_node(instance_id, http_client, item.as_id(), results):
|
|
178
|
+
return self._upload_url_data_modeling(item, http_client, results, created_node=True)
|
|
179
|
+
else:
|
|
180
|
+
return None
|
|
181
|
+
|
|
182
|
+
return self._parse_upload_link_response(responses, item, results)
|
|
183
|
+
|
|
184
|
+
@classmethod
|
|
185
|
+
def _create_cognite_file_node(
|
|
186
|
+
cls, instance_id: NodeId, http_client: HTTPClient, upload_id: str, results: MutableSequence[HTTPMessage]
|
|
187
|
+
) -> bool:
|
|
188
|
+
node_creation = http_client.request_with_retries(
|
|
189
|
+
message=SimpleBodyRequest(
|
|
190
|
+
endpoint_url=http_client.config.create_api_url("/models/instances"),
|
|
191
|
+
method="POST",
|
|
192
|
+
body_content={
|
|
193
|
+
"items": [
|
|
194
|
+
{
|
|
195
|
+
"space": instance_id.space,
|
|
196
|
+
"externalId": instance_id.external_id,
|
|
197
|
+
"instanceType": "node",
|
|
198
|
+
# When we create a node with properties in CogniteFile View even with empty properties,
|
|
199
|
+
# CDF will fill in empty values for all properties defined in the view (note this is only
|
|
200
|
+
# possible because CogniteFile view has all properties as optional). This includes properties
|
|
201
|
+
# in the CogniteFile container, which will trigger the file syncer to create a FileMetadata
|
|
202
|
+
# and link it to the CogniteFile node.
|
|
203
|
+
"sources": [{"source": COGNITE_FILE_VIEW.dump(include_type=True), "properties": {}}], # type: ignore[dict-item]
|
|
204
|
+
}
|
|
205
|
+
]
|
|
206
|
+
},
|
|
207
|
+
)
|
|
208
|
+
)
|
|
209
|
+
try:
|
|
210
|
+
_ = node_creation.get_first_body()
|
|
211
|
+
except ValueError:
|
|
212
|
+
results.extend(node_creation.as_item_responses(upload_id))
|
|
213
|
+
return False
|
|
214
|
+
return True
|
|
215
|
+
|
|
216
|
+
@classmethod
|
|
217
|
+
def _parse_upload_link_response(
|
|
218
|
+
cls, responses: ResponseList, item: UploadFileContentItem, results: MutableSequence[HTTPMessage]
|
|
219
|
+
) -> str | None:
|
|
220
|
+
try:
|
|
221
|
+
body = responses.get_first_body()
|
|
222
|
+
except ValueError:
|
|
223
|
+
results.extend(responses.as_item_responses(item.as_id()))
|
|
224
|
+
return None
|
|
225
|
+
|
|
226
|
+
if "items" in body and isinstance(body["items"], list) and len(body["items"]) > 0:
|
|
227
|
+
body = body["items"][0] # type: ignore[assignment]
|
|
228
|
+
try:
|
|
229
|
+
upload_url = cast(str, body["uploadUrl"])
|
|
230
|
+
except (KeyError, IndexError):
|
|
231
|
+
results.append(
|
|
232
|
+
FailedResponseItems(
|
|
233
|
+
status_code=200,
|
|
234
|
+
body=json.dumps(body),
|
|
235
|
+
error=ErrorDetails(code=200, message="Malformed response"),
|
|
236
|
+
ids=[item.as_id()],
|
|
237
|
+
)
|
|
238
|
+
)
|
|
239
|
+
return None
|
|
240
|
+
return upload_url
|
|
241
|
+
|
|
139
242
|
@classmethod
|
|
140
243
|
def read_chunks(
|
|
141
244
|
cls, reader: MultiFileReader, selector: FileContentSelector
|
|
@@ -15,6 +15,7 @@ from ._datapoints import (
|
|
|
15
15
|
)
|
|
16
16
|
from ._file_content import (
|
|
17
17
|
FileContentSelector,
|
|
18
|
+
FileDataModelingTemplate,
|
|
18
19
|
FileDataModelingTemplateSelector,
|
|
19
20
|
FileMetadataTemplate,
|
|
20
21
|
FileMetadataTemplateSelector,
|
|
@@ -64,6 +65,7 @@ __all__ = [
|
|
|
64
65
|
"DataSetSelector",
|
|
65
66
|
"ExternalIdColumn",
|
|
66
67
|
"FileContentSelector",
|
|
68
|
+
"FileDataModelingTemplate",
|
|
67
69
|
"FileDataModelingTemplateSelector",
|
|
68
70
|
"FileMetadataTemplate",
|
|
69
71
|
"FileMetadataTemplateSelector",
|
|
@@ -3,7 +3,7 @@ from abc import ABC, abstractmethod
|
|
|
3
3
|
from pathlib import Path
|
|
4
4
|
from typing import Any, Literal
|
|
5
5
|
|
|
6
|
-
from pydantic import ConfigDict, field_validator
|
|
6
|
+
from pydantic import ConfigDict, field_validator, model_validator
|
|
7
7
|
|
|
8
8
|
from ._base import DataSelector, SelectorObject
|
|
9
9
|
from ._instances import SelectedView
|
|
@@ -64,7 +64,7 @@ class FileMetadataTemplateSelector(FileContentSelector):
|
|
|
64
64
|
return self.template.create_instance(filepath.name)
|
|
65
65
|
|
|
66
66
|
|
|
67
|
-
class
|
|
67
|
+
class TemplateNodeId(SelectorObject):
|
|
68
68
|
space: str
|
|
69
69
|
external_id: str
|
|
70
70
|
|
|
@@ -79,9 +79,23 @@ class FileDataModelingTemplate(FileTemplate):
|
|
|
79
79
|
return v
|
|
80
80
|
|
|
81
81
|
|
|
82
|
+
class FileDataModelingTemplate(FileTemplate):
|
|
83
|
+
instance_id: TemplateNodeId
|
|
84
|
+
# Name is required for FileMetadata but not for CogniteFiles. This is the same default behavior as in CDF.
|
|
85
|
+
name: str = "untitled"
|
|
86
|
+
|
|
87
|
+
@model_validator(mode="before")
|
|
88
|
+
def _move_space_external_id(cls, data: dict[str, Any]) -> dict[str, Any]:
|
|
89
|
+
if "space" in data and "externalId" in data:
|
|
90
|
+
data["instanceId"] = {"space": data.pop("space"), "externalId": data.pop("externalId")}
|
|
91
|
+
elif "space" in data and "external_id" in data:
|
|
92
|
+
data["instance_id"] = {"space": data.pop("space"), "external_id": data.pop("external_id")}
|
|
93
|
+
return data
|
|
94
|
+
|
|
95
|
+
|
|
82
96
|
class FileDataModelingTemplateSelector(FileContentSelector):
|
|
83
97
|
type: Literal["fileDataModelingTemplate"] = "fileDataModelingTemplate"
|
|
84
|
-
view_id: SelectedView
|
|
98
|
+
view_id: SelectedView = SelectedView(space="cdf_cdm", external_id="CogniteFile", version="v1")
|
|
85
99
|
template: FileDataModelingTemplate
|
|
86
100
|
|
|
87
101
|
@property
|
|
@@ -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.6.
|
|
7
|
+
version = "0.6.117"
|
|
8
8
|
|
|
9
9
|
[alpha_flags]
|
|
10
10
|
external-libraries = true
|
cognite_toolkit/_version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.6.
|
|
1
|
+
__version__ = "0.6.117"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cognite_toolkit
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.117
|
|
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,11 +1,11 @@
|
|
|
1
1
|
cognite_toolkit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
2
|
cognite_toolkit/_cdf.py,sha256=qr31QC3AhJukM-9rBeWHBTLuNU01XIXAtV5dzqOU3iA,5958
|
|
3
|
-
cognite_toolkit/_version.py,sha256=
|
|
3
|
+
cognite_toolkit/_version.py,sha256=BKspJAzQvSvpMvDSKrNyLpL6pmtl3WZKJUMkohpMWyU,24
|
|
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=3UpFZ60xXdqgPqqpqCITQuAvjnVExH_IlbASxoelvu8,7236
|
|
7
7
|
cognite_toolkit/_cdf_tk/exceptions.py,sha256=xG0jMwi5A20nvPvyo6sCyz_cyKycynPyIzpYiGR4gcU,6064
|
|
8
|
-
cognite_toolkit/_cdf_tk/feature_flags.py,sha256=
|
|
8
|
+
cognite_toolkit/_cdf_tk/feature_flags.py,sha256=DYIsy-Ee4CB0Ixwp5LCc1-vy80ivnET7myTJXOTh74E,3241
|
|
9
9
|
cognite_toolkit/_cdf_tk/hints.py,sha256=UI1ymi2T5wCcYOpEbKbVaDnlyFReFy8TDtMVt-5E1h8,6493
|
|
10
10
|
cognite_toolkit/_cdf_tk/plugins.py,sha256=JwaN_jrrky1PXBJ3tRpZ22cIcD01EB46WVFgp_bK-fQ,856
|
|
11
11
|
cognite_toolkit/_cdf_tk/protocols.py,sha256=Lc8XnBfmDZN6dwmSopmK7cFE9a9jZ2zdUryEeCXn27I,3052
|
|
@@ -17,7 +17,7 @@ cognite_toolkit/_cdf_tk/apps/_core_app.py,sha256=Xlhdv2MoCs2kBk0kgJixiy8ouCfixUW
|
|
|
17
17
|
cognite_toolkit/_cdf_tk/apps/_data_app.py,sha256=rFnTcUBAuoFcTQCjxwqZGG0HjUMGdYTFyBGXxWg5gXE,824
|
|
18
18
|
cognite_toolkit/_cdf_tk/apps/_dev_app.py,sha256=q8DBr4BAK33AwsHW3gAWZWSjSaQRuCisqPbsBjmYSxk,589
|
|
19
19
|
cognite_toolkit/_cdf_tk/apps/_download_app.py,sha256=g-VA51KI91wziVuO3w305rmr33xIb0ghYTtW06LhNz8,31994
|
|
20
|
-
cognite_toolkit/_cdf_tk/apps/_dump_app.py,sha256=
|
|
20
|
+
cognite_toolkit/_cdf_tk/apps/_dump_app.py,sha256=ujM_umb-g9xO-Hf2NEzCr6u0SLnsUbxvQHvhehJBFo0,40616
|
|
21
21
|
cognite_toolkit/_cdf_tk/apps/_landing_app.py,sha256=HxzSln3fJXs5NzulfQGUMropXcwMobUYpyePrCrQTQs,1502
|
|
22
22
|
cognite_toolkit/_cdf_tk/apps/_migrate_app.py,sha256=g4S_53kbIgk57ziPLdRMuR6xUe434gkMqa69VmVm5Vg,39619
|
|
23
23
|
cognite_toolkit/_cdf_tk/apps/_modules_app.py,sha256=95_H2zccRJl2mWn0oQ5mjCaEDnG63sPKOkB81IgWcIk,7637
|
|
@@ -245,16 +245,16 @@ cognite_toolkit/_cdf_tk/storageio/_asset_centric.py,sha256=mRwcVvBzUES21zNb-mDH7
|
|
|
245
245
|
cognite_toolkit/_cdf_tk/storageio/_base.py,sha256=cllSyg3rRGov_X45CoJ_isXhz0cU9Mt7OyV7_t_SeWw,12156
|
|
246
246
|
cognite_toolkit/_cdf_tk/storageio/_data_classes.py,sha256=s3TH04BJ1q7rXndRhEbVMEnoOXjxrGg4n-w9Z5uUL-o,3480
|
|
247
247
|
cognite_toolkit/_cdf_tk/storageio/_datapoints.py,sha256=AGTQm9CBRbu1oXbBh0X7UGzFrHnlWZExqNvAohT0hM0,8641
|
|
248
|
-
cognite_toolkit/_cdf_tk/storageio/_file_content.py,sha256=
|
|
248
|
+
cognite_toolkit/_cdf_tk/storageio/_file_content.py,sha256=g8HDDHbBPBcb3g6Zp-vHc8uvNZYrZXWs5G0jq_eOc4w,10884
|
|
249
249
|
cognite_toolkit/_cdf_tk/storageio/_instances.py,sha256=t9fNpHnT6kCk8LDoPj3qZXmHpyDbPF5BZ6pI8ziTyFw,10810
|
|
250
250
|
cognite_toolkit/_cdf_tk/storageio/_raw.py,sha256=5WjAFiVR0KKRhMqCy1IRy1TQFWj86D7nGu5WSFNLp6U,3869
|
|
251
|
-
cognite_toolkit/_cdf_tk/storageio/selectors/__init__.py,sha256=
|
|
251
|
+
cognite_toolkit/_cdf_tk/storageio/selectors/__init__.py,sha256=ELUCirQmhDR52PVIhLRd_2M1DWYURwL44U6WiN9_hEA,2225
|
|
252
252
|
cognite_toolkit/_cdf_tk/storageio/selectors/_asset_centric.py,sha256=7Iv_ccVX6Vzt3ZLFZ0Er3hN92iEsFTm9wgF-yermOWE,1467
|
|
253
253
|
cognite_toolkit/_cdf_tk/storageio/selectors/_base.py,sha256=hjFkbmNGsK3QIW-jnJV_8YNmvVROERxzG82qIZhU7SM,3065
|
|
254
254
|
cognite_toolkit/_cdf_tk/storageio/selectors/_canvas.py,sha256=E9S-wr-JUqRosI_2cSCfR0tF8MdIFTrMxDItuWRcuO4,597
|
|
255
255
|
cognite_toolkit/_cdf_tk/storageio/selectors/_charts.py,sha256=lQHuNtF3i6SEIMPAlziMm0QlqRcvZJ7MKIug6HMTDrs,1012
|
|
256
256
|
cognite_toolkit/_cdf_tk/storageio/selectors/_datapoints.py,sha256=EHVkWJYJ_HCs2i4Ur6Fj98UwuDvf67u0HOzrJXAHNt0,1719
|
|
257
|
-
cognite_toolkit/_cdf_tk/storageio/selectors/_file_content.py,sha256=
|
|
257
|
+
cognite_toolkit/_cdf_tk/storageio/selectors/_file_content.py,sha256=J_lP04QsvqCOIiw_u2rGMqIa_7obIxCaFkC70ukUjpI,3628
|
|
258
258
|
cognite_toolkit/_cdf_tk/storageio/selectors/_instances.py,sha256=NCFSJrAw52bNX6UTfOali8PvNjlqHnvxzL0hYBr7ZmA,4934
|
|
259
259
|
cognite_toolkit/_cdf_tk/storageio/selectors/_raw.py,sha256=sZq9C4G9DMe3S46_usKet0FphQ6ow7cWM_PfXrEAakk,503
|
|
260
260
|
cognite_toolkit/_cdf_tk/tk_warnings/__init__.py,sha256=U9bT-G2xKrX6mmtZ7nZ1FfQeCjNKfKP_p7pev90dwOE,2316
|
|
@@ -302,13 +302,13 @@ cognite_toolkit/_repo_files/.gitignore,sha256=ip9kf9tcC5OguF4YF4JFEApnKYw0nG0vPi
|
|
|
302
302
|
cognite_toolkit/_repo_files/AzureDevOps/.devops/README.md,sha256=OLA0D7yCX2tACpzvkA0IfkgQ4_swSd-OlJ1tYcTBpsA,240
|
|
303
303
|
cognite_toolkit/_repo_files/AzureDevOps/.devops/deploy-pipeline.yml,sha256=brULcs8joAeBC_w_aoWjDDUHs3JheLMIR9ajPUK96nc,693
|
|
304
304
|
cognite_toolkit/_repo_files/AzureDevOps/.devops/dry-run-pipeline.yml,sha256=OBFDhFWK1mlT4Dc6mDUE2Es834l8sAlYG50-5RxRtHk,723
|
|
305
|
-
cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=
|
|
306
|
-
cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=
|
|
307
|
-
cognite_toolkit/_resources/cdf.toml,sha256=
|
|
305
|
+
cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=6k6HSNh490UfDKoXgD6-zjHxp0oLOHZ7Pe566JXtFXo,668
|
|
306
|
+
cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=JCVFSFk7wCo0Kk_Xb5rthWA_Us_A1haz5_-x0fBHjqk,2431
|
|
307
|
+
cognite_toolkit/_resources/cdf.toml,sha256=jwpeT_8ADisMF91205BNXWG5uwvouB23NqJnjQJ_ch4,488
|
|
308
308
|
cognite_toolkit/demo/__init__.py,sha256=-m1JoUiwRhNCL18eJ6t7fZOL7RPfowhCuqhYFtLgrss,72
|
|
309
309
|
cognite_toolkit/demo/_base.py,sha256=6xKBUQpXZXGQ3fJ5f7nj7oT0s2n7OTAGIa17ZlKHZ5U,8052
|
|
310
|
-
cognite_toolkit-0.6.
|
|
311
|
-
cognite_toolkit-0.6.
|
|
312
|
-
cognite_toolkit-0.6.
|
|
313
|
-
cognite_toolkit-0.6.
|
|
314
|
-
cognite_toolkit-0.6.
|
|
310
|
+
cognite_toolkit-0.6.117.dist-info/METADATA,sha256=UbtMFVinEza_hEI1bTyTkh3qB0TBo6IMfhZDU4sCzJo,4502
|
|
311
|
+
cognite_toolkit-0.6.117.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
312
|
+
cognite_toolkit-0.6.117.dist-info/entry_points.txt,sha256=JlR7MH1_UMogC3QOyN4-1l36VbrCX9xUdQoHGkuJ6-4,83
|
|
313
|
+
cognite_toolkit-0.6.117.dist-info/licenses/LICENSE,sha256=CW0DRcx5tL-pCxLEN7ts2S9g2sLRAsWgHVEX4SN9_Mc,752
|
|
314
|
+
cognite_toolkit-0.6.117.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|