cognite-toolkit 0.7.3__py3-none-any.whl → 0.7.5__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.
@@ -20,17 +20,27 @@ from .api.project import ProjectAPI
20
20
  from .api.robotics import RoboticsAPI
21
21
  from .api.search import SearchAPI
22
22
  from .api.streams import StreamsAPI
23
+ from .api.three_d import ThreeDAPI
23
24
  from .api.token import TokenAPI
24
25
  from .api.verify import VerifyAPI
25
26
  from .config import ToolkitClientConfig
26
27
 
27
28
 
29
+ class ToolAPI:
30
+ """This is reimplemented CogniteAPIs in Toolkit"""
31
+
32
+ def __init__(self, http_client: HTTPClient, console: Console) -> None:
33
+ self.http_client = http_client
34
+ self.three_d = ThreeDAPI(http_client, console)
35
+
36
+
28
37
  class ToolkitClient(CogniteClient):
29
38
  def __init__(self, config: ToolkitClientConfig | None = None, enable_set_pending_ids: bool = False) -> None:
30
39
  super().__init__(config=config)
31
40
  http_client = HTTPClient(self.config)
32
41
  toolkit_config = ToolkitClientConfig.from_client_config(self.config)
33
42
  self.console = Console()
43
+ self.tool = ToolAPI(http_client, self.console)
34
44
  self.search = SearchAPI(self._config, self._API_VERSION, self)
35
45
  self.robotics = RoboticsAPI(self._config, self._API_VERSION, self)
36
46
  self.dml = DMLAPI(self._config, self._API_VERSION, self)
@@ -0,0 +1,50 @@
1
+ from rich.console import Console
2
+
3
+ from cognite_toolkit._cdf_tk.client.data_classes.api_classes import PagedResponse
4
+ from cognite_toolkit._cdf_tk.client.data_classes.three_d import ThreeDModelResponse
5
+ from cognite_toolkit._cdf_tk.utils.http_client import HTTPClient, ParamRequest
6
+ from cognite_toolkit._cdf_tk.utils.useful_types import PrimitiveType
7
+
8
+
9
+ class ThreeDModelAPI:
10
+ ENDPOINT = "/3d/models"
11
+
12
+ def __init__(self, http_client: HTTPClient, console: Console) -> None:
13
+ self._http_client = http_client
14
+ self._console = console
15
+ self._config = http_client.config
16
+
17
+ def iterate(
18
+ self,
19
+ published: bool | None = None,
20
+ include_revision_info: bool = False,
21
+ limit: int = 100,
22
+ cursor: str | None = None,
23
+ ) -> PagedResponse[ThreeDModelResponse]:
24
+ if not (0 < limit <= 1000):
25
+ raise ValueError("Limit must be between 1 and 1000.")
26
+ parameters: dict[str, PrimitiveType] = {
27
+ # There is a bug in the API. The parameter includeRevisionInfo is expected to be lower case and not
28
+ # camel case as documented. You get error message: Unrecognized query parameter includeRevisionInfo,
29
+ # did you mean includerevisioninfo?
30
+ "includerevisioninfo": include_revision_info,
31
+ "limit": limit,
32
+ }
33
+ if published is not None:
34
+ parameters["published"] = published
35
+ if cursor is not None:
36
+ parameters["cursor"] = cursor
37
+ responses = self._http_client.request_with_retries(
38
+ ParamRequest(
39
+ endpoint_url=self._config.create_api_url(self.ENDPOINT),
40
+ method="GET",
41
+ parameters=parameters,
42
+ )
43
+ )
44
+ responses.raise_for_status()
45
+ return PagedResponse[ThreeDModelResponse].model_validate(responses.get_first_body())
46
+
47
+
48
+ class ThreeDAPI:
49
+ def __init__(self, http_client: HTTPClient, console: Console) -> None:
50
+ self.models = ThreeDModelAPI(http_client, console)
@@ -0,0 +1,47 @@
1
+ from typing import Literal
2
+
3
+ from .base import BaseModelObject, RequestResource, ResponseResource
4
+
5
+
6
+ class NodeReference(BaseModelObject):
7
+ space: str
8
+ external_id: str
9
+
10
+
11
+ class RevisionStatus(BaseModelObject):
12
+ status: Literal["Queued", "Processing", "Done", "Failed"] | None = None
13
+ revision_id: int | None = None
14
+ created_time: int | None = None
15
+ revision_count: int | None = None
16
+ types: list[str] | None = None
17
+
18
+
19
+ class ThreeDModelRequest(RequestResource):
20
+ name: str
21
+
22
+
23
+ class ThreeDModelClassicRequest(ThreeDModelRequest):
24
+ data_set_id: int | None = None
25
+ metadata: dict[str, str] | None = None
26
+
27
+
28
+ class ThreeDModelDMSRequest(ThreeDModelRequest):
29
+ space: str
30
+ type: Literal["CAD", "PointCloud", "Image360"]
31
+ thumbnail_reference: NodeReference | None = None
32
+
33
+
34
+ class ThreeDModelResponse(ResponseResource[ThreeDModelRequest]):
35
+ name: str
36
+ id: int
37
+ created_time: int
38
+ data_set_id: int | None = None
39
+ metadata: dict[str, str] | None = None
40
+ space: str | None = None
41
+ last_revision_info: RevisionStatus | None = None
42
+
43
+ def as_request_resource(self) -> ThreeDModelRequest:
44
+ if self.space is None:
45
+ return ThreeDModelClassicRequest._load(self.dump())
46
+ else:
47
+ return ThreeDModelDMSRequest._load(self.dump())
@@ -2,10 +2,9 @@ from collections.abc import Callable, Iterable
2
2
  from functools import partial
3
3
  from pathlib import Path
4
4
 
5
- from cognite.client.data_classes._base import T_CogniteResource
6
-
7
5
  from cognite_toolkit._cdf_tk.constants import DATA_MANIFEST_STEM, DATA_RESOURCE_DIR
8
6
  from cognite_toolkit._cdf_tk.exceptions import ToolkitValueError
7
+ from cognite_toolkit._cdf_tk.protocols import T_ResourceResponse
9
8
  from cognite_toolkit._cdf_tk.storageio import ConfigurableStorageIO, Page, StorageIO, T_Selector, TableStorageIO
10
9
  from cognite_toolkit._cdf_tk.tk_warnings import LowSeverityWarning
11
10
  from cognite_toolkit._cdf_tk.utils.file import safe_write, sanitize_filename, yaml_safe_dump
@@ -20,7 +19,7 @@ class DownloadCommand(ToolkitCommand):
20
19
  def download(
21
20
  self,
22
21
  selectors: Iterable[T_Selector],
23
- io: StorageIO[T_Selector, T_CogniteResource],
22
+ io: StorageIO[T_Selector, T_ResourceResponse],
24
23
  output_dir: Path,
25
24
  verbose: bool,
26
25
  file_format: str,
@@ -68,7 +67,7 @@ class DownloadCommand(ToolkitCommand):
68
67
  with FileWriter.create_from_format(
69
68
  file_format, target_dir, selector.kind, compression_cls, columns=columns
70
69
  ) as writer:
71
- executor = ProducerWorkerExecutor[Page[T_CogniteResource], list[dict[str, JsonVal]]](
70
+ executor = ProducerWorkerExecutor[Page[T_ResourceResponse], list[dict[str, JsonVal]]](
72
71
  download_iterable=io.stream_data(selector, limit),
73
72
  process=self.create_data_process(io=io, selector=selector, is_table=is_table),
74
73
  write=partial(writer.write_chunks, filestem=filestem),
@@ -95,7 +94,7 @@ class DownloadCommand(ToolkitCommand):
95
94
 
96
95
  @staticmethod
97
96
  def _get_iteration_count(
98
- io: StorageIO[T_Selector, T_CogniteResource],
97
+ io: StorageIO[T_Selector, T_ResourceResponse],
99
98
  selector: T_Selector,
100
99
  limit: int | None,
101
100
  ) -> int | None:
@@ -126,19 +125,19 @@ class DownloadCommand(ToolkitCommand):
126
125
 
127
126
  @staticmethod
128
127
  def create_data_process(
129
- io: StorageIO[T_Selector, T_CogniteResource],
128
+ io: StorageIO[T_Selector, T_ResourceResponse],
130
129
  selector: T_Selector,
131
130
  is_table: bool,
132
- ) -> Callable[[Page[T_CogniteResource]], list[dict[str, JsonVal]]]:
131
+ ) -> Callable[[Page[T_ResourceResponse]], list[dict[str, JsonVal]]]:
133
132
  """Creates a data processing function based on the IO type and whether the output is a table."""
134
133
  if is_table and isinstance(io, TableStorageIO):
135
134
 
136
- def row_data_process(chunk: Page[T_CogniteResource]) -> list[dict[str, JsonVal]]:
135
+ def row_data_process(chunk: Page[T_ResourceResponse]) -> list[dict[str, JsonVal]]:
137
136
  return io.data_to_row(chunk.items, selector)
138
137
 
139
138
  return row_data_process
140
139
 
141
- def chunk_data_process(data_page: Page[T_CogniteResource]) -> list[dict[str, JsonVal]]:
140
+ def chunk_data_process(data_page: Page[T_ResourceResponse]) -> list[dict[str, JsonVal]]:
142
141
  return io.data_to_json_chunk(data_page.items, selector)
143
142
 
144
143
  return chunk_data_process
@@ -2,7 +2,6 @@ from collections.abc import Callable, Iterable, Sequence
2
2
  from enum import Enum
3
3
  from pathlib import Path
4
4
 
5
- from cognite.client.data_classes._base import T_CogniteResource
6
5
  from rich import print
7
6
  from rich.console import Console
8
7
  from rich.table import Table
@@ -20,6 +19,7 @@ from cognite_toolkit._cdf_tk.exceptions import (
20
19
  ToolkitMigrationError,
21
20
  ToolkitValueError,
22
21
  )
22
+ from cognite_toolkit._cdf_tk.protocols import T_ResourceRequest, T_ResourceResponse
23
23
  from cognite_toolkit._cdf_tk.storageio import T_Selector, UploadableStorageIO, UploadItem
24
24
  from cognite_toolkit._cdf_tk.utils import humanize_collection, safe_write, sanitize_filename
25
25
  from cognite_toolkit._cdf_tk.utils.file import yaml_safe_dump
@@ -27,7 +27,6 @@ from cognite_toolkit._cdf_tk.utils.fileio import Chunk, CSVWriter, NDJsonWriter,
27
27
  from cognite_toolkit._cdf_tk.utils.http_client import HTTPClient, HTTPMessage, ItemMessage, SuccessResponseItems
28
28
  from cognite_toolkit._cdf_tk.utils.producer_worker import ProducerWorkerExecutor
29
29
  from cognite_toolkit._cdf_tk.utils.progress_tracker import AVAILABLE_STATUS, ProgressTracker, Status
30
- from cognite_toolkit._cdf_tk.utils.useful_types import T_WriteCogniteResource
31
30
 
32
31
  from .data_model import INSTANCE_SOURCE_VIEW_ID, MODEL_ID, RESOURCE_VIEW_MAPPING_VIEW_ID
33
32
 
@@ -45,8 +44,8 @@ class MigrationCommand(ToolkitCommand):
45
44
  def migrate(
46
45
  self,
47
46
  selected: T_Selector,
48
- data: UploadableStorageIO[T_Selector, T_CogniteResource, T_WriteCogniteResource],
49
- mapper: DataMapper[T_Selector, T_CogniteResource, T_WriteCogniteResource],
47
+ data: UploadableStorageIO[T_Selector, T_ResourceResponse, T_ResourceRequest],
48
+ mapper: DataMapper[T_Selector, T_ResourceResponse, T_ResourceRequest],
50
49
  log_dir: Path,
51
50
  dry_run: bool = False,
52
51
  verbose: bool = False,
@@ -71,9 +70,7 @@ class MigrationCommand(ToolkitCommand):
71
70
  NDJsonWriter(log_dir, kind=f"{selected.kind}MigrationIssues", compression=Uncompressed) as log_file,
72
71
  HTTPClient(config=data.client.config) as write_client,
73
72
  ):
74
- executor = ProducerWorkerExecutor[
75
- Sequence[T_CogniteResource], Sequence[UploadItem[T_WriteCogniteResource]]
76
- ](
73
+ executor = ProducerWorkerExecutor[Sequence[T_ResourceResponse], Sequence[UploadItem[T_ResourceRequest]]](
77
74
  download_iterable=self._download_iterable(selected, data, tracker),
78
75
  process=self._convert(mapper, data, tracker, log_file),
79
76
  write=self._upload(selected, write_client, data, tracker, log_file, dry_run),
@@ -141,9 +138,9 @@ class MigrationCommand(ToolkitCommand):
141
138
  def _download_iterable(
142
139
  self,
143
140
  selected: T_Selector,
144
- data: UploadableStorageIO[T_Selector, T_CogniteResource, T_WriteCogniteResource],
141
+ data: UploadableStorageIO[T_Selector, T_ResourceResponse, T_ResourceRequest],
145
142
  tracker: ProgressTracker[str],
146
- ) -> Iterable[Sequence[T_CogniteResource]]:
143
+ ) -> Iterable[Sequence[T_ResourceResponse]]:
147
144
  for page in data.stream_data(selected):
148
145
  for item in page.items:
149
146
  tracker.set_progress(data.as_id(item), self.Steps.DOWNLOAD, "success")
@@ -151,15 +148,15 @@ class MigrationCommand(ToolkitCommand):
151
148
 
152
149
  def _convert(
153
150
  self,
154
- mapper: DataMapper[T_Selector, T_CogniteResource, T_WriteCogniteResource],
155
- data: UploadableStorageIO[T_Selector, T_CogniteResource, T_WriteCogniteResource],
151
+ mapper: DataMapper[T_Selector, T_ResourceResponse, T_ResourceRequest],
152
+ data: UploadableStorageIO[T_Selector, T_ResourceResponse, T_ResourceRequest],
156
153
  tracker: ProgressTracker[str],
157
154
  log_file: NDJsonWriter,
158
- ) -> Callable[[Sequence[T_CogniteResource]], Sequence[UploadItem[T_WriteCogniteResource]]]:
159
- def track_mapping(source: Sequence[T_CogniteResource]) -> list[UploadItem[T_WriteCogniteResource]]:
155
+ ) -> Callable[[Sequence[T_ResourceResponse]], Sequence[UploadItem[T_ResourceRequest]]]:
156
+ def track_mapping(source: Sequence[T_ResourceResponse]) -> list[UploadItem[T_ResourceRequest]]:
160
157
  mapped = mapper.map(source)
161
158
  issues: list[Chunk] = []
162
- targets: list[UploadItem[T_WriteCogniteResource]] = []
159
+ targets: list[UploadItem[T_ResourceRequest]] = []
163
160
 
164
161
  for (target, issue), item in zip(mapped, source):
165
162
  id_ = data.as_id(item)
@@ -181,12 +178,12 @@ class MigrationCommand(ToolkitCommand):
181
178
  self,
182
179
  selected: T_Selector,
183
180
  write_client: HTTPClient,
184
- target: UploadableStorageIO[T_Selector, T_CogniteResource, T_WriteCogniteResource],
181
+ target: UploadableStorageIO[T_Selector, T_ResourceResponse, T_ResourceRequest],
185
182
  tracker: ProgressTracker[str],
186
183
  log_file: NDJsonWriter,
187
184
  dry_run: bool,
188
- ) -> Callable[[Sequence[UploadItem[T_WriteCogniteResource]]], None]:
189
- def upload_items(data_item: Sequence[UploadItem[T_WriteCogniteResource]]) -> None:
185
+ ) -> Callable[[Sequence[UploadItem[T_ResourceRequest]]], None]:
186
+ def upload_items(data_item: Sequence[UploadItem[T_ResourceRequest]]) -> None:
190
187
  if not data_item:
191
188
  return None
192
189
  responses: Sequence[HTTPMessage]
@@ -3,9 +3,6 @@ from collections.abc import Sequence
3
3
  from typing import Generic, cast
4
4
  from uuid import uuid4
5
5
 
6
- from cognite.client.data_classes._base import (
7
- T_CogniteResource,
8
- )
9
6
  from cognite.client.data_classes.data_modeling import (
10
7
  EdgeApply,
11
8
  InstanceApply,
@@ -30,7 +27,8 @@ from cognite_toolkit._cdf_tk.commands._migrate.issues import ChartMigrationIssue
30
27
  from cognite_toolkit._cdf_tk.commands._migrate.selectors import AssetCentricMigrationSelector
31
28
  from cognite_toolkit._cdf_tk.constants import MISSING_INSTANCE_SPACE
32
29
  from cognite_toolkit._cdf_tk.exceptions import ToolkitValueError
33
- from cognite_toolkit._cdf_tk.storageio._base import T_Selector, T_WriteCogniteResource
30
+ from cognite_toolkit._cdf_tk.protocols import T_ResourceRequest, T_ResourceResponse
31
+ from cognite_toolkit._cdf_tk.storageio._base import T_Selector
34
32
  from cognite_toolkit._cdf_tk.storageio.selectors import ChartSelector
35
33
  from cognite_toolkit._cdf_tk.utils import humanize_collection
36
34
  from cognite_toolkit._cdf_tk.utils.useful_types import (
@@ -38,7 +36,7 @@ from cognite_toolkit._cdf_tk.utils.useful_types import (
38
36
  )
39
37
 
40
38
 
41
- class DataMapper(Generic[T_Selector, T_CogniteResource, T_WriteCogniteResource], ABC):
39
+ class DataMapper(Generic[T_Selector, T_ResourceResponse, T_ResourceRequest], ABC):
42
40
  def prepare(self, source_selector: T_Selector) -> None:
43
41
  """Prepare the data mapper with the given source selector.
44
42
 
@@ -50,9 +48,7 @@ class DataMapper(Generic[T_Selector, T_CogniteResource, T_WriteCogniteResource],
50
48
  pass
51
49
 
52
50
  @abstractmethod
53
- def map(
54
- self, source: Sequence[T_CogniteResource]
55
- ) -> Sequence[tuple[T_WriteCogniteResource | None, MigrationIssue]]:
51
+ def map(self, source: Sequence[T_ResourceResponse]) -> Sequence[tuple[T_ResourceRequest | None, MigrationIssue]]:
56
52
  """Map a chunk of source data to the target format.
57
53
 
58
54
  Args:
@@ -3,7 +3,6 @@ from collections.abc import Sequence
3
3
  from functools import partial
4
4
  from pathlib import Path
5
5
 
6
- from cognite.client.data_classes._base import T_CogniteResource
7
6
  from cognite.client.data_classes.data_modeling import (
8
7
  ViewId,
9
8
  )
@@ -14,12 +13,13 @@ from cognite_toolkit._cdf_tk.client import ToolkitClient
14
13
  from cognite_toolkit._cdf_tk.constants import DATA_MANIFEST_SUFFIX, DATA_RESOURCE_DIR
15
14
  from cognite_toolkit._cdf_tk.cruds import ViewCRUD
16
15
  from cognite_toolkit._cdf_tk.exceptions import ToolkitValueError
16
+ from cognite_toolkit._cdf_tk.protocols import T_ResourceRequest, T_ResourceResponse
17
17
  from cognite_toolkit._cdf_tk.storageio import (
18
18
  T_Selector,
19
19
  UploadableStorageIO,
20
20
  get_upload_io,
21
21
  )
22
- from cognite_toolkit._cdf_tk.storageio._base import T_WriteCogniteResource, TableUploadableStorageIO, UploadItem
22
+ from cognite_toolkit._cdf_tk.storageio._base import TableUploadableStorageIO, UploadItem
23
23
  from cognite_toolkit._cdf_tk.storageio.selectors import Selector, SelectorAdapter
24
24
  from cognite_toolkit._cdf_tk.storageio.selectors._instances import InstanceSpaceSelector
25
25
  from cognite_toolkit._cdf_tk.tk_warnings import HighSeverityWarning, MediumSeverityWarning
@@ -271,9 +271,9 @@ class UploadCommand(ToolkitCommand):
271
271
  @classmethod
272
272
  def _upload_items(
273
273
  cls,
274
- data_chunk: Sequence[UploadItem],
274
+ data_chunk: Sequence[UploadItem[T_ResourceRequest]],
275
275
  upload_client: HTTPClient,
276
- io: UploadableStorageIO[T_Selector, T_CogniteResource, T_WriteCogniteResource],
276
+ io: UploadableStorageIO[T_Selector, T_ResourceResponse, T_ResourceRequest],
277
277
  selector: T_Selector,
278
278
  dry_run: bool,
279
279
  tracker: ProgressTracker[str],
@@ -82,7 +82,7 @@ from cognite_toolkit._cdf_tk.resource_classes import (
82
82
  TransformationScheduleYAML,
83
83
  TransformationYAML,
84
84
  )
85
- from cognite_toolkit._cdf_tk.tk_warnings import HighSeverityWarning
85
+ from cognite_toolkit._cdf_tk.tk_warnings import HighSeverityWarning, MediumSeverityWarning
86
86
  from cognite_toolkit._cdf_tk.utils import (
87
87
  calculate_secure_hash,
88
88
  humanize_collection,
@@ -427,16 +427,37 @@ class TransformationCRUD(
427
427
  if error := self._create_auth_creation_error(chunk):
428
428
  raise error from e
429
429
  raise e
430
- results.extend(chunk_results)
430
+ except CogniteAPIError as e:
431
+ if "Failed to bind session using nonce for" in e.message and len(chunk) > 1:
432
+ MediumSeverityWarning(
433
+ f"Failed to create {len(chunk)} transformations in a batch due to nonce binding error. "
434
+ "Trying to recover by creating them one by one."
435
+ ).print_warning(console=self.console)
436
+ # Retry one by one
437
+ for item in chunk:
438
+ recovered = self._execute_in_batches(items=[item], api_call=api_call)
439
+ results.extend(recovered)
440
+ if self.console:
441
+ self.console.print(
442
+ f" [bold green]RECOVERED:[/] Successfully created {len(chunk)} transformations one by one."
443
+ )
444
+ else:
445
+ raise
446
+ else:
447
+ results.extend(chunk_results)
431
448
  return results
432
449
 
433
450
  def _update_nonce(self, items: Sequence[TransformationWrite]) -> None:
434
451
  for item in items:
435
452
  if not item.external_id:
436
453
  raise ToolkitRequiredValueError("Transformation must have external_id set.")
437
- if read_credentials := self._authentication_by_id_operation.get((item.external_id, "read")):
454
+ if item.source_nonce is None and (
455
+ read_credentials := self._authentication_by_id_operation.get((item.external_id, "read"))
456
+ ):
438
457
  item.source_nonce = self._create_nonce(read_credentials)
439
- if write_credentials := self._authentication_by_id_operation.get((item.external_id, "write")):
458
+ if item.destination_nonce is None and (
459
+ write_credentials := self._authentication_by_id_operation.get((item.external_id, "write"))
460
+ ):
440
461
  item.destination_nonce = self._create_nonce(write_credentials)
441
462
 
442
463
  def _create_nonce(self, credentials: OidcCredentials | ClientCredentials) -> NonceCredentials:
@@ -510,6 +510,18 @@ class LegacyGenericsAcl(Capability):
510
510
  scope: AllScope
511
511
 
512
512
 
513
+ class StreamsAcl(Capability):
514
+ _capability_name = "streamsAcl"
515
+ actions: list[Literal["READ", "CREATE", "DELETE"]]
516
+ scope: AllScope
517
+
518
+
519
+ class StreamRecordsAcl(Capability):
520
+ _capability_name = "streamRecordsAcl"
521
+ actions: list[Literal["READ", "WRITE"]]
522
+ scope: AllScope | SpaceIDScope
523
+
524
+
513
525
  _CAPABILITY_CLASS_BY_NAME: MappingProxyType[str, type[Capability]] = MappingProxyType(
514
526
  {c._capability_name: c for c in Capability.__subclasses__()}
515
527
  )
@@ -3,14 +3,13 @@ from collections.abc import Iterable, Mapping, Sequence, Sized
3
3
  from dataclasses import dataclass
4
4
  from typing import ClassVar, Generic, Literal, TypeVar
5
5
 
6
- from cognite.client.data_classes._base import T_CogniteResource
7
-
8
6
  from cognite_toolkit._cdf_tk.client import ToolkitClient
9
7
  from cognite_toolkit._cdf_tk.exceptions import ToolkitNotImplementedError
8
+ from cognite_toolkit._cdf_tk.protocols import T_ResourceRequest, T_ResourceResponse
10
9
  from cognite_toolkit._cdf_tk.utils.collection import chunker
11
10
  from cognite_toolkit._cdf_tk.utils.fileio import MultiFileReader, SchemaColumn
12
11
  from cognite_toolkit._cdf_tk.utils.http_client import HTTPClient, HTTPMessage, ItemsRequest
13
- from cognite_toolkit._cdf_tk.utils.useful_types import JsonVal, T_WriteCogniteResource
12
+ from cognite_toolkit._cdf_tk.utils.useful_types import JsonVal
14
13
 
15
14
  from .selectors import DataSelector
16
15
 
@@ -27,9 +26,9 @@ T_Selector = TypeVar("T_Selector", bound=DataSelector)
27
26
 
28
27
 
29
28
  @dataclass
30
- class Page(Generic[T_CogniteResource], Sized):
29
+ class Page(Generic[T_ResourceResponse], Sized):
31
30
  worker_id: str
32
- items: Sequence[T_CogniteResource]
31
+ items: Sequence[T_ResourceResponse]
33
32
  next_cursor: str | None = None
34
33
 
35
34
  def __len__(self) -> int:
@@ -37,7 +36,7 @@ class Page(Generic[T_CogniteResource], Sized):
37
36
 
38
37
 
39
38
  @dataclass
40
- class UploadItem(Generic[T_WriteCogniteResource]):
39
+ class UploadItem(Generic[T_ResourceRequest]):
41
40
  """An item to be uploaded to CDF, consisting of a source ID and the writable Cognite resource.
42
41
 
43
42
  Attributes:
@@ -46,7 +45,7 @@ class UploadItem(Generic[T_WriteCogniteResource]):
46
45
  """
47
46
 
48
47
  source_id: str
49
- item: T_WriteCogniteResource
48
+ item: T_ResourceRequest
50
49
 
51
50
  def as_id(self) -> str:
52
51
  return self.source_id
@@ -55,7 +54,7 @@ class UploadItem(Generic[T_WriteCogniteResource]):
55
54
  return self.item.dump(camel_case=True)
56
55
 
57
56
 
58
- class StorageIO(ABC, Generic[T_Selector, T_CogniteResource]):
57
+ class StorageIO(ABC, Generic[T_Selector, T_ResourceResponse]):
59
58
  """This is a base class for all storage classes in Cognite Toolkit
60
59
 
61
60
  It defines the interface for downloading data from CDF. Note this can also be used for multiple
@@ -79,7 +78,7 @@ class StorageIO(ABC, Generic[T_Selector, T_CogniteResource]):
79
78
  self.client = client
80
79
 
81
80
  @abstractmethod
82
- def as_id(self, item: T_CogniteResource) -> str:
81
+ def as_id(self, item: T_ResourceResponse) -> str:
83
82
  """Convert an item to its corresponding ID.
84
83
  Args:
85
84
  item: The item to convert.
@@ -115,7 +114,7 @@ class StorageIO(ABC, Generic[T_Selector, T_CogniteResource]):
115
114
 
116
115
  @abstractmethod
117
116
  def data_to_json_chunk(
118
- self, data_chunk: Sequence[T_CogniteResource], selector: T_Selector | None = None
117
+ self, data_chunk: Sequence[T_ResourceResponse], selector: T_Selector | None = None
119
118
  ) -> list[dict[str, JsonVal]]:
120
119
  """Convert a chunk of data to a JSON-compatible format.
121
120
 
@@ -131,7 +130,7 @@ class StorageIO(ABC, Generic[T_Selector, T_CogniteResource]):
131
130
 
132
131
 
133
132
  class UploadableStorageIO(
134
- Generic[T_Selector, T_CogniteResource, T_WriteCogniteResource], StorageIO[T_Selector, T_CogniteResource], ABC
133
+ Generic[T_Selector, T_ResourceResponse, T_ResourceRequest], StorageIO[T_Selector, T_ResourceResponse], ABC
135
134
  ):
136
135
  """A base class for storage items that support uploading data to CDF.
137
136
 
@@ -151,7 +150,7 @@ class UploadableStorageIO(
151
150
 
152
151
  def upload_items(
153
152
  self,
154
- data_chunk: Sequence[UploadItem[T_WriteCogniteResource]],
153
+ data_chunk: Sequence[UploadItem[T_ResourceRequest]],
155
154
  http_client: HTTPClient,
156
155
  selector: T_Selector | None = None,
157
156
  ) -> Sequence[HTTPMessage]:
@@ -189,7 +188,7 @@ class UploadableStorageIO(
189
188
 
190
189
  def json_chunk_to_data(
191
190
  self, data_chunk: list[tuple[str, dict[str, JsonVal]]]
192
- ) -> Sequence[UploadItem[T_WriteCogniteResource]]:
191
+ ) -> Sequence[UploadItem[T_ResourceRequest]]:
193
192
  """Convert a JSON-compatible chunk of data back to a writable Cognite resource list.
194
193
 
195
194
  Args:
@@ -198,14 +197,14 @@ class UploadableStorageIO(
198
197
  Returns:
199
198
  A writable Cognite resource list representing the data.
200
199
  """
201
- result: list[UploadItem[T_WriteCogniteResource]] = []
200
+ result: list[UploadItem[T_ResourceRequest]] = []
202
201
  for source_id, item_json in data_chunk:
203
202
  item = self.json_to_resource(item_json)
204
203
  result.append(UploadItem(source_id=source_id, item=item))
205
204
  return result
206
205
 
207
206
  @abstractmethod
208
- def json_to_resource(self, item_json: dict[str, JsonVal]) -> T_WriteCogniteResource:
207
+ def json_to_resource(self, item_json: dict[str, JsonVal]) -> T_ResourceRequest:
209
208
  """Convert a JSON-compatible dictionary back to a writable Cognite resource.
210
209
 
211
210
  Args:
@@ -226,12 +225,12 @@ class UploadableStorageIO(
226
225
  yield from chunker(iterable, cls.CHUNK_SIZE)
227
226
 
228
227
 
229
- class TableUploadableStorageIO(UploadableStorageIO[T_Selector, T_CogniteResource, T_WriteCogniteResource], ABC):
228
+ class TableUploadableStorageIO(UploadableStorageIO[T_Selector, T_ResourceResponse, T_ResourceRequest], ABC):
230
229
  """A base class for storage items that support uploading data with table schemas."""
231
230
 
232
231
  def rows_to_data(
233
232
  self, rows: list[tuple[str, dict[str, JsonVal]]], selector: T_Selector | None = None
234
- ) -> Sequence[UploadItem[T_WriteCogniteResource]]:
233
+ ) -> Sequence[UploadItem[T_ResourceRequest]]:
235
234
  """Convert a row-based JSON-compatible chunk of data back to a writable Cognite resource list.
236
235
 
237
236
  Args:
@@ -242,7 +241,7 @@ class TableUploadableStorageIO(UploadableStorageIO[T_Selector, T_CogniteResource
242
241
  Returns:
243
242
  A writable Cognite resource list representing the data.
244
243
  """
245
- result: list[UploadItem[T_WriteCogniteResource]] = []
244
+ result: list[UploadItem[T_ResourceRequest]] = []
246
245
  for source_id, row in rows:
247
246
  item = self.row_to_resource(source_id, row, selector=selector)
248
247
  result.append(UploadItem(source_id=source_id, item=item))
@@ -251,7 +250,7 @@ class TableUploadableStorageIO(UploadableStorageIO[T_Selector, T_CogniteResource
251
250
  @abstractmethod
252
251
  def row_to_resource(
253
252
  self, source_id: str, row: dict[str, JsonVal], selector: T_Selector | None = None
254
- ) -> T_WriteCogniteResource:
253
+ ) -> T_ResourceRequest:
255
254
  """Convert a row-based JSON-compatible dictionary back to a writable Cognite resource.
256
255
 
257
256
  Args:
@@ -264,7 +263,7 @@ class TableUploadableStorageIO(UploadableStorageIO[T_Selector, T_CogniteResource
264
263
  raise NotImplementedError()
265
264
 
266
265
 
267
- class ConfigurableStorageIO(StorageIO[T_Selector, T_CogniteResource], ABC):
266
+ class ConfigurableStorageIO(StorageIO[T_Selector, T_ResourceResponse], ABC):
268
267
  """A base class for storage items that support configurations for different storage items."""
269
268
 
270
269
  @abstractmethod
@@ -273,7 +272,7 @@ class ConfigurableStorageIO(StorageIO[T_Selector, T_CogniteResource], ABC):
273
272
  raise NotImplementedError()
274
273
 
275
274
 
276
- class TableStorageIO(StorageIO[T_Selector, T_CogniteResource], ABC):
275
+ class TableStorageIO(StorageIO[T_Selector, T_ResourceResponse], ABC):
277
276
  """A base class for storage items that support table schemas."""
278
277
 
279
278
  @abstractmethod
@@ -291,7 +290,7 @@ class TableStorageIO(StorageIO[T_Selector, T_CogniteResource], ABC):
291
290
 
292
291
  @abstractmethod
293
292
  def data_to_row(
294
- self, data_chunk: Sequence[T_CogniteResource], selector: T_Selector | None = None
293
+ self, data_chunk: Sequence[T_ResourceResponse], selector: T_Selector | None = None
295
294
  ) -> list[dict[str, JsonVal]]:
296
295
  """Convert a chunk of data to a row-based JSON-compatible format.
297
296
 
@@ -12,7 +12,7 @@ jobs:
12
12
  environment: dev
13
13
  name: Deploy
14
14
  container:
15
- image: cognite/toolkit:0.7.3
15
+ image: cognite/toolkit:0.7.5
16
16
  env:
17
17
  CDF_CLUSTER: ${{ vars.CDF_CLUSTER }}
18
18
  CDF_PROJECT: ${{ vars.CDF_PROJECT }}
@@ -10,7 +10,7 @@ jobs:
10
10
  environment: dev
11
11
  name: Deploy Dry Run
12
12
  container:
13
- image: cognite/toolkit:0.7.3
13
+ image: cognite/toolkit:0.7.5
14
14
  env:
15
15
  CDF_CLUSTER: ${{ vars.CDF_CLUSTER }}
16
16
  CDF_PROJECT: ${{ vars.CDF_PROJECT }}
@@ -4,7 +4,7 @@ default_env = "<DEFAULT_ENV_PLACEHOLDER>"
4
4
  [modules]
5
5
  # This is the version of the modules. It should not be changed manually.
6
6
  # It will be updated by the 'cdf modules upgrade' command.
7
- version = "0.7.3"
7
+ version = "0.7.5"
8
8
 
9
9
 
10
10
  [plugins]
@@ -1 +1 @@
1
- __version__ = "0.7.3"
1
+ __version__ = "0.7.5"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cognite_toolkit
3
- Version: 0.7.3
3
+ Version: 0.7.5
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=G0rwkDLSytonr7idr8ma7KaTUnRCn3-Ripum70RSeh0,22
3
+ cognite_toolkit/_version.py,sha256=6qL_qyowXO9Pc6v11Zx2s-yd28_548ZZC-OsfzO_Pjc,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
@@ -37,7 +37,7 @@ cognite_toolkit/_cdf_tk/builders/_streamlit.py,sha256=8Pu_zgyKZjbAsPWywjzB2KWD7h
37
37
  cognite_toolkit/_cdf_tk/builders/_transformation.py,sha256=STB42zhzOW5M_-b8cKOQ_cegnr7FtMoMxZ87gPLXft4,4723
38
38
  cognite_toolkit/_cdf_tk/client/__init__.py,sha256=a6rQXDGfW2g7K5WwrOW5oakh1TdFlBjUVjf9wusOox8,135
39
39
  cognite_toolkit/_cdf_tk/client/_constants.py,sha256=COUGcea37mDF2sf6MGqJXWmecTY_6aCImslxXrYW1I0,73
40
- cognite_toolkit/_cdf_tk/client/_toolkit_client.py,sha256=InfVdwtj5WA9hfa2kUr4sdhTCBhE08aDlVg2_QMKP5k,2928
40
+ cognite_toolkit/_cdf_tk/client/_toolkit_client.py,sha256=ucy_vXXatbUdB8gvNITmVsH1ghirZqmez-TR2EGrY2w,3260
41
41
  cognite_toolkit/_cdf_tk/client/api_client.py,sha256=CQdD_gfDqQkz5OYHrTnKvBvEvzHPdHDB1BkZPWRoahg,440
42
42
  cognite_toolkit/_cdf_tk/client/config.py,sha256=weMR43z-gqHMn-Jqvfmh_nJ0HbgEdyeCGtISuEf3OuY,4269
43
43
  cognite_toolkit/_cdf_tk/client/testing.py,sha256=axKaW6rdzq_TI7DD4ijnLeHC4a74WKWDAxQ3QyZ7Kvg,6720
@@ -59,6 +59,7 @@ cognite_toolkit/_cdf_tk/client/api/project.py,sha256=Hj0uDCLyPofG-T4626EdeoRRtBa
59
59
  cognite_toolkit/_cdf_tk/client/api/search.py,sha256=L4cDPip7pJVP7bEgAiSOjqINIHg8AULNBtR29G5khEQ,612
60
60
  cognite_toolkit/_cdf_tk/client/api/search_config.py,sha256=31rPCSOnzfiLv8FKU6F3tF9ZesEV8moSlbnkFPNh13g,1824
61
61
  cognite_toolkit/_cdf_tk/client/api/streams.py,sha256=4u5jRdbhxKbVR8OLURyVwehHgoejFxArjUAGni78PNY,3015
62
+ cognite_toolkit/_cdf_tk/client/api/three_d.py,sha256=2jMBrdHBERcXn7qIRHZjRtlfXXIIDGoMyfkSGPrl8jE,2022
62
63
  cognite_toolkit/_cdf_tk/client/api/token.py,sha256=8SiA44Dwsx0j_X8lgIxl2rdNCQSdEiSfoD_4ybxMtFA,5131
63
64
  cognite_toolkit/_cdf_tk/client/api/verify.py,sha256=-x6z6lMaOZG91adi0m9NtJ4wIQgoZURbzluPALXM-ps,3730
64
65
  cognite_toolkit/_cdf_tk/client/api/robotics/__init__.py,sha256=6xDSr24_IkLRx_kAKU0_e6_sqnxVWcQChnML_NJqnIQ,56
@@ -97,6 +98,7 @@ cognite_toolkit/_cdf_tk/client/data_classes/search_config.py,sha256=Reo_rcFrwk_s
97
98
  cognite_toolkit/_cdf_tk/client/data_classes/sequences.py,sha256=02d34fPcJ1H7U5ZnCCfOi36z5WJ4WnRfCWwkp99mW2E,6234
98
99
  cognite_toolkit/_cdf_tk/client/data_classes/streamlit_.py,sha256=nEk00FH3i-px2r6ql4kk1VVL4sytjUn0_sTkEdDSHVc,6746
99
100
  cognite_toolkit/_cdf_tk/client/data_classes/streams.py,sha256=DHSDrBax81fUzneIikn9hUMVgQVbdaiQ9aY-bRaTK38,2459
101
+ cognite_toolkit/_cdf_tk/client/data_classes/three_d.py,sha256=X5BCOZC1B_WOcaC2RbmEscHJ0J9BrY_0oGbB17kpS90,1298
100
102
  cognite_toolkit/_cdf_tk/client/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
101
103
  cognite_toolkit/_cdf_tk/client/utils/_concurrency.py,sha256=3GtQbKDaosyKHEt-KzxKK9Yie4TvZPdoou2vUk6dUa8,2298
102
104
  cognite_toolkit/_cdf_tk/client/utils/_http_client.py,sha256=oXNKrIaizG4WiSAhL_kSCHAuL4aaaEhCU4pOJGxh6Xs,483
@@ -104,11 +106,11 @@ cognite_toolkit/_cdf_tk/commands/__init__.py,sha256=xLaEOLVZ93MVkWzbTGwYhe-negSd
104
106
  cognite_toolkit/_cdf_tk/commands/_base.py,sha256=1gl8Y-yqfedRMfdbwM3iPTIUIZriX1UvC1deLsJSJwM,2667
105
107
  cognite_toolkit/_cdf_tk/commands/_changes.py,sha256=sU0KaTtPVSJgAZcaZ1Tkcajj36pmhd13kh7V8QbIED8,22987
106
108
  cognite_toolkit/_cdf_tk/commands/_cli_commands.py,sha256=TK6U_rm6VZT_V941kTyHMoulWgJzbDC8YIIQDPJ5x3w,1011
107
- cognite_toolkit/_cdf_tk/commands/_download.py,sha256=OBKPM_HGGA1i32th1SAgkQM_81CUFvm39kGqBuOeeTs,6816
109
+ cognite_toolkit/_cdf_tk/commands/_download.py,sha256=gOUjsu-YaiIyKGd5kZDW-1lsgY7sQwGxg2Pwk6TlWdY,6823
108
110
  cognite_toolkit/_cdf_tk/commands/_profile.py,sha256=_4iX3AHAI6eLmRVUlWXCSvVHx1BZW2yDr_i2i9ECg6U,43120
109
111
  cognite_toolkit/_cdf_tk/commands/_purge.py,sha256=RadQHsmkPez3fZ5HCP9b82o2_fBx8P_-bTo7prkvWXU,32525
110
112
  cognite_toolkit/_cdf_tk/commands/_questionary_style.py,sha256=h-w7fZKkGls3TrzIGBKjsZSGoXJJIYchgD1StfA40r8,806
111
- cognite_toolkit/_cdf_tk/commands/_upload.py,sha256=g4DIgBv6chsa10KpIS3uxjCSZKE5HFKr9axqhVhunEw,13351
113
+ cognite_toolkit/_cdf_tk/commands/_upload.py,sha256=J3Ts50AFP0DmIuGjgnVh-WxiZSLDQJQKRIjqBPGngqU,13362
112
114
  cognite_toolkit/_cdf_tk/commands/_utils.py,sha256=UxMJW5QYKts4om5n6x2Tq2ihvfO9gWjhQKeqZNFTlKg,402
113
115
  cognite_toolkit/_cdf_tk/commands/_virtual_env.py,sha256=GFAid4hplixmj9_HkcXqU5yCLj-fTXm4cloGD6U2swY,2180
114
116
  cognite_toolkit/_cdf_tk/commands/auth.py,sha256=TD6X3CKFNhDHoIv2b2uI2nKBHgQljLntp9vZffdA-jc,31384
@@ -126,11 +128,11 @@ cognite_toolkit/_cdf_tk/commands/resources.py,sha256=NeHVA1b1TMsP-2wgd5u1vif_N6n
126
128
  cognite_toolkit/_cdf_tk/commands/run.py,sha256=JyX9jLEQej9eRrHVCCNlw4GuF80qETSol3-T5CCofgw,37331
127
129
  cognite_toolkit/_cdf_tk/commands/_migrate/__init__.py,sha256=i5ldcTah59K0E4fH5gHTV0GRvtDCEvVses9WQzn9Lno,226
128
130
  cognite_toolkit/_cdf_tk/commands/_migrate/canvas.py,sha256=R-z0yfOFcJZj-zRLhN-7z_-SLxqzSmONMgrbzNF9dGs,8843
129
- cognite_toolkit/_cdf_tk/commands/_migrate/command.py,sha256=jNoqqq81lbdfDTAQ5w2ctaYSUueLhZe0qjUKjCezk6s,14234
131
+ cognite_toolkit/_cdf_tk/commands/_migrate/command.py,sha256=Kdv3Tgg8vqywljVLfie-jJXoZ8fRIxTXzpdCHT0utRs,14096
130
132
  cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py,sha256=Ew9JRYrd-Ol9G9csTzpnhXAgCFnX67MwDYOTsdJLP3E,16803
131
133
  cognite_toolkit/_cdf_tk/commands/_migrate/creators.py,sha256=FTu7w3G8KyPY8pagG3KdPpOmpLcjehaAg2auEy6iM7A,9605
132
134
  cognite_toolkit/_cdf_tk/commands/_migrate/data_classes.py,sha256=_vMS_qAPj4yup1VnmmojPVigAZtyPQH7PM0Raby5tao,10619
133
- cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py,sha256=m3_vDxgLauzDjQmNwrhb_aK01rnuHeHxRg3UuNzCa34,11748
135
+ cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py,sha256=nNaM8D1-kKfgkah28L7S8agA-DRcpeeEd2kazyhodIc,11713
134
136
  cognite_toolkit/_cdf_tk/commands/_migrate/data_model.py,sha256=i1eUsNX6Dueol9STIEwyksBnBsWUk13O8qHIjW964pM,7860
135
137
  cognite_toolkit/_cdf_tk/commands/_migrate/default_mappings.py,sha256=ERn3qFrJFXdtXaMjHq3Gk7MxH03MGFk3FrtWCOBJQts,5544
136
138
  cognite_toolkit/_cdf_tk/commands/_migrate/issues.py,sha256=L2-kODPavEwcuhte7EXANK2-rH7reiq-uNqr-3ub-no,6575
@@ -163,7 +165,7 @@ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/robotics.py,sha256=dG45TvMcmpwV6Oy
163
165
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py,sha256=-vFcurvfoWZJLBXla7qmMFAtu81Nbcerx2IoizDC7EQ,3266
164
166
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/three_d_model.py,sha256=YmzIQp1cjU6ttqmwwDfU9wXFkKaW5ZuypdEu-LZsOXY,7545
165
167
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py,sha256=VUvg6geF8d7N6PY1kMXs6v2xbWReiSbbRhQNqlAlhUM,23518
166
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py,sha256=fFQNauXAz7zOYcwiN8gFvFtOIaXnulM4AeLgXWxoS48,33141
168
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py,sha256=8GtwjzkkOIMmVsV73QPtUtRdTbEefF7pnGj2QcW4I2Q,34234
167
169
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/workflow.py,sha256=OMHOxFY2ZLi0RTw0LmE_dTeOmFUh9LDIEDykyiCOCIw,26773
168
170
  cognite_toolkit/_cdf_tk/data_classes/__init__.py,sha256=4zL-zR3lgQTCWfcy28LK0HEcukQOndPEFXVqfYfdKHU,1720
169
171
  cognite_toolkit/_cdf_tk/data_classes/_base.py,sha256=0jy9VrYIO6iRgOZIcRASv-xIQjU3QbMICffEEIqzx6A,2673
@@ -188,7 +190,7 @@ cognite_toolkit/_cdf_tk/resource_classes/agent_tools.py,sha256=oNkpPCQF3CyV9zcD6
188
190
  cognite_toolkit/_cdf_tk/resource_classes/asset.py,sha256=bFneWvGrEO0QsCJfSjfVDnJtIp9YCYIU7LYESldUSMs,1179
189
191
  cognite_toolkit/_cdf_tk/resource_classes/authentication.py,sha256=RTLjFXWhpg2tLoJ-xTUH0kPMapuCacrgc-RXHVPJ0QQ,630
190
192
  cognite_toolkit/_cdf_tk/resource_classes/base.py,sha256=nbAWSBkV-GL0co5UNMXvYMIw_-qhJ8uoXy9wz6KmI-w,723
191
- cognite_toolkit/_cdf_tk/resource_classes/capabilities.py,sha256=FChmuOfxc-qhAtctooYyWLPrL5SHDwcWBlt91_QUhL0,14416
193
+ cognite_toolkit/_cdf_tk/resource_classes/capabilities.py,sha256=6rmMl_TluRbbSlAmwnI8beqpWHmC7M1nSwWaW2TnT_M,14718
192
194
  cognite_toolkit/_cdf_tk/resource_classes/cognitefile.py,sha256=nsLBw6CxwrmfxliO0vsGSc4vfaDONPsNHPFT6ckvudk,2800
193
195
  cognite_toolkit/_cdf_tk/resource_classes/container_field_definitions.py,sha256=grjzoW8AwujPJV70QyKBmhJ0m99kED9KMttoongnpL4,11428
194
196
  cognite_toolkit/_cdf_tk/resource_classes/containers.py,sha256=cWLB6CTvBkdwrMg4bw1S72s7IZo7O_pYNNTTUwNqXpY,3701
@@ -242,7 +244,7 @@ cognite_toolkit/_cdf_tk/storageio/__init__.py,sha256=T2PzfD2Tf5khE0cmSDLcqTlRy9Y
242
244
  cognite_toolkit/_cdf_tk/storageio/_annotations.py,sha256=JI_g18_Y9S7pbc9gm6dZMyo3Z-bCndJXF9C2lOva0bQ,4848
243
245
  cognite_toolkit/_cdf_tk/storageio/_applications.py,sha256=vena8BW7erki6i-hGdcdiOmDbMU3P9M_Kn_5dPG6Yzw,16084
244
246
  cognite_toolkit/_cdf_tk/storageio/_asset_centric.py,sha256=mRwcVvBzUES21zNb-mDH7XqZWN37p4GUs0JRx7lbRyw,32817
245
- cognite_toolkit/_cdf_tk/storageio/_base.py,sha256=cllSyg3rRGov_X45CoJ_isXhz0cU9Mt7OyV7_t_SeWw,12156
247
+ cognite_toolkit/_cdf_tk/storageio/_base.py,sha256=4yjjSnmo9gmMlSEREDAOVUXm1cT4qOuInoyxoKQkxx4,12107
246
248
  cognite_toolkit/_cdf_tk/storageio/_data_classes.py,sha256=s3TH04BJ1q7rXndRhEbVMEnoOXjxrGg4n-w9Z5uUL-o,3480
247
249
  cognite_toolkit/_cdf_tk/storageio/_datapoints.py,sha256=AGTQm9CBRbu1oXbBh0X7UGzFrHnlWZExqNvAohT0hM0,8641
248
250
  cognite_toolkit/_cdf_tk/storageio/_file_content.py,sha256=g8HDDHbBPBcb3g6Zp-vHc8uvNZYrZXWs5G0jq_eOc4w,10884
@@ -301,13 +303,13 @@ cognite_toolkit/_repo_files/.gitignore,sha256=ip9kf9tcC5OguF4YF4JFEApnKYw0nG0vPi
301
303
  cognite_toolkit/_repo_files/AzureDevOps/.devops/README.md,sha256=OLA0D7yCX2tACpzvkA0IfkgQ4_swSd-OlJ1tYcTBpsA,240
302
304
  cognite_toolkit/_repo_files/AzureDevOps/.devops/deploy-pipeline.yml,sha256=brULcs8joAeBC_w_aoWjDDUHs3JheLMIR9ajPUK96nc,693
303
305
  cognite_toolkit/_repo_files/AzureDevOps/.devops/dry-run-pipeline.yml,sha256=OBFDhFWK1mlT4Dc6mDUE2Es834l8sAlYG50-5RxRtHk,723
304
- cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=3fv8l7iPS_BeEQ79QIXET7O6XEvukagJRzK70ALmWCw,666
305
- cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=kf9xrljnG0rMso3aDNRaYFv9YrjR249rZ_PjdcqIj8E,2429
306
- cognite_toolkit/_resources/cdf.toml,sha256=k4WAcvwYM778k6Odf2dvjFVAQKOtTd0ltYdGSHnsFho,474
306
+ cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=QzZ_9Fdgtk4XGRzjhz38X2gJLTUdpql2QhNhjVd0Kcc,666
307
+ cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=mNYPPj62DTJmltAA9B6vYCzD4q4FFwJc_OwrtlnLpz4,2429
308
+ cognite_toolkit/_resources/cdf.toml,sha256=UyImfcvX-B9HGOZWLuuIVlTAP5xk58FZCewFtaLmFJ8,474
307
309
  cognite_toolkit/demo/__init__.py,sha256=-m1JoUiwRhNCL18eJ6t7fZOL7RPfowhCuqhYFtLgrss,72
308
310
  cognite_toolkit/demo/_base.py,sha256=6xKBUQpXZXGQ3fJ5f7nj7oT0s2n7OTAGIa17ZlKHZ5U,8052
309
- cognite_toolkit-0.7.3.dist-info/METADATA,sha256=zxny_a9c5UR8VeS9f5hLzHn8xpbxqBxv-_rtVy6Bkbg,4500
310
- cognite_toolkit-0.7.3.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
311
- cognite_toolkit-0.7.3.dist-info/entry_points.txt,sha256=JlR7MH1_UMogC3QOyN4-1l36VbrCX9xUdQoHGkuJ6-4,83
312
- cognite_toolkit-0.7.3.dist-info/licenses/LICENSE,sha256=CW0DRcx5tL-pCxLEN7ts2S9g2sLRAsWgHVEX4SN9_Mc,752
313
- cognite_toolkit-0.7.3.dist-info/RECORD,,
311
+ cognite_toolkit-0.7.5.dist-info/METADATA,sha256=I83-hIqQN-b6yZzbtNqTaLxQIiTqklrkdg8mCnxdKi0,4500
312
+ cognite_toolkit-0.7.5.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
313
+ cognite_toolkit-0.7.5.dist-info/entry_points.txt,sha256=JlR7MH1_UMogC3QOyN4-1l36VbrCX9xUdQoHGkuJ6-4,83
314
+ cognite_toolkit-0.7.5.dist-info/licenses/LICENSE,sha256=CW0DRcx5tL-pCxLEN7ts2S9g2sLRAsWgHVEX4SN9_Mc,752
315
+ cognite_toolkit-0.7.5.dist-info/RECORD,,