cognite-toolkit 0.7.56__py3-none-any.whl → 0.7.57__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 (92) hide show
  1. cognite_toolkit/_cdf_tk/apps/_auth_app.py +2 -2
  2. cognite_toolkit/_cdf_tk/apps/_core_app.py +4 -4
  3. cognite_toolkit/_cdf_tk/apps/_dev_app.py +10 -1
  4. cognite_toolkit/_cdf_tk/apps/_download_app.py +13 -12
  5. cognite_toolkit/_cdf_tk/apps/_dump_app.py +13 -13
  6. cognite_toolkit/_cdf_tk/apps/_landing_app.py +10 -1
  7. cognite_toolkit/_cdf_tk/apps/_migrate_app.py +13 -13
  8. cognite_toolkit/_cdf_tk/apps/_modules_app.py +29 -5
  9. cognite_toolkit/_cdf_tk/apps/_profile_app.py +4 -4
  10. cognite_toolkit/_cdf_tk/apps/_purge.py +4 -5
  11. cognite_toolkit/_cdf_tk/apps/_repo_app.py +9 -2
  12. cognite_toolkit/_cdf_tk/apps/_run.py +5 -4
  13. cognite_toolkit/_cdf_tk/apps/_upload_app.py +2 -2
  14. cognite_toolkit/_cdf_tk/client/api/agents.py +2 -4
  15. cognite_toolkit/_cdf_tk/client/api/annotations.py +2 -2
  16. cognite_toolkit/_cdf_tk/client/api/assets.py +3 -5
  17. cognite_toolkit/_cdf_tk/client/api/containers.py +2 -2
  18. cognite_toolkit/_cdf_tk/client/api/data_models.py +2 -2
  19. cognite_toolkit/_cdf_tk/client/api/datasets.py +3 -3
  20. cognite_toolkit/_cdf_tk/client/api/events.py +3 -5
  21. cognite_toolkit/_cdf_tk/client/api/extraction_pipelines.py +3 -3
  22. cognite_toolkit/_cdf_tk/client/api/filemetadata.py +6 -6
  23. cognite_toolkit/_cdf_tk/client/api/function_schedules.py +2 -2
  24. cognite_toolkit/_cdf_tk/client/api/functions.py +2 -2
  25. cognite_toolkit/_cdf_tk/client/api/graphql_data_models.py +5 -5
  26. cognite_toolkit/_cdf_tk/client/api/groups.py +5 -7
  27. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_destinations.py +3 -3
  28. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_jobs.py +3 -3
  29. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_mappings.py +3 -3
  30. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_sources.py +4 -4
  31. cognite_toolkit/_cdf_tk/client/api/infield.py +8 -8
  32. cognite_toolkit/_cdf_tk/client/api/instances.py +3 -3
  33. cognite_toolkit/_cdf_tk/client/api/labels.py +3 -5
  34. cognite_toolkit/_cdf_tk/client/api/legacy/extended_functions.py +3 -3
  35. cognite_toolkit/_cdf_tk/client/api/location_filters.py +8 -8
  36. cognite_toolkit/_cdf_tk/client/api/project.py +14 -2
  37. cognite_toolkit/_cdf_tk/client/api/raw.py +5 -5
  38. cognite_toolkit/_cdf_tk/client/api/relationships.py +2 -2
  39. cognite_toolkit/_cdf_tk/client/api/robotics_capabilities.py +3 -3
  40. cognite_toolkit/_cdf_tk/client/api/robotics_data_postprocessing.py +3 -3
  41. cognite_toolkit/_cdf_tk/client/api/robotics_frames.py +3 -3
  42. cognite_toolkit/_cdf_tk/client/api/robotics_locations.py +3 -3
  43. cognite_toolkit/_cdf_tk/client/api/robotics_maps.py +3 -3
  44. cognite_toolkit/_cdf_tk/client/api/robotics_robots.py +3 -5
  45. cognite_toolkit/_cdf_tk/client/api/search_config.py +5 -5
  46. cognite_toolkit/_cdf_tk/client/api/security_categories.py +3 -3
  47. cognite_toolkit/_cdf_tk/client/api/sequences.py +3 -3
  48. cognite_toolkit/_cdf_tk/client/api/simulator_models.py +3 -3
  49. cognite_toolkit/_cdf_tk/client/api/spaces.py +2 -4
  50. cognite_toolkit/_cdf_tk/client/api/streams.py +6 -6
  51. cognite_toolkit/_cdf_tk/client/api/three_d.py +5 -5
  52. cognite_toolkit/_cdf_tk/client/api/timeseries.py +3 -3
  53. cognite_toolkit/_cdf_tk/client/api/transformations.py +3 -3
  54. cognite_toolkit/_cdf_tk/client/api/views.py +2 -4
  55. cognite_toolkit/_cdf_tk/client/api/workflow_triggers.py +3 -3
  56. cognite_toolkit/_cdf_tk/client/api/workflow_versions.py +3 -3
  57. cognite_toolkit/_cdf_tk/client/api/workflows.py +3 -3
  58. cognite_toolkit/_cdf_tk/client/cdf_client/api.py +11 -11
  59. cognite_toolkit/_cdf_tk/client/http_client/__init__.py +23 -23
  60. cognite_toolkit/_cdf_tk/client/http_client/_client.py +46 -50
  61. cognite_toolkit/_cdf_tk/client/http_client/{_data_classes2.py → _data_classes.py} +25 -25
  62. cognite_toolkit/_cdf_tk/client/http_client/_item_classes.py +16 -16
  63. cognite_toolkit/_cdf_tk/client/resource_classes/project.py +30 -0
  64. cognite_toolkit/_cdf_tk/commands/_base.py +18 -1
  65. cognite_toolkit/_cdf_tk/commands/_import_cmd.py +3 -1
  66. cognite_toolkit/_cdf_tk/commands/_migrate/command.py +7 -7
  67. cognite_toolkit/_cdf_tk/commands/_migrate/migration_io.py +11 -11
  68. cognite_toolkit/_cdf_tk/commands/_profile.py +10 -5
  69. cognite_toolkit/_cdf_tk/commands/_purge.py +17 -21
  70. cognite_toolkit/_cdf_tk/commands/_upload.py +3 -3
  71. cognite_toolkit/_cdf_tk/commands/build_cmd.py +2 -1
  72. cognite_toolkit/_cdf_tk/commands/build_v2/build_cmd.py +8 -2
  73. cognite_toolkit/_cdf_tk/commands/deploy.py +8 -2
  74. cognite_toolkit/_cdf_tk/commands/init.py +9 -2
  75. cognite_toolkit/_cdf_tk/commands/modules.py +3 -1
  76. cognite_toolkit/_cdf_tk/commands/pull.py +8 -2
  77. cognite_toolkit/_cdf_tk/commands/repo.py +3 -1
  78. cognite_toolkit/_cdf_tk/commands/resources.py +0 -3
  79. cognite_toolkit/_cdf_tk/data_classes/_tracking_info.py +1 -0
  80. cognite_toolkit/_cdf_tk/storageio/_applications.py +6 -6
  81. cognite_toolkit/_cdf_tk/storageio/_base.py +2 -2
  82. cognite_toolkit/_cdf_tk/storageio/_datapoints.py +7 -7
  83. cognite_toolkit/_cdf_tk/storageio/_file_content.py +22 -22
  84. cognite_toolkit/_cdf_tk/storageio/_raw.py +2 -2
  85. cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml +1 -1
  86. cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml +1 -1
  87. cognite_toolkit/_resources/cdf.toml +1 -1
  88. cognite_toolkit/_version.py +1 -1
  89. {cognite_toolkit-0.7.56.dist-info → cognite_toolkit-0.7.57.dist-info}/METADATA +1 -1
  90. {cognite_toolkit-0.7.56.dist-info → cognite_toolkit-0.7.57.dist-info}/RECORD +92 -91
  91. {cognite_toolkit-0.7.56.dist-info → cognite_toolkit-0.7.57.dist-info}/WHEEL +0 -0
  92. {cognite_toolkit-0.7.56.dist-info → cognite_toolkit-0.7.57.dist-info}/entry_points.txt +0 -0
@@ -5,6 +5,8 @@ from typing import Any
5
5
  from rich import print
6
6
  from rich.console import Console
7
7
 
8
+ from cognite_toolkit._cdf_tk.client import ToolkitClient
9
+ from cognite_toolkit._cdf_tk.client.http_client import ToolkitAPIError
8
10
  from cognite_toolkit._cdf_tk.data_classes import CommandTrackingInfo
9
11
  from cognite_toolkit._cdf_tk.tk_warnings import (
10
12
  ToolkitWarning,
@@ -16,12 +18,27 @@ _HAS_PRINTED_COLLECT_MESSAGE = False
16
18
 
17
19
 
18
20
  class ToolkitCommand:
19
- def __init__(self, print_warning: bool = True, skip_tracking: bool = False, silent: bool = False):
21
+ def __init__(
22
+ self,
23
+ print_warning: bool = True,
24
+ skip_tracking: bool = False,
25
+ silent: bool = False,
26
+ client: ToolkitClient | None = None,
27
+ ):
20
28
  self._print_warning = print_warning
21
29
  self.silent = silent
22
30
  self.warning_list = WarningList[ToolkitWarning]()
23
31
  self.tracker = Tracker(skip_tracking)
24
32
  self._additional_tracking_info = CommandTrackingInfo()
33
+ if client is not None:
34
+ self._additional_tracking_info.cluster = client.config.cdf_cluster
35
+ try:
36
+ result = client.project.organization()
37
+ except (ToolkitAPIError, ValueError):
38
+ self._additional_tracking_info.project = client.config.project
39
+ else:
40
+ self._additional_tracking_info.organization = result.organization
41
+ self._additional_tracking_info.project = result.name
25
42
 
26
43
  @property
27
44
  def print_warning(self) -> bool:
@@ -21,8 +21,10 @@ class ImportTransformationCLI(ToolkitCommand):
21
21
  get_client: Callable[[], ToolkitClient] | None = None,
22
22
  print_warning: bool = True,
23
23
  skip_tracking: bool = False,
24
+ silent: bool = False,
25
+ client: ToolkitClient | None = None,
24
26
  ):
25
- super().__init__(print_warning, skip_tracking)
27
+ super().__init__(print_warning, skip_tracking, silent, get_client() if get_client is not None else client)
26
28
  self._dataset_external_id_by_id: dict[int, str] = {}
27
29
  # We only initialize the client if we need to look up dataset ids.
28
30
  self._client: ToolkitClient | None = None
@@ -10,9 +10,9 @@ from rich.table import Table
10
10
  from cognite_toolkit._cdf_tk.client import ToolkitClient
11
11
  from cognite_toolkit._cdf_tk.client.http_client import (
12
12
  HTTPClient,
13
- ItemsFailedRequest2,
14
- ItemsFailedResponse2,
15
- ItemsSuccessResponse2,
13
+ ItemsFailedRequest,
14
+ ItemsFailedResponse,
15
+ ItemsSuccessResponse,
16
16
  )
17
17
  from cognite_toolkit._cdf_tk.commands._base import ToolkitCommand
18
18
  from cognite_toolkit._cdf_tk.commands._migrate.creators import MigrationCreator
@@ -187,20 +187,20 @@ class MigrationCommand(ToolkitCommand):
187
187
  # Todo: Move logging into the UploadableStorageIO class
188
188
  issues: list[WriteIssue] = []
189
189
  for item in responses:
190
- if isinstance(item, ItemsSuccessResponse2):
190
+ if isinstance(item, ItemsSuccessResponse):
191
191
  target.logger.tracker.finalize_item(item.ids, "success")
192
192
  continue
193
- if isinstance(item, ItemsFailedResponse2):
193
+ if isinstance(item, ItemsFailedResponse):
194
194
  error = item.error
195
195
  for id_ in item.ids:
196
196
  issue = WriteIssue(id=str(id_), status_code=error.code, message=error.message)
197
197
  issues.append(issue)
198
- elif isinstance(item, ItemsFailedRequest2):
198
+ elif isinstance(item, ItemsFailedRequest):
199
199
  for id_ in item.ids:
200
200
  issue = WriteIssue(id=str(id_), status_code=0, message=item.error_message)
201
201
  issues.append(issue)
202
202
 
203
- if isinstance(item, ItemsFailedResponse2 | ItemsFailedRequest2):
203
+ if isinstance(item, ItemsFailedResponse | ItemsFailedRequest):
204
204
  target.logger.tracker.finalize_item(item.ids, "failure")
205
205
  if issues:
206
206
  target.logger.log(issues)
@@ -7,14 +7,14 @@ from cognite.client.data_classes.data_modeling import EdgeId, InstanceApply, Nod
7
7
  from cognite_toolkit._cdf_tk.client import ToolkitClient
8
8
  from cognite_toolkit._cdf_tk.client.http_client import (
9
9
  HTTPClient,
10
- RequestMessage2,
10
+ RequestMessage,
11
11
  ToolkitAPIError,
12
12
  )
13
13
  from cognite_toolkit._cdf_tk.client.http_client._item_classes import (
14
- ItemsFailedResponse2,
15
- ItemsRequest2,
14
+ ItemsFailedResponse,
15
+ ItemsRequest,
16
16
  ItemsResultList,
17
- ItemsSuccessResponse2,
17
+ ItemsSuccessResponse,
18
18
  )
19
19
  from cognite_toolkit._cdf_tk.client.resource_classes.legacy.pending_instances_ids import PendingInstanceId
20
20
  from cognite_toolkit._cdf_tk.client.resource_classes.three_d import (
@@ -200,7 +200,7 @@ class AssetCentricMigrationIO(
200
200
  successful_linked: set[str] = set()
201
201
  for batch in chunker_sequence(data_chunk, cls.CHUNK_SIZE):
202
202
  batch_results = http_client.request_items_retries(
203
- message=ItemsRequest2(
203
+ message=ItemsRequest(
204
204
  endpoint_url=config.create_api_url(pending_instance_id_endpoint),
205
205
  method="POST",
206
206
  api_version="alpha",
@@ -211,7 +211,7 @@ class AssetCentricMigrationIO(
211
211
  )
212
212
  )
213
213
  for res in batch_results:
214
- if isinstance(res, ItemsSuccessResponse2):
214
+ if isinstance(res, ItemsSuccessResponse):
215
215
  successful_linked.update(res.ids)
216
216
  to_upload = [item for item in data_chunk if item.source_id in successful_linked]
217
217
  return to_upload
@@ -450,24 +450,24 @@ class ThreeDMigrationIO(UploadableStorageIO[ThreeDSelector, ThreeDModelResponse,
450
450
 
451
451
  results = ItemsResultList()
452
452
  responses = http_client.request_items_retries(
453
- message=ItemsRequest2(
453
+ message=ItemsRequest(
454
454
  endpoint_url=self.client.config.create_api_url(self.UPLOAD_ENDPOINT),
455
455
  method="POST",
456
456
  items=data_chunk,
457
457
  )
458
458
  )
459
459
  if (
460
- failed_response := next((res for res in responses if isinstance(res, ItemsFailedResponse2)), None)
460
+ failed_response := next((res for res in responses if isinstance(res, ItemsFailedResponse)), None)
461
461
  ) and failed_response.status_code == 400:
462
462
  raise ToolkitAPIError("3D model migration failed. You need to enable the 3D migration alpha feature flag.")
463
463
 
464
464
  results.extend(responses)
465
- success_ids = {id for res in responses if isinstance(res, ItemsSuccessResponse2) for id in res.ids}
465
+ success_ids = {id for res in responses if isinstance(res, ItemsSuccessResponse) for id in res.ids}
466
466
  for data in data_chunk:
467
467
  if data.source_id not in success_ids:
468
468
  continue
469
469
  revision = http_client.request_single_retries(
470
- message=RequestMessage2(
470
+ message=RequestMessage(
471
471
  endpoint_url=self.client.config.create_api_url(self.REVISION_ENDPOINT),
472
472
  method="POST",
473
473
  body_content={"items": [data.item.revision.dump(camel_case=True)]},
@@ -548,7 +548,7 @@ class ThreeDAssetMappingMigrationIO(
548
548
  revision_id = first.item.revision_id
549
549
  endpoint = self.UPLOAD_ENDPOINT.format(modelId=model_id, revisionId=revision_id)
550
550
  return http_client.request_items_retries(
551
- ItemsRequest2(
551
+ ItemsRequest(
552
552
  endpoint_url=self.client.config.create_api_url(endpoint),
553
553
  method="POST",
554
554
  items=data_chunk,
@@ -71,8 +71,9 @@ class ProfileCommand(ToolkitCommand, ABC, Generic[T_Index]):
71
71
  print_warning: bool = True,
72
72
  skip_tracking: bool = False,
73
73
  silent: bool = False,
74
+ client: ToolkitClient | None = None,
74
75
  ) -> None:
75
- super().__init__(print_warning, skip_tracking, silent)
76
+ super().__init__(print_warning, skip_tracking, silent, client)
76
77
  self.table_title = self.__class__.__name__.removesuffix("Command")
77
78
  self.output_spreadsheet: Path | None = output_spreadsheet
78
79
  if output_spreadsheet is not None:
@@ -347,8 +348,9 @@ class ProfileAssetCommand(ProfileCommand[AssetIndex]):
347
348
  print_warning: bool = True,
348
349
  skip_tracking: bool = False,
349
350
  silent: bool = False,
351
+ client: ToolkitClient | None = None,
350
352
  ) -> None:
351
- super().__init__(output_spreadsheet, print_warning, skip_tracking, silent)
353
+ super().__init__(output_spreadsheet, print_warning, skip_tracking, silent, client)
352
354
  self.table_title = "Asset Profile for Hierarchy"
353
355
  self.hierarchy: str | None = None
354
356
  self.aggregators: dict[str, MetadataAggregator] = {}
@@ -641,8 +643,9 @@ class ProfileAssetCentricCommand(ProfileCommand[str]):
641
643
  print_warning: bool = True,
642
644
  skip_tracking: bool = False,
643
645
  silent: bool = False,
646
+ client: ToolkitClient | None = None,
644
647
  ) -> None:
645
- super().__init__(output_spreadsheet, print_warning, skip_tracking, silent)
648
+ super().__init__(output_spreadsheet, print_warning, skip_tracking, silent, client)
646
649
  self.hierarchy: str | None = None
647
650
  self.table_title = "Asset Centric Profile"
648
651
  self.aggregators: dict[str, AssetCentricAggregator] = {}
@@ -742,8 +745,9 @@ class ProfileTransformationCommand(ProfileCommand[str]):
742
745
  print_warning: bool = True,
743
746
  skip_tracking: bool = False,
744
747
  silent: bool = False,
748
+ client: ToolkitClient | None = None,
745
749
  ) -> None:
746
- super().__init__(output_spreadsheet, print_warning, skip_tracking, silent)
750
+ super().__init__(output_spreadsheet, print_warning, skip_tracking, silent, client)
747
751
  self.table_title = "Transformation Profile"
748
752
  self.destination_type: AssetCentricDestinationType | None = None
749
753
 
@@ -826,8 +830,9 @@ class ProfileRawCommand(ProfileCommand[RawProfileIndex]):
826
830
  print_warning: bool = True,
827
831
  skip_tracking: bool = False,
828
832
  silent: bool = False,
833
+ client: ToolkitClient | None = None,
829
834
  ) -> None:
830
- super().__init__(output_spreadsheet, print_warning, skip_tracking, silent)
835
+ super().__init__(output_spreadsheet, print_warning, skip_tracking, silent, client)
831
836
  self.table_title = "RAW Profile"
832
837
  self.destination_type: AssetCentricDestinationType | None = None
833
838
  self.client: ToolkitClient | None = None
@@ -20,8 +20,8 @@ from cognite_toolkit._cdf_tk.client import ToolkitClient
20
20
  from cognite_toolkit._cdf_tk.client._resource_base import RequestItem
21
21
  from cognite_toolkit._cdf_tk.client.http_client import (
22
22
  HTTPClient,
23
- ItemsRequest2,
24
- ItemsSuccessResponse2,
23
+ ItemsRequest,
24
+ ItemsSuccessResponse,
25
25
  )
26
26
  from cognite_toolkit._cdf_tk.client.resource_classes.instance_api import TypedInstanceIdentifier
27
27
  from cognite_toolkit._cdf_tk.cruds import (
@@ -221,7 +221,7 @@ class PurgeCommand(ToolkitCommand):
221
221
  if not dry_run and not auto_yes:
222
222
  confirm = questionary.confirm(
223
223
  f"Are you really sure you want to purge the {selected_space!r} space?", default=False
224
- ).unsafe_ask()
224
+ ).ask()
225
225
  if not confirm:
226
226
  return DeployResults([], "purge", dry_run=dry_run)
227
227
 
@@ -372,7 +372,7 @@ class PurgeCommand(ToolkitCommand):
372
372
 
373
373
  def process(items: list[JsonVal]) -> None:
374
374
  responses = delete_client.request_items_retries(
375
- ItemsRequest2(
375
+ ItemsRequest(
376
376
  endpoint_url=delete_url,
377
377
  method="POST",
378
378
  items=[DeleteItem(item=item, as_id_fun=as_id) for item in items],
@@ -380,7 +380,7 @@ class PurgeCommand(ToolkitCommand):
380
380
  )
381
381
  )
382
382
  for response in responses:
383
- if isinstance(response, ItemsSuccessResponse2):
383
+ if isinstance(response, ItemsSuccessResponse):
384
384
  result.deleted += len(response.ids)
385
385
  else:
386
386
  result.unchanged += len(response.ids)
@@ -422,7 +422,7 @@ class PurgeCommand(ToolkitCommand):
422
422
  if not dry_run and not auto_yes:
423
423
  confirm = questionary.confirm(
424
424
  f"Are you really sure you want to purge the {selected_data_set_external_id!r} dataSet?", default=False
425
- ).unsafe_ask()
425
+ ).ask()
426
426
  if not confirm:
427
427
  return DeployResults([], "purge", dry_run=dry_run)
428
428
 
@@ -594,7 +594,7 @@ class PurgeCommand(ToolkitCommand):
594
594
  confirm = questionary.confirm(
595
595
  f"Are you really sure you want to purge all {total:,} instances in {selector!s}?",
596
596
  default=False,
597
- ).unsafe_ask()
597
+ ).ask()
598
598
  if not confirm:
599
599
  return DeleteResults()
600
600
 
@@ -715,14 +715,14 @@ class PurgeCommand(ToolkitCommand):
715
715
  return
716
716
 
717
717
  responses = delete_client.request_items_retries(
718
- ItemsRequest2(
718
+ ItemsRequest(
719
719
  endpoint_url=delete_client.config.create_api_url("/models/instances/delete"),
720
720
  method="POST",
721
721
  items=[TypedInstanceIdentifier._load(item) for item in items],
722
722
  )
723
723
  )
724
724
  for response in responses:
725
- if isinstance(response, ItemsSuccessResponse2):
725
+ if isinstance(response, ItemsSuccessResponse):
726
726
  results.deleted += len(response.ids)
727
727
  else:
728
728
  results.failed += len(response.ids)
@@ -734,17 +734,13 @@ class PurgeCommand(ToolkitCommand):
734
734
  node_ids = [instance for instance in instances if isinstance(instance, NodeId)]
735
735
  if node_ids:
736
736
  timeseries = client.time_series.retrieve_multiple(instance_ids=node_ids, ignore_unknown_ids=True)
737
- migrated_timeseries_ids = [
738
- ts.id
739
- for ts in timeseries
740
- if ts.instance_id and ts.pending_instance_id # type: ignore[attr-defined]
741
- ]
742
737
  if not dry_run and timeseries:
738
+ migrated_timeseries_ids = [ts.id for ts in timeseries if ts.instance_id and ts.pending_instance_id] # type: ignore[attr-defined]
743
739
  client.time_series.unlink_instance_ids(id=migrated_timeseries_ids)
744
740
  if verbose:
745
741
  console.print(f"Unlinked {len(migrated_timeseries_ids)} timeseries from datapoints.")
746
742
  elif verbose and timeseries:
747
- console.print(f"Would have unlinked {len(migrated_timeseries_ids)} timeseries from datapoints.")
743
+ console.print(f"Would have unlinked {len(timeseries)} timeseries from datapoints.")
748
744
  return instances
749
745
 
750
746
  @staticmethod
@@ -754,15 +750,15 @@ class PurgeCommand(ToolkitCommand):
754
750
  file_ids = [instance for instance in instances if isinstance(instance, NodeId)]
755
751
  if file_ids:
756
752
  files = client.files.retrieve_multiple(instance_ids=file_ids, ignore_unknown_ids=True)
757
- migrated_file_ids = [
758
- file.id
759
- for file in files
760
- if file.instance_id and file.pending_instance_id and file.id is not None # type: ignore[attr-defined]
761
- ]
762
753
  if not dry_run and files:
754
+ migrated_file_ids = [
755
+ file.id
756
+ for file in files
757
+ if file.instance_id and file.pending_instance_id and file.id is not None # type: ignore[attr-defined]
758
+ ]
763
759
  client.files.unlink_instance_ids(id=migrated_file_ids)
764
760
  if verbose:
765
761
  console.print(f"Unlinked {len(migrated_file_ids)} files from nodes.")
766
762
  elif verbose and files:
767
- console.print(f"Would have unlinked {len(migrated_file_ids)} files from their blob content.")
763
+ console.print(f"Would have unlinked {len(files)} files from their blob content.")
768
764
  return instances
@@ -7,7 +7,7 @@ from cognite.client.data_classes.data_modeling import ViewId
7
7
  from rich.console import Console
8
8
 
9
9
  from cognite_toolkit._cdf_tk.client import ToolkitClient
10
- from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, ItemsResultMessage2, ItemsSuccessResponse2
10
+ from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, ItemsResultMessage, ItemsSuccessResponse
11
11
  from cognite_toolkit._cdf_tk.constants import DATA_MANIFEST_SUFFIX, DATA_RESOURCE_DIR
12
12
  from cognite_toolkit._cdf_tk.cruds import ViewCRUD
13
13
  from cognite_toolkit._cdf_tk.exceptions import ToolkitValueError
@@ -277,10 +277,10 @@ class UploadCommand(ToolkitCommand):
277
277
  return
278
278
  results = io.upload_items(data_chunk, upload_client, selector)
279
279
  for message in results:
280
- if isinstance(message, ItemsSuccessResponse2):
280
+ if isinstance(message, ItemsSuccessResponse):
281
281
  for id_ in message.ids:
282
282
  tracker.set_progress(id_, step=cls._UPLOAD, status="success")
283
- elif isinstance(message, ItemsResultMessage2):
283
+ elif isinstance(message, ItemsResultMessage):
284
284
  for id_ in message.ids:
285
285
  tracker.set_progress(id_, step=cls._UPLOAD, status="failed")
286
286
  else:
@@ -99,8 +99,9 @@ class BuildCommand(ToolkitCommand):
99
99
  print_warning: bool = True,
100
100
  skip_tracking: bool = False,
101
101
  silent: bool = False,
102
+ client: ToolkitClient | None = None,
102
103
  ) -> None:
103
- super().__init__(print_warning, skip_tracking, silent)
104
+ super().__init__(print_warning, skip_tracking, silent, client)
104
105
  self.existing_resources_by_loader: dict[type[ResourceCRUD], set[Hashable]] = defaultdict(set)
105
106
  self.instantiated_loaders: dict[type[ResourceCRUD], ResourceCRUD] = {}
106
107
 
@@ -21,8 +21,14 @@ from cognite_toolkit._version import __version__
21
21
 
22
22
 
23
23
  class BuildCommand(ToolkitCommand):
24
- def __init__(self, print_warning: bool = True, skip_tracking: bool = False, silent: bool = False) -> None:
25
- super().__init__(print_warning, skip_tracking, silent)
24
+ def __init__(
25
+ self,
26
+ print_warning: bool = True,
27
+ skip_tracking: bool = False,
28
+ silent: bool = False,
29
+ client: ToolkitClient | None = None,
30
+ ) -> None:
31
+ super().__init__(print_warning, skip_tracking, silent, client)
26
32
  self.issues = IssueList()
27
33
 
28
34
  def execute(
@@ -62,8 +62,14 @@ from ._utils import _print_ids_or_length
62
62
 
63
63
 
64
64
  class DeployCommand(ToolkitCommand):
65
- def __init__(self, print_warning: bool = True, skip_tracking: bool = False, silent: bool = False) -> None:
66
- super().__init__(print_warning, skip_tracking, silent)
65
+ def __init__(
66
+ self,
67
+ print_warning: bool = True,
68
+ skip_tracking: bool = False,
69
+ silent: bool = False,
70
+ client: ToolkitClient | None = None,
71
+ ) -> None:
72
+ super().__init__(print_warning, skip_tracking, silent, client)
67
73
  self._clean_command = CleanCommand(print_warning, skip_tracking=True)
68
74
 
69
75
  def deploy_build_directory(
@@ -13,6 +13,7 @@ from rich import print
13
13
  from rich.panel import Panel
14
14
 
15
15
  from cognite_toolkit._cdf_tk.cdf_toml import CDFToml
16
+ from cognite_toolkit._cdf_tk.client import ToolkitClient
16
17
  from cognite_toolkit._cdf_tk.commands._base import ToolkitCommand
17
18
  from cognite_toolkit._cdf_tk.commands.auth import AuthCommand
18
19
  from cognite_toolkit._cdf_tk.commands.collect import CollectCommand
@@ -54,8 +55,14 @@ class InitChecklistItem:
54
55
  class InitCommand(ToolkitCommand):
55
56
  organization_dir: Path | None
56
57
 
57
- def __init__(self, print_warning: bool = True, skip_tracking: bool = False, silent: bool = False) -> None:
58
- super().__init__(print_warning, skip_tracking, silent)
58
+ def __init__(
59
+ self,
60
+ print_warning: bool = True,
61
+ skip_tracking: bool = False,
62
+ silent: bool = False,
63
+ client: ToolkitClient | None = None,
64
+ ) -> None:
65
+ super().__init__(print_warning, skip_tracking, silent, client)
59
66
  self.organization_dir = None
60
67
 
61
68
  def execute(self, dry_run: bool = False) -> None:
@@ -23,6 +23,7 @@ from rich.table import Table
23
23
  from rich.tree import Tree
24
24
 
25
25
  from cognite_toolkit._cdf_tk.cdf_toml import CDFToml, Library
26
+ from cognite_toolkit._cdf_tk.client import ToolkitClient
26
27
  from cognite_toolkit._cdf_tk.commands import _cli_commands as CLICommands
27
28
  from cognite_toolkit._cdf_tk.commands._base import ToolkitCommand
28
29
  from cognite_toolkit._cdf_tk.commands._changes import (
@@ -81,10 +82,11 @@ class ModulesCommand(ToolkitCommand):
81
82
  print_warning: bool = True,
82
83
  skip_tracking: bool = False,
83
84
  silent: bool = False,
85
+ client: ToolkitClient | None = None,
84
86
  temp_dir_suffix: str | None = None,
85
87
  module_source_dir: Path | None = None,
86
88
  ):
87
- super().__init__(print_warning, skip_tracking, silent)
89
+ super().__init__(print_warning, skip_tracking, silent, client)
88
90
  self._module_source_dir: Path | None = module_source_dir
89
91
  # Use suffix to make temp directory unique (useful for parallel test execution)
90
92
  modules_dir_name = f"{MODULES}.{temp_dir_suffix}" if temp_dir_suffix else MODULES
@@ -411,8 +411,14 @@ class TextFileDifference(UserList):
411
411
 
412
412
 
413
413
  class PullCommand(ToolkitCommand):
414
- def __init__(self, print_warning: bool = True, skip_tracking: bool = False, silent: bool = False) -> None:
415
- super().__init__(print_warning, skip_tracking, silent)
414
+ def __init__(
415
+ self,
416
+ print_warning: bool = True,
417
+ skip_tracking: bool = False,
418
+ silent: bool = False,
419
+ client: ToolkitClient | None = None,
420
+ ) -> None:
421
+ super().__init__(print_warning, skip_tracking, silent, client)
416
422
  self._clean_command = CleanCommand(print_warning, skip_tracking=True)
417
423
 
418
424
  def pull_module(
@@ -5,6 +5,7 @@ from pathlib import Path
5
5
  import questionary
6
6
 
7
7
  import cognite_toolkit
8
+ from cognite_toolkit._cdf_tk.client import ToolkitClient
8
9
  from cognite_toolkit._cdf_tk.constants import REPO_FILES_DIR
9
10
  from cognite_toolkit._cdf_tk.exceptions import ToolkitValueError
10
11
  from cognite_toolkit._cdf_tk.tk_warnings import LowSeverityWarning, MediumSeverityWarning
@@ -27,8 +28,9 @@ class RepoCommand(ToolkitCommand):
27
28
  skip_tracking: bool = False,
28
29
  silent: bool = False,
29
30
  skip_git_verify: bool = False,
31
+ client: ToolkitClient | None = None,
30
32
  ) -> None:
31
- super().__init__(print_warning=print_warning, skip_tracking=skip_tracking, silent=silent)
33
+ super().__init__(print_warning=print_warning, skip_tracking=skip_tracking, silent=silent, client=client)
32
34
  self._repo_files = Path(resources.files(cognite_toolkit.__name__)) / REPO_FILES_DIR # type: ignore [arg-type]
33
35
  self.skip_git_verify = skip_git_verify
34
36
 
@@ -17,9 +17,6 @@ from cognite_toolkit._cdf_tk.utils.file import yaml_safe_dump
17
17
 
18
18
 
19
19
  class ResourcesCommand(ToolkitCommand):
20
- def __init__(self, print_warning: bool = True, skip_tracking: bool = False, silent: bool = False) -> None:
21
- super().__init__(print_warning, skip_tracking, silent)
22
-
23
20
  def _get_or_prompt_module_path(self, module: str | None, organization_dir: Path, verbose: bool) -> Path:
24
21
  """
25
22
  Check if the module exists in the organization directory and return the module path.
@@ -25,6 +25,7 @@ class CommandTrackingInfo(BaseModel):
25
25
 
26
26
  project: str | None = Field(default=None)
27
27
  cluster: str | None = Field(default=None)
28
+ organization: str | None = Field(default=None)
28
29
  module_ids: set[str] = Field(default_factory=set, alias="moduleIds")
29
30
  package_ids: set[str] = Field(default_factory=set, alias="packageIds")
30
31
  installed_module_ids: set[str] = Field(default_factory=set, alias="installedModuleIds")
@@ -7,9 +7,9 @@ from pydantic import JsonValue
7
7
  from cognite_toolkit._cdf_tk.client import ToolkitClient
8
8
  from cognite_toolkit._cdf_tk.client.http_client import (
9
9
  HTTPClient,
10
- HTTPResult2,
11
- RequestMessage2,
12
- SuccessResponse2,
10
+ HTTPResult,
11
+ RequestMessage,
12
+ SuccessResponse,
13
13
  )
14
14
  from cognite_toolkit._cdf_tk.client.http_client._item_classes import ItemsResultList
15
15
  from cognite_toolkit._cdf_tk.client.resource_classes.legacy.canvas import (
@@ -217,7 +217,7 @@ class CanvasIO(UploadableStorageIO[CanvasSelector, IndustrialCanvas, IndustrialC
217
217
  else:
218
218
  to_delete = []
219
219
 
220
- last_response: HTTPResult2 | None = None
220
+ last_response: HTTPResult | None = None
221
221
  for upsert_chunk, delete_chunk in zip_longest(
222
222
  chunker_sequence(upsert_items, 1000), chunker_sequence(to_delete, 1000), fillvalue=None
223
223
  ):
@@ -229,13 +229,13 @@ class CanvasIO(UploadableStorageIO[CanvasSelector, IndustrialCanvas, IndustrialC
229
229
  body_content["delete"] = delete_chunk
230
230
 
231
231
  response = http_client.request_single_retries(
232
- message=RequestMessage2(
232
+ message=RequestMessage(
233
233
  endpoint_url=config.create_api_url("/models/instances"),
234
234
  method="POST",
235
235
  body_content=body_content,
236
236
  )
237
237
  )
238
- if not isinstance(response, SuccessResponse2):
238
+ if not isinstance(response, SuccessResponse):
239
239
  results.append(response.as_item_response(item.source_id))
240
240
  last_response = response
241
241
  if last_response is not None:
@@ -8,7 +8,7 @@ from pydantic import ConfigDict
8
8
  from cognite_toolkit._cdf_tk.client import ToolkitClient
9
9
  from cognite_toolkit._cdf_tk.client._resource_base import RequestItem
10
10
  from cognite_toolkit._cdf_tk.client.http_client import HTTPClient
11
- from cognite_toolkit._cdf_tk.client.http_client._item_classes import ItemsRequest2, ItemsResultList
11
+ from cognite_toolkit._cdf_tk.client.http_client._item_classes import ItemsRequest, ItemsResultList
12
12
  from cognite_toolkit._cdf_tk.exceptions import ToolkitNotImplementedError
13
13
  from cognite_toolkit._cdf_tk.protocols import T_ResourceRequest, T_ResourceResponse
14
14
  from cognite_toolkit._cdf_tk.utils.collection import chunker
@@ -185,7 +185,7 @@ class UploadableStorageIO(
185
185
  raise ToolkitNotImplementedError(f"Unsupported UPLOAD_ENDPOINT_TYPE {self.UPLOAD_ENDPOINT_TYPE!r}.")
186
186
 
187
187
  return http_client.request_items_retries(
188
- message=ItemsRequest2(
188
+ message=ItemsRequest(
189
189
  endpoint_url=url,
190
190
  method=self.UPLOAD_ENDPOINT_METHOD,
191
191
  items=data_chunk,
@@ -19,8 +19,8 @@ from cognite_toolkit._cdf_tk.client import ToolkitClient
19
19
  from cognite_toolkit._cdf_tk.client._resource_base import Identifier, RequestResource
20
20
  from cognite_toolkit._cdf_tk.client.http_client import (
21
21
  HTTPClient,
22
- RequestMessage2,
23
- SuccessResponse2,
22
+ RequestMessage,
23
+ SuccessResponse,
24
24
  )
25
25
  from cognite_toolkit._cdf_tk.client.http_client._item_classes import ItemsResultList
26
26
  from cognite_toolkit._cdf_tk.exceptions import ToolkitNotImplementedError
@@ -132,7 +132,7 @@ class DatapointsIO(
132
132
  for ts in timeseries
133
133
  ]
134
134
  response = self.client.http_client.request_single_retries(
135
- RequestMessage2(
135
+ RequestMessage(
136
136
  endpoint_url=config.create_api_url("/timeseries/data/list"),
137
137
  method="POST",
138
138
  accept="application/protobuf",
@@ -140,7 +140,7 @@ class DatapointsIO(
140
140
  body_content={"items": items}, # type: ignore[dict-item]
141
141
  )
142
142
  )
143
- if not isinstance(response, SuccessResponse2):
143
+ if not isinstance(response, SuccessResponse):
144
144
  continue
145
145
  aggregate_response: DataPointListResponse = DataPointListResponse.FromString(response.content)
146
146
  timeseries_ids_with_data: dict[int, int] = {}
@@ -190,7 +190,7 @@ class DatapointsIO(
190
190
 
191
191
  def _fetch_datapoints_batch(self, batch: list[dict[str, Any]], config: Any) -> Page[DataPointListResponse] | None:
192
192
  response = self.client.http_client.request_single_retries(
193
- RequestMessage2(
193
+ RequestMessage(
194
194
  endpoint_url=config.create_api_url("/timeseries/data/list"),
195
195
  method="POST",
196
196
  accept="application/protobuf",
@@ -198,7 +198,7 @@ class DatapointsIO(
198
198
  body_content={"items": batch}, # type: ignore[dict-item]
199
199
  )
200
200
  )
201
- if not isinstance(response, SuccessResponse2):
201
+ if not isinstance(response, SuccessResponse):
202
202
  return None
203
203
  data_response: DataPointListResponse = DataPointListResponse.FromString(response.content)
204
204
  return Page("Main", [data_response])
@@ -257,7 +257,7 @@ class DatapointsIO(
257
257
  results = ItemsResultList()
258
258
  for item in data_chunk:
259
259
  response = http_client.request_single_retries(
260
- RequestMessage2(
260
+ RequestMessage(
261
261
  endpoint_url=http_client.config.create_api_url(self.UPLOAD_ENDPOINT),
262
262
  method="POST",
263
263
  content_type="application/protobuf",