cognite-toolkit 0.7.30__py3-none-any.whl → 0.7.32__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.
Files changed (33) hide show
  1. cognite_toolkit/_cdf.py +5 -6
  2. cognite_toolkit/_cdf_tk/apps/__init__.py +2 -0
  3. cognite_toolkit/_cdf_tk/apps/_core_app.py +7 -1
  4. cognite_toolkit/_cdf_tk/apps/_import_app.py +41 -0
  5. cognite_toolkit/_cdf_tk/client/api/extended_functions.py +9 -9
  6. cognite_toolkit/_cdf_tk/client/api/infield.py +23 -17
  7. cognite_toolkit/_cdf_tk/client/api/project.py +8 -7
  8. cognite_toolkit/_cdf_tk/client/api/streams.py +19 -14
  9. cognite_toolkit/_cdf_tk/client/api/three_d.py +5 -5
  10. cognite_toolkit/_cdf_tk/client/data_classes/base.py +2 -22
  11. cognite_toolkit/_cdf_tk/client/data_classes/instance_api.py +1 -1
  12. cognite_toolkit/_cdf_tk/client/data_classes/three_d.py +3 -0
  13. cognite_toolkit/_cdf_tk/commands/__init__.py +1 -0
  14. cognite_toolkit/_cdf_tk/commands/build_v2/build_cmd.py +241 -0
  15. cognite_toolkit/_cdf_tk/commands/build_v2/build_input.py +85 -0
  16. cognite_toolkit/_cdf_tk/commands/build_v2/build_issues.py +27 -0
  17. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py +48 -13
  18. cognite_toolkit/_cdf_tk/resource_classes/workflow_version.py +164 -5
  19. cognite_toolkit/_cdf_tk/utils/http_client/__init__.py +28 -0
  20. cognite_toolkit/_cdf_tk/utils/http_client/_client.py +3 -2
  21. cognite_toolkit/_cdf_tk/utils/http_client/_data_classes2.py +69 -7
  22. cognite_toolkit/_cdf_tk/validation.py +4 -0
  23. cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml +1 -1
  24. cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml +1 -1
  25. cognite_toolkit/_resources/cdf.toml +1 -1
  26. cognite_toolkit/_version.py +1 -1
  27. {cognite_toolkit-0.7.30.dist-info → cognite_toolkit-0.7.32.dist-info}/METADATA +1 -1
  28. {cognite_toolkit-0.7.30.dist-info → cognite_toolkit-0.7.32.dist-info}/RECORD +32 -29
  29. {cognite_toolkit-0.7.30.dist-info → cognite_toolkit-0.7.32.dist-info}/WHEEL +1 -1
  30. cognite_toolkit/_cdf_tk/prototypes/import_app.py +0 -41
  31. /cognite_toolkit/_cdf_tk/{prototypes/commands/import_.py → commands/_import_cmd.py} +0 -0
  32. /cognite_toolkit/_cdf_tk/{prototypes/commands → commands/build_v2}/__init__.py +0 -0
  33. {cognite_toolkit-0.7.30.dist-info → cognite_toolkit-0.7.32.dist-info}/entry_points.txt +0 -0
@@ -17,25 +17,53 @@ from ._data_classes import (
17
17
  SuccessResponse,
18
18
  SuccessResponseItems,
19
19
  )
20
+ from ._data_classes2 import (
21
+ BaseModelObject,
22
+ ErrorDetails2,
23
+ FailedRequest2,
24
+ FailedResponse2,
25
+ HTTPResult2,
26
+ ItemsFailedRequest2,
27
+ ItemsFailedResponse2,
28
+ ItemsRequest2,
29
+ ItemsResultMessage2,
30
+ ItemsSuccessResponse2,
31
+ RequestMessage2,
32
+ RequestResource,
33
+ SuccessResponse2,
34
+ )
20
35
  from ._exception import ToolkitAPIError
21
36
 
22
37
  __all__ = [
38
+ "BaseModelObject",
23
39
  "DataBodyRequest",
24
40
  "ErrorDetails",
41
+ "ErrorDetails2",
42
+ "FailedRequest2",
25
43
  "FailedRequestItems",
26
44
  "FailedRequestMessage",
27
45
  "FailedResponse",
46
+ "FailedResponse2",
28
47
  "FailedResponseItems",
29
48
  "HTTPClient",
30
49
  "HTTPMessage",
50
+ "HTTPResult2",
31
51
  "ItemMessage",
52
+ "ItemsFailedRequest2",
53
+ "ItemsFailedResponse2",
32
54
  "ItemsRequest",
55
+ "ItemsRequest2",
56
+ "ItemsResultMessage2",
57
+ "ItemsSuccessResponse2",
33
58
  "ParamRequest",
34
59
  "RequestMessage",
60
+ "RequestMessage2",
61
+ "RequestResource",
35
62
  "ResponseList",
36
63
  "ResponseMessage",
37
64
  "SimpleBodyRequest",
38
65
  "SuccessResponse",
66
+ "SuccessResponse2",
39
67
  "SuccessResponseItems",
40
68
  "ToolkitAPIError",
41
69
  ]
@@ -32,6 +32,7 @@ from cognite_toolkit._cdf_tk.utils.http_client._data_classes2 import (
32
32
  ItemsFailedRequest2,
33
33
  ItemsFailedResponse2,
34
34
  ItemsRequest2,
35
+ ItemsResultList,
35
36
  ItemsResultMessage2,
36
37
  ItemsSuccessResponse2,
37
38
  RequestMessage2,
@@ -424,7 +425,7 @@ class HTTPClient:
424
425
  results = self._handle_items_error(e, message)
425
426
  return results
426
427
 
427
- def request_items_retries(self, message: ItemsRequest2) -> Sequence[ItemsResultMessage2]:
428
+ def request_items_retries(self, message: ItemsRequest2) -> ItemsResultList:
428
429
  """Send an HTTP request with multiple items and handle retries.
429
430
 
430
431
  This method will keep retrying the request until it either succeeds or
@@ -442,7 +443,7 @@ class HTTPClient:
442
443
  raise RuntimeError(f"ItemsRequest2 has already been attempted {message.total_attempts} times.")
443
444
  pending_requests: deque[ItemsRequest2] = deque()
444
445
  pending_requests.append(message)
445
- final_responses: list[ItemsResultMessage2] = []
446
+ final_responses = ItemsResultList([])
446
447
  while pending_requests:
447
448
  current_request = pending_requests.popleft()
448
449
  results = self.request_items(current_request)
@@ -1,7 +1,8 @@
1
1
  import gzip
2
2
  import sys
3
3
  from abc import ABC, abstractmethod
4
- from collections.abc import Hashable
4
+ from collections import UserList
5
+ from collections.abc import Hashable, Sequence
5
6
  from typing import Any, Literal
6
7
 
7
8
  import httpx
@@ -9,6 +10,7 @@ from cognite.client import global_config
9
10
  from pydantic import BaseModel, ConfigDict, Field, JsonValue, TypeAdapter, model_validator
10
11
  from pydantic.alias_generators import to_camel
11
12
 
13
+ from cognite_toolkit._cdf_tk.utils.http_client._exception import ToolkitAPIError
12
14
  from cognite_toolkit._cdf_tk.utils.http_client._tracker import ItemsRequestTracker
13
15
  from cognite_toolkit._cdf_tk.utils.useful_types import PrimitiveType
14
16
 
@@ -18,7 +20,19 @@ else:
18
20
  from typing_extensions import Self
19
21
 
20
22
 
21
- class HTTPResult2(BaseModel): ...
23
+ class HTTPResult2(BaseModel):
24
+ def get_success_or_raise(self) -> "SuccessResponse2":
25
+ """Raises an exception if any response in the list indicates a failure."""
26
+ if isinstance(self, SuccessResponse2):
27
+ return self
28
+ elif isinstance(self, FailedResponse2):
29
+ raise ToolkitAPIError(
30
+ f"Request failed with status code {self.status_code}: {self.error.code} - {self.error.message}"
31
+ )
32
+ elif isinstance(self, FailedRequest2):
33
+ raise ToolkitAPIError(f"Request failed with error: {self.error}")
34
+ else:
35
+ raise ToolkitAPIError("Unknown HTTPResult2 type")
22
36
 
23
37
 
24
38
  class FailedRequest2(HTTPResult2):
@@ -30,6 +44,11 @@ class SuccessResponse2(HTTPResult2):
30
44
  body: str
31
45
  content: bytes
32
46
 
47
+ @property
48
+ def body_json(self) -> dict[str, Any]:
49
+ """Parse the response body as JSON."""
50
+ return TypeAdapter(dict[str, JsonValue]).validate_json(self.body)
51
+
33
52
 
34
53
  class ErrorDetails2(BaseModel):
35
54
  """This is the expected structure of error details in the CDF API"""
@@ -98,8 +117,8 @@ class RequestMessage2(BaseRequestMessage):
98
117
  # We serialize using pydantic instead of json.dumps. This is because pydantic is faster
99
118
  # and handles more complex types such as datetime, float('nan'), etc.
100
119
  data = _BODY_SERIALIZER.dump_json(self.body_content)
101
- if not global_config.disable_gzip and isinstance(data, str):
102
- data = gzip.compress(data.encode("utf-8"))
120
+ if not global_config.disable_gzip and isinstance(data, bytes):
121
+ data = gzip.compress(data)
103
122
  return data
104
123
 
105
124
 
@@ -158,7 +177,7 @@ def _set_default_tracker(data: dict[str, Any]) -> ItemsRequestTracker:
158
177
 
159
178
  class ItemsRequest2(BaseRequestMessage):
160
179
  model_config = ConfigDict(arbitrary_types_allowed=True)
161
- items: list[RequestResource]
180
+ items: Sequence[RequestResource]
162
181
  extra_body_fields: dict[str, JsonValue] | None = None
163
182
  max_failures_before_abort: int = 50
164
183
  tracker: ItemsRequestTracker = Field(init=False, default_factory=_set_default_tracker, exclude=True)
@@ -169,8 +188,8 @@ class ItemsRequest2(BaseRequestMessage):
169
188
  if self.extra_body_fields:
170
189
  body.update(self.extra_body_fields)
171
190
  res = _BODY_SERIALIZER.dump_json(body)
172
- if not global_config.disable_gzip and isinstance(res, str):
173
- return gzip.compress(res.encode("utf-8"))
191
+ if not global_config.disable_gzip and isinstance(res, bytes):
192
+ return gzip.compress(res)
174
193
  return res
175
194
 
176
195
  def split(self, status_attempts: int) -> list["ItemsRequest2"]:
@@ -185,3 +204,46 @@ class ItemsRequest2(BaseRequestMessage):
185
204
  new_request.tracker = self.tracker
186
205
  messages.append(new_request)
187
206
  return messages
207
+
208
+
209
+ class ItemResponse(BaseModel):
210
+ items: list[dict[str, JsonValue]]
211
+
212
+
213
+ class ItemsResultList(UserList[ItemsResultMessage2]):
214
+ def __init__(self, collection: Sequence[ItemsResultMessage2] | None = None) -> None:
215
+ super().__init__(collection or [])
216
+
217
+ def raise_for_status(self) -> None:
218
+ """Raises an exception if any response in the list indicates a failure."""
219
+ failed_responses = [resp for resp in self.data if isinstance(resp, ItemsFailedResponse2)]
220
+ failed_requests = [resp for resp in self.data if isinstance(resp, ItemsFailedRequest2)]
221
+ if not failed_responses and not failed_requests:
222
+ return
223
+ error_messages = "; ".join(f"Status {err.status_code}: {err.error.message}" for err in failed_responses)
224
+ if failed_requests:
225
+ if error_messages:
226
+ error_messages += "; "
227
+ error_messages += "; ".join(f"Request error: {err.error_message}" for err in failed_requests)
228
+ raise ToolkitAPIError(f"One or more requests failed: {error_messages}")
229
+
230
+ @property
231
+ def has_failed(self) -> bool:
232
+ """Indicates whether any response in the list indicates a failure.
233
+
234
+ Returns:
235
+ bool: True if there are any failed responses or requests, False otherwise.
236
+ """
237
+ for resp in self.data:
238
+ if isinstance(resp, ItemsFailedResponse2 | ItemsFailedRequest2):
239
+ return True
240
+ return False
241
+
242
+ def get_items(self) -> list[dict[str, JsonValue]]:
243
+ """Get the items from all successful responses."""
244
+ items: list[dict[str, JsonValue]] = []
245
+ for resp in self.data:
246
+ if isinstance(resp, ItemsSuccessResponse2):
247
+ body_json = ItemResponse.model_validate_json(resp.body)
248
+ items.extend(body_json.items)
249
+ return items
@@ -182,6 +182,10 @@ def humanize_validation_error(error: ValidationError) -> list[str]:
182
182
  "dict_type",
183
183
  }:
184
184
  msg = f"{item['msg']}. Got {item['input']!r} of type {type(item['input']).__name__}."
185
+ elif error_type == "union_tag_not_found" and "ctx" in item and "discriminator" in item["ctx"]:
186
+ # This is when we use a discriminator field to determine the type in a union. For the user, this means they
187
+ # are missing a required field.
188
+ msg = f"Missing required field: {item['ctx']['discriminator']}"
185
189
  else:
186
190
  # Default to the Pydantic error message
187
191
  msg = item["msg"]
@@ -12,7 +12,7 @@ jobs:
12
12
  environment: dev
13
13
  name: Deploy
14
14
  container:
15
- image: cognite/toolkit:0.7.30
15
+ image: cognite/toolkit:0.7.32
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.30
13
+ image: cognite/toolkit:0.7.32
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.30"
7
+ version = "0.7.32"
8
8
 
9
9
 
10
10
  [plugins]
@@ -1 +1 @@
1
- __version__ = "0.7.30"
1
+ __version__ = "0.7.32"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cognite_toolkit
3
- Version: 0.7.30
3
+ Version: 0.7.32
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>
@@ -1,13 +1,14 @@
1
1
  cognite_toolkit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- cognite_toolkit/_cdf.py,sha256=sefGD2JQuOTBZhEqSj_ECbNZ7nTRN4AwGwX1pSUhoow,5636
2
+ cognite_toolkit/_cdf.py,sha256=W3VpmgXn3fUtXErTk45Y34qpGbO-nbirsWin_WA4Xe4,5549
3
3
  cognite_toolkit/_cdf_tk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- cognite_toolkit/_cdf_tk/apps/__init__.py,sha256=KKmhbpvPKTwqQS2g_XqAC2yvtPsvdl8wV5TgJA3zqhs,702
4
+ cognite_toolkit/_cdf_tk/apps/__init__.py,sha256=80XM_8Tx7nIav2weV7Ni03Oqy84jDtyDPUtDeSaPk5E,754
5
5
  cognite_toolkit/_cdf_tk/apps/_auth_app.py,sha256=ER7uYb3ViwsHMXiQEZpyhwU6TIjKaB9aEy32VI4MPpg,3397
6
- cognite_toolkit/_cdf_tk/apps/_core_app.py,sha256=YK0MOK7Tv3cDSe5_6o9GtM5n_6sE7I0Wm-Se4eJnyNM,13744
6
+ cognite_toolkit/_cdf_tk/apps/_core_app.py,sha256=BiY7GWInq0INa7uCiGQyt4cBs1Eguyr5BBCW14JHo3I,14018
7
7
  cognite_toolkit/_cdf_tk/apps/_data_app.py,sha256=LeplXlxXtyIymRPgbatQrRFodU4VZBFxI0bqDutLSbg,806
8
8
  cognite_toolkit/_cdf_tk/apps/_dev_app.py,sha256=FaY67PFdKwdiMKgJbTcjHT1X2Xfbog2PKL6T-kcawyc,2818
9
9
  cognite_toolkit/_cdf_tk/apps/_download_app.py,sha256=2nPn9P_9br9poynSpKKSZF7WYTYT--BfxlxXkSEeH-8,41156
10
10
  cognite_toolkit/_cdf_tk/apps/_dump_app.py,sha256=EPq6fWSaScj9ncKfRY253rRJ37er47PIM60IFgkQK_k,37127
11
+ cognite_toolkit/_cdf_tk/apps/_import_app.py,sha256=5n5AF40HJ0Q_3LENCknG0MxH4pMUS8OwsqvtCYj_t7w,2086
11
12
  cognite_toolkit/_cdf_tk/apps/_landing_app.py,sha256=YR9z83OY7PhhgBVC5gmRLgo9iTXoGoZfRhOU3gd_r2o,888
12
13
  cognite_toolkit/_cdf_tk/apps/_migrate_app.py,sha256=_woM0D2j6VzuYC0LJKteALbQ4U8vGj0B1LSBj_WszKQ,41198
13
14
  cognite_toolkit/_cdf_tk/apps/_modules_app.py,sha256=t0SPvulgbgkF_OO2E68mQ_ZUcJ6HoaurYe0IkmXie0o,7449
@@ -35,15 +36,15 @@ cognite_toolkit/_cdf_tk/client/api/charts.py,sha256=t-VOrRGwpjmYUtUqGObQWYwGb5gO
35
36
  cognite_toolkit/_cdf_tk/client/api/dml.py,sha256=8b1lo86JdvfEsz9mP2rx0Mp9fyWsU6mbXHqLBtvSidU,3546
36
37
  cognite_toolkit/_cdf_tk/client/api/extended_data_modeling.py,sha256=T08lXIrgDRGKhF-44FYoBMd4oJRYiWRzYhHsNkLyLAo,12967
37
38
  cognite_toolkit/_cdf_tk/client/api/extended_files.py,sha256=azdPnCqXUVuPLTuiV9WZ97VJTJ6mN2hOEtD9LklLw8M,9191
38
- cognite_toolkit/_cdf_tk/client/api/extended_functions.py,sha256=_MbkztZskZAt43ZERddhmeZYKHeQSDteFlnaCLL5J6k,3523
39
+ cognite_toolkit/_cdf_tk/client/api/extended_functions.py,sha256=_AAA_p4uVCgMx5_aYuhpv-nWxlj__6qMPc3z3c2Z9n4,3444
39
40
  cognite_toolkit/_cdf_tk/client/api/extended_raw.py,sha256=9DVbM2aWmIyzbaW-lh10_pzVYJUEQFnIKnxvt413Bjk,2118
40
41
  cognite_toolkit/_cdf_tk/client/api/extended_timeseries.py,sha256=xK7XhTfe4W9FvaueUIfR7Q64JOIDwq_svHRjORM76Q4,17774
41
42
  cognite_toolkit/_cdf_tk/client/api/fixed_transformations.py,sha256=m66cqbx4oCtjv5TBQOWLNFrz475qVTCXBu_pTxbdCD4,5589
42
- cognite_toolkit/_cdf_tk/client/api/infield.py,sha256=rtWbt1emyluZwRHKOisMXC6A44QDONHCBIQ9-nxl7Wk,11042
43
+ cognite_toolkit/_cdf_tk/client/api/infield.py,sha256=r_KeHEFs9slr6Zw3N6Ka3-_JBhU8yVW4KcjQ3u5OSFw,11071
43
44
  cognite_toolkit/_cdf_tk/client/api/location_filters.py,sha256=TIbomUbpUNDxOON_a3pwBmCBdltxL1jMQBXKcIjRx44,3759
44
45
  cognite_toolkit/_cdf_tk/client/api/lookup.py,sha256=c-cvtgfGGGYyk8ROcJu44qlo1ocqbk0o1zafCql79fU,17652
45
46
  cognite_toolkit/_cdf_tk/client/api/migration.py,sha256=jjQ-3HyBgEPWO8RB8mI1sp8ZWHrUmtaYsufuUGp_3ew,23055
46
- cognite_toolkit/_cdf_tk/client/api/project.py,sha256=Hj0uDCLyPofG-T4626EdeoRRtBaovhU-SMAQ7VWJ1M4,1063
47
+ cognite_toolkit/_cdf_tk/client/api/project.py,sha256=Fb3ag9-Q5L4c2YyIwO_Rg9RJSX1HvQBjUrSAnmmoHZA,1081
47
48
  cognite_toolkit/_cdf_tk/client/api/robotics/__init__.py,sha256=6xDSr24_IkLRx_kAKU0_e6_sqnxVWcQChnML_NJqnIQ,56
48
49
  cognite_toolkit/_cdf_tk/client/api/robotics/api.py,sha256=o_wQLlctAY4pkwJhcXcPnox3YC_kQmUFezQhjR76jrU,981
49
50
  cognite_toolkit/_cdf_tk/client/api/robotics/capabilities.py,sha256=YXorz89ELxuSDyMAx31p3ROaCFrbutLkwGaayP5CQkM,4429
@@ -55,8 +56,8 @@ cognite_toolkit/_cdf_tk/client/api/robotics/robots.py,sha256=J0GN8FjfZ9iUO_rcc6e
55
56
  cognite_toolkit/_cdf_tk/client/api/robotics/utlis.py,sha256=EMwyrIb9CfM1q6HAfPe6qqfmE1Gdm_UiM8XicsbEAzE,329
56
57
  cognite_toolkit/_cdf_tk/client/api/search.py,sha256=L4cDPip7pJVP7bEgAiSOjqINIHg8AULNBtR29G5khEQ,612
57
58
  cognite_toolkit/_cdf_tk/client/api/search_config.py,sha256=31rPCSOnzfiLv8FKU6F3tF9ZesEV8moSlbnkFPNh13g,1824
58
- cognite_toolkit/_cdf_tk/client/api/streams.py,sha256=4u5jRdbhxKbVR8OLURyVwehHgoejFxArjUAGni78PNY,3015
59
- cognite_toolkit/_cdf_tk/client/api/three_d.py,sha256=2jMBrdHBERcXn7qIRHZjRtlfXXIIDGoMyfkSGPrl8jE,2022
59
+ cognite_toolkit/_cdf_tk/client/api/streams.py,sha256=qOUFHdpz75PSlfImIizVCtschLLHttR8AUV0Jw3DTRM,3055
60
+ cognite_toolkit/_cdf_tk/client/api/three_d.py,sha256=zY71RGEBkH5b8R8WOb2CKHUsxFcDWTb5kPaxBa8wuAY,2053
60
61
  cognite_toolkit/_cdf_tk/client/api/token.py,sha256=8SiA44Dwsx0j_X8lgIxl2rdNCQSdEiSfoD_4ybxMtFA,5131
61
62
  cognite_toolkit/_cdf_tk/client/api/verify.py,sha256=-x6z6lMaOZG91adi0m9NtJ4wIQgoZURbzluPALXM-ps,3730
62
63
  cognite_toolkit/_cdf_tk/client/api_client.py,sha256=CQdD_gfDqQkz5OYHrTnKvBvEvzHPdHDB1BkZPWRoahg,440
@@ -64,7 +65,7 @@ cognite_toolkit/_cdf_tk/client/config.py,sha256=weMR43z-gqHMn-Jqvfmh_nJ0HbgEdyeC
64
65
  cognite_toolkit/_cdf_tk/client/data_classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
66
  cognite_toolkit/_cdf_tk/client/data_classes/api_classes.py,sha256=X-aGFnYzSxXYDxlFP2rqJ8P10Um7bcRRUZxVVzblYBw,477
66
67
  cognite_toolkit/_cdf_tk/client/data_classes/apm_config_v1.py,sha256=0bPq7R0qvdf8SMFS06kX7TXHIClDcJNHwdTBweQB-GU,20150
67
- cognite_toolkit/_cdf_tk/client/data_classes/base.py,sha256=QG4S0HlByMB6zwxUXWaVHwP-DrA2Y97XGN_o6QsL6FY,2776
68
+ cognite_toolkit/_cdf_tk/client/data_classes/base.py,sha256=CQ64XroKpH7pODOZ3NPZ_GBkdsH7evFAxYKQ8-ywmYI,2142
68
69
  cognite_toolkit/_cdf_tk/client/data_classes/canvas.py,sha256=DrE-7HOLnk1ELhydySsEhw-VOjriUqB_zzon5qb7CDk,50721
69
70
  cognite_toolkit/_cdf_tk/client/data_classes/capabilities.py,sha256=muqpAC2JLCFcEpRPzuh_3sS3o_q42WFyfsGzl-LfB_U,8773
70
71
  cognite_toolkit/_cdf_tk/client/data_classes/charts.py,sha256=4ZSZDJhDP8uNubXfzphuLJzKJhL1F01grB4UesxtSbQ,3745
@@ -76,7 +77,7 @@ cognite_toolkit/_cdf_tk/client/data_classes/extended_timeseries.py,sha256=yAvJCH
76
77
  cognite_toolkit/_cdf_tk/client/data_classes/functions.py,sha256=r9vhkS7sJ-wCiwvtD9CDKKthAktDMS6FJWDsLzq6iJ8,378
77
78
  cognite_toolkit/_cdf_tk/client/data_classes/graphql_data_models.py,sha256=N_1dfXSdsLlhw5uXreNfmSCo5bA4XeiZneMdnHWDgJI,4313
78
79
  cognite_toolkit/_cdf_tk/client/data_classes/infield.py,sha256=xZDpHw190FgX2vK6zk_r8dUJA7J6UzdS8227VOu74ms,4298
79
- cognite_toolkit/_cdf_tk/client/data_classes/instance_api.py,sha256=dCgCYqvQHiuFhe8CRb1_lYderkVHoHWki1vcf07F8tw,4929
80
+ cognite_toolkit/_cdf_tk/client/data_classes/instance_api.py,sha256=Ihi2Q1GKL3uBDReudtMI-T8XL8wxuNYmvrY3PD0feQs,4929
80
81
  cognite_toolkit/_cdf_tk/client/data_classes/instances.py,sha256=aGV3XtBGwG1ELks3kqFkScO-MGC5zvcSZtYXOVWL2BE,2501
81
82
  cognite_toolkit/_cdf_tk/client/data_classes/location_filters.py,sha256=IgHU7Hto0Zz3Bk_QW17JC3vUw0yN1oaTeJ3ZPKOGFAE,12112
82
83
  cognite_toolkit/_cdf_tk/client/data_classes/migration.py,sha256=AoYgqwSoYn1ok_ksG9Lljb270J4zPF_qyJSu5ZHtD_Q,18632
@@ -88,16 +89,17 @@ cognite_toolkit/_cdf_tk/client/data_classes/search_config.py,sha256=Reo_rcFrwk_s
88
89
  cognite_toolkit/_cdf_tk/client/data_classes/sequences.py,sha256=02d34fPcJ1H7U5ZnCCfOi36z5WJ4WnRfCWwkp99mW2E,6234
89
90
  cognite_toolkit/_cdf_tk/client/data_classes/streamlit_.py,sha256=nEk00FH3i-px2r6ql4kk1VVL4sytjUn0_sTkEdDSHVc,6746
90
91
  cognite_toolkit/_cdf_tk/client/data_classes/streams.py,sha256=DHSDrBax81fUzneIikn9hUMVgQVbdaiQ9aY-bRaTK38,2459
91
- cognite_toolkit/_cdf_tk/client/data_classes/three_d.py,sha256=X5BCOZC1B_WOcaC2RbmEscHJ0J9BrY_0oGbB17kpS90,1298
92
+ cognite_toolkit/_cdf_tk/client/data_classes/three_d.py,sha256=afPfgZtsYs7OhBo7lJXb-7xInTdYK8wWg1a_hQJNOcE,1352
92
93
  cognite_toolkit/_cdf_tk/client/testing.py,sha256=mXqEXPMZcbETrXBn6D-SiAcjD7xAkuuxCNYJMW0IO0Y,6815
93
94
  cognite_toolkit/_cdf_tk/client/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
95
  cognite_toolkit/_cdf_tk/client/utils/_concurrency.py,sha256=3GtQbKDaosyKHEt-KzxKK9Yie4TvZPdoou2vUk6dUa8,2298
95
96
  cognite_toolkit/_cdf_tk/client/utils/_http_client.py,sha256=oXNKrIaizG4WiSAhL_kSCHAuL4aaaEhCU4pOJGxh6Xs,483
96
- cognite_toolkit/_cdf_tk/commands/__init__.py,sha256=wXRbOwMyhGjMj83_bXTOUXtCh70YS4-eiYzzCMN_YOs,1390
97
+ cognite_toolkit/_cdf_tk/commands/__init__.py,sha256=g-k-P7jWUVzDM0iIBlq9kXdAs_dlGji3NxYEEmTv0L8,1412
97
98
  cognite_toolkit/_cdf_tk/commands/_base.py,sha256=1gl8Y-yqfedRMfdbwM3iPTIUIZriX1UvC1deLsJSJwM,2667
98
99
  cognite_toolkit/_cdf_tk/commands/_changes.py,sha256=sU0KaTtPVSJgAZcaZ1Tkcajj36pmhd13kh7V8QbIED8,22987
99
100
  cognite_toolkit/_cdf_tk/commands/_cli_commands.py,sha256=TK6U_rm6VZT_V941kTyHMoulWgJzbDC8YIIQDPJ5x3w,1011
100
101
  cognite_toolkit/_cdf_tk/commands/_download.py,sha256=dVddH9t7oGx1kdQ3CCYYQb96Uxxy-xC8Opph98lo46U,6869
102
+ cognite_toolkit/_cdf_tk/commands/_import_cmd.py,sha256=RkJ7RZI6zxe0_1xrPB-iJhCVchurmIAChilx0_XMR6k,11141
101
103
  cognite_toolkit/_cdf_tk/commands/_migrate/__init__.py,sha256=8ki04tJGH1dHdF2NtVF4HyhaC0XDDS7onrH_nvd9KtE,153
102
104
  cognite_toolkit/_cdf_tk/commands/_migrate/command.py,sha256=l2P0Em05aEJvNZH4WkEIm-QfO3TAjG1rc_YxELuQIQM,14214
103
105
  cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py,sha256=Ew9JRYrd-Ol9G9csTzpnhXAgCFnX67MwDYOTsdJLP3E,16803
@@ -119,6 +121,10 @@ cognite_toolkit/_cdf_tk/commands/_virtual_env.py,sha256=GFAid4hplixmj9_HkcXqU5yC
119
121
  cognite_toolkit/_cdf_tk/commands/about.py,sha256=pEXNdCeJYONOalH8x-7QRsKLgj-9gdIqN16pPxA3bhg,9395
120
122
  cognite_toolkit/_cdf_tk/commands/auth.py,sha256=TX_8YuVCjMVIQjEdfBE66bSDrojJhCnxf_jcT3-9wM8,32550
121
123
  cognite_toolkit/_cdf_tk/commands/build_cmd.py,sha256=c_4S9cZZYxXs2gXZVAEFlPRLZQK_hpCzEMNN1Zoua_o,28284
124
+ cognite_toolkit/_cdf_tk/commands/build_v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
+ cognite_toolkit/_cdf_tk/commands/build_v2/build_cmd.py,sha256=U69tPVVWGxMD-FwwTf60pE2gL8MgD0J5wcrVWfmHiME,10146
126
+ cognite_toolkit/_cdf_tk/commands/build_v2/build_input.py,sha256=wHTtUl0OrtNadBZm-i9Ju3zjV7Y6Asth4XuLFZ48qww,3197
127
+ cognite_toolkit/_cdf_tk/commands/build_v2/build_issues.py,sha256=xx11FtNbVfgO4mHgyPbe4m1veYZW_1NDgs8J2PKFa58,739
122
128
  cognite_toolkit/_cdf_tk/commands/clean.py,sha256=JNPIjNSiOJaP-cUhFzT8H3s30luA9lI39yH18QxHaYM,16603
123
129
  cognite_toolkit/_cdf_tk/commands/collect.py,sha256=zBMKhhvjOpuASMnwP0eeHRI02tANcvFEZgv0CQO1ECc,627
124
130
  cognite_toolkit/_cdf_tk/commands/deploy.py,sha256=DpA6q0f17qCpsrYUywavvaRjJ-qaIm78ukw8kIfCNbg,23262
@@ -155,7 +161,7 @@ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/robotics.py,sha256=IeDks5yJFta8Tp4
155
161
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py,sha256=1GAIn6G3ZC11ZAgRW-HKaJltMhIqSKH6_ttdEMGgFN0,3054
156
162
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/three_d_model.py,sha256=5jIRF2JqosVHyAi2Ek6H38K2FWcNqrbPOR6MTSIEAQI,7320
157
163
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py,sha256=rMkA78K9CZqUu7YBDiLgnaZgPcIsWdT-J3nB4xwCJWw,23032
158
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py,sha256=ndhoGIC6tBjNmwI0wDfg8v_6dJfCnHUnTienYOtKwC8,33876
164
+ cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py,sha256=oDgscEy6ybc3k1ZDg8S0vky1YnO895fyKV0hcgQM3Nk,35136
159
165
  cognite_toolkit/_cdf_tk/cruds/_resource_cruds/workflow.py,sha256=dVkf7OpZHV2H7V3zRU4BzUqDxgAudiWBJPvGeydATCg,26035
160
166
  cognite_toolkit/_cdf_tk/cruds/_worker.py,sha256=QeZjziBCePilyI4WfTZvLfSHGT3qJGCMhugsoO1SVtU,9285
161
167
  cognite_toolkit/_cdf_tk/data_classes/__init__.py,sha256=4zL-zR3lgQTCWfcy28LK0HEcukQOndPEFXVqfYfdKHU,1720
@@ -177,9 +183,6 @@ cognite_toolkit/_cdf_tk/feature_flags.py,sha256=X2-penlGM4RlFcX3UXTxXeb85eDrV0Ni
177
183
  cognite_toolkit/_cdf_tk/hints.py,sha256=UI1ymi2T5wCcYOpEbKbVaDnlyFReFy8TDtMVt-5E1h8,6493
178
184
  cognite_toolkit/_cdf_tk/plugins.py,sha256=0V14rceAWLZQF8iWdyL5QmK7xB796YaDEtb9RIj5AOc,836
179
185
  cognite_toolkit/_cdf_tk/protocols.py,sha256=Lc8XnBfmDZN6dwmSopmK7cFE9a9jZ2zdUryEeCXn27I,3052
180
- cognite_toolkit/_cdf_tk/prototypes/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
181
- cognite_toolkit/_cdf_tk/prototypes/commands/import_.py,sha256=RkJ7RZI6zxe0_1xrPB-iJhCVchurmIAChilx0_XMR6k,11141
182
- cognite_toolkit/_cdf_tk/prototypes/import_app.py,sha256=7dy852cBlHI2RQF1MidSmxl0jPBxekGWXnd2VtI7QFI,1899
183
186
  cognite_toolkit/_cdf_tk/resource_classes/__init__.py,sha256=IR9Qh4p46v_zHpq6VUYzfNuu9L3aSZgOYw5yy7XXiuk,4006
184
187
  cognite_toolkit/_cdf_tk/resource_classes/agent.py,sha256=5rglrj551Z-0eT53S_UmSA3wz4m4Y494QxleWVs0ECE,1786
185
188
  cognite_toolkit/_cdf_tk/resource_classes/agent_tools.py,sha256=oNkpPCQF3CyV9zcD6NTuEAnATLXzslw2GOyFz58ZGZg,2891
@@ -236,7 +239,7 @@ cognite_toolkit/_cdf_tk/resource_classes/view_field_definitions.py,sha256=2fIrIs
236
239
  cognite_toolkit/_cdf_tk/resource_classes/views.py,sha256=X3uC0E0CsvYHWZQZjXh0PhjpDgLrnmwq-r0GMmZACnI,3518
237
240
  cognite_toolkit/_cdf_tk/resource_classes/workflow.py,sha256=fMNfW93D8tdVwO7YgEYYiYvpktSMx4i0viIFg0gD2VY,512
238
241
  cognite_toolkit/_cdf_tk/resource_classes/workflow_trigger.py,sha256=aSN0WFPupQ383A7RT-0Monw-inkVdYYSsK3UwHXW1HA,5216
239
- cognite_toolkit/_cdf_tk/resource_classes/workflow_version.py,sha256=ui724EaM9Nlm3wTnm7Givgv6GLQ-xbsfZgidyRKv09U,2991
242
+ cognite_toolkit/_cdf_tk/resource_classes/workflow_version.py,sha256=anoDnl8lk8Xa9T2FwpjQ5TrrCMnR4QDjdDxo2OAcKTs,9850
240
243
  cognite_toolkit/_cdf_tk/storageio/__init__.py,sha256=h5Wr4i7zNIgsslrsRJxmp7ls4bNRKl0uZzQ7GLRMP7g,1920
241
244
  cognite_toolkit/_cdf_tk/storageio/_annotations.py,sha256=QcFrikDgz-9VjNy4Xq7wchM4VOQh-z2JaHcWR2C1sEs,4879
242
245
  cognite_toolkit/_cdf_tk/storageio/_applications.py,sha256=M7FEK4xC0BjP2i6FyYs1589zEA3afJiOKCzY56RV6NU,19685
@@ -280,10 +283,10 @@ cognite_toolkit/_cdf_tk/utils/fileio/_readers.py,sha256=IjOSHyW0GiID_lKdgAwQZao9
280
283
  cognite_toolkit/_cdf_tk/utils/fileio/_writers.py,sha256=mc23m0kJgl57FUDvwLmS7yR3xVZWQguPJa_63-qQ_L0,17731
281
284
  cognite_toolkit/_cdf_tk/utils/graphql_parser.py,sha256=2i2wDjg_Uw3hJ-pHtPK8hczIuCj5atrK8HZbgWJB-Pk,11532
282
285
  cognite_toolkit/_cdf_tk/utils/hashing.py,sha256=3NyNfljyYNTqAyAFBd6XlyWaj43jRzENxIuPdOY6nqo,2116
283
- cognite_toolkit/_cdf_tk/utils/http_client/__init__.py,sha256=G8b7Bg4yIet5R4Igh3dS2SntWzE6I0iTGBeNlNsSxkQ,857
284
- cognite_toolkit/_cdf_tk/utils/http_client/_client.py,sha256=WQFqzjWobjUYEcO1YV9uOMaoRrfi4APuDFrZakD86BQ,22496
286
+ cognite_toolkit/_cdf_tk/utils/http_client/__init__.py,sha256=MG3rAi5IiLxqlCMyVvzyfsKXMb_3fVxwAZ7uyPXrMvs,1483
287
+ cognite_toolkit/_cdf_tk/utils/http_client/_client.py,sha256=1nKMop_ORrGXybG-KDmC3rlcKs8cseLWSkPkMTFWRyw,22493
285
288
  cognite_toolkit/_cdf_tk/utils/http_client/_data_classes.py,sha256=8KEDyRRaOLhwN2eA2vaBAzZ__JDUicUDyir6x_PE5lk,14817
286
- cognite_toolkit/_cdf_tk/utils/http_client/_data_classes2.py,sha256=mg0BfP7Te5TSgljPFWI0atLtIGa9OPb50jEAXpkzVXE,6078
289
+ cognite_toolkit/_cdf_tk/utils/http_client/_data_classes2.py,sha256=Qqy7OEg8MGF9EksDUcn39fq6GpC_SrbWbyt-UGqD80Q,8811
287
290
  cognite_toolkit/_cdf_tk/utils/http_client/_exception.py,sha256=fC9oW6BN0HbUe2AkYABMP7Kj0-9dNYXVFBY5RQztq2c,126
288
291
  cognite_toolkit/_cdf_tk/utils/http_client/_tracker.py,sha256=EBBnd-JZ7nc_jYNFJokCHN2UZ9sx0McFLZvlceUYYic,1215
289
292
  cognite_toolkit/_cdf_tk/utils/interactive_select.py,sha256=dP_ZFHvzQRPQxRt6EzURY3Z3Ld_otJtCz-nGqUNtt1k,35725
@@ -297,20 +300,20 @@ cognite_toolkit/_cdf_tk/utils/text.py,sha256=1-LQMo633_hEhNhishQo7Buj-7np5Pe4qKk
297
300
  cognite_toolkit/_cdf_tk/utils/thread_safe_dict.py,sha256=NbRHcZvWpF9xHP5OkOMGFpxrPNbi0Q3Eea6PUNbGlt4,3426
298
301
  cognite_toolkit/_cdf_tk/utils/useful_types.py,sha256=oK88W6G_aK3hebORSQKZjWrq7jG-pO2lkLWSWYMlngM,1872
299
302
  cognite_toolkit/_cdf_tk/utils/validate_access.py,sha256=1puswcpgEDNCwdk91dhLqCBSu_aaUAd3Hsw21d-YVFs,21955
300
- cognite_toolkit/_cdf_tk/validation.py,sha256=ixxYJA96EYZwFeo3vHjGfuHsFbbPgAJ3RQ-Sh0-PMok,11790
303
+ cognite_toolkit/_cdf_tk/validation.py,sha256=9v0ucMnt8YK0SZtbzEjtp8nMstehmKVHnuwyPf5kQI8,12133
301
304
  cognite_toolkit/_repo_files/.env.tmpl,sha256=UmgKZVvIp-OzD8oOcYuwb_6c7vSJsqkLhuFaiVgK7RI,972
302
305
  cognite_toolkit/_repo_files/.gitignore,sha256=ip9kf9tcC5OguF4YF4JFEApnKYw0nG0vPi6urlpTZ3k,5274
303
306
  cognite_toolkit/_repo_files/AzureDevOps/.devops/README.md,sha256=OLA0D7yCX2tACpzvkA0IfkgQ4_swSd-OlJ1tYcTBpsA,240
304
307
  cognite_toolkit/_repo_files/AzureDevOps/.devops/deploy-pipeline.yml,sha256=brULcs8joAeBC_w_aoWjDDUHs3JheLMIR9ajPUK96nc,693
305
308
  cognite_toolkit/_repo_files/AzureDevOps/.devops/dry-run-pipeline.yml,sha256=OBFDhFWK1mlT4Dc6mDUE2Es834l8sAlYG50-5RxRtHk,723
306
- cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=q-j7m5jzwukdCe24nbPBJa0hNHJxTAxtPOY7ha0Xe9g,667
307
- cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=9ndXgumGwzP6mfp9UwGnOXYn7fBrBtaCctb0bDqYdmY,2430
308
- cognite_toolkit/_resources/cdf.toml,sha256=TNXoSuq1jrJBhSONJ48vefOBO_dURtlIFXhLlv4dzMk,475
309
- cognite_toolkit/_version.py,sha256=4c9Y6kqbBff_PtGI0UeOh2f4HPFaCOvIx0KdnuUqM7c,23
309
+ cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml,sha256=SJrUHATry3OVNdwVmG33hrleUAMRoGWh39OwuxJEAt8,667
310
+ cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml,sha256=WvlVo-pbKtDRwAk9gZwD4aQxRKhd10OI3dY1AVgXbvc,2430
311
+ cognite_toolkit/_resources/cdf.toml,sha256=hmcpZvF4m-Ii4jhmVnuxrTp5Juk0kV4LQQHRpO_Dp9g,475
312
+ cognite_toolkit/_version.py,sha256=1XUohj6Z0TqUfrazUNkieWrPdQbTTSPaX1bSiD_w2V0,23
310
313
  cognite_toolkit/config.dev.yaml,sha256=M33FiIKdS3XKif-9vXniQ444GTZ-bLXV8aFH86u9iUQ,332
311
314
  cognite_toolkit/demo/__init__.py,sha256=-m1JoUiwRhNCL18eJ6t7fZOL7RPfowhCuqhYFtLgrss,72
312
315
  cognite_toolkit/demo/_base.py,sha256=6xKBUQpXZXGQ3fJ5f7nj7oT0s2n7OTAGIa17ZlKHZ5U,8052
313
- cognite_toolkit-0.7.30.dist-info/WHEEL,sha256=93kfTGt3a0Dykt_T-gsjtyS5_p8F_d6CE1NwmBOirzo,79
314
- cognite_toolkit-0.7.30.dist-info/entry_points.txt,sha256=EtZ17K2mUjh-AY0QNU1CPIB_aDSSOdmtNI_4Fj967mA,84
315
- cognite_toolkit-0.7.30.dist-info/METADATA,sha256=OjW7tHXDbDtK77GcEKqrnbXyQZD5FgMnpvOrYjhrUDA,4507
316
- cognite_toolkit-0.7.30.dist-info/RECORD,,
316
+ cognite_toolkit-0.7.32.dist-info/WHEEL,sha256=xDCZ-UyfvkGuEHPeI7BcJzYKIZzdqN8A8o1M5Om8IyA,79
317
+ cognite_toolkit-0.7.32.dist-info/entry_points.txt,sha256=EtZ17K2mUjh-AY0QNU1CPIB_aDSSOdmtNI_4Fj967mA,84
318
+ cognite_toolkit-0.7.32.dist-info/METADATA,sha256=AINvh-AoKJNaRlhP7RO_AaPoBItlW2tt4cxrDhFNxvc,4507
319
+ cognite_toolkit-0.7.32.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: uv 0.9.16
2
+ Generator: uv 0.9.17
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,41 +0,0 @@
1
- from pathlib import Path
2
-
3
- import typer
4
-
5
- from cognite_toolkit._cdf_tk.client import ToolkitClient
6
- from cognite_toolkit._cdf_tk.utils.auth import EnvironmentVariables
7
-
8
- from .commands.import_ import ImportTransformationCLI
9
-
10
- import_app = typer.Typer(
11
- pretty_exceptions_short=False, pretty_exceptions_show_locals=False, pretty_exceptions_enable=False
12
- )
13
-
14
-
15
- @import_app.callback(invoke_without_command=True)
16
- def import_main(ctx: typer.Context) -> None:
17
- """PREVIEW FEATURE Import resources into Cognite-Toolkit."""
18
- if ctx.invoked_subcommand is None:
19
- print("Use [bold yellow]cdf-tk import --help[/] for more information.")
20
- return None
21
-
22
-
23
- @import_app.command("transformation-cli")
24
- def transformation_cli(
25
- source: Path = typer.Argument(..., help="Path to the transformation CLI manifest directory or files."),
26
- destination: Path = typer.Argument(..., help="Path to the destination directory."),
27
- overwrite: bool = typer.Option(False, help="Overwrite destination if it already exists."),
28
- flatten: bool = typer.Option(False, help="Flatten the directory structure."),
29
- clean: bool = typer.Option(False, help="Remove the source directory after import."),
30
- verbose: bool = typer.Option(False, help="Turn on to get more verbose output when running the command"),
31
- ) -> None:
32
- """Import transformation CLI manifests into Cognite-Toolkit modules."""
33
-
34
- # We are lazy loading the client as we only need it if we need to look up dataset ids.
35
- # This is to ensure the command can be executed without a client if the user does not need to look up dataset ids.
36
- # (which is likely 99% of the time)
37
- def get_client() -> ToolkitClient:
38
- return EnvironmentVariables.create_from_environment().get_client()
39
-
40
- cmd = ImportTransformationCLI(print_warning=True, get_client=get_client)
41
- cmd.execute(source, destination, overwrite, flatten, clean, verbose=verbose)