cognite-toolkit 0.7.44__py3-none-any.whl → 0.7.45__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.
@@ -5,7 +5,7 @@ from cognite_toolkit._cdf_tk.client.cdf_client import CDFResourceAPI, PagedRespo
5
5
  from cognite_toolkit._cdf_tk.client.cdf_client.api import Endpoint
6
6
  from cognite_toolkit._cdf_tk.client.data_classes.asset import AssetRequest, AssetResponse
7
7
  from cognite_toolkit._cdf_tk.client.data_classes.identifiers import InternalOrExternalId
8
- from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, SuccessResponse2
8
+ from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, ItemsSuccessResponse2, SuccessResponse2
9
9
 
10
10
 
11
11
  class AssetsAPI(CDFResourceAPI[InternalOrExternalId, AssetRequest, AssetResponse]):
@@ -21,7 +21,7 @@ class AssetsAPI(CDFResourceAPI[InternalOrExternalId, AssetRequest, AssetResponse
21
21
  },
22
22
  )
23
23
 
24
- def _page_response(self, response: SuccessResponse2) -> PagedResponse[AssetResponse]:
24
+ def _page_response(self, response: SuccessResponse2 | ItemsSuccessResponse2) -> PagedResponse[AssetResponse]:
25
25
  return PagedResponse[AssetResponse].model_validate_json(response.body)
26
26
 
27
27
  def _reference_response(self, response: SuccessResponse2) -> ResponseItems[InternalOrExternalId]:
@@ -5,7 +5,7 @@ from cognite_toolkit._cdf_tk.client.cdf_client import CDFResourceAPI, PagedRespo
5
5
  from cognite_toolkit._cdf_tk.client.cdf_client.api import Endpoint
6
6
  from cognite_toolkit._cdf_tk.client.data_classes.event import EventRequest, EventResponse
7
7
  from cognite_toolkit._cdf_tk.client.data_classes.identifiers import InternalOrExternalId
8
- from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, SuccessResponse2
8
+ from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, ItemsSuccessResponse2, SuccessResponse2
9
9
 
10
10
 
11
11
  class EventsAPI(CDFResourceAPI[InternalOrExternalId, EventRequest, EventResponse]):
@@ -21,7 +21,7 @@ class EventsAPI(CDFResourceAPI[InternalOrExternalId, EventRequest, EventResponse
21
21
  },
22
22
  )
23
23
 
24
- def _page_response(self, response: SuccessResponse2) -> PagedResponse[EventResponse]:
24
+ def _page_response(self, response: SuccessResponse2 | ItemsSuccessResponse2) -> PagedResponse[EventResponse]:
25
25
  return PagedResponse[EventResponse].model_validate_json(response.body)
26
26
 
27
27
  def _reference_response(self, response: SuccessResponse2) -> ResponseItems[InternalOrExternalId]:
@@ -5,7 +5,12 @@ from cognite_toolkit._cdf_tk.client.cdf_client import CDFResourceAPI, PagedRespo
5
5
  from cognite_toolkit._cdf_tk.client.cdf_client.api import Endpoint
6
6
  from cognite_toolkit._cdf_tk.client.data_classes.filemetadata import FileMetadataRequest, FileMetadataResponse
7
7
  from cognite_toolkit._cdf_tk.client.data_classes.identifiers import InternalOrExternalId
8
- from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, RequestMessage2, SuccessResponse2
8
+ from cognite_toolkit._cdf_tk.client.http_client import (
9
+ HTTPClient,
10
+ ItemsSuccessResponse2,
11
+ RequestMessage2,
12
+ SuccessResponse2,
13
+ )
9
14
 
10
15
 
11
16
  class FileMetadataAPI(CDFResourceAPI[InternalOrExternalId, FileMetadataRequest, FileMetadataResponse]):
@@ -21,7 +26,7 @@ class FileMetadataAPI(CDFResourceAPI[InternalOrExternalId, FileMetadataRequest,
21
26
  },
22
27
  )
23
28
 
24
- def _page_response(self, response: SuccessResponse2) -> PagedResponse[FileMetadataResponse]:
29
+ def _page_response(self, response: SuccessResponse2 | ItemsSuccessResponse2) -> PagedResponse[FileMetadataResponse]:
25
30
  return PagedResponse[FileMetadataResponse].model_validate_json(response.body)
26
31
 
27
32
  def _reference_response(self, response: SuccessResponse2) -> ResponseItems[InternalOrExternalId]:
@@ -2,7 +2,7 @@ from collections.abc import Sequence
2
2
 
3
3
  from cognite_toolkit._cdf_tk.client.cdf_client import CDFResourceAPI, Endpoint, PagedResponse, ResponseItems
4
4
  from cognite_toolkit._cdf_tk.client.data_classes.raw import RAWDatabase, RAWTable
5
- from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, SuccessResponse2
5
+ from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, ItemsSuccessResponse2, SuccessResponse2
6
6
 
7
7
 
8
8
  class RawDatabasesAPI(CDFResourceAPI[RAWDatabase, RAWDatabase, RAWDatabase]):
@@ -21,7 +21,7 @@ class RawDatabasesAPI(CDFResourceAPI[RAWDatabase, RAWDatabase, RAWDatabase]):
21
21
  },
22
22
  )
23
23
 
24
- def _page_response(self, response: SuccessResponse2) -> PagedResponse[RAWDatabase]:
24
+ def _page_response(self, response: SuccessResponse2 | ItemsSuccessResponse2) -> PagedResponse[RAWDatabase]:
25
25
  return PagedResponse[RAWDatabase].model_validate_json(response.body)
26
26
 
27
27
  def _reference_response(self, response: SuccessResponse2) -> ResponseItems[RAWDatabase]:
@@ -95,7 +95,7 @@ class RawTablesAPI(CDFResourceAPI[RAWTable, RAWTable, RAWTable]):
95
95
  },
96
96
  )
97
97
 
98
- def _page_response(self, response: SuccessResponse2) -> PagedResponse[RAWTable]:
98
+ def _page_response(self, response: SuccessResponse2 | ItemsSuccessResponse2) -> PagedResponse[RAWTable]:
99
99
  """Parse a page response. Note: db_name must be injected separately."""
100
100
  return PagedResponse[RAWTable].model_validate_json(response.body)
101
101
 
@@ -5,7 +5,7 @@ from cognite_toolkit._cdf_tk.client.cdf_client import CDFResourceAPI, PagedRespo
5
5
  from cognite_toolkit._cdf_tk.client.cdf_client.api import Endpoint
6
6
  from cognite_toolkit._cdf_tk.client.data_classes.identifiers import InternalOrExternalId
7
7
  from cognite_toolkit._cdf_tk.client.data_classes.simulator_model import SimulatorModelRequest, SimulatorModelResponse
8
- from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, SuccessResponse2
8
+ from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, ItemsSuccessResponse2, SuccessResponse2
9
9
 
10
10
 
11
11
  class SimulatorModelsAPI(CDFResourceAPI[InternalOrExternalId, SimulatorModelRequest, SimulatorModelResponse]):
@@ -27,7 +27,9 @@ class SimulatorModelsAPI(CDFResourceAPI[InternalOrExternalId, SimulatorModelRequ
27
27
  },
28
28
  )
29
29
 
30
- def _page_response(self, response: SuccessResponse2) -> PagedResponse[SimulatorModelResponse]:
30
+ def _page_response(
31
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
32
+ ) -> PagedResponse[SimulatorModelResponse]:
31
33
  return PagedResponse[SimulatorModelResponse].model_validate_json(response.body)
32
34
 
33
35
  def _reference_response(self, response: SuccessResponse2) -> ResponseItems[InternalOrExternalId]:
@@ -44,16 +46,24 @@ class SimulatorModelsAPI(CDFResourceAPI[InternalOrExternalId, SimulatorModelRequ
44
46
  """
45
47
  return self._request_item_response(items, "create")
46
48
 
47
- def retrieve(self, items: Sequence[InternalOrExternalId]) -> list[SimulatorModelResponse]:
49
+ def retrieve(
50
+ self, items: Sequence[InternalOrExternalId], ignore_unknown_ids: bool = False
51
+ ) -> list[SimulatorModelResponse]:
48
52
  """Retrieve simulator models from CDF.
49
53
 
50
54
  Args:
51
55
  items: List of InternalOrExternalId objects to retrieve.
56
+ ignore_unknown_ids: Whether to ignore unknown IDs.
52
57
 
53
58
  Returns:
54
59
  List of retrieved SimulatorModelResponse objects.
55
60
  """
56
- return self._request_item_response(items, method="retrieve")
61
+ if ignore_unknown_ids:
62
+ # The CDF API does not support ignore_unknown_ids for simulator models,
63
+ # so we implement it with retries here.
64
+ return self._request_item_split_retries(items, method="retrieve")
65
+ else:
66
+ return self._request_item_response(items, method="retrieve")
57
67
 
58
68
  def update(
59
69
  self, items: Sequence[SimulatorModelRequest], mode: Literal["patch", "replace"] = "replace"
@@ -5,7 +5,7 @@ from cognite_toolkit._cdf_tk.client.cdf_client import CDFResourceAPI, PagedRespo
5
5
  from cognite_toolkit._cdf_tk.client.cdf_client.api import Endpoint
6
6
  from cognite_toolkit._cdf_tk.client.data_classes.identifiers import InternalOrExternalId
7
7
  from cognite_toolkit._cdf_tk.client.data_classes.timeseries import TimeSeriesRequest, TimeSeriesResponse
8
- from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, SuccessResponse2
8
+ from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, ItemsSuccessResponse2, SuccessResponse2
9
9
 
10
10
 
11
11
  class TimeSeriesAPI(CDFResourceAPI[InternalOrExternalId, TimeSeriesRequest, TimeSeriesResponse]):
@@ -27,7 +27,7 @@ class TimeSeriesAPI(CDFResourceAPI[InternalOrExternalId, TimeSeriesRequest, Time
27
27
  },
28
28
  )
29
29
 
30
- def _page_response(self, response: SuccessResponse2) -> PagedResponse[TimeSeriesResponse]:
30
+ def _page_response(self, response: SuccessResponse2 | ItemsSuccessResponse2) -> PagedResponse[TimeSeriesResponse]:
31
31
  return PagedResponse[TimeSeriesResponse].model_validate_json(response.body)
32
32
 
33
33
  def _reference_response(self, response: SuccessResponse2) -> ResponseItems[InternalOrExternalId]:
@@ -19,7 +19,13 @@ from cognite_toolkit._cdf_tk.client.data_classes.base import (
19
19
  T_RequestResource,
20
20
  T_ResponseResource,
21
21
  )
22
- from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, RequestMessage2, SuccessResponse2
22
+ from cognite_toolkit._cdf_tk.client.http_client import (
23
+ HTTPClient,
24
+ ItemsRequest2,
25
+ ItemsSuccessResponse2,
26
+ RequestMessage2,
27
+ SuccessResponse2,
28
+ )
23
29
  from cognite_toolkit._cdf_tk.utils.collection import chunker_sequence
24
30
 
25
31
  from .responses import PagedResponse, ResponseItems
@@ -68,7 +74,7 @@ class CDFResourceAPI(Generic[T_Identifier, T_RequestResource, T_ResponseResource
68
74
  return [item.as_update(mode=mode) for item in items]
69
75
 
70
76
  @abstractmethod
71
- def _page_response(self, response: SuccessResponse2) -> PagedResponse[T_ResponseResource]:
77
+ def _page_response(self, response: SuccessResponse2 | ItemsSuccessResponse2) -> PagedResponse[T_ResponseResource]:
72
78
  """Parse a single item response."""
73
79
  raise NotImplementedError()
74
80
 
@@ -164,6 +170,72 @@ class CDFResourceAPI(Generic[T_Identifier, T_RequestResource, T_ResponseResource
164
170
  response = self._http_client.request_single_retries(request)
165
171
  yield response.get_success_or_raise()
166
172
 
173
+ def _request_item_split_retries(
174
+ self,
175
+ items: Sequence[_T_BaseModel],
176
+ method: APIMethod,
177
+ params: dict[str, Any] | None = None,
178
+ extra_body: dict[str, Any] | None = None,
179
+ ) -> list[T_ResponseResource]:
180
+ """Request items with retries, splitting on failures.
181
+
182
+ This method handles large batches of items by chunking them according to the endpoint's item limit.
183
+ If a single item fails, it splits the request into individual item requests to isolate the failure.
184
+
185
+ Args:
186
+ items: Sequence of items to request.
187
+ method: API method to use for the request.
188
+ params: Optional query parameters for the request.
189
+ extra_body: Optional additional body fields for the request.
190
+ Returns:
191
+ List of response items.
192
+ """
193
+ response_items: list[T_ResponseResource] = []
194
+ for response in self._chunk_requests_items_split_retries(items, method, params, extra_body):
195
+ response_items.extend(self._page_response(response).items)
196
+ return response_items
197
+
198
+ def _chunk_requests_items_split_retries(
199
+ self,
200
+ items: Sequence[_T_BaseModel],
201
+ method: APIMethod,
202
+ params: dict[str, Any] | None = None,
203
+ extra_body: dict[str, Any] | None = None,
204
+ ) -> Iterable[ItemsSuccessResponse2]:
205
+ """Request items with retries and splitting on failures.
206
+
207
+ This method handles large batches of items by chunking them according to the endpoint's item limit.
208
+ If a single item fails, it splits the request into individual item requests to isolate the failure.
209
+
210
+ This can be useful to create ignore unknown IDs behavior when retrieving items for API endpoints that
211
+ do not support it natively.
212
+
213
+ Args:
214
+ items: Sequence of items to request.
215
+ method: API method to use for the request.
216
+ params: Optional query parameters for the request.
217
+ extra_body: Optional additional body fields for the request.
218
+ Yields
219
+ SuccessResponse2: Successful responses from the API. All failed items are skipped.
220
+
221
+ """
222
+ # Filter out None
223
+ request_params = self._filter_out_none_values(params)
224
+ endpoint = self._method_endpoint_map[method]
225
+
226
+ for chunk in chunker_sequence(items, endpoint.item_limit):
227
+ request = ItemsRequest2(
228
+ endpoint_url=f"{self._make_url(endpoint.path)}",
229
+ method=endpoint.method,
230
+ parameters=request_params,
231
+ items=chunk,
232
+ extra_body_fields=extra_body,
233
+ )
234
+ responses = self._http_client.request_items_retries(request)
235
+ for response in responses:
236
+ if isinstance(response, ItemsSuccessResponse2):
237
+ yield response
238
+
167
239
  @classmethod
168
240
  def _filter_out_none_values(cls, params: dict[str, Any] | None) -> dict[str, Any] | None:
169
241
  request_params: dict[str, Any] | None = None
@@ -60,6 +60,7 @@ from ._resource_cruds import (
60
60
  SecurityCategoryCRUD,
61
61
  SequenceCRUD,
62
62
  SequenceRowCRUD,
63
+ SimulatorModelCRUD,
63
64
  SpaceCRUD,
64
65
  StreamCRUD,
65
66
  StreamlitCRUD,
@@ -86,7 +87,8 @@ if not FeatureFlag.is_enabled(Flags.MIGRATE):
86
87
  _EXCLUDED_CRUDS.add(ResourceViewMappingCRUD)
87
88
  if not FeatureFlag.is_enabled(Flags.STREAMS):
88
89
  _EXCLUDED_CRUDS.add(StreamCRUD)
89
-
90
+ if not FeatureFlag.is_enabled(Flags.SIMULATORS):
91
+ _EXCLUDED_CRUDS.add(SimulatorModelCRUD)
90
92
 
91
93
  CRUDS_BY_FOLDER_NAME: dict[str, list[type[Loader]]] = {}
92
94
  for _loader in itertools.chain(
@@ -142,6 +144,7 @@ ResourceTypes: TypeAlias = Literal[
142
144
  "functions",
143
145
  "raw",
144
146
  "robotics",
147
+ "simulators",
145
148
  "streams",
146
149
  "streamlit",
147
150
  "workflows",
@@ -209,6 +212,7 @@ __all__ = [
209
212
  "SecurityCategoryCRUD",
210
213
  "SequenceCRUD",
211
214
  "SequenceRowCRUD",
215
+ "SimulatorModelCRUD",
212
216
  "SpaceCRUD",
213
217
  "StreamlitCRUD",
214
218
  "ThreeDModelCRUD",
@@ -35,6 +35,7 @@ from .robotics import (
35
35
  RoboticMapCRUD,
36
36
  RoboticsDataPostProcessingCRUD,
37
37
  )
38
+ from .simulators import SimulatorModelCRUD
38
39
  from .streams import StreamCRUD
39
40
  from .three_d_model import ThreeDModelCRUD
40
41
  from .timeseries import DatapointSubscriptionCRUD, TimeSeriesCRUD
@@ -83,6 +84,7 @@ __all__ = [
83
84
  "SecurityCategoryCRUD",
84
85
  "SequenceCRUD",
85
86
  "SequenceRowCRUD",
87
+ "SimulatorModelCRUD",
86
88
  "SpaceCRUD",
87
89
  "StreamCRUD",
88
90
  "StreamlitCRUD",
@@ -0,0 +1,119 @@
1
+ from collections.abc import Hashable, Iterable, Sequence
2
+ from typing import Any, final
3
+
4
+ from cognite.client.data_classes.capabilities import Capability
5
+ from cognite.client.utils.useful_types import SequenceNotStr
6
+
7
+ from cognite_toolkit._cdf_tk.client.data_classes.identifiers import ExternalId, InternalOrExternalId
8
+ from cognite_toolkit._cdf_tk.client.data_classes.simulator_model import SimulatorModelRequest, SimulatorModelResponse
9
+ from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
10
+ from cognite_toolkit._cdf_tk.resource_classes import SimulatorModelYAML
11
+
12
+ from .data_organization import DataSetsCRUD
13
+
14
+
15
+ @final
16
+ class SimulatorModelCRUD(ResourceCRUD[ExternalId, SimulatorModelRequest, SimulatorModelResponse]):
17
+ folder_name = "simulators"
18
+ resource_cls = SimulatorModelResponse
19
+ resource_write_cls = SimulatorModelRequest
20
+ yaml_cls = SimulatorModelYAML
21
+ kind = "SimulatorModel"
22
+ dependencies = frozenset({DataSetsCRUD})
23
+ _doc_url = "Simulator-Models/operation/create_simulator_model_simulators_models_post"
24
+
25
+ @property
26
+ def display_name(self) -> str:
27
+ return "simulator models"
28
+
29
+ @classmethod
30
+ def get_id(cls, item: SimulatorModelRequest | SimulatorModelResponse | dict) -> ExternalId:
31
+ if isinstance(item, dict):
32
+ return ExternalId(external_id=item["externalId"])
33
+ if not item.external_id:
34
+ raise KeyError("SimulatorModel must have external_id")
35
+ return ExternalId(external_id=item.external_id)
36
+
37
+ @classmethod
38
+ def get_internal_id(cls, item: SimulatorModelResponse | dict) -> int:
39
+ if isinstance(item, dict):
40
+ return item["id"]
41
+ if not item.id:
42
+ raise KeyError("SimulatorModel must have id")
43
+ return item.id
44
+
45
+ @classmethod
46
+ def dump_id(cls, id: ExternalId) -> dict[str, Any]:
47
+ return id.dump()
48
+
49
+ @classmethod
50
+ def get_required_capability(
51
+ cls, items: Sequence[SimulatorModelRequest] | None, read_only: bool
52
+ ) -> Capability | list[Capability]:
53
+ # Simulator ACLs is not yet implemented in the PySDK, which means
54
+ # that we cannot check for specific capabilities.
55
+ return []
56
+
57
+ def create(self, items: Sequence[SimulatorModelRequest]) -> list[SimulatorModelResponse]:
58
+ return self.client.tool.simulators.models.create(items)
59
+
60
+ def retrieve(self, ids: SequenceNotStr[ExternalId]) -> list[SimulatorModelResponse]:
61
+ return self.client.tool.simulators.models.retrieve(list(ids), ignore_unknown_ids=True)
62
+
63
+ def update(self, items: Sequence[SimulatorModelRequest]) -> list[SimulatorModelResponse]:
64
+ return self.client.tool.simulators.models.update(items, mode="replace")
65
+
66
+ def delete(self, ids: SequenceNotStr[ExternalId | InternalOrExternalId]) -> int:
67
+ if not ids:
68
+ return 0
69
+ self.client.tool.simulators.models.delete(list(ids))
70
+ return len(ids)
71
+
72
+ def _iterate(
73
+ self,
74
+ data_set_external_id: str | None = None,
75
+ space: str | None = None,
76
+ parent_ids: list[Hashable] | None = None,
77
+ ) -> Iterable[SimulatorModelResponse]:
78
+ # Note: The SimulatorModelsAPI doesn't support data_set_external_id filtering directly,
79
+ # so we iterate and filter in memory if needed.
80
+ cursor: str | None = None
81
+ data_set_id: int | None = None
82
+ if data_set_external_id:
83
+ data_set_id = self.client.lookup.data_sets.id(data_set_external_id, is_dry_run=False)
84
+ while True:
85
+ page = self.client.tool.simulators.models.iterate(
86
+ limit=1000,
87
+ cursor=cursor,
88
+ )
89
+ if data_set_id:
90
+ # Filter by data_set_external_id in memory
91
+ for item in page.items:
92
+ if item.data_set_id == data_set_id:
93
+ yield item
94
+ else:
95
+ yield from page.items
96
+ if not page.next_cursor or not page.items:
97
+ break
98
+ cursor = page.next_cursor
99
+
100
+ @classmethod
101
+ def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
102
+ """Returns all items that this item requires.
103
+
104
+ For example, a SimulatorModel requires a DataSet, so this method would return the
105
+ DataSetsCRUD and identifier of that dataset.
106
+ """
107
+ if "dataSetExternalId" in item:
108
+ yield DataSetsCRUD, item["dataSetExternalId"]
109
+
110
+ def load_resource(self, resource: dict[str, Any], is_dry_run: bool = False) -> SimulatorModelRequest:
111
+ if ds_external_id := resource.pop("dataSetExternalId", None):
112
+ resource["dataSetId"] = self.client.lookup.data_sets.id(ds_external_id, is_dry_run)
113
+ return SimulatorModelRequest.model_validate(resource)
114
+
115
+ def dump_resource(self, resource: SimulatorModelResponse, local: dict[str, Any] | None = None) -> dict[str, Any]:
116
+ dumped = resource.as_request_resource().dump()
117
+ if data_set_id := dumped.pop("dataSetId", None):
118
+ dumped["dataSetExternalId"] = self.client.lookup.data_sets.external_id(data_set_id)
119
+ return dumped
@@ -61,6 +61,10 @@ class Flags(Enum):
61
61
  visible=True,
62
62
  description="Enables extended upload to support uploading individual files",
63
63
  )
64
+ SIMULATORS = FlagMetadata(
65
+ visible=True,
66
+ description="Enables the support for simulator model resources",
67
+ )
64
68
 
65
69
  def is_enabled(self) -> bool:
66
70
  return FeatureFlag.is_enabled(self)
@@ -12,7 +12,7 @@ jobs:
12
12
  environment: dev
13
13
  name: Deploy
14
14
  container:
15
- image: cognite/toolkit:0.7.44
15
+ image: cognite/toolkit:0.7.45
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.44
13
+ image: cognite/toolkit:0.7.45
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.44"
7
+ version = "0.7.45"
8
8
 
9
9
 
10
10
  [plugins]
@@ -1 +1 @@
1
- __version__ = "0.7.44"
1
+ __version__ = "0.7.45"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cognite_toolkit
3
- Version: 0.7.44
3
+ Version: 0.7.45
4
4
  Summary: Official Cognite Data Fusion tool for project templates and configuration deployment
5
5
  Author: Cognite AS
6
6
  Author-email: Cognite AS <support@cognite.com>
@@ -31,9 +31,9 @@ cognite_toolkit/_cdf_tk/client/__init__.py,sha256=a6rQXDGfW2g7K5WwrOW5oakh1TdFlB
31
31
  cognite_toolkit/_cdf_tk/client/_constants.py,sha256=COUGcea37mDF2sf6MGqJXWmecTY_6aCImslxXrYW1I0,73
32
32
  cognite_toolkit/_cdf_tk/client/_toolkit_client.py,sha256=f0AcjGd20okKktCQBnfJYeD3qDGIw1FsbrVWzawrNDw,4269
33
33
  cognite_toolkit/_cdf_tk/client/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
- cognite_toolkit/_cdf_tk/client/api/assets.py,sha256=Mphk5zuZC7sVnLXjx27Q-8z8q2p4T38S8tka5HABTVQ,4781
35
- cognite_toolkit/_cdf_tk/client/api/events.py,sha256=jgbrxdATMknGxTo1HKXokDTAKiIwiREdJvNDB5zQYew,4685
36
- cognite_toolkit/_cdf_tk/client/api/filemetadata.py,sha256=pZ1n3vKuNYJ4VVD1609cKaiHvlQmJQt6qT6RfDXr_Wo,6284
34
+ cognite_toolkit/_cdf_tk/client/api/assets.py,sha256=1CEI4pWErM_Mj4TKJN29gcVgpCVrmCiIH0vZBmdVEWw,4828
35
+ cognite_toolkit/_cdf_tk/client/api/events.py,sha256=v6mVeqLsR6E1H5Tlh8mA6Em29W1kk0q9d0O_Dk0Qg6g,4732
36
+ cognite_toolkit/_cdf_tk/client/api/filemetadata.py,sha256=V4-eWZ1b2l-KliWOjRrx9Sc1rvywyiE487xZW95mR-c,6352
37
37
  cognite_toolkit/_cdf_tk/client/api/infield.py,sha256=QkZ-KVDtSwq0X1ztM4xbqO2IL6ql5gJSjSuLIpqOEhA,11036
38
38
  cognite_toolkit/_cdf_tk/client/api/legacy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
39
  cognite_toolkit/_cdf_tk/client/api/legacy/canvas.py,sha256=t5TNNtoCyOHwQbbYetT27Xh5eSwNIZVnBBCIh7y8KC4,9299
@@ -59,18 +59,18 @@ cognite_toolkit/_cdf_tk/client/api/legacy/search_config.py,sha256=LnFafTKKSDVI2P
59
59
  cognite_toolkit/_cdf_tk/client/api/lookup.py,sha256=c-cvtgfGGGYyk8ROcJu44qlo1ocqbk0o1zafCql79fU,17652
60
60
  cognite_toolkit/_cdf_tk/client/api/migration.py,sha256=6q3ncT-_I2P7fWYzAcv_UG55VnrVRTSymwaf10aosJA,23102
61
61
  cognite_toolkit/_cdf_tk/client/api/project.py,sha256=Zkm--qIZgRqCyAxV4dSijrC7nc9YLhNri3uW2iwpA-E,1089
62
- cognite_toolkit/_cdf_tk/client/api/raw.py,sha256=LCXB3ZHDgDwGQtnkZpB3HQsducoW6OSHzrbbiXyG1vg,6765
62
+ cognite_toolkit/_cdf_tk/client/api/raw.py,sha256=yeGxZayWner0p_-ZUvbrl7nuHQIi3DpEvmeeGiKNbDM,6836
63
63
  cognite_toolkit/_cdf_tk/client/api/search.py,sha256=wl6MjmkELCWmkXf9yYM03LElLC5l0_DwwifsZc_tXSg,694
64
- cognite_toolkit/_cdf_tk/client/api/simulator_models.py,sha256=4NYq27L2Pv5bLGBXfe_1f85hCNrhkfOWgNp1qfJOqmA,4568
64
+ cognite_toolkit/_cdf_tk/client/api/simulator_models.py,sha256=xkatADl85nnATBsBz0qSJU1APZ2ZiMeH0nt_kGTTc-Q,5003
65
65
  cognite_toolkit/_cdf_tk/client/api/simulators.py,sha256=61pnNOXkCSigwRbfdBu6wV7bWainQjoWkweFXnChoXM,250
66
66
  cognite_toolkit/_cdf_tk/client/api/streams.py,sha256=5Ex8gRJhvtuPuv0aQVg_DKG7DxfXZfyp2y8tRmt93gQ,3045
67
67
  cognite_toolkit/_cdf_tk/client/api/three_d.py,sha256=UQfquguKunNX3qD65255N8CFtA-SBFBHzOZwxFFOcg4,15984
68
- cognite_toolkit/_cdf_tk/client/api/timeseries.py,sha256=Y6TxivJlmcTmDgB4y10_Znk9f9ya8D0wlIDe7GmrzLc,4972
68
+ cognite_toolkit/_cdf_tk/client/api/timeseries.py,sha256=fJbjyMiAiInN2BGPn_x3kp2HyTvlp8qyDLH1SvA57aM,5019
69
69
  cognite_toolkit/_cdf_tk/client/api/token.py,sha256=8SiA44Dwsx0j_X8lgIxl2rdNCQSdEiSfoD_4ybxMtFA,5131
70
70
  cognite_toolkit/_cdf_tk/client/api/verify.py,sha256=-x6z6lMaOZG91adi0m9NtJ4wIQgoZURbzluPALXM-ps,3730
71
71
  cognite_toolkit/_cdf_tk/client/api_client.py,sha256=CQdD_gfDqQkz5OYHrTnKvBvEvzHPdHDB1BkZPWRoahg,440
72
72
  cognite_toolkit/_cdf_tk/client/cdf_client/__init__.py,sha256=jTu-l5BjBWOyQdhYMk9n9JFG7sN_xlCyC8X9KcYPReI,225
73
- cognite_toolkit/_cdf_tk/client/cdf_client/api.py,sha256=W9maSlOZ81Mh6DF5v2MbZAbd9j1M_KwIy_BwUNU8rR4,10306
73
+ cognite_toolkit/_cdf_tk/client/cdf_client/api.py,sha256=r9aZwlvNJQHnslLq17rCYBYxFiLmv_jDD_CZ6mmGxBs,13262
74
74
  cognite_toolkit/_cdf_tk/client/cdf_client/responses.py,sha256=Rhv3ekirfdz-Y1Por8fu1yrC1_2feyi92dAJ8xMEGUU,689
75
75
  cognite_toolkit/_cdf_tk/client/config.py,sha256=weMR43z-gqHMn-Jqvfmh_nJ0HbgEdyeCGtISuEf3OuY,4269
76
76
  cognite_toolkit/_cdf_tk/client/data_classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -193,10 +193,10 @@ cognite_toolkit/_cdf_tk/commands/repo.py,sha256=MNy8MWphTklIZHvQOROCweq8_SYxGv6B
193
193
  cognite_toolkit/_cdf_tk/commands/resources.py,sha256=NeHVA1b1TMsP-2wgd5u1vif_N6nln7ePxZ0BXypwt-k,7377
194
194
  cognite_toolkit/_cdf_tk/commands/run.py,sha256=0NFMFAgFS8m8fVIhfz28FqKDI20AIbIWEOJMp9MmFsc,37338
195
195
  cognite_toolkit/_cdf_tk/constants.py,sha256=TplKm2J9pGRHq7nAnLI0caTMHetS04OIz3hfq-jvGzo,7236
196
- cognite_toolkit/_cdf_tk/cruds/__init__.py,sha256=noZQvCaAe6u67NSuJahil5Q44_tk5aGFWKyi9wBot1U,6675
196
+ cognite_toolkit/_cdf_tk/cruds/__init__.py,sha256=SNfVo-baZfRLpwJvVrJIoI8sxxcKrKAuL4Nz6G7QwQQ,6835
197
197
  cognite_toolkit/_cdf_tk/cruds/_base_cruds.py,sha256=6I1P0kZKxX7CDHM3_xPNnMJQi_QEviE_XnhpM_PAULc,17652
198
198
  cognite_toolkit/_cdf_tk/cruds/_data_cruds.py,sha256=TC1LKIBM_LO-ixYD27bwNcaWNU7mh79RNNFChSm7TxQ,8972
199
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/__init__.py,sha256=diUM4kSbOw3YfdkmByy20BgzJcEM5ylYrnnEIoQEddk,2945
199
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/__init__.py,sha256=TTO_GE8AfUb4ra2uROyjHj9wsaT-vKb0mU5I_WEchxc,3014
200
200
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/agent.py,sha256=2UjX0m85fw_zt4EpCm5Ihz2gE1AlgOgR8-7Pr8M2c4g,5128
201
201
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/auth.py,sha256=Zjf__EccubMRzJHBeEU3xVbXpzcTCeTBjU9LQzt6Mk4,24815
202
202
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/classic.py,sha256=OzA1DyUxzQDfjf1ISzZjVjUEw93awDICIPV_ADGsOuQ,26662
@@ -215,6 +215,7 @@ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/migration.py,sha256=QqqBzdJlW_tpnl
215
215
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/raw.py,sha256=0AahK0uPPd27WT4mZHpUleWjRsbYWBj2SGTorLP46tU,12079
216
216
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/relationship.py,sha256=l26qZBUZs94aXhBZHQVazp3wKDtISjKlD_PQWb3yLyQ,6326
217
217
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/robotics.py,sha256=TO32hNq4pWAl71c_MO9xlg2KtQajOR9DYZE0rnG5h7I,16081
218
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/simulators.py,sha256=I2ttXq7-LLfQTTYCIIc5MDbtDDpH4hHBKrNnWYidckA,5117
218
219
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py,sha256=WRFsJSMxUD1ugAJJPRjIGqKLU788zXgYRLBOHrsKdxE,3055
219
220
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/three_d_model.py,sha256=5jIRF2JqosVHyAi2Ek6H38K2FWcNqrbPOR6MTSIEAQI,7320
220
221
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py,sha256=HSF3v6fxEV5s2Zg4hctJD3-KE0ope7sBxve2HOsLLMI,23377
@@ -236,7 +237,7 @@ cognite_toolkit/_cdf_tk/data_classes/_packages.py,sha256=RPAi54GCBwMZFAA4XgIa1rG
236
237
  cognite_toolkit/_cdf_tk/data_classes/_tracking_info.py,sha256=LoUX6GC9I3VXOqOpKna8wFDbCdiC_SR4qBX53vabK0Y,2014
237
238
  cognite_toolkit/_cdf_tk/data_classes/_yaml_comments.py,sha256=zfuDu9aAsb1ExeZBAJIqVaoqIZ050tO_oh3dApzlDwY,4937
238
239
  cognite_toolkit/_cdf_tk/exceptions.py,sha256=xG0jMwi5A20nvPvyo6sCyz_cyKycynPyIzpYiGR4gcU,6064
239
- cognite_toolkit/_cdf_tk/feature_flags.py,sha256=X2-penlGM4RlFcX3UXTxXeb85eDrV0NiRpUrfvD7aQA,2218
240
+ cognite_toolkit/_cdf_tk/feature_flags.py,sha256=2bTgQ2JriLrCQCldOut13lgCCKPU4UZmUvjFvunihxw,2350
240
241
  cognite_toolkit/_cdf_tk/hints.py,sha256=UI1ymi2T5wCcYOpEbKbVaDnlyFReFy8TDtMVt-5E1h8,6493
241
242
  cognite_toolkit/_cdf_tk/plugins.py,sha256=0V14rceAWLZQF8iWdyL5QmK7xB796YaDEtb9RIj5AOc,836
242
243
  cognite_toolkit/_cdf_tk/protocols.py,sha256=Lc8XnBfmDZN6dwmSopmK7cFE9a9jZ2zdUryEeCXn27I,3052
@@ -360,14 +361,14 @@ cognite_toolkit/_repo_files/.gitignore,sha256=ip9kf9tcC5OguF4YF4JFEApnKYw0nG0vPi
360
361
  cognite_toolkit/_repo_files/AzureDevOps/.devops/README.md,sha256=OLA0D7yCX2tACpzvkA0IfkgQ4_swSd-OlJ1tYcTBpsA,240
361
362
  cognite_toolkit/_repo_files/AzureDevOps/.devops/deploy-pipeline.yml,sha256=brULcs8joAeBC_w_aoWjDDUHs3JheLMIR9ajPUK96nc,693
362
363
  cognite_toolkit/_repo_files/AzureDevOps/.devops/dry-run-pipeline.yml,sha256=OBFDhFWK1mlT4Dc6mDUE2Es834l8sAlYG50-5RxRtHk,723
363
- cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=vsbAdxUK6K8iF1w-TYdz-nBu2s2nswsjIyLQNJbGbtY,667
364
- cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=dE36iT0YihxIVvwm0IrGKC1Tb974R44TGEiSHVB_rMg,2430
365
- cognite_toolkit/_resources/cdf.toml,sha256=B37o0rOBqa4VKvm68JKaY9napFaPTckp9NGGhR9XjcU,475
366
- cognite_toolkit/_version.py,sha256=A2_3IX6zMwa2WCih8zHSsbweboDs_oVcxBEIULjCvAg,23
364
+ cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=gmBqj-QmP5IzliPKcszyRcjlhCXqszxXI0ZOaGUaY8Y,667
365
+ cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=pJQeNU8XloB0WxSssJNCPFyki71tqKBNkrHmIcJ_G98,2430
366
+ cognite_toolkit/_resources/cdf.toml,sha256=xzRKFsmvErJFe-PC8Ds_McIYHsSQkCAnR0zsNwWi5aE,475
367
+ cognite_toolkit/_version.py,sha256=dBAr-VDlblibql09COvdMWxD6M2EWPnxlvEMzkseB3c,23
367
368
  cognite_toolkit/config.dev.yaml,sha256=M33FiIKdS3XKif-9vXniQ444GTZ-bLXV8aFH86u9iUQ,332
368
369
  cognite_toolkit/demo/__init__.py,sha256=-m1JoUiwRhNCL18eJ6t7fZOL7RPfowhCuqhYFtLgrss,72
369
370
  cognite_toolkit/demo/_base.py,sha256=6xKBUQpXZXGQ3fJ5f7nj7oT0s2n7OTAGIa17ZlKHZ5U,8052
370
- cognite_toolkit-0.7.44.dist-info/WHEEL,sha256=eycQt0QpYmJMLKpE3X9iDk8R04v2ZF0x82ogq-zP6bQ,79
371
- cognite_toolkit-0.7.44.dist-info/entry_points.txt,sha256=EtZ17K2mUjh-AY0QNU1CPIB_aDSSOdmtNI_4Fj967mA,84
372
- cognite_toolkit-0.7.44.dist-info/METADATA,sha256=JVsenZ7udXSjZHGgIaC731NTsxw9__01hTslk9k7Qek,5026
373
- cognite_toolkit-0.7.44.dist-info/RECORD,,
371
+ cognite_toolkit-0.7.45.dist-info/WHEEL,sha256=eycQt0QpYmJMLKpE3X9iDk8R04v2ZF0x82ogq-zP6bQ,79
372
+ cognite_toolkit-0.7.45.dist-info/entry_points.txt,sha256=EtZ17K2mUjh-AY0QNU1CPIB_aDSSOdmtNI_4Fj967mA,84
373
+ cognite_toolkit-0.7.45.dist-info/METADATA,sha256=RJdemPtThIQacXAh01p8xblfhEhHSYLCqjPJFOtkvvw,5026
374
+ cognite_toolkit-0.7.45.dist-info/RECORD,,