cognite-toolkit 0.5.44__py3-none-any.whl → 0.7.34__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 (807) hide show
  1. cognite_toolkit/_cdf.py +24 -26
  2. cognite_toolkit/_cdf_tk/apps/__init__.py +10 -2
  3. cognite_toolkit/_cdf_tk/apps/_core_app.py +30 -16
  4. cognite_toolkit/_cdf_tk/apps/_data_app.py +24 -0
  5. cognite_toolkit/_cdf_tk/apps/_dev_app.py +86 -0
  6. cognite_toolkit/_cdf_tk/apps/_download_app.py +1146 -0
  7. cognite_toolkit/_cdf_tk/apps/_dump_app.py +421 -102
  8. cognite_toolkit/_cdf_tk/apps/_import_app.py +41 -0
  9. cognite_toolkit/_cdf_tk/apps/_landing_app.py +17 -5
  10. cognite_toolkit/_cdf_tk/apps/_migrate_app.py +1085 -1
  11. cognite_toolkit/_cdf_tk/apps/_modules_app.py +37 -13
  12. cognite_toolkit/_cdf_tk/apps/_profile_app.py +142 -3
  13. cognite_toolkit/_cdf_tk/apps/_purge.py +250 -17
  14. cognite_toolkit/_cdf_tk/apps/_run.py +21 -10
  15. cognite_toolkit/_cdf_tk/apps/_upload_app.py +107 -0
  16. cognite_toolkit/_cdf_tk/builders/__init__.py +8 -4
  17. cognite_toolkit/_cdf_tk/builders/_base.py +37 -49
  18. cognite_toolkit/_cdf_tk/builders/_datamodels.py +4 -4
  19. cognite_toolkit/_cdf_tk/builders/_file.py +5 -5
  20. cognite_toolkit/_cdf_tk/builders/_function.py +7 -7
  21. cognite_toolkit/_cdf_tk/builders/_location.py +11 -31
  22. cognite_toolkit/_cdf_tk/builders/_raw.py +11 -11
  23. cognite_toolkit/_cdf_tk/builders/_streamlit.py +4 -4
  24. cognite_toolkit/_cdf_tk/builders/_transformation.py +11 -8
  25. cognite_toolkit/_cdf_tk/cdf_toml.py +77 -9
  26. cognite_toolkit/_cdf_tk/client/__init__.py +2 -1
  27. cognite_toolkit/_cdf_tk/client/_constants.py +1 -0
  28. cognite_toolkit/_cdf_tk/client/_toolkit_client.py +49 -65
  29. cognite_toolkit/_cdf_tk/client/api/canvas.py +185 -0
  30. cognite_toolkit/_cdf_tk/client/api/charts.py +125 -0
  31. cognite_toolkit/_cdf_tk/client/api/extended_data_modeling.py +70 -14
  32. cognite_toolkit/_cdf_tk/client/api/extended_files.py +227 -0
  33. cognite_toolkit/_cdf_tk/client/api/extended_functions.py +80 -0
  34. cognite_toolkit/_cdf_tk/client/api/extended_raw.py +49 -0
  35. cognite_toolkit/_cdf_tk/client/api/extended_timeseries.py +70 -2
  36. cognite_toolkit/_cdf_tk/client/api/fixed_transformations.py +122 -0
  37. cognite_toolkit/_cdf_tk/client/api/infield.py +254 -0
  38. cognite_toolkit/_cdf_tk/client/api/location_filters.py +19 -3
  39. cognite_toolkit/_cdf_tk/client/api/lookup.py +202 -71
  40. cognite_toolkit/_cdf_tk/client/api/migration.py +529 -0
  41. cognite_toolkit/_cdf_tk/client/api/project.py +24 -0
  42. cognite_toolkit/_cdf_tk/client/api/robotics/api.py +0 -2
  43. cognite_toolkit/_cdf_tk/client/api/robotics/capabilities.py +0 -2
  44. cognite_toolkit/_cdf_tk/client/api/robotics/data_postprocessing.py +0 -2
  45. cognite_toolkit/_cdf_tk/client/api/robotics/frames.py +0 -2
  46. cognite_toolkit/_cdf_tk/client/api/robotics/locations.py +0 -2
  47. cognite_toolkit/_cdf_tk/client/api/robotics/maps.py +0 -2
  48. cognite_toolkit/_cdf_tk/client/api/robotics/robots.py +0 -2
  49. cognite_toolkit/_cdf_tk/client/api/search.py +13 -0
  50. cognite_toolkit/_cdf_tk/client/api/search_config.py +49 -0
  51. cognite_toolkit/_cdf_tk/client/api/streams.py +89 -0
  52. cognite_toolkit/_cdf_tk/client/api/three_d.py +131 -0
  53. cognite_toolkit/_cdf_tk/client/api/token.py +111 -0
  54. cognite_toolkit/_cdf_tk/client/config.py +120 -0
  55. cognite_toolkit/_cdf_tk/client/data_classes/api_classes.py +17 -0
  56. cognite_toolkit/_cdf_tk/client/data_classes/base.py +71 -0
  57. cognite_toolkit/_cdf_tk/client/data_classes/canvas.py +1107 -0
  58. cognite_toolkit/_cdf_tk/client/data_classes/capabilities.py +170 -0
  59. cognite_toolkit/_cdf_tk/client/data_classes/charts.py +114 -0
  60. cognite_toolkit/_cdf_tk/client/data_classes/charts_data.py +184 -0
  61. cognite_toolkit/_cdf_tk/client/data_classes/extendable_cognite_file.py +8 -4
  62. cognite_toolkit/_cdf_tk/client/data_classes/extended_filemetadata.py +108 -0
  63. cognite_toolkit/_cdf_tk/client/data_classes/extended_filemetdata.py +113 -0
  64. cognite_toolkit/_cdf_tk/client/data_classes/functions.py +0 -2
  65. cognite_toolkit/_cdf_tk/client/data_classes/graphql_data_models.py +9 -5
  66. cognite_toolkit/_cdf_tk/client/data_classes/infield.py +116 -0
  67. cognite_toolkit/_cdf_tk/client/data_classes/instance_api.py +162 -0
  68. cognite_toolkit/_cdf_tk/client/data_classes/instances.py +24 -2
  69. cognite_toolkit/_cdf_tk/client/data_classes/location_filters.py +3 -5
  70. cognite_toolkit/_cdf_tk/client/data_classes/migration.py +457 -0
  71. cognite_toolkit/_cdf_tk/client/data_classes/project.py +41 -0
  72. cognite_toolkit/_cdf_tk/client/data_classes/raw.py +378 -9
  73. cognite_toolkit/_cdf_tk/client/data_classes/robotics.py +8 -10
  74. cognite_toolkit/_cdf_tk/client/data_classes/search_config.py +224 -0
  75. cognite_toolkit/_cdf_tk/client/data_classes/streamlit_.py +11 -11
  76. cognite_toolkit/_cdf_tk/client/data_classes/streams.py +90 -0
  77. cognite_toolkit/_cdf_tk/client/data_classes/three_d.py +53 -0
  78. cognite_toolkit/_cdf_tk/client/testing.py +83 -6
  79. cognite_toolkit/_cdf_tk/client/utils/_concurrency.py +24 -1
  80. cognite_toolkit/_cdf_tk/commands/__init__.py +20 -8
  81. cognite_toolkit/_cdf_tk/commands/_base.py +8 -3
  82. cognite_toolkit/_cdf_tk/commands/_changes.py +12 -46
  83. cognite_toolkit/_cdf_tk/commands/_cli_commands.py +0 -2
  84. cognite_toolkit/_cdf_tk/commands/_download.py +154 -0
  85. cognite_toolkit/_cdf_tk/{prototypes/commands/import_.py → commands/_import_cmd.py} +0 -2
  86. cognite_toolkit/_cdf_tk/commands/_migrate/__init__.py +7 -0
  87. cognite_toolkit/_cdf_tk/commands/_migrate/command.py +309 -0
  88. cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py +373 -0
  89. cognite_toolkit/_cdf_tk/commands/_migrate/creators.py +232 -0
  90. cognite_toolkit/_cdf_tk/commands/_migrate/data_classes.py +294 -0
  91. cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py +471 -0
  92. cognite_toolkit/_cdf_tk/commands/_migrate/data_model.py +229 -0
  93. cognite_toolkit/_cdf_tk/commands/_migrate/default_mappings.py +137 -0
  94. cognite_toolkit/_cdf_tk/commands/_migrate/issues.py +212 -0
  95. cognite_toolkit/_cdf_tk/commands/_migrate/migration_io.py +456 -0
  96. cognite_toolkit/_cdf_tk/commands/_migrate/prepare.py +60 -0
  97. cognite_toolkit/_cdf_tk/commands/_migrate/selectors.py +71 -0
  98. cognite_toolkit/_cdf_tk/commands/_profile.py +921 -149
  99. cognite_toolkit/_cdf_tk/commands/_purge.py +692 -511
  100. cognite_toolkit/_cdf_tk/commands/_questionary_style.py +16 -0
  101. cognite_toolkit/_cdf_tk/commands/_upload.py +289 -0
  102. cognite_toolkit/_cdf_tk/commands/_utils.py +1 -26
  103. cognite_toolkit/_cdf_tk/commands/_virtual_env.py +0 -2
  104. cognite_toolkit/_cdf_tk/commands/about.py +221 -0
  105. cognite_toolkit/_cdf_tk/commands/auth.py +46 -26
  106. cognite_toolkit/_cdf_tk/commands/build_cmd.py +72 -114
  107. cognite_toolkit/_cdf_tk/commands/build_v2/build_cmd.py +241 -0
  108. cognite_toolkit/_cdf_tk/commands/build_v2/build_input.py +85 -0
  109. cognite_toolkit/_cdf_tk/commands/build_v2/build_issues.py +27 -0
  110. cognite_toolkit/_cdf_tk/commands/clean.py +89 -39
  111. cognite_toolkit/_cdf_tk/commands/deploy.py +334 -194
  112. cognite_toolkit/_cdf_tk/commands/dump_resource.py +470 -79
  113. cognite_toolkit/_cdf_tk/commands/init.py +219 -18
  114. cognite_toolkit/_cdf_tk/commands/modules.py +319 -71
  115. cognite_toolkit/_cdf_tk/commands/pull.py +45 -46
  116. cognite_toolkit/_cdf_tk/commands/repo.py +1 -1
  117. cognite_toolkit/_cdf_tk/commands/resources.py +179 -0
  118. cognite_toolkit/_cdf_tk/commands/run.py +11 -13
  119. cognite_toolkit/_cdf_tk/constants.py +104 -8
  120. cognite_toolkit/_cdf_tk/cruds/__init__.py +224 -0
  121. cognite_toolkit/_cdf_tk/{loaders/_base_loaders.py → cruds/_base_cruds.py} +72 -134
  122. cognite_toolkit/_cdf_tk/{loaders/_data_loaders.py → cruds/_data_cruds.py} +29 -38
  123. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/__init__.py +98 -0
  124. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/agent.py +115 -0
  125. cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/auth_loaders.py → cruds/_resource_cruds/auth.py} +33 -70
  126. cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/classic_loaders.py → cruds/_resource_cruds/classic.py} +86 -122
  127. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py +149 -0
  128. cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/data_organization_loaders.py → cruds/_resource_cruds/data_organization.py} +17 -50
  129. cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/datamodel_loaders.py → cruds/_resource_cruds/datamodel.py} +280 -372
  130. cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/extraction_pipeline_loaders.py → cruds/_resource_cruds/extraction_pipeline.py} +70 -89
  131. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py +438 -0
  132. cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/file_loader.py → cruds/_resource_cruds/file.py} +28 -83
  133. cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/function_loaders.py → cruds/_resource_cruds/function.py} +179 -108
  134. cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/group_scoped_loader.py → cruds/_resource_cruds/group_scoped.py} +19 -19
  135. cognite_toolkit/_cdf_tk/{loaders/_resource_loaders → cruds/_resource_cruds}/hosted_extractors.py +32 -102
  136. cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/industrial_tool_loaders.py → cruds/_resource_cruds/industrial_tool.py} +15 -27
  137. cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/location_loaders.py → cruds/_resource_cruds/location.py} +64 -170
  138. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/migration.py +111 -0
  139. cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/raw_loaders.py → cruds/_resource_cruds/raw.py} +21 -26
  140. cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/relationship_loader.py → cruds/_resource_cruds/relationship.py} +21 -43
  141. cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/robotics_loaders.py → cruds/_resource_cruds/robotics.py} +29 -50
  142. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py +94 -0
  143. cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/three_d_model_loaders.py → cruds/_resource_cruds/three_d_model.py} +11 -33
  144. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py +500 -0
  145. cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/transformation_loaders.py → cruds/_resource_cruds/transformation.py} +155 -144
  146. cognite_toolkit/_cdf_tk/{loaders/_resource_loaders/workflow_loaders.py → cruds/_resource_cruds/workflow.py} +116 -203
  147. cognite_toolkit/_cdf_tk/{loaders → cruds}/_worker.py +85 -78
  148. cognite_toolkit/_cdf_tk/data_classes/__init__.py +2 -0
  149. cognite_toolkit/_cdf_tk/data_classes/_base.py +8 -4
  150. cognite_toolkit/_cdf_tk/data_classes/_build_files.py +3 -3
  151. cognite_toolkit/_cdf_tk/data_classes/_build_variables.py +133 -23
  152. cognite_toolkit/_cdf_tk/data_classes/_built_modules.py +23 -9
  153. cognite_toolkit/_cdf_tk/data_classes/_built_resources.py +24 -21
  154. cognite_toolkit/_cdf_tk/data_classes/_config_yaml.py +34 -26
  155. cognite_toolkit/_cdf_tk/data_classes/_deploy_results.py +26 -7
  156. cognite_toolkit/_cdf_tk/data_classes/_module_directories.py +37 -18
  157. cognite_toolkit/_cdf_tk/data_classes/_module_resources.py +12 -10
  158. cognite_toolkit/_cdf_tk/data_classes/_module_toml.py +12 -10
  159. cognite_toolkit/_cdf_tk/data_classes/_packages.py +48 -24
  160. cognite_toolkit/_cdf_tk/data_classes/_tracking_info.py +43 -0
  161. cognite_toolkit/_cdf_tk/exceptions.py +32 -3
  162. cognite_toolkit/_cdf_tk/feature_flags.py +59 -46
  163. cognite_toolkit/_cdf_tk/hints.py +5 -5
  164. cognite_toolkit/_cdf_tk/plugins.py +2 -3
  165. cognite_toolkit/_cdf_tk/protocols.py +97 -0
  166. cognite_toolkit/_cdf_tk/resource_classes/__init__.py +63 -0
  167. cognite_toolkit/_cdf_tk/resource_classes/agent.py +58 -0
  168. cognite_toolkit/_cdf_tk/resource_classes/agent_tools.py +101 -0
  169. cognite_toolkit/_cdf_tk/resource_classes/authentication.py +15 -0
  170. cognite_toolkit/_cdf_tk/resource_classes/capabilities.py +30 -1
  171. cognite_toolkit/_cdf_tk/resource_classes/cognitefile.py +51 -0
  172. cognite_toolkit/_cdf_tk/resource_classes/container_field_definitions.py +326 -0
  173. cognite_toolkit/_cdf_tk/resource_classes/containers.py +92 -0
  174. cognite_toolkit/_cdf_tk/resource_classes/data_model.py +51 -0
  175. cognite_toolkit/_cdf_tk/resource_classes/datapoint_subscription.py +77 -0
  176. cognite_toolkit/_cdf_tk/resource_classes/extraction_pipeline.py +54 -0
  177. cognite_toolkit/_cdf_tk/resource_classes/extraction_pipeline_config.py +15 -0
  178. cognite_toolkit/_cdf_tk/resource_classes/function_schedule.py +3 -7
  179. cognite_toolkit/_cdf_tk/resource_classes/functions.py +12 -1
  180. cognite_toolkit/_cdf_tk/resource_classes/graphql_model.py +50 -0
  181. cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_destination.py +19 -0
  182. cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_job.py +255 -0
  183. cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_mapping.py +117 -0
  184. cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_source.py +390 -0
  185. cognite_toolkit/_cdf_tk/resource_classes/infield_cdm_location_config.py +109 -0
  186. cognite_toolkit/_cdf_tk/resource_classes/infield_location_config.py +94 -0
  187. cognite_toolkit/_cdf_tk/resource_classes/infield_v1.py +100 -0
  188. cognite_toolkit/_cdf_tk/resource_classes/instance.py +93 -0
  189. cognite_toolkit/_cdf_tk/resource_classes/location.py +1 -1
  190. cognite_toolkit/_cdf_tk/resource_classes/migration.py +28 -0
  191. cognite_toolkit/_cdf_tk/resource_classes/raw_database_table.py +6 -2
  192. cognite_toolkit/_cdf_tk/resource_classes/relationship.py +50 -0
  193. cognite_toolkit/_cdf_tk/resource_classes/robotics/__init__.py +13 -0
  194. cognite_toolkit/_cdf_tk/resource_classes/robotics/capability.py +19 -0
  195. cognite_toolkit/_cdf_tk/resource_classes/robotics/data_postprocessing.py +15 -0
  196. cognite_toolkit/_cdf_tk/resource_classes/robotics/frame.py +25 -0
  197. cognite_toolkit/_cdf_tk/resource_classes/robotics/location.py +12 -0
  198. cognite_toolkit/_cdf_tk/resource_classes/robotics/map.py +16 -0
  199. cognite_toolkit/_cdf_tk/resource_classes/search_config.py +30 -0
  200. cognite_toolkit/_cdf_tk/resource_classes/sequence.py +107 -0
  201. cognite_toolkit/_cdf_tk/resource_classes/space.py +4 -4
  202. cognite_toolkit/_cdf_tk/resource_classes/streamlit_.py +26 -0
  203. cognite_toolkit/_cdf_tk/resource_classes/streams.py +29 -0
  204. cognite_toolkit/_cdf_tk/resource_classes/transformation_destination.py +1 -1
  205. cognite_toolkit/_cdf_tk/resource_classes/transformation_notification.py +8 -0
  206. cognite_toolkit/_cdf_tk/resource_classes/transformations.py +2 -13
  207. cognite_toolkit/_cdf_tk/resource_classes/view_field_definitions.py +207 -0
  208. cognite_toolkit/_cdf_tk/resource_classes/views.py +93 -0
  209. cognite_toolkit/_cdf_tk/resource_classes/workflow.py +15 -0
  210. cognite_toolkit/_cdf_tk/resource_classes/workflow_trigger.py +115 -0
  211. cognite_toolkit/_cdf_tk/resource_classes/workflow_version.py +233 -0
  212. cognite_toolkit/_cdf_tk/storageio/__init__.py +69 -0
  213. cognite_toolkit/_cdf_tk/storageio/_annotations.py +105 -0
  214. cognite_toolkit/_cdf_tk/storageio/_applications.py +408 -0
  215. cognite_toolkit/_cdf_tk/storageio/_asset_centric.py +693 -0
  216. cognite_toolkit/_cdf_tk/storageio/_base.py +328 -0
  217. cognite_toolkit/_cdf_tk/storageio/_data_classes.py +91 -0
  218. cognite_toolkit/_cdf_tk/storageio/_datapoints.py +448 -0
  219. cognite_toolkit/_cdf_tk/storageio/_file_content.py +436 -0
  220. cognite_toolkit/_cdf_tk/storageio/_instances.py +225 -0
  221. cognite_toolkit/_cdf_tk/storageio/_raw.py +124 -0
  222. cognite_toolkit/_cdf_tk/storageio/selectors/__init__.py +133 -0
  223. cognite_toolkit/_cdf_tk/storageio/selectors/_asset_centric.py +60 -0
  224. cognite_toolkit/_cdf_tk/storageio/selectors/_base.py +80 -0
  225. cognite_toolkit/_cdf_tk/storageio/selectors/_canvas.py +22 -0
  226. cognite_toolkit/_cdf_tk/storageio/selectors/_charts.py +45 -0
  227. cognite_toolkit/_cdf_tk/storageio/selectors/_datapoints.py +89 -0
  228. cognite_toolkit/_cdf_tk/storageio/selectors/_file_content.py +164 -0
  229. cognite_toolkit/_cdf_tk/storageio/selectors/_instances.py +162 -0
  230. cognite_toolkit/_cdf_tk/storageio/selectors/_raw.py +24 -0
  231. cognite_toolkit/_cdf_tk/storageio/selectors/_three_d.py +34 -0
  232. cognite_toolkit/_cdf_tk/tk_warnings/__init__.py +2 -0
  233. cognite_toolkit/_cdf_tk/tk_warnings/base.py +1 -3
  234. cognite_toolkit/_cdf_tk/tk_warnings/fileread.py +8 -6
  235. cognite_toolkit/_cdf_tk/tk_warnings/other.py +18 -3
  236. cognite_toolkit/_cdf_tk/tracker.py +21 -24
  237. cognite_toolkit/_cdf_tk/utils/__init__.py +4 -6
  238. cognite_toolkit/_cdf_tk/utils/_auxiliary.py +36 -0
  239. cognite_toolkit/_cdf_tk/utils/aggregators.py +424 -0
  240. cognite_toolkit/_cdf_tk/utils/auth.py +4 -2
  241. cognite_toolkit/_cdf_tk/utils/auxiliary.py +23 -0
  242. cognite_toolkit/_cdf_tk/utils/cdf.py +191 -21
  243. cognite_toolkit/_cdf_tk/utils/cli_args.py +34 -0
  244. cognite_toolkit/_cdf_tk/utils/collection.py +53 -2
  245. cognite_toolkit/_cdf_tk/utils/dtype_conversion.py +593 -0
  246. cognite_toolkit/_cdf_tk/utils/file.py +55 -2
  247. cognite_toolkit/_cdf_tk/utils/fileio/__init__.py +61 -0
  248. cognite_toolkit/_cdf_tk/utils/fileio/_base.py +32 -0
  249. cognite_toolkit/_cdf_tk/utils/fileio/_compression.py +61 -0
  250. cognite_toolkit/_cdf_tk/utils/fileio/_readers.py +422 -0
  251. cognite_toolkit/_cdf_tk/utils/fileio/_writers.py +429 -0
  252. cognite_toolkit/_cdf_tk/utils/graphql_parser.py +7 -2
  253. cognite_toolkit/_cdf_tk/utils/hashing.py +3 -9
  254. cognite_toolkit/_cdf_tk/utils/http_client/__init__.py +69 -0
  255. cognite_toolkit/_cdf_tk/utils/http_client/_client.py +536 -0
  256. cognite_toolkit/_cdf_tk/utils/http_client/_data_classes.py +412 -0
  257. cognite_toolkit/_cdf_tk/utils/http_client/_data_classes2.py +249 -0
  258. cognite_toolkit/_cdf_tk/utils/http_client/_exception.py +4 -0
  259. cognite_toolkit/_cdf_tk/utils/http_client/_tracker.py +34 -0
  260. cognite_toolkit/_cdf_tk/utils/interactive_select.py +819 -102
  261. cognite_toolkit/_cdf_tk/utils/modules.py +10 -14
  262. cognite_toolkit/_cdf_tk/utils/producer_worker.py +280 -63
  263. cognite_toolkit/_cdf_tk/utils/progress_tracker.py +87 -0
  264. cognite_toolkit/_cdf_tk/utils/sentry_utils.py +3 -3
  265. cognite_toolkit/_cdf_tk/utils/sql_parser.py +160 -0
  266. cognite_toolkit/_cdf_tk/utils/text.py +115 -0
  267. cognite_toolkit/_cdf_tk/utils/thread_safe_dict.py +99 -0
  268. cognite_toolkit/_cdf_tk/utils/useful_types.py +31 -0
  269. cognite_toolkit/_cdf_tk/utils/validate_access.py +468 -0
  270. cognite_toolkit/_cdf_tk/validation.py +172 -80
  271. cognite_toolkit/_repo_files/.gitignore +2 -0
  272. cognite_toolkit/_repo_files/AzureDevOps/.devops/deploy-pipeline.yml +1 -1
  273. cognite_toolkit/_repo_files/AzureDevOps/.devops/dry-run-pipeline.yml +1 -1
  274. cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml +1 -1
  275. cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml +1 -1
  276. cognite_toolkit/_resources/cdf.toml +18 -0
  277. cognite_toolkit/_version.py +1 -1
  278. cognite_toolkit/config.dev.yaml +13 -0
  279. cognite_toolkit/demo/_base.py +4 -4
  280. {cognite_toolkit-0.5.44.dist-info → cognite_toolkit-0.7.34.dist-info}/METADATA +25 -21
  281. cognite_toolkit-0.7.34.dist-info/RECORD +320 -0
  282. cognite_toolkit-0.7.34.dist-info/WHEEL +4 -0
  283. {cognite_toolkit-0.5.44.dist-info → cognite_toolkit-0.7.34.dist-info}/entry_points.txt +1 -0
  284. cognite_toolkit/_builtin_modules/README.md +0 -7
  285. cognite_toolkit/_builtin_modules/bootcamp/README.md +0 -5
  286. cognite_toolkit/_builtin_modules/bootcamp/default.config.yaml +0 -3
  287. cognite_toolkit/_builtin_modules/bootcamp/ice_cream_api/default.config.yaml +0 -9
  288. cognite_toolkit/_builtin_modules/bootcamp/ice_cream_api/functions/icapi_datapoints_extractor/handler.py +0 -168
  289. cognite_toolkit/_builtin_modules/bootcamp/ice_cream_api/functions/icapi_datapoints_extractor/ice_cream_factory_api.py +0 -61
  290. cognite_toolkit/_builtin_modules/bootcamp/ice_cream_api/functions/icapi_datapoints_extractor/requirements.txt +0 -3
  291. cognite_toolkit/_builtin_modules/bootcamp/ice_cream_api/module.toml +0 -8
  292. cognite_toolkit/_builtin_modules/bootcamp/module.toml +0 -8
  293. cognite_toolkit/_builtin_modules/bootcamp/use_cases/oee/default.config.yaml +0 -6
  294. cognite_toolkit/_builtin_modules/bootcamp/use_cases/oee/functions/oee_timeseries/handler.py +0 -229
  295. cognite_toolkit/_builtin_modules/bootcamp/use_cases/oee/functions/oee_timeseries/requirements.txt +0 -2
  296. cognite_toolkit/_builtin_modules/bootcamp/use_cases/oee/module.toml +0 -8
  297. cognite_toolkit/_builtin_modules/cdf.toml +0 -13
  298. cognite_toolkit/_builtin_modules/cdf_common/data_models/demo.Space.yaml +0 -3
  299. cognite_toolkit/_builtin_modules/cdf_common/data_sets/demo.DataSet.yaml +0 -3
  300. cognite_toolkit/_builtin_modules/cdf_common/default.config.yaml +0 -8
  301. cognite_toolkit/_builtin_modules/cdf_common/extraction_pipelines/ctx_files_direct_relation_write.ExtractionPipeline.yaml +0 -54
  302. cognite_toolkit/_builtin_modules/cdf_common/extraction_pipelines/ctx_files_direct_relation_write.config.yaml +0 -28
  303. cognite_toolkit/_builtin_modules/cdf_common/functions/contextualization_connection_writer/handler.py +0 -342
  304. cognite_toolkit/_builtin_modules/cdf_common/functions/contextualization_connection_writer/requirements.txt +0 -3
  305. cognite_toolkit/_builtin_modules/cdf_common/functions/write.Function.yaml +0 -7
  306. cognite_toolkit/_builtin_modules/cdf_common/module.toml +0 -7
  307. cognite_toolkit/_builtin_modules/cdf_common/raw/contextualization_state.DataBase.yaml +0 -1
  308. cognite_toolkit/_builtin_modules/cdf_common/raw/contextualization_state.Table.yaml +0 -2
  309. cognite_toolkit/_builtin_modules/cdf_common/raw/source.DataBase.yaml +0 -1
  310. cognite_toolkit/_builtin_modules/cdf_ingestion/auth/user.Group.yaml +0 -124
  311. cognite_toolkit/_builtin_modules/cdf_ingestion/auth/workflow.Group.yaml +0 -114
  312. cognite_toolkit/_builtin_modules/cdf_ingestion/default.config.yaml +0 -34
  313. cognite_toolkit/_builtin_modules/cdf_ingestion/module.toml +0 -14
  314. cognite_toolkit/_builtin_modules/cdf_ingestion/workflows/ingest.Workflow.yaml +0 -3
  315. cognite_toolkit/_builtin_modules/cdf_ingestion/workflows/trigger.WorkflowTrigger.yaml +0 -9
  316. cognite_toolkit/_builtin_modules/cdf_ingestion/workflows/v1.WorkflowVersion.yaml +0 -150
  317. cognite_toolkit/_builtin_modules/common/README.md +0 -5
  318. cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/apm.datamodel.yaml +0 -18
  319. cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/apm_config.datamodel.yaml +0 -10
  320. cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/config.space.yaml +0 -3
  321. cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/containers/APM_Activity.container.yaml +0 -108
  322. cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/containers/APM_Notification.container.yaml +0 -85
  323. cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/containers/APM_Operation.container.yaml +0 -83
  324. cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/containers/ApmConfig.container.yaml +0 -39
  325. cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/source.space.yaml +0 -3
  326. cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/views/APM_Activity.view.yaml +0 -119
  327. cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/views/APM_Notification.view.yaml +0 -84
  328. cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/views/APM_Operation.view.yaml +0 -86
  329. cognite_toolkit/_builtin_modules/common/cdf_apm_base/data_models/views/ApmConfig.view.yaml +0 -48
  330. cognite_toolkit/_builtin_modules/common/cdf_apm_base/default.config.yaml +0 -1
  331. cognite_toolkit/_builtin_modules/common/cdf_apm_base/module.toml +0 -9
  332. cognite_toolkit/_builtin_modules/common/cdf_auth_readwrite_all/README.md +0 -23
  333. cognite_toolkit/_builtin_modules/common/cdf_auth_readwrite_all/auth/admin.readonly.group.yaml +0 -260
  334. cognite_toolkit/_builtin_modules/common/cdf_auth_readwrite_all/auth/admin.readwrite.group.yaml +0 -323
  335. cognite_toolkit/_builtin_modules/common/cdf_auth_readwrite_all/default.config.yaml +0 -2
  336. cognite_toolkit/_builtin_modules/common/cdf_auth_readwrite_all/module.toml +0 -7
  337. cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/default.config.yaml +0 -10
  338. cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/module.toml +0 -19
  339. cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/activity_to_asset.Transformation.sql +0 -31
  340. cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/activity_to_asset.Transformation.yaml +0 -13
  341. cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/activity_to_equipment.Transformation.sql +0 -31
  342. cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/activity_to_equipment.Transformation.yaml +0 -14
  343. cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/activity_to_timeseries.Transformation.sql +0 -34
  344. cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/activity_to_timeseries.Transformation.yaml +0 -13
  345. cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/timeseries_to_asset.Transformation.sql +0 -32
  346. cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/timeseries_to_asset.Transformation.yaml +0 -14
  347. cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/timeseries_to_equipment.Transformation.sql +0 -32
  348. cognite_toolkit/_builtin_modules/contextualization/cdf_connection_sql/transformations/timeseries_to_equipment.Transformation.yaml +0 -13
  349. cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/auth/workflow.Group.yaml +0 -83
  350. cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/data_models/annotation_type.Node.yaml +0 -2
  351. cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/data_models/sourceSystem.node.yaml +0 -13
  352. cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/default.config.yaml +0 -16
  353. cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/extraction_pipelines/ctx_files_entity_matcher.ExtractionPipeline.yaml +0 -48
  354. cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/extraction_pipelines/ctx_files_entity_matcher.config.yaml +0 -35
  355. cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/functions/contextualization_entity_matcher/handler.py +0 -476
  356. cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/functions/contextualization_entity_matcher/requirements.txt +0 -3
  357. cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/functions/functions.Function.yaml +0 -7
  358. cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/module.toml +0 -28
  359. cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/raw/state.Table.yaml +0 -2
  360. cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/workflows/entity_matching.Workflow.yaml +0 -3
  361. cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/workflows/trigger.WorkflowTrigger.yaml +0 -9
  362. cognite_toolkit/_builtin_modules/contextualization/cdf_entity_matching/workflows/v1.WorkflowVersion.yaml +0 -22
  363. cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/auth/function.Group.yaml +0 -89
  364. cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/data_models/sourceSystem.node.yaml +0 -13
  365. cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/default.config.yaml +0 -13
  366. cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/extraction_pipelines/ctx_files_pandid_annotater.ExtractionPipeline.yaml +0 -44
  367. cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/extraction_pipelines/ctx_files_pandid_annotater.config.yaml +0 -33
  368. cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/functions/contextualization_p_and_id_annotater/handler.py +0 -405
  369. cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/functions/contextualization_p_and_id_annotater/requirements.txt +0 -3
  370. cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/functions/functions.Function.yaml +0 -7
  371. cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/module.toml +0 -31
  372. cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/workflows/p_and_id_parser.Workflow.yaml +0 -3
  373. cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/workflows/trigger.WorkflowTrigger.yaml +0 -9
  374. cognite_toolkit/_builtin_modules/contextualization/cdf_p_and_id_parser/workflows/v1.WorkflowVersion.yaml +0 -22
  375. cognite_toolkit/_builtin_modules/custom/my_module/auth/.gitkeep +0 -0
  376. cognite_toolkit/_builtin_modules/custom/my_module/default.config.yaml +0 -1
  377. cognite_toolkit/_builtin_modules/custom/my_module/module.toml +0 -7
  378. cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_asset_centric/classic/root.Asset.yaml +0 -9
  379. cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_asset_centric/data_sets/data_sets.DataSet.yaml +0 -3
  380. cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_asset_centric/default.config.yaml +0 -4
  381. cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_asset_centric/locations/individualFilters.LocationFilter.yaml +0 -19
  382. cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_asset_centric/locations/oneFilter.LocationFilter.yaml +0 -12
  383. cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_asset_centric/module.toml +0 -7
  384. cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_datamodel_based/data_models/instance.Space.yaml +0 -2
  385. cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_datamodel_based/default.config.yaml +0 -2
  386. cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_datamodel_based/locations/dataModel.LocationFilter.yaml +0 -17
  387. cognite_toolkit/_builtin_modules/industrial_tools/cdf_location_filter_datamodel_based/module.toml +0 -7
  388. cognite_toolkit/_builtin_modules/industrial_tools/cdf_search/auth/locationfilter.Group.yaml +0 -12
  389. cognite_toolkit/_builtin_modules/industrial_tools/cdf_search/default.config.yaml +0 -3
  390. cognite_toolkit/_builtin_modules/industrial_tools/cdf_search/locations/user.LocationFilter.yaml +0 -9
  391. cognite_toolkit/_builtin_modules/industrial_tools/cdf_search/module.toml +0 -11
  392. cognite_toolkit/_builtin_modules/infield/cdf_infield_common/README.md +0 -3
  393. cognite_toolkit/_builtin_modules/infield/cdf_infield_common/auth/applications-configuration.Group.yaml +0 -22
  394. cognite_toolkit/_builtin_modules/infield/cdf_infield_common/data_models/infieldAppData.space.yaml +0 -3
  395. cognite_toolkit/_builtin_modules/infield/cdf_infield_common/data_models/infield_apm_app_config.node.yaml +0 -28
  396. cognite_toolkit/_builtin_modules/infield/cdf_infield_common/default.config.yaml +0 -2
  397. cognite_toolkit/_builtin_modules/infield/cdf_infield_common/module.toml +0 -11
  398. cognite_toolkit/_builtin_modules/infield/cdf_infield_location/README.md +0 -61
  399. cognite_toolkit/_builtin_modules/infield/cdf_infield_location/auth/infield_checklist_admin_role.group.yaml +0 -100
  400. cognite_toolkit/_builtin_modules/infield/cdf_infield_location/auth/infield_normal_role.group.yaml +0 -100
  401. cognite_toolkit/_builtin_modules/infield/cdf_infield_location/auth/infield_template_admin_role.group.yaml +0 -100
  402. cognite_toolkit/_builtin_modules/infield/cdf_infield_location/auth/infield_viewer_role.group.yaml +0 -85
  403. cognite_toolkit/_builtin_modules/infield/cdf_infield_location/data_models/infieldLocationAppData.space.yaml +0 -3
  404. cognite_toolkit/_builtin_modules/infield/cdf_infield_location/data_models/infieldLocationSourceData.space.yaml +0 -3
  405. cognite_toolkit/_builtin_modules/infield/cdf_infield_location/data_sets/location_app_data_set.DataSet.yaml +0 -3
  406. cognite_toolkit/_builtin_modules/infield/cdf_infield_location/data_sets/location_source_data_set.DataSet.yaml +0 -20
  407. cognite_toolkit/_builtin_modules/infield/cdf_infield_location/default.config.yaml +0 -23
  408. cognite_toolkit/_builtin_modules/infield/cdf_infield_location/module.toml +0 -8
  409. cognite_toolkit/_builtin_modules/infield/cdf_infield_location/transformations/tr_asset_oid_workmate_infield_sync_assets_from_hierarchy_to_apm.Transformation.sql +0 -34
  410. cognite_toolkit/_builtin_modules/infield/cdf_infield_location/transformations/tr_asset_oid_workmate_infield_sync_assets_from_hierarchy_to_apm.Transformation.yaml +0 -24
  411. cognite_toolkit/_builtin_modules/infield/cdf_infield_location/transformations/tr_asset_oid_workmate_infield_sync_assets_from_hierarchy_to_apm.schedule.yaml +0 -3
  412. cognite_toolkit/_builtin_modules/infield/cdf_infield_location/transformations/tr_workorder_oid_workmate_infield_sync_workorders_to_apm_activities.Transformation.sql +0 -17
  413. cognite_toolkit/_builtin_modules/infield/cdf_infield_location/transformations/tr_workorder_oid_workmate_infield_sync_workorders_to_apm_activities.Transformation.yaml +0 -25
  414. cognite_toolkit/_builtin_modules/infield/cdf_infield_location/transformations/tr_workorder_oid_workmate_infield_sync_workorders_to_apm_activities.schedule.yaml +0 -3
  415. cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/README.md +0 -61
  416. cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/auth/infield_checklist_admin_role.group.yaml +0 -100
  417. cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/auth/infield_normal_role.group.yaml +0 -100
  418. cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/auth/infield_template_admin_role.group.yaml +0 -100
  419. cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/auth/infield_viewer_role.group.yaml +0 -85
  420. cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/data_models/infieldLocationAppData.space.yaml +0 -3
  421. cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/data_models/infieldLocationSourceData.space.yaml +0 -3
  422. cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/data_sets/location_app_data_set.DataSet.yaml +0 -3
  423. cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/data_sets/location_source_data_set.DataSet.yaml +0 -20
  424. cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/default.config.yaml +0 -23
  425. cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/module.toml +0 -8
  426. cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/transformations/tr_asset_oid_workmate_infield_sync_assets_from_hierarchy_to_apm.Transformation.sql +0 -34
  427. cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/transformations/tr_asset_oid_workmate_infield_sync_assets_from_hierarchy_to_apm.Transformation.yaml +0 -24
  428. cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/transformations/tr_asset_oid_workmate_infield_sync_assets_from_hierarchy_to_apm.schedule.yaml +0 -3
  429. cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/transformations/tr_workorder_oid_workmate_infield_sync_workorders_to_apm_activities.Transformation.sql +0 -17
  430. cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/transformations/tr_workorder_oid_workmate_infield_sync_workorders_to_apm_activities.Transformation.yaml +0 -25
  431. cognite_toolkit/_builtin_modules/infield/cdf_infield_second_location/transformations/tr_workorder_oid_workmate_infield_sync_workorders_to_apm_activities.schedule.yaml +0 -3
  432. cognite_toolkit/_builtin_modules/infield/default.config.yaml +0 -21
  433. cognite_toolkit/_builtin_modules/inrobot/README.md +0 -41
  434. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/README.md +0 -53
  435. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/auth/run-function-user.Group.yaml +0 -89
  436. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/classic/robot.Label.yaml +0 -6
  437. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/data_models/cogniteAppData.space.yaml +0 -3
  438. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/data_models/inrobotApmConfig.node.yaml +0 -17
  439. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/data_sets/robot_1.dataset.yaml +0 -2
  440. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/default.config.yaml +0 -3
  441. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/.gitkeep +0 -0
  442. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/README.md +0 -30
  443. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/__init__.py +0 -1
  444. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/common/README.md +0 -58
  445. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/common/__init__.py +0 -0
  446. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/common/apm_helpers.py +0 -269
  447. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/common/cdf_helpers.py +0 -112
  448. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/common/dataclass/__init__.py +0 -0
  449. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/common/dataclass/common.py +0 -16
  450. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/common/dataclass/vision.py +0 -66
  451. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/common/utils.py +0 -17
  452. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/handler.py +0 -269
  453. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_contextualize_robot_data/requirements.txt +0 -22
  454. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/README.md +0 -56
  455. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/__init__.py +0 -1
  456. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/common/README.md +0 -58
  457. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/common/__init__.py +0 -0
  458. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/common/apm_helpers.py +0 -269
  459. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/common/cdf_helpers.py +0 -112
  460. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/common/dataclass/__init__.py +0 -0
  461. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/common/dataclass/common.py +0 -16
  462. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/common/dataclass/vision.py +0 -66
  463. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/common/utils.py +0 -17
  464. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/handler.py +0 -396
  465. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_gauge_reading/requirements.txt +0 -22
  466. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/README.md +0 -18
  467. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/__init__.py +0 -1
  468. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/common/README.md +0 -58
  469. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/common/__init__.py +0 -0
  470. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/common/apm_helpers.py +0 -269
  471. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/common/cdf_helpers.py +0 -112
  472. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/common/dataclass/__init__.py +0 -0
  473. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/common/dataclass/common.py +0 -16
  474. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/common/dataclass/vision.py +0 -66
  475. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/common/utils.py +0 -17
  476. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/handler.py +0 -195
  477. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_get_ir_data_from_ir_raw/requirements.txt +0 -23
  478. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_threesixty/README.md +0 -14
  479. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_threesixty/__init__.py +0 -1
  480. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_threesixty/cognite_threesixty_images.py +0 -284
  481. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_threesixty/handler.py +0 -257
  482. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/fn_threesixty/requirements.txt +0 -7
  483. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/robots.functions.Function.yaml +0 -51
  484. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/functions/schedules.Schedule.yaml +0 -94
  485. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/module.toml +0 -11
  486. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/acoustic_video.RobotCapability.yaml +0 -72
  487. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/process_threesixty.DataPostProcessing.yaml +0 -23
  488. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/pt_ir_video.RobotCapability.yaml +0 -64
  489. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/ptz.RobotCapability.yaml +0 -63
  490. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/ptz_ir.RobotCapability.yaml +0 -80
  491. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/ptz_video.RobotCapability.yaml +0 -68
  492. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/read_dial_gauge.DataPostProcessing.yaml +0 -31
  493. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/read_digital_gauge.DataPostProcessing.yaml +0 -35
  494. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/read_level_gauge.DataPostProcessing.yaml +0 -29
  495. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/read_valve.DataPostProcessing.yaml +0 -23
  496. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/threesixty.RobotCapability.yaml +0 -47
  497. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_common/robotics/threesixty_video.RobotCapability.yaml +0 -47
  498. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/README.md +0 -33
  499. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/auth/inrobot-admin.Group.yaml +0 -107
  500. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/auth/inrobot-users.Group.yaml +0 -94
  501. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/auth/robot-1.Group.yaml +0 -77
  502. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/data_models/locationAppData.space.yaml +0 -3
  503. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/data_models/locationSourceData.space.yaml +0 -3
  504. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/default.config.yaml +0 -7
  505. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/module.toml +0 -8
  506. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/robotics/root.Frame.yaml +0 -15
  507. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/robotics/root.Location.yaml +0 -3
  508. cognite_toolkit/_builtin_modules/inrobot/cdf_inrobot_location/robotics/root.Map.yaml +0 -10
  509. cognite_toolkit/_builtin_modules/inrobot/default.config.yaml +0 -3
  510. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/containers/Activity.Container.yaml +0 -13
  511. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/containers/Asset.Container.yaml +0 -13
  512. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/containers/Equipment.Container.yaml +0 -13
  513. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/containers/File.Container.yaml +0 -13
  514. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/containers/TimeSeries.Container.yaml +0 -13
  515. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/enterprise.datamodel.yaml +0 -54
  516. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/schema.space.yaml +0 -1
  517. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/views/Activity.view.yaml +0 -69
  518. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/views/Asset.view.yaml +0 -186
  519. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/views/Equipment.view.yaml +0 -100
  520. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/views/File.view.yaml +0 -72
  521. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/data_models/views/TimeSeries.view.yaml +0 -85
  522. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/default.config.yaml +0 -2
  523. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension/module.toml +0 -7
  524. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/360Image.Container.yaml +0 -13
  525. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/360ImageAnnotation.Container.yaml +0 -13
  526. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/360ImageCollection.Container.yaml +0 -13
  527. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/360ImageModel.Container.yaml +0 -13
  528. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/360ImageStation.Container.yaml +0 -13
  529. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/3DModel.Container.yaml +0 -13
  530. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/3DObject.Container.yaml +0 -13
  531. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/3DRevision.Container.yaml +0 -13
  532. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/3DTransformation.Container.yaml +0 -13
  533. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/Activity.Container.yaml +0 -13
  534. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/Annotation.Container.yaml +0 -14
  535. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/Asset.Container.yaml +0 -13
  536. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/AssetClass.Container.yaml +0 -13
  537. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/AssetType.Container.yaml +0 -13
  538. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/CADModel.Container.yaml +0 -13
  539. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/CADNode.Container.yaml +0 -13
  540. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/CADRevision.Container.yaml +0 -13
  541. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/CubeMap.Container.yaml +0 -13
  542. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/Describable.Container.yaml +0 -13
  543. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/DiagramAnnotation.Container.yaml +0 -13
  544. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/Equipment.Container.yaml +0 -13
  545. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/EquipmentType.Container.yaml +0 -13
  546. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/File.Container.yaml +0 -13
  547. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/FileCategory.Container.yaml +0 -13
  548. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/PointCloudModel.Container.yaml +0 -13
  549. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/PointCloudRevision.Container.yaml +0 -13
  550. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/PointCloudVolume.Container.yaml +0 -13
  551. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/Schedulable.Container.yaml +0 -13
  552. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/SourceSystem.Container.yaml +0 -13
  553. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/Sourceable.Container.yaml +0 -13
  554. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/TimeSeries.Container.yaml +0 -13
  555. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/Unit.Container.yaml +0 -13
  556. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/containers/Visualizable.Container.yaml +0 -13
  557. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/enterprise.datamodel.yaml +0 -138
  558. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/schema.space.yaml +0 -1
  559. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/360Image.view.yaml +0 -119
  560. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/360ImageAnnotation.view.yaml +0 -28
  561. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/360ImageCollection.view.yaml +0 -39
  562. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/360ImageModel.view.yaml +0 -55
  563. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/360ImageStation.view.yaml +0 -29
  564. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/3DModel.view.yaml +0 -29
  565. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/3DObject.view.yaml +0 -81
  566. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/3DRevision.view.yaml +0 -30
  567. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/3DTransformation.view.yaml +0 -23
  568. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/Activity.view.yaml +0 -69
  569. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/Annotation.view.yaml +0 -28
  570. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/Asset.view.yaml +0 -191
  571. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/AssetClass.view.yaml +0 -17
  572. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/AssetType.view.yaml +0 -31
  573. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/CADModel.view.yaml +0 -55
  574. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/CADNode.view.yaml +0 -53
  575. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/CADRevision.view.yaml +0 -39
  576. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/CubeMap.view.yaml +0 -97
  577. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/Describable.view.yaml +0 -19
  578. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/DiagramAnnotation.view.yaml +0 -28
  579. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/Equipment.view.yaml +0 -100
  580. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/EquipmentType.view.yaml +0 -17
  581. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/File.view.yaml +0 -72
  582. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/FileCategory.view.yaml +0 -18
  583. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/PointCloudModel.view.yaml +0 -55
  584. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/PointCloudRevision.view.yaml +0 -39
  585. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/PointCloudVolume.view.yaml +0 -52
  586. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/Schedulable.view.yaml +0 -17
  587. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/SourceSystem.view.yaml +0 -17
  588. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/Sourceable.view.yaml +0 -27
  589. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/TimeSeries.view.yaml +0 -85
  590. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/Unit.view.yaml +0 -16
  591. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/data_models/views/Visualizable.view.yaml +0 -29
  592. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/default.config.yaml +0 -2
  593. cognite_toolkit/_builtin_modules/models/cdf_cdm_extension_full/module.toml +0 -7
  594. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/containers/Activity.Container.yaml +0 -13
  595. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/containers/Asset.Container.yaml +0 -13
  596. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/containers/Equipment.Container.yaml +0 -13
  597. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/containers/File.Container.yaml +0 -13
  598. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/containers/MaintenanceOrder.Container.yaml +0 -13
  599. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/containers/Notification.Container.yaml +0 -13
  600. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/containers/Operation.Container.yaml +0 -13
  601. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/containers/TimeSeries.Container.yaml +0 -13
  602. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/enterprise.datamodel.yaml +0 -66
  603. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/schema.space.yaml +0 -1
  604. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/views/Activity.view.yaml +0 -69
  605. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/views/Asset.view.yaml +0 -186
  606. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/views/Equipment.view.yaml +0 -100
  607. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/views/File.view.yaml +0 -72
  608. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/views/MaintenanceOrder.view.yaml +0 -100
  609. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/views/Notification.view.yaml +0 -56
  610. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/views/Operation.view.yaml +0 -96
  611. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/data_models/views/TimeSeries.view.yaml +0 -85
  612. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/default.config.yaml +0 -3
  613. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension/module.toml +0 -8
  614. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/360Image.Container.yaml +0 -13
  615. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/360ImageAnnotation.Container.yaml +0 -14
  616. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/360ImageCollection.Container.yaml +0 -13
  617. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/360ImageModel.Container.yaml +0 -13
  618. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/360ImageStation.Container.yaml +0 -13
  619. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/3DModel.Container.yaml +0 -13
  620. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/3DObject.Container.yaml +0 -13
  621. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/3DRevision.Container.yaml +0 -13
  622. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/3DTransformation.Container.yaml +0 -13
  623. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Activity.Container.yaml +0 -13
  624. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Annotation.Container.yaml +0 -14
  625. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Asset.Container.yaml +0 -13
  626. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/AssetClass.Container.yaml +0 -13
  627. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/AssetType.Container.yaml +0 -13
  628. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/CADModel.Container.yaml +0 -13
  629. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/CADNode.Container.yaml +0 -13
  630. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/CADRevision.Container.yaml +0 -13
  631. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/CubeMap.Container.yaml +0 -13
  632. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Describable.Container.yaml +0 -13
  633. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/DiagramAnnotation.Container.yaml +0 -14
  634. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Equipment.Container.yaml +0 -13
  635. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/EquipmentType.Container.yaml +0 -13
  636. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/File.Container.yaml +0 -13
  637. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/FileCategory.Container.yaml +0 -13
  638. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/MaintenanceOrder.Container.yaml +0 -13
  639. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Notification.Container.yaml +0 -13
  640. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Operation.Container.yaml +0 -13
  641. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/PointCloudModel.Container.yaml +0 -13
  642. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/PointCloudRevision.Container.yaml +0 -13
  643. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/PointCloudVolume.Container.yaml +0 -13
  644. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Schedulable.Container.yaml +0 -13
  645. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/SourceSystem.Container.yaml +0 -13
  646. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Sourceable.Container.yaml +0 -13
  647. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/TimeSeries.Container.yaml +0 -13
  648. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Unit.Container.yaml +0 -13
  649. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/containers/Visualizable.Container.yaml +0 -13
  650. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/enterprise.datamodel.yaml +0 -150
  651. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/schema.space.yaml +0 -1
  652. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/360Image.view.yaml +0 -119
  653. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/360ImageAnnotation.view.yaml +0 -28
  654. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/360ImageCollection.view.yaml +0 -39
  655. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/360ImageModel.view.yaml +0 -55
  656. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/360ImageStation.view.yaml +0 -29
  657. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/3DModel.view.yaml +0 -29
  658. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/3DObject.view.yaml +0 -81
  659. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/3DRevision.view.yaml +0 -30
  660. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/3DTransformation.view.yaml +0 -23
  661. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Activity.view.yaml +0 -69
  662. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Annotation.view.yaml +0 -28
  663. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Asset.view.yaml +0 -191
  664. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/AssetClass.view.yaml +0 -17
  665. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/AssetType.view.yaml +0 -31
  666. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/CADModel.view.yaml +0 -55
  667. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/CADNode.view.yaml +0 -53
  668. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/CADRevision.view.yaml +0 -39
  669. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/CubeMap.view.yaml +0 -97
  670. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Describable.view.yaml +0 -19
  671. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/DiagramAnnotation.view.yaml +0 -28
  672. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Equipment.view.yaml +0 -100
  673. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/EquipmentType.view.yaml +0 -17
  674. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/File.view.yaml +0 -72
  675. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/FileCategory.view.yaml +0 -18
  676. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/MaintenanceOrder.view.yaml +0 -100
  677. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Notification.view.yaml +0 -56
  678. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Operation.view.yaml +0 -96
  679. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/PointCloudModel.view.yaml +0 -55
  680. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/PointCloudRevision.view.yaml +0 -39
  681. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/PointCloudVolume.view.yaml +0 -52
  682. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Schedulable.view.yaml +0 -17
  683. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/SourceSystem.view.yaml +0 -17
  684. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Sourceable.view.yaml +0 -27
  685. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/TimeSeries.view.yaml +0 -85
  686. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Unit.view.yaml +0 -16
  687. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/data_models/views/Visualizable.view.yaml +0 -29
  688. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/default.config.yaml +0 -2
  689. cognite_toolkit/_builtin_modules/models/cdf_process_industry_extension_full/module.toml +0 -7
  690. cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/containers/scene_Cdf3dRevisionProperties.Container.yaml +0 -13
  691. cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/containers/scene_EnvironmentMap.Container.yaml +0 -12
  692. cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/containers/scene_Image360CollectionProperties.Container.yaml +0 -23
  693. cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/containers/scene_Image360CollectionScene.Container.yaml +0 -12
  694. cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/containers/scene_SceneConfiguration.Container.yaml +0 -152
  695. cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/containers/scene_TexturedMap.Container.yaml +0 -21
  696. cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/containers/scene_TexturedPlane.Container.yaml +0 -29
  697. cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/scene.Space.yaml +0 -3
  698. cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/scene_data_model.DataModel.yaml +0 -66
  699. cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/views/EnvironmentMap.View.yaml +0 -28
  700. cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/views/Image360CollectionProperties.View.yaml +0 -22
  701. cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/views/Image360CollectionScene.View.yaml +0 -20
  702. cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/views/RevisionProperties.View.yaml +0 -16
  703. cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/views/SceneConfiguration.View.yaml +0 -166
  704. cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/views/TexturedMap.View.yaml +0 -17
  705. cognite_toolkit/_builtin_modules/models/cdf_scene/data_models/views/TexturedPlane.View.yaml +0 -40
  706. cognite_toolkit/_builtin_modules/models/cdf_scene/default.config.yaml +0 -1
  707. cognite_toolkit/_builtin_modules/models/cdf_scene/module.toml +0 -5
  708. cognite_toolkit/_builtin_modules/package.toml +0 -41
  709. cognite_toolkit/_builtin_modules/sourcesystem/README.md +0 -4
  710. cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/auth/workflow.Group.yaml +0 -53
  711. cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/default.config.yaml +0 -13
  712. cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/extraction_pipelines/extractor.Config.yaml +0 -5
  713. cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/extraction_pipelines/extractor.ExtractionPipeline.yaml +0 -12
  714. cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/module.toml +0 -30
  715. cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/raw/timeseries.Table.yaml +0 -2
  716. cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/transformations/population/timeseries.Transformation.sql +0 -9
  717. cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/transformations/population/timeseries.Transformation.yaml +0 -14
  718. cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/workflows/population.Workflow.yaml +0 -3
  719. cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/workflows/trigger.WorkflowTrigger.yaml +0 -9
  720. cognite_toolkit/_builtin_modules/sourcesystem/cdf_pi/workflows/v1.WorkflowVersion.yaml +0 -12
  721. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/auth/workflow.Group.yaml +0 -54
  722. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/default.config.yaml +0 -16
  723. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/module.toml +0 -30
  724. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/raw/dump.Table.yaml +0 -2
  725. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/transformations/connection/equipment_to_asset.Transformation.sql +0 -14
  726. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/transformations/connection/equipment_to_asset.Transformation.yaml +0 -14
  727. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/transformations/population/asset.Transformation.sql +0 -35
  728. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/transformations/population/asset.Transformation.yaml +0 -14
  729. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/transformations/population/equipment.Transformation.sql +0 -17
  730. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/transformations/population/equipment.Transformation.yaml +0 -13
  731. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/workflows/population.Workflow.yaml +0 -3
  732. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/workflows/trigger.WorkflowTrigger.yaml +0 -9
  733. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_assets/workflows/v1.WorkflowVersion.yaml +0 -28
  734. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/auth/workflow.Group.yaml +0 -46
  735. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/default.config.yaml +0 -15
  736. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/module.toml +0 -26
  737. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/raw/workitem.Table.yaml +0 -2
  738. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/raw/workorder.Table.yaml +0 -2
  739. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/raw/workpackage.Table.yaml +0 -2
  740. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/raw/worktask.Table.yaml +0 -3
  741. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/transformations/connection/operation_to_maintenance_order.Transformation.sql +0 -32
  742. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/transformations/connection/operation_to_maintenance_order.Transformation.yaml +0 -13
  743. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/transformations/population/maintenanceOrder.Transformation.sql +0 -18
  744. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/transformations/population/maintenanceOrder.Transformation.yaml +0 -14
  745. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/transformations/population/operation.Transformation.sql +0 -18
  746. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/transformations/population/operation.Transformation.yaml +0 -14
  747. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/workflows/population.Workflow.yaml +0 -3
  748. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/workflows/trigger.WorkflowTrigger.yaml +0 -9
  749. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sap_events/workflows/v1.WorkflowVersion.yaml +0 -28
  750. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/auth/workflow.Group.yaml +0 -47
  751. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/default.config.yaml +0 -13
  752. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/files/upload.CogniteFile.yaml +0 -4
  753. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/module.toml +0 -32
  754. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/raw/files.Table.yaml +0 -2
  755. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/transformations/population/files.Transformation.sql +0 -9
  756. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/transformations/population/files.Transformation.yaml +0 -13
  757. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/workflows/population.Workflow.yaml +0 -3
  758. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/workflows/trigger.WorkflowTrigger.yaml +0 -9
  759. cognite_toolkit/_builtin_modules/sourcesystem/cdf_sharepoint/workflows/v1.WorkflowVersion.yaml +0 -11
  760. cognite_toolkit/_cdf_tk/_parameters/__init__.py +0 -18
  761. cognite_toolkit/_cdf_tk/_parameters/constants.py +0 -82
  762. cognite_toolkit/_cdf_tk/_parameters/data_classes.py +0 -197
  763. cognite_toolkit/_cdf_tk/_parameters/functions.py +0 -192
  764. cognite_toolkit/_cdf_tk/_parameters/get_type_hints.py +0 -125
  765. cognite_toolkit/_cdf_tk/_parameters/type_hint.py +0 -118
  766. cognite_toolkit/_cdf_tk/apps/_populate_app.py +0 -80
  767. cognite_toolkit/_cdf_tk/client/api/agents/agents.py +0 -107
  768. cognite_toolkit/_cdf_tk/client/api/agents/api.py +0 -12
  769. cognite_toolkit/_cdf_tk/client/api/statistics.py +0 -72
  770. cognite_toolkit/_cdf_tk/client/data_classes/agent_tools.py +0 -92
  771. cognite_toolkit/_cdf_tk/client/data_classes/agents.py +0 -135
  772. cognite_toolkit/_cdf_tk/client/data_classes/statistics.py +0 -130
  773. cognite_toolkit/_cdf_tk/commands/_populate.py +0 -306
  774. cognite_toolkit/_cdf_tk/commands/dump_data.py +0 -487
  775. cognite_toolkit/_cdf_tk/commands/featureflag.py +0 -29
  776. cognite_toolkit/_cdf_tk/loaders/__init__.py +0 -204
  777. cognite_toolkit/_cdf_tk/loaders/_resource_loaders/__init__.py +0 -90
  778. cognite_toolkit/_cdf_tk/loaders/_resource_loaders/agent_loaders.py +0 -89
  779. cognite_toolkit/_cdf_tk/loaders/_resource_loaders/fieldops_loaders.py +0 -260
  780. cognite_toolkit/_cdf_tk/loaders/_resource_loaders/timeseries_loaders.py +0 -356
  781. cognite_toolkit/_cdf_tk/prototypes/_packages/__init__.py +0 -1
  782. cognite_toolkit/_cdf_tk/prototypes/_packages/reference/manifest.yaml +0 -4
  783. cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/auth/reference.Group.yaml +0 -375
  784. cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/auth/reference.SecurityCategory.yaml +0 -1
  785. cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/data_models/reference.DataModel.yaml +0 -19
  786. cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/data_models/reference.View.yaml +0 -8
  787. cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/data_sets/reference.DataSet.yaml +0 -8
  788. cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/extraction_pipelines/reference.ExtractionPipeline.yaml +0 -27
  789. cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/extraction_pipelines/reference.ExtractionPipelineConfig.yaml +0 -3
  790. cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/functions/reference.Function.yaml +0 -22
  791. cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/functions/reference.FunctionSchedule.yaml +0 -6
  792. cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/labels/reference.LabelDefinition.yaml +0 -4
  793. cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/timeseries/reference.DataPointSubscription.yaml +0 -7
  794. cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/transformations/reference.Transformation.yaml +0 -51
  795. cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/transformations/reference.TransformationNotification.yaml +0 -3
  796. cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/transformations/reference.TransformationSchedule.yaml +0 -4
  797. cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/workflows/reference.WorkflowUpsert.yaml +0 -2
  798. cognite_toolkit/_cdf_tk/prototypes/_packages/reference/references/workflows/reference.WorkflowVersionUpsert.yaml +0 -10
  799. cognite_toolkit/_cdf_tk/prototypes/_packages/update_references.py +0 -339
  800. cognite_toolkit/_cdf_tk/prototypes/commands/__init__.py +0 -0
  801. cognite_toolkit/_cdf_tk/prototypes/import_app.py +0 -41
  802. cognite_toolkit/_cdf_tk/utils/table_writers.py +0 -433
  803. cognite_toolkit/_cdf_tk/utils/tarjan.py +0 -46
  804. cognite_toolkit-0.5.44.dist-info/RECORD +0 -695
  805. cognite_toolkit-0.5.44.dist-info/WHEEL +0 -4
  806. cognite_toolkit-0.5.44.dist-info/licenses/LICENSE +0 -18
  807. /cognite_toolkit/{_builtin_modules → _cdf_tk/commands/build_v2}/__init__.py +0 -0
@@ -1,54 +1,86 @@
1
- from abc import abstractmethod
2
- from functools import lru_cache
1
+ from abc import ABC, abstractmethod
2
+ from collections import defaultdict
3
+ from collections.abc import Sequence
4
+ from concurrent.futures import ThreadPoolExecutor
5
+ from dataclasses import dataclass
6
+ from functools import cached_property, lru_cache, partial
7
+ from typing import ClassVar, Literal, TypeVar, get_args, overload
3
8
 
4
9
  import questionary
5
10
  from cognite.client.data_classes import (
6
11
  Asset,
7
- AssetFilter,
8
- AssetList,
9
12
  DataSet,
10
- DataSetList,
11
- EventFilter,
12
- FileMetadataFilter,
13
- TimeSeriesFilter,
13
+ UserProfileList,
14
+ filters,
14
15
  )
16
+ from cognite.client.data_classes.aggregations import Count
17
+ from cognite.client.data_classes.data_modeling import ContainerId, NodeList, Space, SpaceList, View, ViewId, ViewList
18
+ from cognite.client.data_classes.data_modeling.statistics import SpaceStatistics
19
+ from cognite.client.utils import ms_to_datetime
20
+ from questionary import Choice
21
+ from rich.console import Console
15
22
 
16
23
  from cognite_toolkit._cdf_tk.client import ToolkitClient
24
+ from cognite_toolkit._cdf_tk.client.data_classes.canvas import Canvas
25
+ from cognite_toolkit._cdf_tk.client.data_classes.charts import Chart, ChartList, Visibility
26
+ from cognite_toolkit._cdf_tk.client.data_classes.migration import ResourceViewMapping
27
+ from cognite_toolkit._cdf_tk.client.data_classes.raw import RawTable
28
+ from cognite_toolkit._cdf_tk.client.data_classes.three_d import ThreeDModelResponse
29
+ from cognite_toolkit._cdf_tk.exceptions import ToolkitMissingResourceError, ToolkitValueError
17
30
 
31
+ from . import humanize_collection
32
+ from .aggregators import (
33
+ AssetAggregator,
34
+ AssetCentricAggregator,
35
+ EventAggregator,
36
+ FileAggregator,
37
+ TimeSeriesAggregator,
38
+ )
39
+ from .useful_types import AssetCentricDestinationType
18
40
 
19
- class AssetCentricInteractiveSelect:
20
- def __init__(self, client: ToolkitClient) -> None:
41
+ T_Type = TypeVar("T_Type", bound=Asset | DataSet)
42
+
43
+
44
+ class AssetCentricInteractiveSelect(ABC):
45
+ def __init__(self, client: ToolkitClient, operation: str) -> None:
21
46
  self.client = client
47
+ self.operation = operation
48
+ self._aggregator = self._get_aggregator(client)
49
+
50
+ @abstractmethod
51
+ def _get_aggregator(self, client: ToolkitClient) -> AssetCentricAggregator:
52
+ raise NotImplementedError()
22
53
 
23
54
  @lru_cache
24
55
  def aggregate_count(self, hierarchies: tuple[str, ...], data_sets: tuple[str, ...]) -> int:
25
56
  return self._aggregate_count(list(hierarchies), list(data_sets))
26
57
 
27
- @abstractmethod
28
58
  def _aggregate_count(self, hierarchies: list[str], data_sets: list[str]) -> int:
29
- raise NotImplementedError()
59
+ return self._aggregator.count(hierarchies, data_sets)
30
60
 
31
- @lru_cache(maxsize=1)
32
- def _get_available_data_sets(self) -> DataSetList:
33
- return self.client.data_sets.list(limit=-1)
61
+ @lru_cache
62
+ def _get_available_data_sets(self, hierarchy: str | None = None) -> list[DataSet]:
63
+ if hierarchy is not None:
64
+ datasets = self._aggregator.used_data_sets(hierarchy)
65
+ return list(self.client.data_sets.retrieve_multiple(external_ids=datasets))
66
+ else:
67
+ return list(self.client.data_sets.list(limit=-1))
34
68
 
35
- @lru_cache(maxsize=1)
36
- def _get_available_hierarchies(self) -> AssetList:
37
- return self.client.assets.list(root=True, limit=-1)
69
+ @lru_cache
70
+ def _get_available_hierarchies(self, data_set: str | None = None) -> list[Asset]:
71
+ data_set_external_ids = [data_set] if data_set else None
72
+ return list(self.client.assets.list(root=True, limit=-1, data_set_external_ids=data_set_external_ids))
38
73
 
39
74
  def _create_choice(self, item: Asset | DataSet) -> tuple[questionary.Choice, int]:
40
75
  """Create a questionary choice for the given item."""
41
-
42
- if isinstance(item, DataSet):
43
- if item.external_id is None:
44
- raise ValueError(f"Missing external ID for DataSet {item.id}")
76
+ if item.external_id is None:
77
+ item_count = -1 # No count available for DataSet/Assets without external_id
78
+ elif isinstance(item, DataSet):
45
79
  item_count = self.aggregate_count(tuple(), (item.external_id,))
46
80
  elif isinstance(item, Asset):
47
- if item.external_id is None:
48
- raise ValueError(f"Missing external ID for Asset {item.id}")
49
81
  item_count = self.aggregate_count((item.external_id,), tuple())
50
82
  else:
51
- raise TypeError(f"Unsupported item type: {type(item)}")
83
+ raise ToolkitValueError(f"Unexpected item type: {type(item)}. Expected Asset or DataSet.")
52
84
 
53
85
  return questionary.Choice(
54
86
  title=f"{item.name} ({item.external_id}) [{item_count:,}]"
@@ -57,99 +89,784 @@ class AssetCentricInteractiveSelect:
57
89
  value=item.external_id,
58
90
  ), item_count
59
91
 
60
- def interactive_select_hierarchy_datasets(self) -> tuple[list[str], list[str]]:
61
- """Interactively select hierarchies and data sets to dump."""
62
- hierarchies: set[str] = set()
63
- data_sets: set[str] = set()
64
- while True:
65
- selected: list[str] = []
66
- if hierarchies:
67
- selected.append(f"Selected hierarchies: {sorted(hierarchies)}")
68
- else:
69
- selected.append("No hierarchy selected.")
70
- if data_sets:
71
- selected.append(f"Selected data sets: {sorted(data_sets)}")
72
- else:
73
- selected.append("No data set selected.")
74
- selected_str = "\n".join(selected)
75
- what = questionary.select(
76
- f"\n{selected_str}\nSelect a hierarchy or data set to dump",
77
- choices=["Hierarchy", "Data Set", "Done", "Abort"],
92
+ @overload
93
+ def select_hierarchy(self, allow_empty: Literal[False] = False) -> str: ...
94
+
95
+ @overload
96
+ def select_hierarchy(self, allow_empty: Literal[True]) -> str | None: ...
97
+
98
+ def select_hierarchy(self, allow_empty: Literal[False, True] = False) -> str | None:
99
+ """Select a hierarchy interactively."""
100
+ options = self._get_available_hierarchies()
101
+ return self._select("hierarchy", options, allow_empty, "single")
102
+
103
+ def select_hierarchies(self) -> list[str]:
104
+ options = self._get_available_hierarchies()
105
+ return self._select("hierarchies", options, False, "multiple")
106
+
107
+ @overload
108
+ def select_data_set(self, allow_empty: Literal[False] = False) -> str: ...
109
+
110
+ @overload
111
+ def select_data_set(self, allow_empty: Literal[True]) -> str | None: ...
112
+
113
+ def select_data_set(self, allow_empty: Literal[False, True] = False) -> str | None:
114
+ """Select a data set interactively."""
115
+ options = self._get_available_data_sets()
116
+ return self._select("data set", options, allow_empty, "single")
117
+
118
+ def select_data_sets(self) -> list[str]:
119
+ """Select multiple data sets interactively."""
120
+ options = self._get_available_data_sets()
121
+ return self._select("data sets", options, False, "multiple")
122
+
123
+ def select_hierarchies_and_data_sets(self) -> tuple[list[str], list[str]]:
124
+ what = self.select_hierarchies_or_data_sets()
125
+ if what == "Hierarchy":
126
+ hierarchy = self._select("hierarchy", self._get_available_hierarchies(), False, "single")
127
+ data_sets = self._get_available_data_sets(hierarchy=hierarchy)
128
+ if not data_sets:
129
+ return [hierarchy], []
130
+ selected_data_sets = self._select(f"data sets in hierarchy {hierarchy!r}", data_sets, True, "multiple")
131
+ return [hierarchy], selected_data_sets or []
132
+ elif what == "Data Set":
133
+ data_set = self._select("data Set", self._get_available_data_sets(), False, "single")
134
+ hierarchies = self._get_available_hierarchies(data_set=data_set)
135
+ if not hierarchies:
136
+ return [], [data_set]
137
+ selected_hierarchies = self._select(f"hierarchies in data set {data_set!r} ", hierarchies, True, "multiple")
138
+ return selected_hierarchies or [], [data_set]
139
+
140
+ def select_hierarchies_or_data_sets(self) -> Literal["Hierarchy", "Data Set"]:
141
+ what = questionary.select(
142
+ f"Do you want to {self.operation} a hierarchy or a data set?", choices=["Hierarchy", "Data Set"]
143
+ ).ask()
144
+ if what is None:
145
+ raise ToolkitValueError("No selection made. Aborting.")
146
+ if what not in ["Hierarchy", "Data Set"]:
147
+ raise ToolkitValueError(f"Unexpected selection: {what}. Aborting.")
148
+ return what
149
+
150
+ @overload
151
+ def _select(
152
+ self,
153
+ what: str,
154
+ options: Sequence[T_Type],
155
+ allow_empty: Literal[False],
156
+ plurality: Literal["single"],
157
+ ) -> str: ...
158
+
159
+ @overload
160
+ def _select(
161
+ self,
162
+ what: str,
163
+ options: Sequence[T_Type],
164
+ allow_empty: Literal[True],
165
+ plurality: Literal["single"],
166
+ ) -> str | None: ...
167
+
168
+ @overload
169
+ def _select(
170
+ self,
171
+ what: str,
172
+ options: Sequence[T_Type],
173
+ allow_empty: Literal[False],
174
+ plurality: Literal["multiple"],
175
+ ) -> list[str]: ...
176
+
177
+ @overload
178
+ def _select(
179
+ self,
180
+ what: str,
181
+ options: Sequence[T_Type],
182
+ allow_empty: Literal[True],
183
+ plurality: Literal["multiple"],
184
+ ) -> list[str] | None: ...
185
+
186
+ def _select(
187
+ self,
188
+ what: str,
189
+ options: Sequence[Asset | DataSet],
190
+ allow_empty: Literal[True, False],
191
+ plurality: Literal["single", "multiple"],
192
+ ) -> str | list[str] | None:
193
+ """Select a single item interactively."""
194
+ if not options and not allow_empty:
195
+ raise ToolkitValueError(f"No {what} available to select.")
196
+
197
+ choices: list[questionary.Choice] = []
198
+ none_sentinel = object()
199
+ if allow_empty:
200
+ choices.append(questionary.Choice(title=f"All {what}", value=none_sentinel))
201
+
202
+ for choice, count in sorted(
203
+ (self._create_choice(item) for item in options), key=lambda x: (-x[1], x[0].title)
204
+ ): # cont, choice.title
205
+ if count > 0:
206
+ choices.append(choice)
207
+ if not choices and not allow_empty:
208
+ raise ToolkitValueError(f"No {what} available with data to select.")
209
+
210
+ message = f"Select a {what} to {self.operation} listed as 'name (external_id) [count]'"
211
+ if plurality == "multiple":
212
+ selected = questionary.checkbox(message, choices=choices).ask()
213
+ else:
214
+ selected = questionary.select(message, choices=choices).ask()
215
+ if selected is None:
216
+ raise ToolkitValueError(f"No {what} selected. Aborting.")
217
+ elif selected is none_sentinel or (isinstance(selected, list) and none_sentinel in selected):
218
+ return None
219
+ return selected
220
+
221
+
222
+ class AssetInteractiveSelect(AssetCentricInteractiveSelect):
223
+ def _get_aggregator(self, client: ToolkitClient) -> AssetCentricAggregator:
224
+ return AssetAggregator(self.client)
225
+
226
+
227
+ class FileMetadataInteractiveSelect(AssetCentricInteractiveSelect):
228
+ def _get_aggregator(self, client: ToolkitClient) -> AssetCentricAggregator:
229
+ return FileAggregator(self.client)
230
+
231
+
232
+ class TimeSeriesInteractiveSelect(AssetCentricInteractiveSelect):
233
+ def _get_aggregator(self, client: ToolkitClient) -> AssetCentricAggregator:
234
+ return TimeSeriesAggregator(self.client)
235
+
236
+
237
+ class EventInteractiveSelect(AssetCentricInteractiveSelect):
238
+ def _get_aggregator(self, client: ToolkitClient) -> AssetCentricAggregator:
239
+ return EventAggregator(self.client)
240
+
241
+
242
+ class RawTableInteractiveSelect:
243
+ def __init__(self, client: ToolkitClient, operation: str) -> None:
244
+ self.client = client
245
+ self.operation = operation
246
+
247
+ def _available_databases(self) -> list[str]:
248
+ databases = self.client.raw.databases.list(limit=-1)
249
+ return [db.name for db in databases if db.name is not None]
250
+
251
+ def _available_tables(self, database: str) -> list[RawTable]:
252
+ tables = self.client.raw.tables.list(db_name=database, limit=-1)
253
+ return [RawTable(database, table.name) for table in tables if table.name is not None]
254
+
255
+ def select_tables(self, database: str | None = None) -> list[RawTable]:
256
+ """Interactively select raw tables."""
257
+ databases = self._available_databases()
258
+ if not databases:
259
+ raise ToolkitValueError("No raw databases available. Aborting.")
260
+ if database and database not in databases:
261
+ raise ToolkitValueError(
262
+ f"Database '{database}' not found in available raw databases: {databases}. Aborting."
263
+ )
264
+ elif database:
265
+ selected_database = database
266
+ else:
267
+ selected_database = questionary.select(
268
+ f"Select a Raw Database to {self.operation}",
269
+ choices=[questionary.Choice(title=db, value=db) for db in databases],
78
270
  ).ask()
271
+ if selected_database is None:
272
+ raise ToolkitValueError("No database selected. Aborting.")
273
+ available_tables = self._available_tables(selected_database)
274
+ if not available_tables:
275
+ raise ToolkitValueError(f"No raw tables available in database '{selected_database}'. Aborting.")
276
+
277
+ selected_tables = questionary.checkbox(
278
+ f"Select Raw Tables in {selected_database} to {self.operation}",
279
+ choices=[questionary.Choice(title=f"{table.table_name}", value=table) for table in available_tables],
280
+ ).ask()
281
+
282
+ if selected_tables is None:
283
+ raise ToolkitValueError("No tables selected. Aborting.")
284
+ return selected_tables
285
+
286
+
287
+ @dataclass
288
+ class CanvasFilter:
289
+ visibility: Literal["public", "private"] | None = None
290
+ created_by: Literal["user"] | None = None
291
+ select_all: bool = False
292
+
293
+ def as_dms_filter(self) -> filters.Filter:
294
+ canvas_id = Canvas.get_source()
295
+ leaf_filters: list[filters.Filter] = [
296
+ filters.Not(filters.Equals(canvas_id.as_property_ref("isArchived"), True)),
297
+ # When sourceCanvasId is not set, we get the newest version of the canvas
298
+ filters.Not(filters.Exists(canvas_id.as_property_ref("sourceCanvasId"))),
299
+ ]
300
+ if self.visibility is not None:
301
+ leaf_filters.append(filters.Equals(canvas_id.as_property_ref("visibility"), self.visibility))
302
+
303
+ return filters.And(*leaf_filters)
304
+
305
+
306
+ class InteractiveCanvasSelect:
307
+ opening_choices: ClassVar[list[questionary.Choice]] = [
308
+ questionary.Choice(title="All public Canvases", value=CanvasFilter(visibility="public", select_all=True)),
309
+ questionary.Choice(title="Selected public Canvases", value=CanvasFilter(visibility="public", select_all=False)),
310
+ questionary.Choice(
311
+ title="All public Canvases by given user",
312
+ value=CanvasFilter(created_by="user", select_all=True, visibility="public"),
313
+ ),
314
+ questionary.Choice(
315
+ title="Selected public Canvases by given user",
316
+ value=CanvasFilter(created_by="user", select_all=False, visibility="public"),
317
+ ),
318
+ ]
319
+
320
+ def __init__(self, client: ToolkitClient) -> None:
321
+ self.client = client
322
+
323
+ def select_external_ids(self) -> list[str]:
324
+ select_filter = self._select_filter()
79
325
 
80
- if what == "Done":
81
- break
82
- elif what == "Abort":
83
- return [], []
84
- elif what == "Hierarchy":
85
- options = [asset for asset in self._get_available_hierarchies() if asset.external_id not in hierarchies]
86
- selected_hierarchy = self._select(what, options)
87
- if selected_hierarchy:
88
- hierarchies.update(selected_hierarchy)
89
- else:
90
- print("No hierarchy selected.")
91
- elif what == "Data Set":
92
- available_data_sets = [
93
- data_set for data_set in self._get_available_data_sets() if data_set.external_id not in data_sets
94
- ]
95
- selected_data_set = self._select(what, available_data_sets)
96
- if selected_data_set:
97
- data_sets.update(selected_data_set)
98
- else:
99
- print("No data set selected.")
100
- return list(hierarchies), list(data_sets)
101
-
102
- def _select(self, what: str, options: list[Asset] | list[DataSet]) -> str | None:
103
- return questionary.checkbox(
104
- f"Select a {what} listed as 'name (external_id) [count]'",
326
+ return self._select_external_ids(select_filter)
327
+
328
+ @classmethod
329
+ def _select_filter(cls) -> CanvasFilter:
330
+ user_response = questionary.select(
331
+ "Which Canvases do you want to select?",
332
+ choices=cls.opening_choices,
333
+ ).ask()
334
+ if user_response is None:
335
+ raise ToolkitValueError("No Canvas selection made. Aborting.")
336
+ return user_response
337
+
338
+ def _select_external_ids(self, select_filter: CanvasFilter) -> list[str]:
339
+ available_canvases = self.client.canvas.list(filter=select_filter.as_dms_filter(), limit=-1)
340
+ if select_filter.select_all and select_filter.created_by is None:
341
+ return [canvas.external_id for canvas in available_canvases]
342
+ users = self.client.iam.user_profiles.list(limit=-1)
343
+ display_name_by_user_identifier = {user.user_identifier: user.display_name or "missing" for user in users}
344
+ if select_filter.created_by == "user":
345
+ canvas_by_user: dict[str, list[Canvas]] = defaultdict(list)
346
+ for canvas in available_canvases:
347
+ canvas_by_user[canvas.created_by].append(canvas)
348
+
349
+ user_response = questionary.select(
350
+ "Which user do you want to select Canvases for?",
351
+ choices=[
352
+ questionary.Choice(
353
+ title=f"{user.display_name} ({user.user_identifier})",
354
+ value=canvas_by_user[user.user_identifier],
355
+ )
356
+ for user in users
357
+ if user.user_identifier in canvas_by_user
358
+ ],
359
+ ).ask()
360
+ available_canvases = NodeList[Canvas](user_response)
361
+
362
+ if select_filter.select_all:
363
+ return [canvas.external_id for canvas in available_canvases]
364
+
365
+ selected_canvases = questionary.checkbox(
366
+ "Select Canvases",
105
367
  choices=[
106
- choice
107
- for choice, count in (
108
- # MyPy does not seem to understand that item is Asset | DataSet
109
- self._create_choice(item) # type: ignore[arg-type]
110
- for item in sorted(options, key=lambda x: x.name or x.external_id)
368
+ questionary.Choice(
369
+ title=f"{canvas.name} (Created by {display_name_by_user_identifier[canvas.created_by]!r}, last updated {canvas.updated_at!r})",
370
+ value=canvas.external_id,
111
371
  )
112
- if count > 0
372
+ for canvas in available_canvases
113
373
  ],
114
374
  ).ask()
115
375
 
376
+ return selected_canvases or []
116
377
 
117
- class AssetInteractiveSelect(AssetCentricInteractiveSelect):
118
- def _aggregate_count(self, hierarchies: list[str], data_sets: list[str]) -> int:
119
- return self.client.assets.aggregate_count(
120
- filter=AssetFilter(
121
- data_set_ids=[{"externalId": item} for item in data_sets] or None,
122
- asset_subtree_ids=[{"externalId": item} for item in hierarchies] or None,
378
+
379
+ @dataclass
380
+ class ChartFilter:
381
+ visibility: Visibility | None = None
382
+ owned_by: Literal["user"] | None = None
383
+ select_all: bool = False
384
+
385
+
386
+ class InteractiveChartSelect:
387
+ opening_choices: ClassVar[list[questionary.Choice]] = [
388
+ questionary.Choice(title="All public Charts", value=ChartFilter(visibility="PUBLIC", select_all=True)),
389
+ questionary.Choice(title="Selected public Charts", value=ChartFilter(visibility="PUBLIC", select_all=False)),
390
+ questionary.Choice(title="All owned by given user", value=ChartFilter(owned_by="user", select_all=True)),
391
+ questionary.Choice(title="Selected owned by given user", value=ChartFilter(owned_by="user", select_all=False)),
392
+ ]
393
+
394
+ def __init__(self, client: ToolkitClient) -> None:
395
+ self.client = client
396
+
397
+ def select_external_ids(self) -> list[str]:
398
+ select_filter = self._select_filter()
399
+ return self._select_external_ids(select_filter)
400
+
401
+ @classmethod
402
+ def _select_filter(cls) -> ChartFilter:
403
+ user_response = questionary.select(
404
+ "Which Charts do you want to select?",
405
+ choices=cls.opening_choices,
406
+ ).ask()
407
+ if user_response is None:
408
+ raise ToolkitValueError("No Chart selection made. Aborting.")
409
+ return user_response
410
+
411
+ def _select_external_ids(self, select_filter: ChartFilter) -> list[str]:
412
+ available_charts = self.client.charts.list(visibility=(select_filter.visibility or "PUBLIC"))
413
+ if select_filter.select_all and select_filter.owned_by is None:
414
+ return [chart.external_id for chart in available_charts]
415
+
416
+ users = self.client.iam.user_profiles.list(limit=-1)
417
+ display_name_by_user_identifier = {
418
+ user.user_identifier: user.display_name for user in users if user.display_name
419
+ }
420
+ if select_filter.owned_by == "user":
421
+ available_charts = self._select_charts_by_user(available_charts, users)
422
+ if select_filter.select_all:
423
+ return [chart.external_id for chart in available_charts]
424
+ selected_charts = questionary.checkbox(
425
+ "Select Charts",
426
+ choices=[
427
+ questionary.Choice(
428
+ title=f"{chart.data.name} (Created by "
429
+ f"{display_name_by_user_identifier.get(chart.owner_id, 'missing')!r} "
430
+ f"- {ms_to_datetime(chart.last_updated_time)})",
431
+ value=chart.external_id,
432
+ )
433
+ for chart in available_charts
434
+ ],
435
+ ).ask()
436
+ return selected_charts or []
437
+
438
+ @classmethod
439
+ def _select_charts_by_user(cls, available_charts: ChartList, users: UserProfileList) -> ChartList:
440
+ chart_by_user: dict[str, list[Chart]] = defaultdict(list)
441
+ for chart in available_charts:
442
+ chart_by_user[chart.owner_id].append(chart)
443
+ user_response = questionary.select(
444
+ "Which user do you want to select Charts for?",
445
+ choices=[
446
+ questionary.Choice(
447
+ title=f"{user.display_name} ({user.user_identifier})",
448
+ value=chart_by_user[user.user_identifier],
449
+ )
450
+ for user in users
451
+ if user.user_identifier in chart_by_user
452
+ ],
453
+ ).ask()
454
+ available_charts = ChartList(user_response)
455
+ return available_charts
456
+
457
+
458
+ class AssetCentricDestinationSelect:
459
+ valid_destinations: tuple[str, ...] = get_args(AssetCentricDestinationType)
460
+
461
+ @classmethod
462
+ def validate(cls, destination_type: str) -> AssetCentricDestinationType:
463
+ if destination_type not in cls.valid_destinations:
464
+ raise ToolkitValueError(
465
+ f"Invalid destination type: {destination_type!r}. Must be one of {humanize_collection(cls.valid_destinations)}."
123
466
  )
467
+ # We validated the destination type above
468
+ return destination_type # type: ignore[return-value]
469
+
470
+ @classmethod
471
+ def select(cls) -> AssetCentricDestinationType:
472
+ """Interactively select a destination type."""
473
+ destination_type = questionary.select(
474
+ "Select a destination type",
475
+ choices=[questionary.Choice(title=dest.capitalize(), value=dest) for dest in cls.valid_destinations],
476
+ ).ask()
477
+ if destination_type is None:
478
+ raise ToolkitValueError("No destination type selected. Aborting.")
479
+ # We only input valid destination types, so we can safely skip MyPy's type checking here
480
+ return destination_type
481
+
482
+ @classmethod
483
+ def get(cls, destination_type: str | None = None) -> AssetCentricDestinationType:
484
+ """Get the destination type, either from the input or interactively."""
485
+ if destination_type is None:
486
+ return cls.select()
487
+ return cls.validate(destination_type)
488
+
489
+
490
+ class DataModelingSelect:
491
+ """A utility class to select Data Modeling nodes interactively."""
492
+
493
+ def __init__(self, client: ToolkitClient, operation: str, console: Console | None = None) -> None:
494
+ self.client = client
495
+ self.operation = operation
496
+ self.console = console or Console()
497
+ self._available_spaces: SpaceList | None = None
498
+
499
+ @cached_property
500
+ def stats_by_space(self) -> dict[str, SpaceStatistics]:
501
+ result = self.client.data_modeling.statistics.spaces.list()
502
+ return {stat.space: stat for stat in result}
503
+
504
+ @overload
505
+ def select_view(
506
+ self,
507
+ multiselect: Literal[False] = False,
508
+ include_global: bool = False,
509
+ space: str | None = None,
510
+ message: str | None = None,
511
+ instance_type: Literal["node", "edge", "all"] | None = None,
512
+ mapped_container: ContainerId | None = None,
513
+ ) -> View: ...
514
+
515
+ @overload
516
+ def select_view(
517
+ self,
518
+ multiselect: Literal[True],
519
+ include_global: bool = False,
520
+ space: str | None = None,
521
+ message: str | None = None,
522
+ instance_type: Literal["node", "edge", "all"] | None = None,
523
+ mapped_container: ContainerId | None = None,
524
+ ) -> ViewList: ...
525
+
526
+ def select_view(
527
+ self,
528
+ multiselect: bool = False,
529
+ include_global: bool = False,
530
+ space: str | None = None,
531
+ message: str | None = None,
532
+ instance_type: Literal["node", "edge", "all"] | None = None,
533
+ mapped_container: ContainerId | None = None,
534
+ ) -> View | ViewList:
535
+ """Select one or more views interactively.
536
+
537
+ Args:
538
+ multiselect: Whether to allow selecting multiple views.
539
+ include_global: Whether to include global views in the selection.
540
+ space: The space to select views from. If None, the user will be prompted to
541
+ select a space.
542
+ message: The message to display when prompting for a view. If None, a default message
543
+ will be used.
544
+ instance_type: If 'node' or 'edge', only views of that type will be shown.
545
+ mapped_container: Only selects view(s) that are mapping the given container.
546
+
547
+ Returns:
548
+ The selected view(s).
549
+
550
+ Raises:
551
+ ToolkitValueError: If no view(s) are selected or if the selected view(s) are not valid.
552
+ ToolkitMissingResourceError: If no views are found in the selected space.
553
+
554
+ """
555
+ selected_space = (
556
+ space
557
+ or self.select_schema_space(
558
+ include_global,
559
+ message=f"In which Spaces is the view you will use to select instances to {self.operation}?",
560
+ ).space
124
561
  )
125
562
 
563
+ views = self.client.data_modeling.views.list(
564
+ space=selected_space,
565
+ include_inherited_properties=True,
566
+ limit=-1,
567
+ include_global=include_global,
568
+ )
569
+ views = ViewList(
570
+ [
571
+ view
572
+ for view in views
573
+ if instance_type in (None, "all", view.used_for)
574
+ and (mapped_container is None or mapped_container in view.referenced_containers())
575
+ ]
576
+ )
577
+ if not views:
578
+ raise ToolkitMissingResourceError(f"No views found in space {selected_space!r}.")
579
+ question = message or f"Which view do you want to use to select instances to {self.operation}?"
580
+ choices = [Choice(title=f"{view.external_id} (version={view.version})", value=view) for view in views]
581
+ if multiselect:
582
+ selected_views = questionary.checkbox(question, choices=choices).ask()
583
+ else:
584
+ selected_views = questionary.select(question, choices=choices).ask()
585
+ if selected_views is None:
586
+ raise ToolkitValueError("No view(s) selected")
587
+ if multiselect:
588
+ if not isinstance(selected_views, list) or not all(isinstance(v, View) for v in selected_views):
589
+ raise ToolkitValueError(f"Selected views is not a valid list of View objects: {selected_views!r}")
590
+ return ViewList(selected_views)
591
+ else:
592
+ if not isinstance(selected_views, View):
593
+ raise ToolkitValueError(f"Selected view is not a valid View object: {selected_views!r}")
594
+ return selected_views
126
595
 
127
- class FileMetadataInteractiveSelect(AssetCentricInteractiveSelect):
128
- def _aggregate_count(self, hierarchies: list[str], data_sets: list[str]) -> int:
129
- result = self.client.files.aggregate(
130
- filter=FileMetadataFilter(
131
- data_set_ids=[{"externalId": item} for item in data_sets] or None,
132
- asset_subtree_ids=[{"externalId": item} for item in hierarchies] or None,
596
+ def select_schema_space(self, include_global: bool, message: str | None = None) -> Space:
597
+ message = message or f"Select the space to {self.operation}:"
598
+ spaces = self._get_available_spaces(include_global)
599
+ schema_spaces = {
600
+ space
601
+ for space, stats in self.stats_by_space.items()
602
+ if (stats.containers + stats.views + stats.data_models) > 0
603
+ }
604
+ spaces = SpaceList([space for space in spaces if space.space in schema_spaces or space.is_global])
605
+ if not spaces:
606
+ raise ToolkitMissingResourceError("No spaces with schema (containers, views, or data models) found.")
607
+ selected_space = questionary.select(
608
+ message,
609
+ [Choice(title=space.space, value=space) for space in sorted(spaces, key=lambda s: s.space)],
610
+ ).ask()
611
+ if selected_space is None:
612
+ raise ToolkitValueError("No space selected")
613
+ if not isinstance(selected_space, Space):
614
+ raise ToolkitValueError(f"Selected space is not a valid Space object: {selected_space!r}")
615
+ return selected_space
616
+
617
+ def select_instance_type(
618
+ self, view_used_for: Literal["node", "edge", "all"] | None = None
619
+ ) -> Literal["node", "edge"]:
620
+ """Selects an instance type (node or edge) interactively.
621
+
622
+ Args:
623
+ view_used_for: If 'node' or 'edge', that type is returned directly.
624
+ If 'all' or None, the user is prompted to select.
625
+
626
+ Returns:
627
+ The selected instance type, either 'node' or 'edge'.
628
+ """
629
+ if view_used_for is not None and view_used_for != "all":
630
+ return view_used_for
631
+ selected_instance_type = questionary.select(
632
+ f"What type of instances do you want to {self.operation}?",
633
+ choices=[
634
+ Choice(title="Nodes", value="node"),
635
+ Choice(title="Edges", value="edge"),
636
+ ],
637
+ ).ask()
638
+ if selected_instance_type is None:
639
+ raise ToolkitValueError("No instance type selected")
640
+ if selected_instance_type not in ("node", "edge"):
641
+ raise ToolkitValueError(f"Selected instance type is not valid: {selected_instance_type!r}")
642
+ return selected_instance_type
643
+
644
+ def select_space_type(self) -> Literal["instance", "schema", "empty"]:
645
+ selected_space_type = questionary.select(
646
+ f"What type of spaces do you want to {self.operation}?",
647
+ choices=[
648
+ Choice(title="Instance spaces with instances", value="instance"),
649
+ Choice(title="Schema spaces with schema", value="schema"),
650
+ Choice(title="Empty spaces without schema or instances", value="empty"),
651
+ ],
652
+ ).ask()
653
+ if selected_space_type is None:
654
+ raise ToolkitValueError("No space type selected")
655
+ if selected_space_type not in ["instance", "schema", "empty"]:
656
+ raise ToolkitValueError(f"Selected space type is not valid: {selected_space_type!r}")
657
+ return selected_space_type
658
+
659
+ @overload
660
+ def select_instance_space(
661
+ self,
662
+ multiselect: Literal[False],
663
+ selected_view: ViewId | None = None,
664
+ instance_type: Literal["node", "edge"] | None = None,
665
+ message: str | None = None,
666
+ include_empty: bool = False,
667
+ ) -> str: ...
668
+
669
+ @overload
670
+ def select_instance_space(
671
+ self,
672
+ multiselect: Literal[True] = True,
673
+ selected_view: ViewId | None = None,
674
+ instance_type: Literal["node", "edge"] | None = None,
675
+ message: str | None = None,
676
+ include_empty: bool = False,
677
+ ) -> list[str]: ...
678
+
679
+ def select_instance_space(
680
+ self,
681
+ multiselect: bool = True,
682
+ selected_view: ViewId | None = None,
683
+ instance_type: Literal["node", "edge"] | None = None,
684
+ message: str | None = None,
685
+ include_empty: bool = False,
686
+ ) -> str | list[str]:
687
+ if (selected_view is not None and instance_type is None) or (
688
+ selected_view is None and instance_type is not None
689
+ ):
690
+ raise ToolkitValueError("Both selected_view and instance_type must be provided or both must be None.")
691
+ if selected_view is not None and instance_type is not None:
692
+ all_spaces = self._get_available_spaces(include_global=False)
693
+ count_by_space = self._get_instance_count_in_view_by_space(all_spaces, selected_view, instance_type)
694
+ else:
695
+ count_by_space = {
696
+ space: stats.nodes + stats.edges
697
+ for space, stats in self.stats_by_space.items()
698
+ if (stats.nodes + stats.edges) > 0
699
+ or (
700
+ include_empty
701
+ and (stats.nodes + stats.edges + stats.containers + stats.views + stats.data_models) == 0
702
+ )
703
+ }
704
+
705
+ if not count_by_space:
706
+ raise ToolkitMissingResourceError(
707
+ f"No instances found in any space for the view {selected_view!r} with instance type {instance_type!r}."
133
708
  )
134
- )
135
- return result[0].count if result else 0
709
+ if len(count_by_space) == 1:
710
+ selected_spaces = next(iter(count_by_space.keys()))
711
+ self.console.print(f"Only one space with instances found: {selected_spaces!r}. Using this space.")
712
+ return [selected_spaces] if multiselect else selected_spaces
136
713
 
714
+ if not message:
715
+ message = f"In which Space{'(s)' if multiselect else ''} do you want to {self.operation} instances?"
716
+ choices = [
717
+ Choice(title=f"{space} ({count:,} instances)", value=space)
718
+ for space, count in sorted(count_by_space.items(), key=lambda item: item[1], reverse=True)
719
+ ]
720
+ if multiselect:
721
+ selected_spaces = questionary.checkbox(message, choices=choices).ask()
722
+ else:
723
+ selected_spaces = questionary.select(message, choices=choices).ask()
724
+ if selected_spaces is None or (isinstance(selected_spaces, list) and len(selected_spaces) == 0):
725
+ raise ToolkitValueError(
726
+ f"No instance space selected to {self.operation}. Use arrow keys to navigate and space key to select. Press enter to confirm."
727
+ )
728
+ return selected_spaces
137
729
 
138
- class TimeSeriesInteractiveSelect(AssetCentricInteractiveSelect):
139
- def _aggregate_count(self, hierarchies: list[str], data_sets: list[str]) -> int:
140
- return self.client.time_series.aggregate_count(
141
- filter=TimeSeriesFilter(
142
- data_set_ids=[{"externalId": item} for item in data_sets] or None,
143
- asset_subtree_ids=[{"externalId": item} for item in hierarchies] or None,
730
+ @overload
731
+ def select_empty_spaces(self, multiselect: Literal[False]) -> str: ...
732
+ @overload
733
+ def select_empty_spaces(self, multiselect: Literal[True]) -> list[str]: ...
734
+
735
+ def select_empty_spaces(self, multiselect: bool = True) -> str | list[str]:
736
+ empty_spaces = [
737
+ space
738
+ for space, stats in self.stats_by_space.items()
739
+ if (stats.nodes + stats.edges + stats.containers + stats.views + stats.data_models) == 0
740
+ ]
741
+ if not empty_spaces:
742
+ raise ToolkitMissingResourceError("No empty spaces found.")
743
+ if len(empty_spaces) == 1:
744
+ selected_space = empty_spaces[0]
745
+ self.console.print(f"Only one empty space found: {selected_space!r}. Using this space.")
746
+ return [selected_space] if multiselect else selected_space
747
+
748
+ message = f"In which empty Space{'(s)' if multiselect else ''} do you want to {self.operation}?"
749
+ choices = [Choice(title=f"{space}", value=space) for space in sorted(empty_spaces)]
750
+ if multiselect:
751
+ selected_spaces = questionary.checkbox(message, choices=choices).ask()
752
+ else:
753
+ selected_spaces = questionary.select(message, choices=choices).ask()
754
+ if selected_spaces is None or (isinstance(selected_spaces, list) and len(selected_spaces) == 0):
755
+ raise ToolkitValueError(f"No empty space selected to {self.operation}. Aborting.")
756
+ return selected_spaces
757
+
758
+ def _get_instance_count_in_view_by_space(
759
+ self, all_spaces: SpaceList, view_id: ViewId, instance_type: Literal["node", "edge"]
760
+ ) -> dict[str, float]:
761
+ count_by_space: dict[str, float] = {}
762
+ result = self.client.data_modeling.statistics.project()
763
+ read_limit = result.concurrent_read_limit
764
+
765
+ with ThreadPoolExecutor(max_workers=read_limit // 2) as executor:
766
+ results = executor.map(
767
+ partial(self._instance_count_space, view_id=view_id, instance_type=instance_type),
768
+ (space.space for space in all_spaces),
144
769
  )
145
- )
770
+ for space_name, count in results:
771
+ if count > 0:
772
+ count_by_space[space_name] = count
146
773
 
774
+ return count_by_space
147
775
 
148
- class EventInteractiveSelect(AssetCentricInteractiveSelect):
149
- def _aggregate_count(self, hierarchies: list[str], data_sets: list[str]) -> int:
150
- return self.client.events.aggregate_count(
151
- filter=EventFilter(
152
- data_set_ids=[{"externalId": item} for item in data_sets] or None,
153
- asset_subtree_ids=[{"externalId": item} for item in hierarchies] or None,
776
+ @lru_cache
777
+ def _instance_count_space(
778
+ self, space: str, view_id: ViewId, instance_type: Literal["node", "edge"]
779
+ ) -> tuple[str, float]:
780
+ """Get the count of instances in a specific space for a given view and instance type."""
781
+ return space, self.client.data_modeling.instances.aggregate(
782
+ view_id, Count("externalId"), instance_type=instance_type, space=space
783
+ ).value or 0.0
784
+
785
+ def _get_available_spaces(self, include_global: bool = False) -> SpaceList:
786
+ if self._available_spaces is None:
787
+ self._available_spaces = self.client.data_modeling.spaces.list(include_global=True, limit=-1)
788
+ if include_global:
789
+ return self._available_spaces
790
+ return SpaceList([space for space in self._available_spaces if not space.is_global])
791
+
792
+
793
+ class ResourceViewMappingInteractiveSelect:
794
+ def __init__(self, client: ToolkitClient, operation: str) -> None:
795
+ self.client = client
796
+ self.operation = operation
797
+
798
+ def select_resource_view_mapping(self, resource_type: str) -> ResourceViewMapping:
799
+ """Select a Resource View Mapping interactively.
800
+
801
+ Args:
802
+ resource_type: The resource type to filter Resource View Mappings by.
803
+ Returns:
804
+ The selected Resource View Mapping.
805
+ """
806
+ mappings = self.client.migration.resource_view_mapping.list(resource_type=resource_type, limit=-1)
807
+ if not mappings:
808
+ raise ToolkitMissingResourceError(f"No Resource View Mappings found for resource type {resource_type!r}.")
809
+ choices = [
810
+ Choice(
811
+ title=f"{mapping.external_id} ({mapping.view_id!r})",
812
+ value=mapping,
154
813
  )
155
- )
814
+ for mapping in mappings
815
+ ]
816
+ selected_mapping = questionary.select(
817
+ f"Which Resource View Mapping do you want to use to {self.operation}? [identifier] (ingestion view)",
818
+ choices=choices,
819
+ ).ask()
820
+ if selected_mapping is None:
821
+ raise ToolkitValueError("No Resource View Mapping selected.")
822
+ if not isinstance(selected_mapping, ResourceViewMapping):
823
+ raise ToolkitValueError(
824
+ f"Selected Resource View Mapping is not a valid ResourceViewMapping object: {selected_mapping!r}"
825
+ )
826
+ return selected_mapping
827
+
828
+
829
+ class ThreeDInteractiveSelect:
830
+ def __init__(self, client: ToolkitClient, operation: str) -> None:
831
+ self.client = client
832
+ self.operation = operation
833
+
834
+ def select_three_d_models(self, model_type: Literal["classic", "dm"] | None = None) -> list[ThreeDModelResponse]:
835
+ """Select multiple 3D models interactively."""
836
+ if model_type is None:
837
+ model_type = questionary.select(
838
+ f"What type of 3D models do you want to {self.operation}?",
839
+ choices=[
840
+ Choice(title="Classic models", value="classic"),
841
+ Choice(title="Data modeling 3D", value="dm"),
842
+ ],
843
+ ).ask()
844
+ if model_type is None:
845
+ raise ToolkitValueError("No 3D model type selected.")
846
+ published = questionary.select(
847
+ f"Do you want to {self.operation} published or unpublished 3D models?",
848
+ choices=[
849
+ Choice(title="Published models", value=True),
850
+ Choice(title="Unpublished models", value=False),
851
+ Choice(title="Both published and unpublished models", value=None),
852
+ ],
853
+ ).ask()
854
+
855
+ models = self.client.tool.three_d.models.list(published=published, include_revision_info=True, limit=None)
856
+ if model_type == "classic":
857
+ models = [model for model in models if model.space is None]
858
+ else:
859
+ models = [model for model in models if model.space is not None]
860
+ if not models:
861
+ raise ToolkitMissingResourceError(
862
+ f"No 3D models found for type {model_type!r} with published={published!r}."
863
+ )
864
+
865
+ choices = [Choice(title=f"{model.name} ({model.id})", value=model) for model in models]
866
+ selected_models = questionary.checkbox(
867
+ f"Select 3D models to {self.operation}:",
868
+ choices=choices,
869
+ ).ask()
870
+ if selected_models is None or len(selected_models) == 0:
871
+ raise ToolkitValueError("No 3D models selected.")
872
+ return selected_models