cognite-toolkit 0.7.39__py3-none-any.whl → 0.7.51__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 (261) hide show
  1. cognite_toolkit/_cdf_tk/apps/_download_app.py +1 -1
  2. cognite_toolkit/_cdf_tk/apps/_dump_app.py +1 -1
  3. cognite_toolkit/_cdf_tk/apps/_migrate_app.py +6 -6
  4. cognite_toolkit/_cdf_tk/builders/_function.py +81 -9
  5. cognite_toolkit/_cdf_tk/builders/_raw.py +1 -1
  6. cognite_toolkit/_cdf_tk/client/_resource_base.py +187 -0
  7. cognite_toolkit/_cdf_tk/client/_toolkit_client.py +37 -5
  8. cognite_toolkit/_cdf_tk/client/api/agents.py +107 -0
  9. cognite_toolkit/_cdf_tk/client/api/annotations.py +129 -0
  10. cognite_toolkit/_cdf_tk/client/api/assets.py +130 -0
  11. cognite_toolkit/_cdf_tk/client/api/containers.py +132 -0
  12. cognite_toolkit/_cdf_tk/client/api/data_models.py +137 -0
  13. cognite_toolkit/_cdf_tk/client/api/datasets.py +141 -0
  14. cognite_toolkit/_cdf_tk/client/api/events.py +129 -0
  15. cognite_toolkit/_cdf_tk/client/api/extraction_pipelines.py +148 -0
  16. cognite_toolkit/_cdf_tk/client/api/filemetadata.py +176 -0
  17. cognite_toolkit/_cdf_tk/client/api/function_schedules.py +115 -0
  18. cognite_toolkit/_cdf_tk/client/api/functions.py +113 -0
  19. cognite_toolkit/_cdf_tk/client/api/graphql_data_models.py +167 -0
  20. cognite_toolkit/_cdf_tk/client/api/groups.py +121 -0
  21. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_destinations.py +131 -0
  22. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_jobs.py +122 -0
  23. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_mappings.py +129 -0
  24. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_sources.py +136 -0
  25. cognite_toolkit/_cdf_tk/client/api/hosted_extractors.py +23 -0
  26. cognite_toolkit/_cdf_tk/client/api/infield.py +8 -8
  27. cognite_toolkit/_cdf_tk/client/api/instances.py +139 -0
  28. cognite_toolkit/_cdf_tk/client/api/labels.py +125 -0
  29. cognite_toolkit/_cdf_tk/client/api/legacy/canvas.py +3 -3
  30. cognite_toolkit/_cdf_tk/client/api/legacy/charts.py +1 -1
  31. cognite_toolkit/_cdf_tk/client/api/legacy/extended_data_modeling.py +1 -1
  32. cognite_toolkit/_cdf_tk/client/api/legacy/extended_files.py +2 -2
  33. cognite_toolkit/_cdf_tk/client/api/legacy/extended_functions.py +1 -1
  34. cognite_toolkit/_cdf_tk/client/api/legacy/extended_raw.py +1 -1
  35. cognite_toolkit/_cdf_tk/client/api/legacy/extended_timeseries.py +2 -2
  36. cognite_toolkit/_cdf_tk/client/api/legacy/location_filters.py +1 -1
  37. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/capabilities.py +1 -1
  38. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/data_postprocessing.py +1 -1
  39. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/frames.py +1 -1
  40. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/locations.py +1 -1
  41. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/maps.py +1 -1
  42. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/robots.py +1 -1
  43. cognite_toolkit/_cdf_tk/client/api/legacy/search_config.py +1 -1
  44. cognite_toolkit/_cdf_tk/client/api/location_filters.py +177 -0
  45. cognite_toolkit/_cdf_tk/client/api/migration.py +1 -1
  46. cognite_toolkit/_cdf_tk/client/api/project.py +2 -2
  47. cognite_toolkit/_cdf_tk/client/api/raw.py +204 -0
  48. cognite_toolkit/_cdf_tk/client/api/relationships.py +133 -0
  49. cognite_toolkit/_cdf_tk/client/api/robotics.py +19 -0
  50. cognite_toolkit/_cdf_tk/client/api/robotics_capabilities.py +127 -0
  51. cognite_toolkit/_cdf_tk/client/api/robotics_data_postprocessing.py +138 -0
  52. cognite_toolkit/_cdf_tk/client/api/robotics_frames.py +122 -0
  53. cognite_toolkit/_cdf_tk/client/api/robotics_locations.py +127 -0
  54. cognite_toolkit/_cdf_tk/client/api/robotics_maps.py +122 -0
  55. cognite_toolkit/_cdf_tk/client/api/robotics_robots.py +122 -0
  56. cognite_toolkit/_cdf_tk/client/api/search_config.py +101 -0
  57. cognite_toolkit/_cdf_tk/client/api/security_categories.py +94 -0
  58. cognite_toolkit/_cdf_tk/client/api/sequences.py +133 -0
  59. cognite_toolkit/_cdf_tk/client/api/simulator_models.py +154 -0
  60. cognite_toolkit/_cdf_tk/client/api/simulators.py +8 -0
  61. cognite_toolkit/_cdf_tk/client/api/spaces.py +117 -0
  62. cognite_toolkit/_cdf_tk/client/api/streams.py +65 -57
  63. cognite_toolkit/_cdf_tk/client/api/three_d.py +300 -283
  64. cognite_toolkit/_cdf_tk/client/api/timeseries.py +137 -0
  65. cognite_toolkit/_cdf_tk/client/api/token.py +1 -1
  66. cognite_toolkit/_cdf_tk/client/api/transformations.py +146 -0
  67. cognite_toolkit/_cdf_tk/client/api/views.py +139 -0
  68. cognite_toolkit/_cdf_tk/client/api/workflow_triggers.py +128 -0
  69. cognite_toolkit/_cdf_tk/client/api/workflow_versions.py +138 -0
  70. cognite_toolkit/_cdf_tk/client/api/workflows.py +119 -0
  71. cognite_toolkit/_cdf_tk/client/cdf_client/__init__.py +10 -0
  72. cognite_toolkit/_cdf_tk/client/cdf_client/api.py +358 -0
  73. cognite_toolkit/_cdf_tk/client/cdf_client/responses.py +38 -0
  74. cognite_toolkit/_cdf_tk/{utils → client}/http_client/__init__.py +9 -7
  75. cognite_toolkit/_cdf_tk/{utils → client}/http_client/_client.py +23 -14
  76. cognite_toolkit/_cdf_tk/{utils → client}/http_client/_data_classes.py +12 -2
  77. cognite_toolkit/_cdf_tk/client/http_client/_data_classes2.py +151 -0
  78. cognite_toolkit/_cdf_tk/client/http_client/_exception.py +13 -0
  79. cognite_toolkit/_cdf_tk/client/http_client/_item_classes.py +118 -0
  80. cognite_toolkit/_cdf_tk/client/request_classes/base.py +19 -0
  81. cognite_toolkit/_cdf_tk/client/request_classes/filters.py +113 -0
  82. cognite_toolkit/_cdf_tk/client/request_classes/graphql.py +28 -0
  83. cognite_toolkit/_cdf_tk/client/resource_classes/agent.py +130 -0
  84. cognite_toolkit/_cdf_tk/client/resource_classes/annotation.py +79 -0
  85. cognite_toolkit/_cdf_tk/client/resource_classes/apm_config.py +128 -0
  86. cognite_toolkit/_cdf_tk/client/resource_classes/asset.py +47 -0
  87. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/charts_data.py +1 -1
  88. cognite_toolkit/_cdf_tk/client/resource_classes/cognite_file.py +53 -0
  89. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/__init__.py +168 -0
  90. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_constraints.py +37 -0
  91. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_container.py +50 -0
  92. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_data_model.py +73 -0
  93. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_data_types.py +116 -0
  94. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_indexes.py +26 -0
  95. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_instance.py +154 -0
  96. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_references.py +86 -0
  97. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_space.py +26 -0
  98. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_view.py +143 -0
  99. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_view_property.py +152 -0
  100. cognite_toolkit/_cdf_tk/client/resource_classes/dataset.py +35 -0
  101. cognite_toolkit/_cdf_tk/client/resource_classes/event.py +40 -0
  102. cognite_toolkit/_cdf_tk/client/resource_classes/extraction_pipeline.py +59 -0
  103. cognite_toolkit/_cdf_tk/client/resource_classes/filemetadata.py +52 -0
  104. cognite_toolkit/_cdf_tk/client/resource_classes/function.py +53 -0
  105. cognite_toolkit/_cdf_tk/client/resource_classes/function_schedule.py +65 -0
  106. cognite_toolkit/_cdf_tk/client/resource_classes/graphql_data_model.py +40 -0
  107. cognite_toolkit/_cdf_tk/client/resource_classes/group/__init__.py +187 -0
  108. cognite_toolkit/_cdf_tk/client/resource_classes/group/_constants.py +2 -0
  109. cognite_toolkit/_cdf_tk/client/resource_classes/group/acls.py +653 -0
  110. cognite_toolkit/_cdf_tk/client/resource_classes/group/capability.py +56 -0
  111. cognite_toolkit/_cdf_tk/client/resource_classes/group/group.py +63 -0
  112. cognite_toolkit/_cdf_tk/client/resource_classes/group/scopes.py +166 -0
  113. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_destination.py +34 -0
  114. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_job.py +134 -0
  115. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_mapping.py +72 -0
  116. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/__init__.py +63 -0
  117. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_auth.py +63 -0
  118. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_base.py +26 -0
  119. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_certificate.py +20 -0
  120. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_eventhub.py +31 -0
  121. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_kafka.py +53 -0
  122. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_mqtt.py +36 -0
  123. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_rest.py +49 -0
  124. cognite_toolkit/_cdf_tk/client/resource_classes/identifiers.py +59 -0
  125. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/infield.py +1 -1
  126. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/instance_api.py +35 -1
  127. cognite_toolkit/_cdf_tk/client/resource_classes/label.py +27 -0
  128. cognite_toolkit/_cdf_tk/client/resource_classes/legacy/__init__.py +0 -0
  129. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/canvas.py +48 -15
  130. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/charts.py +1 -1
  131. cognite_toolkit/_cdf_tk/client/resource_classes/location_filter.py +84 -0
  132. cognite_toolkit/_cdf_tk/client/resource_classes/raw.py +44 -0
  133. cognite_toolkit/_cdf_tk/client/resource_classes/relationship.py +49 -0
  134. cognite_toolkit/_cdf_tk/client/resource_classes/resource_view_mapping.py +38 -0
  135. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/__init__.py +37 -0
  136. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_capability.py +53 -0
  137. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_common.py +34 -0
  138. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_data_post_processing.py +49 -0
  139. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_frame.py +46 -0
  140. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_location.py +36 -0
  141. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_map.py +65 -0
  142. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_robot.py +58 -0
  143. cognite_toolkit/_cdf_tk/client/resource_classes/search_config.py +54 -0
  144. cognite_toolkit/_cdf_tk/client/resource_classes/securitycategory.py +24 -0
  145. cognite_toolkit/_cdf_tk/client/resource_classes/sequence.py +45 -0
  146. cognite_toolkit/_cdf_tk/client/resource_classes/sequence_rows.py +56 -0
  147. cognite_toolkit/_cdf_tk/client/resource_classes/simulator_model.py +50 -0
  148. cognite_toolkit/_cdf_tk/client/resource_classes/streamlit_.py +71 -0
  149. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/streams.py +9 -26
  150. cognite_toolkit/_cdf_tk/client/resource_classes/three_d.py +135 -0
  151. cognite_toolkit/_cdf_tk/client/resource_classes/timeseries.py +52 -0
  152. cognite_toolkit/_cdf_tk/client/resource_classes/transformation.py +140 -0
  153. cognite_toolkit/_cdf_tk/client/resource_classes/workflow.py +27 -0
  154. cognite_toolkit/_cdf_tk/client/resource_classes/workflow_trigger.py +63 -0
  155. cognite_toolkit/_cdf_tk/client/resource_classes/workflow_version.py +155 -0
  156. cognite_toolkit/_cdf_tk/client/testing.py +31 -2
  157. cognite_toolkit/_cdf_tk/commands/_migrate/command.py +103 -108
  158. cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py +22 -15
  159. cognite_toolkit/_cdf_tk/commands/_migrate/creators.py +1 -1
  160. cognite_toolkit/_cdf_tk/commands/_migrate/data_classes.py +11 -10
  161. cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py +148 -57
  162. cognite_toolkit/_cdf_tk/commands/_migrate/default_mappings.py +1 -1
  163. cognite_toolkit/_cdf_tk/commands/_migrate/issues.py +22 -39
  164. cognite_toolkit/_cdf_tk/commands/_migrate/migration_io.py +29 -27
  165. cognite_toolkit/_cdf_tk/commands/_profile.py +1 -1
  166. cognite_toolkit/_cdf_tk/commands/_purge.py +8 -8
  167. cognite_toolkit/_cdf_tk/commands/_upload.py +1 -1
  168. cognite_toolkit/_cdf_tk/commands/build_cmd.py +12 -2
  169. cognite_toolkit/_cdf_tk/commands/build_v2/_module_parser.py +138 -0
  170. cognite_toolkit/_cdf_tk/commands/build_v2/_modules_parser.py +163 -0
  171. cognite_toolkit/_cdf_tk/commands/build_v2/build_cmd.py +83 -96
  172. cognite_toolkit/_cdf_tk/commands/build_v2/{build_input.py → build_parameters.py} +8 -22
  173. cognite_toolkit/_cdf_tk/commands/build_v2/data_classes/_modules.py +27 -0
  174. cognite_toolkit/_cdf_tk/commands/build_v2/data_classes/_resource.py +22 -0
  175. cognite_toolkit/_cdf_tk/commands/dump_resource.py +4 -4
  176. cognite_toolkit/_cdf_tk/commands/pull.py +97 -2
  177. cognite_toolkit/_cdf_tk/commands/run.py +1 -1
  178. cognite_toolkit/_cdf_tk/cruds/__init__.py +16 -6
  179. cognite_toolkit/_cdf_tk/cruds/_data_cruds.py +9 -5
  180. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/__init__.py +2 -0
  181. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/auth.py +6 -2
  182. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/classic.py +70 -89
  183. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py +1 -1
  184. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py +1 -1
  185. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/extraction_pipeline.py +1 -1
  186. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py +14 -7
  187. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py +50 -59
  188. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/function.py +1 -1
  189. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/industrial_tool.py +1 -1
  190. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/location.py +4 -3
  191. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/migration.py +1 -1
  192. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/raw.py +6 -1
  193. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/relationship.py +5 -4
  194. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/robotics.py +1 -1
  195. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/simulators.py +122 -0
  196. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py +15 -31
  197. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py +42 -47
  198. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py +1 -1
  199. cognite_toolkit/_cdf_tk/data_classes/__init__.py +3 -0
  200. cognite_toolkit/_cdf_tk/data_classes/_issues.py +36 -0
  201. cognite_toolkit/_cdf_tk/data_classes/_module_directories.py +2 -1
  202. cognite_toolkit/_cdf_tk/data_classes/_tracking_info.py +4 -0
  203. cognite_toolkit/_cdf_tk/feature_flags.py +8 -0
  204. cognite_toolkit/_cdf_tk/resource_classes/__init__.py +2 -0
  205. cognite_toolkit/_cdf_tk/resource_classes/capabilities.py +6 -0
  206. cognite_toolkit/_cdf_tk/resource_classes/search_config.py +1 -1
  207. cognite_toolkit/_cdf_tk/resource_classes/simulator_model.py +17 -0
  208. cognite_toolkit/_cdf_tk/resource_classes/workflow_version.py +13 -4
  209. cognite_toolkit/_cdf_tk/storageio/_applications.py +53 -15
  210. cognite_toolkit/_cdf_tk/storageio/_asset_centric.py +117 -107
  211. cognite_toolkit/_cdf_tk/storageio/_base.py +3 -1
  212. cognite_toolkit/_cdf_tk/storageio/_datapoints.py +7 -7
  213. cognite_toolkit/_cdf_tk/storageio/_file_content.py +64 -54
  214. cognite_toolkit/_cdf_tk/storageio/_instances.py +1 -1
  215. cognite_toolkit/_cdf_tk/storageio/_raw.py +1 -1
  216. cognite_toolkit/_cdf_tk/storageio/logger.py +162 -0
  217. cognite_toolkit/_cdf_tk/tk_warnings/__init__.py +2 -0
  218. cognite_toolkit/_cdf_tk/tk_warnings/fileread.py +20 -0
  219. cognite_toolkit/_cdf_tk/utils/__init__.py +11 -1
  220. cognite_toolkit/_cdf_tk/utils/cdf.py +1 -1
  221. cognite_toolkit/_cdf_tk/utils/interactive_select.py +8 -6
  222. cognite_toolkit/_cdf_tk/utils/modules.py +7 -0
  223. cognite_toolkit/_cdf_tk/utils/pip_validator.py +96 -0
  224. cognite_toolkit/_cdf_tk/utils/useful_types.py +4 -7
  225. cognite_toolkit/_cdf_tk/utils/useful_types2.py +14 -0
  226. cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml +1 -1
  227. cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml +1 -1
  228. cognite_toolkit/_resources/cdf.toml +1 -1
  229. cognite_toolkit/_version.py +1 -1
  230. {cognite_toolkit-0.7.39.dist-info → cognite_toolkit-0.7.51.dist-info}/METADATA +13 -3
  231. cognite_toolkit-0.7.51.dist-info/RECORD +445 -0
  232. {cognite_toolkit-0.7.39.dist-info → cognite_toolkit-0.7.51.dist-info}/WHEEL +2 -2
  233. cognite_toolkit/_cdf_tk/client/data_classes/api_classes.py +0 -30
  234. cognite_toolkit/_cdf_tk/client/data_classes/base.py +0 -67
  235. cognite_toolkit/_cdf_tk/client/data_classes/three_d.py +0 -112
  236. cognite_toolkit/_cdf_tk/commands/build_v2/build_issues.py +0 -27
  237. cognite_toolkit/_cdf_tk/utils/http_client/_data_classes2.py +0 -247
  238. cognite_toolkit/_cdf_tk/utils/http_client/_exception.py +0 -4
  239. cognite_toolkit-0.7.39.dist-info/RECORD +0 -322
  240. /cognite_toolkit/_cdf_tk/{utils → client}/http_client/_tracker.py +0 -0
  241. /cognite_toolkit/_cdf_tk/client/{data_classes → request_classes}/__init__.py +0 -0
  242. /cognite_toolkit/_cdf_tk/client/{data_classes/legacy → resource_classes}/__init__.py +0 -0
  243. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/capabilities.py +0 -0
  244. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/apm_config_v1.py +0 -0
  245. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extendable_cognite_file.py +0 -0
  246. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_filemetadata.py +0 -0
  247. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_filemetdata.py +0 -0
  248. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_timeseries.py +0 -0
  249. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/functions.py +0 -0
  250. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/graphql_data_models.py +0 -0
  251. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/instances.py +0 -0
  252. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/location_filters.py +0 -0
  253. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/migration.py +0 -0
  254. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/pending_instances_ids.py +0 -0
  255. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/project.py +0 -0
  256. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/raw.py +0 -0
  257. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/robotics.py +0 -0
  258. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/search_config.py +0 -0
  259. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/sequences.py +0 -0
  260. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/streamlit_.py +0 -0
  261. {cognite_toolkit-0.7.39.dist-info → cognite_toolkit-0.7.51.dist-info}/entry_points.txt +0 -0
@@ -15,13 +15,8 @@
15
15
 
16
16
  from collections.abc import Hashable, Iterable, Sequence
17
17
  from datetime import date, datetime
18
- from typing import Any, cast, final
18
+ from typing import Any, final
19
19
 
20
- from cognite.client.data_classes import (
21
- FileMetadata,
22
- FileMetadataList,
23
- FileMetadataWrite,
24
- )
25
20
  from cognite.client.data_classes.capabilities import (
26
21
  Capability,
27
22
  DataModelInstancesAcl,
@@ -31,9 +26,11 @@ from cognite.client.data_classes.data_modeling import NodeApplyResultList, NodeI
31
26
  from cognite.client.exceptions import CogniteAPIError
32
27
  from cognite.client.utils._time import convert_data_modelling_timestamp
33
28
  from cognite.client.utils.useful_types import SequenceNotStr
34
- from rich import print
35
29
 
36
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.extendable_cognite_file import (
30
+ from cognite_toolkit._cdf_tk.client.request_classes.filters import ClassicFilter
31
+ from cognite_toolkit._cdf_tk.client.resource_classes.filemetadata import FileMetadataRequest, FileMetadataResponse
32
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId, InternalOrExternalId
33
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.extendable_cognite_file import (
37
34
  ExtendableCogniteFile,
38
35
  ExtendableCogniteFileApply,
39
36
  ExtendableCogniteFileList,
@@ -55,11 +52,11 @@ from .datamodel import SpaceCRUD, ViewCRUD
55
52
 
56
53
 
57
54
  @final
58
- class FileMetadataCRUD(ResourceContainerCRUD[str, FileMetadataWrite, FileMetadata]):
55
+ class FileMetadataCRUD(ResourceContainerCRUD[ExternalId, FileMetadataRequest, FileMetadataResponse]):
59
56
  item_name = "file contents"
60
57
  folder_name = "files"
61
- resource_cls = FileMetadata
62
- resource_write_cls = FileMetadataWrite
58
+ resource_cls = FileMetadataResponse
59
+ resource_write_cls = FileMetadataRequest
63
60
  yaml_cls = FileMetadataYAML
64
61
  kind = "FileMetadata"
65
62
  dependencies = frozenset({DataSetsCRUD, GroupAllScopedCRUD, LabelCRUD, AssetCRUD})
@@ -72,7 +69,7 @@ class FileMetadataCRUD(ResourceContainerCRUD[str, FileMetadataWrite, FileMetadat
72
69
 
73
70
  @classmethod
74
71
  def get_required_capability(
75
- cls, items: Sequence[FileMetadataWrite] | None, read_only: bool
72
+ cls, items: Sequence[FileMetadataRequest] | None, read_only: bool
76
73
  ) -> Capability | list[Capability]:
77
74
  if not items and items is not None:
78
75
  return []
@@ -87,22 +84,22 @@ class FileMetadataCRUD(ResourceContainerCRUD[str, FileMetadataWrite, FileMetadat
87
84
  return FilesAcl(actions, scope)
88
85
 
89
86
  @classmethod
90
- def get_id(cls, item: FileMetadata | FileMetadataWrite | dict) -> str:
87
+ def get_id(cls, item: FileMetadataRequest | FileMetadataResponse | dict) -> ExternalId:
91
88
  if isinstance(item, dict):
92
- return item["externalId"]
89
+ return ExternalId(external_id=item["externalId"])
93
90
  if item.external_id is None:
94
91
  raise ToolkitRequiredValueError("FileMetadata must have external_id set.")
95
- return item.external_id
92
+ return ExternalId(external_id=item.external_id)
96
93
 
97
94
  @classmethod
98
- def get_internal_id(cls, item: FileMetadata | dict) -> int:
95
+ def get_internal_id(cls, item: FileMetadataResponse | dict) -> int:
99
96
  if isinstance(item, dict):
100
97
  return item["id"]
101
98
  return item.id
102
99
 
103
100
  @classmethod
104
- def dump_id(cls, id: str) -> dict[str, Any]:
105
- return {"externalId": id}
101
+ def dump_id(cls, id: ExternalId) -> dict[str, Any]:
102
+ return id.dump()
106
103
 
107
104
  @classmethod
108
105
  def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
@@ -118,71 +115,65 @@ class FileMetadataCRUD(ResourceContainerCRUD[str, FileMetadataWrite, FileMetadat
118
115
  elif isinstance(label, str):
119
116
  yield LabelCRUD, label
120
117
  for asset_external_id in item.get("assetExternalIds", []):
121
- yield AssetCRUD, asset_external_id
118
+ yield AssetCRUD, ExternalId(external_id=asset_external_id)
122
119
 
123
- def load_resource(self, resource: dict[str, Any], is_dry_run: bool = False) -> FileMetadataWrite:
124
- if resource.get("dataSetExternalId") is not None:
125
- ds_external_id = resource.pop("dataSetExternalId")
120
+ def load_resource(self, resource: dict[str, Any], is_dry_run: bool = False) -> FileMetadataRequest:
121
+ if ds_external_id := resource.pop("dataSetExternalId", None):
126
122
  resource["dataSetId"] = self.client.lookup.data_sets.id(ds_external_id, is_dry_run)
127
123
  if security_categories_names := resource.pop("securityCategoryNames", []):
128
- security_categories = self.client.lookup.security_categories.id(security_categories_names, is_dry_run)
129
- resource["securityCategories"] = security_categories
130
- if "assetExternalIds" in resource:
131
- resource["assetIds"] = self.client.lookup.assets.id(resource["assetExternalIds"], is_dry_run)
132
- return FileMetadataWrite._load(resource)
133
-
134
- def dump_resource(self, resource: FileMetadata, local: dict[str, Any] | None = None) -> dict[str, Any]:
135
- dumped = resource.as_write().dump()
136
- if ds_id := dumped.pop("dataSetId", None):
137
- dumped["dataSetExternalId"] = self.client.lookup.data_sets.external_id(ds_id)
124
+ resource["securityCategories"] = self.client.lookup.security_categories.id(
125
+ security_categories_names, is_dry_run
126
+ )
127
+ if asset_external_ids := resource.pop("assetExternalIds", None):
128
+ resource["assetIds"] = self.client.lookup.assets.id(asset_external_ids, is_dry_run)
129
+ return FileMetadataRequest.model_validate(resource)
130
+
131
+ def dump_resource(self, resource: FileMetadataResponse, local: dict[str, Any] | None = None) -> dict[str, Any]:
132
+ dumped = resource.as_request_resource().dump()
133
+ if data_set_id := dumped.pop("dataSetId", None):
134
+ dumped["dataSetExternalId"] = self.client.lookup.data_sets.external_id(data_set_id)
138
135
  if security_categories := dumped.pop("securityCategories", []):
139
136
  dumped["securityCategoryNames"] = self.client.lookup.security_categories.external_id(security_categories)
140
137
  if asset_ids := dumped.pop("assetIds", []):
141
138
  dumped["assetExternalIds"] = self.client.lookup.assets.external_id(asset_ids)
142
139
  return dumped
143
140
 
144
- def create(self, items: Sequence[FileMetadataWrite]) -> FileMetadataList:
145
- created = FileMetadataList([])
146
- for meta in items:
147
- try:
148
- created.append(self.client.files.create(meta))
149
- except CogniteAPIError as e:
150
- if e.code == 409:
151
- print(f" [bold yellow]WARNING:[/] File {meta.external_id} already exists, skipping upload.")
152
- return created
141
+ def create(self, items: Sequence[FileMetadataRequest]) -> list[FileMetadataResponse]:
142
+ return self.client.tool.filemetadata.create(items, overwrite=True)
153
143
 
154
- def retrieve(self, ids: SequenceNotStr[str]) -> FileMetadataList:
155
- return self.client.files.retrieve_multiple(external_ids=ids, ignore_unknown_ids=True)
144
+ def retrieve(self, ids: SequenceNotStr[ExternalId]) -> list[FileMetadataResponse]:
145
+ return self.client.tool.filemetadata.retrieve(list(ids), ignore_unknown_ids=True)
156
146
 
157
- def update(self, items: Sequence[FileMetadataWrite]) -> FileMetadataList:
158
- return self.client.files.update(items, mode="replace")
147
+ def update(self, items: Sequence[FileMetadataRequest]) -> list[FileMetadataResponse]:
148
+ return self.client.tool.filemetadata.update(items, mode="replace")
159
149
 
160
- def delete(self, ids: str | int | SequenceNotStr[str | int] | None) -> int:
161
- internal_ids, external_ids = self._split_ids(ids)
162
- self.client.files.delete(id=internal_ids, external_id=external_ids)
163
- return len(cast(SequenceNotStr[str], ids))
150
+ def delete(self, ids: SequenceNotStr[InternalOrExternalId]) -> int:
151
+ if not ids:
152
+ return 0
153
+ self.client.tool.filemetadata.delete(list(ids), ignore_unknown_ids=True)
154
+ return len(ids)
164
155
 
165
156
  def _iterate(
166
157
  self,
167
158
  data_set_external_id: str | None = None,
168
159
  space: str | None = None,
169
160
  parent_ids: list[Hashable] | None = None,
170
- ) -> Iterable[FileMetadata]:
171
- return iter(self.client.files(data_set_external_ids=[data_set_external_id] if data_set_external_id else None))
161
+ ) -> Iterable[FileMetadataResponse]:
162
+ filter_ = ClassicFilter.from_asset_subtree_and_data_sets(data_set_id=data_set_external_id)
163
+ for files in self.client.tool.filemetadata.iterate(filter=filter_, limit=None):
164
+ yield from files
172
165
 
173
- def count(self, ids: SequenceNotStr[str]) -> int:
166
+ def count(self, ids: SequenceNotStr[ExternalId]) -> int:
174
167
  return sum(
175
- 1
176
- for meta in self.client.files.retrieve_multiple(external_ids=list(ids), ignore_unknown_ids=True)
177
- if meta.uploaded
168
+ 1 for meta in self.client.tool.filemetadata.retrieve(list(ids), ignore_unknown_ids=True) if meta.uploaded
178
169
  )
179
170
 
180
- def drop_data(self, ids: SequenceNotStr[str]) -> int:
181
- existing = self.client.files.retrieve_multiple(external_ids=list(ids), ignore_unknown_ids=True)
171
+ def drop_data(self, ids: SequenceNotStr[ExternalId]) -> int:
172
+ existing = self.client.tool.filemetadata.retrieve(list(ids), ignore_unknown_ids=True)
182
173
  # File and FileMetadata is tightly coupled, so we need to delete the metadata and recreate it
183
174
  # without the source set to delete the file.
184
- deleted_files = self.delete(existing.as_external_ids())
185
- self.create(existing.as_write())
175
+ deleted_files = self.delete([meta.as_id() for meta in existing])
176
+ self.create([meta.as_request_resource() for meta in existing])
186
177
  return deleted_files
187
178
 
188
179
 
@@ -31,7 +31,7 @@ from rich import print
31
31
  from rich.console import Console
32
32
 
33
33
  from cognite_toolkit._cdf_tk.client import ToolkitClient
34
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.functions import FunctionScheduleID
34
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.functions import FunctionScheduleID
35
35
  from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
36
36
  from cognite_toolkit._cdf_tk.exceptions import (
37
37
  ResourceCreationError,
@@ -14,7 +14,7 @@ from packaging.requirements import Requirement
14
14
  from rich.console import Console
15
15
 
16
16
  from cognite_toolkit._cdf_tk.client import ToolkitClient
17
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.streamlit_ import (
17
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.streamlit_ import (
18
18
  Streamlit,
19
19
  StreamlitList,
20
20
  StreamlitWrite,
@@ -7,7 +7,8 @@ from cognite.client.data_classes.capabilities import Capability, LocationFilters
7
7
  from cognite.client.data_classes.data_modeling import DataModelId, ViewId
8
8
  from cognite.client.utils.useful_types import SequenceNotStr
9
9
 
10
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.location_filters import (
10
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId
11
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.location_filters import (
11
12
  LocationFilter,
12
13
  LocationFilterList,
13
14
  LocationFilterWrite,
@@ -239,14 +240,14 @@ class LocationFilterCRUD(ResourceCRUD[str, LocationFilterWrite, LocationFilter])
239
240
  yield DataSetsCRUD, data_set_external_id
240
241
  for asset in asset_centric.get("assetSubtreeIds", []):
241
242
  if "externalId" in asset:
242
- yield AssetCRUD, asset["externalId"]
243
+ yield AssetCRUD, ExternalId(external_id=asset["externalId"])
243
244
  for subfilter_name in cls.subfilter_names:
244
245
  subfilter = asset_centric.get(subfilter_name, {})
245
246
  for data_set_external_id in subfilter.get("dataSetExternalIds", []):
246
247
  yield DataSetsCRUD, data_set_external_id
247
248
  for asset in subfilter.get("assetSubtreeIds", []):
248
249
  if "externalId" in asset:
249
- yield AssetCRUD, asset["externalId"]
250
+ yield AssetCRUD, ExternalId(external_id=asset["externalId"])
250
251
  for view in item.get("views", []):
251
252
  if in_dict(["space", "externalId", "version"], view):
252
253
  yield ViewCRUD, ViewId(view["space"], view["externalId"], view["version"])
@@ -6,7 +6,7 @@ from cognite.client.data_classes.capabilities import Capability
6
6
  from cognite.client.data_classes.data_modeling import NodeList, ViewId
7
7
  from cognite.client.utils.useful_types import SequenceNotStr
8
8
 
9
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.migration import (
9
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.migration import (
10
10
  ResourceViewMapping,
11
11
  ResourceViewMappingApply,
12
12
  )
@@ -29,7 +29,12 @@ from rich import print
29
29
  from rich.console import Console
30
30
 
31
31
  from cognite_toolkit._cdf_tk.client import ToolkitClient
32
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.raw import RawDatabase, RawDatabaseList, RawTable, RawTableList
32
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.raw import (
33
+ RawDatabase,
34
+ RawDatabaseList,
35
+ RawTable,
36
+ RawTableList,
37
+ )
33
38
  from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceContainerCRUD, ResourceCRUD
34
39
  from cognite_toolkit._cdf_tk.resource_classes import DatabaseYAML, TableYAML
35
40
 
@@ -11,6 +11,7 @@ from cognite.client.data_classes.capabilities import Capability
11
11
  from cognite.client.exceptions import CogniteAPIError, CogniteNotFoundError
12
12
  from cognite.client.utils.useful_types import SequenceNotStr
13
13
 
14
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId
14
15
  from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
15
16
  from cognite_toolkit._cdf_tk.resource_classes import RelationshipYAML
16
17
 
@@ -123,15 +124,15 @@ class RelationshipCRUD(ResourceCRUD[str, RelationshipWrite, Relationship]):
123
124
  if isinstance(id_value, str) and isinstance(type_value, str):
124
125
  type_value = type_value.strip().casefold()
125
126
  if type_value == "asset":
126
- yield AssetCRUD, id_value
127
+ yield AssetCRUD, ExternalId(external_id=id_value)
127
128
  elif type_value == "sequence":
128
129
  yield SequenceCRUD, id_value
129
130
  elif type_value == "timeseries":
130
- yield TimeSeriesCRUD, id_value
131
+ yield TimeSeriesCRUD, ExternalId(external_id=id_value)
131
132
  elif type_value == "file":
132
- yield FileMetadataCRUD, id_value
133
+ yield FileMetadataCRUD, ExternalId(external_id=id_value)
133
134
  elif type_value == "event":
134
- yield EventCRUD, id_value
135
+ yield EventCRUD, ExternalId(external_id=id_value)
135
136
 
136
137
  def load_resource(self, resource: dict[str, Any], is_dry_run: bool = False) -> RelationshipWrite:
137
138
  if ds_external_id := resource.pop("dataSetExternalId", None):
@@ -9,7 +9,7 @@ from cognite.client.data_classes.capabilities import Capability
9
9
  from cognite.client.exceptions import CogniteAPIError
10
10
  from cognite.client.utils.useful_types import SequenceNotStr
11
11
 
12
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.robotics import (
12
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.robotics import (
13
13
  DataPostProcessing,
14
14
  DataPostProcessingList,
15
15
  DataPostProcessingWrite,
@@ -0,0 +1,122 @@
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.resource_classes.identifiers import ExternalId, InternalOrExternalId
8
+ from cognite_toolkit._cdf_tk.client.resource_classes.simulator_model import (
9
+ SimulatorModelRequest,
10
+ SimulatorModelResponse,
11
+ )
12
+ from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
13
+ from cognite_toolkit._cdf_tk.resource_classes import SimulatorModelYAML
14
+
15
+ from .data_organization import DataSetsCRUD
16
+
17
+
18
+ @final
19
+ class SimulatorModelCRUD(ResourceCRUD[ExternalId, SimulatorModelRequest, SimulatorModelResponse]):
20
+ folder_name = "simulators"
21
+ resource_cls = SimulatorModelResponse
22
+ resource_write_cls = SimulatorModelRequest
23
+ yaml_cls = SimulatorModelYAML
24
+ kind = "SimulatorModel"
25
+ dependencies = frozenset({DataSetsCRUD})
26
+ _doc_url = "Simulator-Models/operation/create_simulator_model_simulators_models_post"
27
+
28
+ @property
29
+ def display_name(self) -> str:
30
+ return "simulator models"
31
+
32
+ @classmethod
33
+ def get_id(cls, item: SimulatorModelRequest | SimulatorModelResponse | dict) -> ExternalId:
34
+ if isinstance(item, dict):
35
+ return ExternalId(external_id=item["externalId"])
36
+ if not item.external_id:
37
+ raise KeyError("SimulatorModel must have external_id")
38
+ return ExternalId(external_id=item.external_id)
39
+
40
+ @classmethod
41
+ def get_internal_id(cls, item: SimulatorModelResponse | dict) -> int:
42
+ if isinstance(item, dict):
43
+ return item["id"]
44
+ if not item.id:
45
+ raise KeyError("SimulatorModel must have id")
46
+ return item.id
47
+
48
+ @classmethod
49
+ def dump_id(cls, id: ExternalId) -> dict[str, Any]:
50
+ return id.dump()
51
+
52
+ @classmethod
53
+ def get_required_capability(
54
+ cls, items: Sequence[SimulatorModelRequest] | None, read_only: bool
55
+ ) -> Capability | list[Capability]:
56
+ # Simulator ACLs is not yet implemented in the PySDK, which means
57
+ # that we cannot check for specific capabilities.
58
+ return []
59
+
60
+ def create(self, items: Sequence[SimulatorModelRequest]) -> list[SimulatorModelResponse]:
61
+ return self.client.tool.simulators.models.create(items)
62
+
63
+ def retrieve(self, ids: SequenceNotStr[ExternalId]) -> list[SimulatorModelResponse]:
64
+ return self.client.tool.simulators.models.retrieve(list(ids), ignore_unknown_ids=True)
65
+
66
+ def update(self, items: Sequence[SimulatorModelRequest]) -> list[SimulatorModelResponse]:
67
+ return self.client.tool.simulators.models.update(items, mode="replace")
68
+
69
+ def delete(self, ids: SequenceNotStr[ExternalId | InternalOrExternalId]) -> int:
70
+ if not ids:
71
+ return 0
72
+ self.client.tool.simulators.models.delete(list(ids))
73
+ return len(ids)
74
+
75
+ def _iterate(
76
+ self,
77
+ data_set_external_id: str | None = None,
78
+ space: str | None = None,
79
+ parent_ids: list[Hashable] | None = None,
80
+ ) -> Iterable[SimulatorModelResponse]:
81
+ # Note: The SimulatorModelsAPI doesn't support data_set_external_id filtering directly,
82
+ # so we iterate and filter in memory if needed.
83
+ cursor: str | None = None
84
+ data_set_id: int | None = None
85
+ if data_set_external_id:
86
+ data_set_id = self.client.lookup.data_sets.id(data_set_external_id, is_dry_run=False)
87
+ while True:
88
+ page = self.client.tool.simulators.models.paginate(
89
+ limit=1000,
90
+ cursor=cursor,
91
+ )
92
+ if data_set_id:
93
+ # Filter by data_set_external_id in memory
94
+ for item in page.items:
95
+ if item.data_set_id == data_set_id:
96
+ yield item
97
+ else:
98
+ yield from page.items
99
+ if not page.next_cursor or not page.items:
100
+ break
101
+ cursor = page.next_cursor
102
+
103
+ @classmethod
104
+ def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
105
+ """Returns all items that this item requires.
106
+
107
+ For example, a SimulatorModel requires a DataSet, so this method would return the
108
+ DataSetsCRUD and identifier of that dataset.
109
+ """
110
+ if "dataSetExternalId" in item:
111
+ yield DataSetsCRUD, item["dataSetExternalId"]
112
+
113
+ def load_resource(self, resource: dict[str, Any], is_dry_run: bool = False) -> SimulatorModelRequest:
114
+ if ds_external_id := resource.pop("dataSetExternalId", None):
115
+ resource["dataSetId"] = self.client.lookup.data_sets.id(ds_external_id, is_dry_run)
116
+ return SimulatorModelRequest.model_validate(resource)
117
+
118
+ def dump_resource(self, resource: SimulatorModelResponse, local: dict[str, Any] | None = None) -> dict[str, Any]:
119
+ dumped = resource.as_request_resource().dump()
120
+ if data_set_id := dumped.pop("dataSetId", None):
121
+ dumped["dataSetExternalId"] = self.client.lookup.data_sets.external_id(data_set_id)
122
+ return dumped
@@ -4,20 +4,19 @@ from typing import Any, final
4
4
  from cognite.client.data_classes.capabilities import Capability, StreamsAcl
5
5
  from cognite.client.utils.useful_types import SequenceNotStr
6
6
 
7
- from cognite_toolkit._cdf_tk.client.data_classes.streams import (
7
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId
8
+ from cognite_toolkit._cdf_tk.client.resource_classes.streams import (
8
9
  StreamRequest,
9
10
  StreamResponse,
10
- StreamResponseList,
11
11
  )
12
12
  from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
13
13
  from cognite_toolkit._cdf_tk.resource_classes import StreamYAML
14
- from cognite_toolkit._cdf_tk.utils.http_client import ToolkitAPIError
15
14
 
16
15
  from .datamodel import ContainerCRUD
17
16
 
18
17
 
19
18
  @final
20
- class StreamCRUD(ResourceCRUD[str, StreamRequest, StreamResponse]):
19
+ class StreamCRUD(ResourceCRUD[ExternalId, StreamRequest, StreamResponse]):
21
20
  folder_name = "streams"
22
21
  resource_cls = StreamResponse
23
22
  resource_write_cls = StreamRequest
@@ -32,14 +31,14 @@ class StreamCRUD(ResourceCRUD[str, StreamRequest, StreamResponse]):
32
31
  return "streams"
33
32
 
34
33
  @classmethod
35
- def get_id(cls, item: StreamRequest | StreamResponse | dict) -> str:
34
+ def get_id(cls, item: StreamRequest | StreamResponse | dict) -> ExternalId:
36
35
  if isinstance(item, dict):
37
- return item["externalId"]
38
- return item.external_id
36
+ return ExternalId(external_id=item["externalId"])
37
+ return ExternalId(external_id=item.external_id)
39
38
 
40
39
  @classmethod
41
- def dump_id(cls, id: str) -> dict[str, Any]:
42
- return {"externalId": id}
40
+ def dump_id(cls, id: ExternalId) -> dict[str, Any]:
41
+ return id.dump()
43
42
 
44
43
  @classmethod
45
44
  def get_required_capability(
@@ -55,30 +54,15 @@ class StreamCRUD(ResourceCRUD[str, StreamRequest, StreamResponse]):
55
54
  )
56
55
  return StreamsAcl(actions, StreamsAcl.Scope.All())
57
56
 
58
- def create(self, items: Sequence[StreamRequest]) -> StreamResponseList:
59
- created = self.client.streams.create(list(items))
60
- return StreamResponseList(created)
57
+ def create(self, items: Sequence[StreamRequest]) -> list[StreamResponse]:
58
+ return self.client.streams.create(items)
61
59
 
62
- def retrieve(self, ids: SequenceNotStr[str]) -> StreamResponseList:
63
- retrieved: list[StreamResponse] = []
64
- for _id in ids:
65
- try:
66
- _resp = self.client.streams.retrieve(_id)
67
- except ToolkitAPIError:
68
- continue
69
- if _resp is not None:
70
- retrieved.append(_resp)
71
- return StreamResponseList(retrieved)
60
+ def retrieve(self, ids: SequenceNotStr[ExternalId]) -> list[StreamResponse]:
61
+ return self.client.streams.retrieve(list(ids), ignore_unknown_ids=True)
72
62
 
73
- def delete(self, ids: SequenceNotStr[str]) -> int:
74
- count = 0
75
- for _id in ids:
76
- try:
77
- self.client.streams.delete(_id)
78
- except ToolkitAPIError:
79
- continue
80
- count += 1
81
- return count
63
+ def delete(self, ids: SequenceNotStr[ExternalId]) -> int:
64
+ self.client.streams.delete(list(ids), ignore_unknown_ids=True)
65
+ return len(ids)
82
66
 
83
67
  def _iterate(
84
68
  self,