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
@@ -11,14 +11,13 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
- from __future__ import annotations
14
+
15
15
 
16
16
  import re
17
17
  import sys
18
18
  import time
19
19
  from collections import defaultdict
20
20
  from collections.abc import Hashable, Iterable, Sequence
21
- from functools import lru_cache
22
21
  from graphlib import CycleError, TopologicalSorter
23
22
  from pathlib import Path
24
23
  from time import sleep
@@ -35,29 +34,26 @@ from cognite.client.data_classes.capabilities import (
35
34
  from cognite.client.data_classes.data_modeling import (
36
35
  Container,
37
36
  ContainerApply,
38
- ContainerApplyList,
39
37
  ContainerList,
40
38
  DataModel,
41
39
  DataModelApply,
42
- DataModelApplyList,
43
40
  DataModelList,
41
+ DirectRelation,
44
42
  Edge,
45
43
  EdgeApply,
46
- EdgeApplyList,
47
44
  EdgeApplyResultList,
48
45
  EdgeList,
46
+ MappedProperty,
49
47
  Node,
50
48
  NodeApply,
51
- NodeApplyList,
52
49
  NodeApplyResultList,
53
50
  NodeList,
51
+ RequiresConstraint,
54
52
  Space,
55
53
  SpaceApply,
56
- SpaceApplyList,
57
54
  SpaceList,
58
55
  View,
59
56
  ViewApply,
60
- ViewApplyList,
61
57
  ViewList,
62
58
  )
63
59
  from cognite.client.data_classes.data_modeling.graphql import DMLApplyResult
@@ -68,7 +64,6 @@ from cognite.client.data_classes.data_modeling.ids import (
68
64
  NodeId,
69
65
  ViewId,
70
66
  )
71
- from cognite.client.data_classes.data_modeling.views import ReverseDirectRelationApply
72
67
  from cognite.client.exceptions import CogniteAPIError
73
68
  from cognite.client.utils.useful_types import SequenceNotStr
74
69
  from rich import print
@@ -76,49 +71,54 @@ from rich.console import Console
76
71
  from rich.markup import escape
77
72
  from rich.panel import Panel
78
73
 
79
- from cognite_toolkit._cdf_tk._parameters import ANY_INT, ANY_STR, ANYTHING, ParameterSpec, ParameterSpecSet
74
+ from cognite_toolkit._cdf_tk import constants
80
75
  from cognite_toolkit._cdf_tk.client import ToolkitClient
81
76
  from cognite_toolkit._cdf_tk.client.data_classes.graphql_data_models import (
82
77
  GraphQLDataModel,
83
78
  GraphQLDataModelList,
84
79
  GraphQLDataModelWrite,
85
- GraphQLDataModelWriteList,
86
80
  )
87
81
  from cognite_toolkit._cdf_tk.constants import BUILD_FOLDER_ENCODING, HAS_DATA_FILTER_LIMIT
82
+ from cognite_toolkit._cdf_tk.cruds._base_cruds import (
83
+ ResourceContainerCRUD,
84
+ ResourceCRUD,
85
+ )
88
86
  from cognite_toolkit._cdf_tk.exceptions import GraphQLParseError, ToolkitCycleError, ToolkitFileNotFoundError
89
- from cognite_toolkit._cdf_tk.loaders._base_loaders import (
90
- ResourceContainerLoader,
91
- ResourceLoader,
87
+ from cognite_toolkit._cdf_tk.resource_classes import (
88
+ ContainerYAML,
89
+ DataModelYAML,
90
+ EdgeYAML,
91
+ GraphQLDataModelYAML,
92
+ NodeYAML,
93
+ SpaceYAML,
94
+ ViewYAML,
92
95
  )
93
96
  from cognite_toolkit._cdf_tk.tk_warnings import HighSeverityWarning, LowSeverityWarning, MediumSeverityWarning
94
97
  from cognite_toolkit._cdf_tk.utils import (
95
98
  GraphQLParser,
96
- calculate_str_or_file_hash,
99
+ calculate_hash,
97
100
  in_dict,
98
101
  load_yaml_inject_variables,
99
102
  quote_int_value_by_key_in_yaml,
100
103
  safe_read,
104
+ sanitize_filename,
101
105
  to_diff,
102
- to_directory_compatible,
103
106
  )
104
107
  from cognite_toolkit._cdf_tk.utils.cdf import iterate_instances
105
108
  from cognite_toolkit._cdf_tk.utils.diff_list import diff_list_identifiable, dm_identifier
106
- from cognite_toolkit._cdf_tk.utils.tarjan import tarjan
107
109
 
108
- from .auth_loaders import GroupAllScopedLoader
110
+ from .auth import GroupAllScopedCRUD
109
111
 
110
112
 
111
113
  @final
112
- class SpaceLoader(ResourceContainerLoader[str, SpaceApply, Space, SpaceApplyList, SpaceList]):
114
+ class SpaceCRUD(ResourceContainerCRUD[str, SpaceApply, Space]):
113
115
  item_name = "nodes and edges"
114
- folder_name = "data_models"
115
- filename_pattern = r"^.*space$"
116
+ folder_name = "data_modeling"
116
117
  resource_cls = Space
117
118
  resource_write_cls = SpaceApply
118
- list_write_cls = SpaceApplyList
119
- list_cls = SpaceList
120
119
  kind = "Space"
121
- dependencies = frozenset({GroupAllScopedLoader})
120
+ yaml_cls = SpaceYAML
121
+ dependencies = frozenset({GroupAllScopedCRUD})
122
122
  _doc_url = "Spaces/operation/ApplySpaces"
123
123
  delete_recreate_limit_seconds: int = 10
124
124
 
@@ -240,19 +240,26 @@ class SpaceLoader(ResourceContainerLoader[str, SpaceApply, Space, SpaceApplyList
240
240
  yield instances.as_ids()
241
241
 
242
242
 
243
- class ContainerLoader(
244
- ResourceContainerLoader[ContainerId, ContainerApply, Container, ContainerApplyList, ContainerList]
245
- ):
243
+ class ContainerCRUD(ResourceContainerCRUD[ContainerId, ContainerApply, Container]):
246
244
  item_name = "nodes and edges"
247
- folder_name = "data_models"
248
- filename_pattern = r"^.*container$"
245
+ folder_name = "data_modeling"
249
246
  resource_cls = Container
250
247
  resource_write_cls = ContainerApply
251
- list_cls = ContainerList
252
- list_write_cls = ContainerApplyList
253
248
  kind = "Container"
254
- dependencies = frozenset({SpaceLoader})
249
+ dependencies = frozenset({SpaceCRUD})
250
+ yaml_cls = ContainerYAML
255
251
  _doc_url = "Containers/operation/ApplyContainers"
252
+ sub_folder_name = "containers"
253
+
254
+ def __init__(
255
+ self,
256
+ client: ToolkitClient,
257
+ build_dir: Path | None,
258
+ console: Console | None = None,
259
+ topological_sort_implements: bool = False,
260
+ ) -> None:
261
+ super().__init__(client, build_dir, console)
262
+ self._container_by_id: dict[ContainerId, Container] = {}
256
263
 
257
264
  @property
258
265
  def display_name(self) -> str:
@@ -273,7 +280,7 @@ class ContainerLoader(
273
280
  else DataModelsAcl.Scope.All()
274
281
  )
275
282
 
276
- return DataModelsAcl(actions, scope) # type: ignore[arg-type]
283
+ return DataModelsAcl(actions, scope)
277
284
 
278
285
  @classmethod
279
286
  def get_id(cls, item: ContainerApply | Container | dict) -> ContainerId:
@@ -289,9 +296,9 @@ class ContainerLoader(
289
296
  return id.dump(include_type=False)
290
297
 
291
298
  @classmethod
292
- def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceLoader], Hashable]]:
299
+ def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
293
300
  if "space" in item:
294
- yield SpaceLoader, item["space"]
301
+ yield SpaceCRUD, item["space"]
295
302
  # Note that we are very careful in the code below to not raise an exception if the
296
303
  # item is not properly formed. If that is the case, an appropriate warning will be given elsewhere.
297
304
  for prop in item.get("properties", {}).values():
@@ -303,12 +310,13 @@ class ContainerLoader(
303
310
  container = prop_type["container"]
304
311
  if "space" in container and "externalId" in container and container.get("type") == "container":
305
312
  yield (
306
- ContainerLoader,
313
+ ContainerCRUD,
307
314
  ContainerId(space=container["space"], external_id=container["externalId"]),
308
315
  )
309
316
 
310
317
  def dump_resource(self, resource: Container, local: dict[str, Any] | None = None) -> dict[str, Any]:
311
318
  dumped = resource.as_write().dump()
319
+ has_local = local is not None
312
320
  local = local or {}
313
321
  for key in ["constraints", "indexes"]:
314
322
  if not dumped.get(key) and key not in local:
@@ -320,15 +328,16 @@ class ContainerLoader(
320
328
  continue
321
329
  local_prop = local_prop_by_id[prop_id]
322
330
  for key, default in [("immutable", False), ("autoIncrement", False), ("nullable", True)]:
323
- if cdf_prop.get(key) is default and key not in local_prop:
331
+ if has_local and cdf_prop.get(key) is default and key not in local_prop:
324
332
  cdf_prop.pop(key, None)
325
333
  cdf_type = cdf_prop.get("type", {})
326
334
  local_type = local_prop.get("type", {})
327
335
  for key, type_default in [("list", False), ("collation", "ucs_basic")]:
328
- if cdf_type.get(key) == type_default and key not in local_type:
336
+ if has_local and cdf_type.get(key) == type_default and key not in local_type:
329
337
  cdf_type.pop(key, None)
330
- if "usedFor" not in local:
331
- dumped.pop("usedFor", None)
338
+ if has_local and "usedFor" not in local and dumped.get("usedFor") == "node":
339
+ # Only drop if set to default by server.
340
+ dumped.pop("usedFor", None)
332
341
  return dumped
333
342
 
334
343
  def create(self, items: Sequence[ContainerApply]) -> ContainerList:
@@ -420,78 +429,89 @@ class ContainerLoader(
420
429
  ):
421
430
  yield instances.as_ids()
422
431
 
432
+ def _lookup_containers(self, container_ids: Sequence[ContainerId]) -> dict[ContainerId, Container]:
433
+ ids_to_lookup = [container_id for container_id in container_ids if container_id not in self._container_by_id]
434
+ if ids_to_lookup:
435
+ retrieved_containers = self.client.data_modeling.containers.retrieve(ids_to_lookup)
436
+ for container in retrieved_containers:
437
+ self._container_by_id[container.as_id()] = container
438
+ if missing_container_ids := set(container_ids) - set(self._container_by_id.keys()):
439
+ MediumSeverityWarning(
440
+ f"Containers {missing_container_ids} not found or you don't have permission to access them."
441
+ ).print_warning(console=self.console)
442
+ return {
443
+ container_id: self._container_by_id[container_id]
444
+ for container_id in container_ids
445
+ if container_id in self._container_by_id
446
+ }
447
+
448
+ def _find_direct_container_dependencies(
449
+ self, container_ids: Sequence[ContainerId]
450
+ ) -> dict[ContainerId, set[ContainerId]]:
451
+ containers_by_id = self._lookup_containers(container_ids)
452
+ container_dependencies: dict[ContainerId, set[ContainerId]] = defaultdict(set)
453
+ for container_id, container in containers_by_id.items():
454
+ for constraint in container.constraints.values():
455
+ if not isinstance(constraint, RequiresConstraint):
456
+ continue
457
+ container_dependencies[container_id].add(constraint.require)
458
+ for property in container.properties.values():
459
+ if not isinstance(property.type, DirectRelation) or property.type.container is None:
460
+ continue
461
+ container_dependencies[container_id].add(property.type.container)
462
+ return container_dependencies
463
+
464
+ def _propagate_indirect_container_dependencies(
465
+ self, container_dependencies_by_id: dict[ContainerId, set[ContainerId]], dependants: Sequence[ContainerId]
466
+ ) -> dict[ContainerId, set[ContainerId]]:
467
+ """Propagate indirect container dependencies using a recursive approach.
468
+
469
+ Args:
470
+ container_dependencies_by_id: Mapping of container IDs to their direct dependencies
471
+ dependants: Chain of dependant containers to propagate dependencies to
472
+
473
+ Returns:
474
+ Updated dictionary mapping each container ID to all its direct and indirect dependencies
475
+ """
476
+ current_container_id = dependants[0]
477
+ dependencies_to_propagate: set[ContainerId] = set()
478
+ for container_dependency in container_dependencies_by_id[current_container_id]:
479
+ if container_dependency in container_dependencies_by_id:
480
+ # If already processed, propagate its dependencies to current container instead of revisiting it
481
+ dependencies_to_propagate.update(container_dependencies_by_id[container_dependency])
482
+ continue
483
+ self._propagate_indirect_container_dependencies(
484
+ container_dependencies_by_id, [container_dependency, *dependants]
485
+ )
486
+ container_dependencies_by_id[current_container_id].update(dependencies_to_propagate)
487
+ return container_dependencies_by_id
488
+
489
+ def _find_direct_and_indirect_container_dependencies(
490
+ self, container_ids: Sequence[ContainerId]
491
+ ) -> dict[ContainerId, set[ContainerId]]:
492
+ container_dependencies_by_id = self._find_direct_container_dependencies(container_ids)
493
+ for container_id in list(container_dependencies_by_id.keys()):
494
+ self._propagate_indirect_container_dependencies(container_dependencies_by_id, [container_id])
495
+ return container_dependencies_by_id
496
+
423
497
  @staticmethod
424
498
  def _chunker(seq: Sequence, size: int) -> Iterable[Sequence]:
425
499
  return (seq[pos : pos + size] for pos in range(0, len(seq), size))
426
500
 
427
- @classmethod
428
- @lru_cache(maxsize=1)
429
- def get_write_cls_parameter_spec(cls) -> ParameterSpecSet:
430
- output = super().get_write_cls_parameter_spec()
431
- # In the SDK this is called isList, while in the API it is called list.
432
- output.discard(
433
- ParameterSpec(
434
- ("properties", ANY_STR, "type", "isList"), frozenset({"bool"}), is_required=True, _is_nullable=False
435
- )
436
- )
437
- output.add(
438
- ParameterSpec(
439
- ("properties", ANY_STR, "type", "list"), frozenset({"bool"}), is_required=True, _is_nullable=False
440
- )
441
- )
442
- # The parameters below are used by the SDK to load the correct class, and ase thus not part of the init
443
- # that the spec is created from, so we need to add them manually.
444
- output.update(
445
- ParameterSpecSet(
446
- {
447
- ParameterSpec(
448
- ("properties", ANY_STR, "type", "type"),
449
- frozenset({"str"}),
450
- is_required=True,
451
- _is_nullable=False,
452
- ),
453
- ParameterSpec(
454
- # direct relations with constraint
455
- ("properties", ANY_STR, "type", "container", "type"),
456
- frozenset({"str"}),
457
- is_required=True,
458
- _is_nullable=False,
459
- ),
460
- ParameterSpec(
461
- ("constraints", ANY_STR, "constraintType"),
462
- frozenset({"str"}),
463
- is_required=True,
464
- _is_nullable=False,
465
- ),
466
- ParameterSpec(
467
- ("constraints", ANY_STR, "require", "type"),
468
- frozenset({"str"}),
469
- is_required=True,
470
- _is_nullable=False,
471
- ),
472
- ParameterSpec(
473
- ("indexes", ANY_STR, "indexType"), frozenset({"str"}), is_required=True, _is_nullable=False
474
- ),
475
- }
476
- )
477
- )
478
- return output
479
-
480
501
  @classmethod
481
502
  def as_str(cls, id: ContainerId) -> str:
482
- return to_directory_compatible(f"{id.space}_{id.external_id}")
503
+ return sanitize_filename(f"{id.space}_{id.external_id}")
483
504
 
484
505
 
485
- class ViewLoader(ResourceLoader[ViewId, ViewApply, View, ViewApplyList, ViewList]):
486
- folder_name = "data_models"
487
- filename_pattern = r"^.*view$"
506
+ class ViewCRUD(ResourceCRUD[ViewId, ViewApply, View]):
507
+ folder_name = "data_modeling"
488
508
  resource_cls = View
489
509
  resource_write_cls = ViewApply
490
- list_cls = ViewList
491
- list_write_cls = ViewApplyList
492
510
  kind = "View"
493
- dependencies = frozenset({SpaceLoader, ContainerLoader})
511
+ dependencies = frozenset({SpaceCRUD, ContainerCRUD})
512
+ yaml_cls = ViewYAML
494
513
  _doc_url = "Views/operation/ApplyViews"
514
+ sub_folder_name = "views"
495
515
 
496
516
  def __init__(
497
517
  self,
@@ -523,7 +543,7 @@ class ViewLoader(ResourceLoader[ViewId, ViewApply, View, ViewApplyList, ViewList
523
543
  else DataModelsAcl.Scope.All()
524
544
  )
525
545
 
526
- return DataModelsAcl(actions, scope) # type: ignore[arg-type]
546
+ return DataModelsAcl(actions, scope)
527
547
 
528
548
  @classmethod
529
549
  def get_id(cls, item: ViewApply | View | dict) -> ViewId:
@@ -540,33 +560,33 @@ class ViewLoader(ResourceLoader[ViewId, ViewApply, View, ViewApplyList, ViewList
540
560
  return id.dump(include_type=False)
541
561
 
542
562
  @classmethod
543
- def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceLoader], Hashable]]:
563
+ def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
544
564
  if "space" in item:
545
- yield SpaceLoader, item["space"]
565
+ yield SpaceCRUD, item["space"]
546
566
  if isinstance(implements := item.get("implements", []), list):
547
567
  for parent in implements:
548
568
  if not isinstance(parent, dict):
549
569
  continue
550
570
  if parent.get("type") == "view" and in_dict(["space", "externalId", "version"], parent):
551
571
  yield (
552
- ViewLoader,
572
+ ViewCRUD,
553
573
  ViewId(parent["space"], parent["externalId"], str(v) if (v := parent.get("version")) else None),
554
574
  )
555
575
  for prop in item.get("properties", {}).values():
556
576
  if (container := prop.get("container", {})) and container.get("type") == "container":
557
577
  if in_dict(("space", "externalId"), container):
558
- yield ContainerLoader, ContainerId(container["space"], container["externalId"])
578
+ yield ContainerCRUD, ContainerId(container["space"], container["externalId"])
559
579
  for key, dct_ in [("source", prop), ("edgeSource", prop), ("source", prop.get("through", {}))]:
560
580
  if source := dct_.get(key, {}):
561
581
  if source.get("type") == "view" and in_dict(("space", "externalId", "version"), source):
562
582
  yield (
563
- ViewLoader,
583
+ ViewCRUD,
564
584
  ViewId(
565
585
  source["space"], source["externalId"], str(v) if (v := source.get("version")) else None
566
586
  ),
567
587
  )
568
588
  elif source.get("type") == "container" and in_dict(("space", "externalId"), source):
569
- yield ContainerLoader, ContainerId(source["space"], source["externalId"])
589
+ yield ContainerCRUD, ContainerId(source["space"], source["externalId"])
570
590
 
571
591
  def safe_read(self, filepath: Path | str) -> str:
572
592
  # The version is a string, but the user often writes it as an int.
@@ -580,10 +600,19 @@ class ViewLoader(ResourceLoader[ViewId, ViewApply, View, ViewApplyList, ViewList
580
600
  dumped = resource.as_write().dump()
581
601
  local = local or {}
582
602
  if not dumped.get("properties") and not local.get("properties"):
583
- # All properties were removed, so we remove the properties key.
584
- dumped.pop("properties", None)
603
+ if "properties" in local:
604
+ # In case the properties is an empty dict, we still want to keep it in the dump.
605
+ # such that the dumped evaluates to the same as the local.
606
+ dumped["properties"] = local["properties"]
607
+ else:
608
+ dumped.pop("properties", None)
585
609
  if not dumped.get("implements") and not local.get("implements"):
586
- dumped.pop("implements", None)
610
+ if "implements" in local:
611
+ # In case the implements is an empty list, we still want to keep it in the dump.
612
+ # such that the dumped evaluates to the same as the local.
613
+ dumped["implements"] = local["implements"]
614
+ else:
615
+ dumped.pop("implements", None)
587
616
  if resource.implements and len(resource.implements) > 1 and self._topological_sort_implements:
588
617
  # This is a special case that we want to do when we run the cdf dump datamodel command.
589
618
  # The issue is as follows:
@@ -594,7 +623,9 @@ class ViewLoader(ResourceLoader[ViewId, ViewApply, View, ViewApplyList, ViewList
594
623
  # We sort the implements in topological order to ensure that the child view get the order grandparent,
595
624
  # parent, such that the parent's source is used.
596
625
  try:
597
- dumped["implements"] = [view_id.dump() for view_id in self.topological_sort(resource.implements)]
626
+ dumped["implements"] = [
627
+ view_id.dump() for view_id in self.topological_sort_implements(resource.implements)
628
+ ]
598
629
  except ToolkitCycleError as e:
599
630
  warning = MediumSeverityWarning(f"Failed to sort implements for view {resource.as_id()}: {e}")
600
631
  warning.print_warning(console=self.console)
@@ -633,78 +664,8 @@ class ViewLoader(ResourceLoader[ViewId, ViewApply, View, ViewApplyList, ViewList
633
664
  if self._is_auto_retryable(e1):
634
665
  # Fallback to creating one by one if the error is auto-retryable.
635
666
  return self._fallback_create_one_by_one(items, e1)
636
- elif self._is_false_not_exists(e1, {item.as_id() for item in items}):
637
- return self._try_to_recover_coupled(items, e1)
638
667
  raise
639
668
 
640
- @staticmethod
641
- def _is_false_not_exists(e: CogniteAPIError, request_views: set[ViewId]) -> bool:
642
- if "not exist" not in e.message and 400 <= e.code < 500:
643
- return False
644
- results = re.findall(r"'([a-zA-Z0-9_-]+):([a-zA-Z0-9_]+)/([.a-zA-Z0-9_-]+)'", e.message)
645
- if not results:
646
- # No view references in the message
647
- return False
648
- error_message_views = {ViewId(*result) for result in results}
649
- return error_message_views.issubset(request_views)
650
-
651
- def _try_to_recover_coupled(self, items: Sequence[ViewApply], original_error: CogniteAPIError) -> ViewList:
652
- """The /models/views endpoint can give faulty 400 about missing views that are part of the request.
653
-
654
- This method tries to recover from such errors by identifying the strongly connected components in the graph
655
- defined by the implements and through properties of the views. We then create the components in topological
656
- order.
657
-
658
- Args:
659
- items: The items that failed to create.
660
- original_error: The original error that was raised. If the problem is not recoverable, this error is raised.
661
-
662
- Returns:
663
- The views that were created.
664
-
665
- """
666
- views_by_id = {self.get_id(item): item for item in items}
667
- parents_by_child: dict[ViewId, set[ViewId]] = {
668
- view_id: {parent for parent in view.implements or [] if parent in views_by_id}
669
- for view_id, view in views_by_id.items()
670
- }
671
- # Check for cycles in the implements graph
672
- try:
673
- TopologicalSorter(parents_by_child).static_order()
674
- except CycleError as e:
675
- raise ToolkitCycleError(f"Failed to deploy views. This likely due to a cycle in implements. {e.args[1]}")
676
-
677
- dependencies_by_id: dict[ViewId, set[ViewId]] = defaultdict(set)
678
- for view_id, view in views_by_id.items():
679
- dependencies_by_id[view_id].update([parent for parent in view.implements or [] if parent in views_by_id])
680
- for properties in (view.properties or {}).values():
681
- if isinstance(properties, ReverseDirectRelationApply):
682
- if isinstance(properties.through.source, ViewId) and properties.through.source in views_by_id:
683
- dependencies_by_id[view_id].add(properties.through.source)
684
-
685
- LowSeverityWarning(
686
- f"Failed to create {len(items)} views: {escape(original_error.message)}.\nAttempting to recover..."
687
- ).print_warning(include_timestamp=True, console=self.console)
688
- created = ViewList([])
689
- for strongly_connected in tarjan(dependencies_by_id):
690
- to_create = [views_by_id[view_id] for view_id in strongly_connected]
691
- try:
692
- created_set = self.client.data_modeling.views.apply(to_create)
693
- except CogniteAPIError as error:
694
- self.client.data_modeling.views.delete(created.as_ids())
695
- HighSeverityWarning(
696
- f"Recovering attempt failed. Could not create views {self.get_ids(to_create)}: "
697
- f"{escape(error.message)}.\n Raising original error."
698
- ).print_warning(console=self.console)
699
- raise original_error
700
- created.extend(created_set)
701
- message = f"Recovery attempt succeeded. Created {len(created)} views."
702
- if self.console:
703
- self.console.print(message)
704
- else:
705
- print(message)
706
- return created
707
-
708
669
  @staticmethod
709
670
  def _is_auto_retryable(e: CogniteAPIError) -> bool:
710
671
  return isinstance(e.extra, dict) and "isAutoRetryable" in e.extra and e.extra["isAutoRetryable"]
@@ -721,8 +682,8 @@ class ViewLoader(ResourceLoader[ViewId, ViewApply, View, ViewApplyList, ViewList
721
682
  try:
722
683
  created = self.client.data_modeling.views.apply(item)
723
684
  except CogniteAPIError as e2:
724
- e2.failed.extend(items[no + 1 :])
725
- e2.successful.extend(created_list)
685
+ e2.failed = tuple(e2.failed) + tuple(items[no + 1 :])
686
+ e2.successful = tuple(e2.successful) + tuple(created_list)
726
687
  raise e2 from e1
727
688
  else:
728
689
  created_list.append(created)
@@ -764,95 +725,9 @@ class ViewLoader(ResourceLoader[ViewId, ViewApply, View, ViewApplyList, ViewList
764
725
  ) -> Iterable[View]:
765
726
  return iter(self.client.data_modeling.views(space=space))
766
727
 
767
- @classmethod
768
- @lru_cache(maxsize=1)
769
- def get_write_cls_parameter_spec(cls) -> ParameterSpecSet:
770
- spec = super().get_write_cls_parameter_spec()
771
- # The Filter class in the SDK class View implementation is deviating from the API.
772
- # So we need to modify the spec to match the API.
773
- parameter_path = ("filter",)
774
- length = len(parameter_path)
775
- for item in spec:
776
- if len(item.path) >= length + 1 and item.path[:length] == parameter_path[:length]:
777
- # Add extra ANY_STR layer
778
- # The spec class is immutable, so we use this trick to modify it.
779
- is_has_data_filter = item.path[1] in ["containers", "views"]
780
- if is_has_data_filter:
781
- # Special handling of the HasData filter that deviates in SDK implementation from API Spec.
782
- object.__setattr__(item, "path", item.path[:length] + (ANY_STR,) + item.path[length + 1 :])
783
- else:
784
- object.__setattr__(item, "path", item.path[:length] + (ANY_STR,) + item.path[length:])
785
-
786
- spec.add(ParameterSpec(("filter", ANY_STR), frozenset({"dict"}), is_required=False, _is_nullable=False))
787
- # The following types are used by the SDK to load the correct class. They are not part of the init,
788
- # so we need to add it manually.
789
- spec.update(
790
- ParameterSpecSet(
791
- {
792
- ParameterSpec(
793
- ("implements", ANY_INT, "type"), frozenset({"str"}), is_required=True, _is_nullable=False
794
- ),
795
- ParameterSpec(
796
- ("properties", ANY_STR, "connectionType"),
797
- frozenset({"str"}),
798
- is_required=True,
799
- _is_nullable=False,
800
- ),
801
- ParameterSpec(
802
- ("properties", ANY_STR, "source", "type"),
803
- frozenset({"str"}),
804
- is_required=True,
805
- _is_nullable=False,
806
- ),
807
- ParameterSpec(
808
- ("properties", ANY_STR, "container", "type"),
809
- frozenset({"str"}),
810
- is_required=True,
811
- _is_nullable=False,
812
- ),
813
- ParameterSpec(
814
- ("properties", ANY_STR, "edgeSource", "type"),
815
- frozenset({"str"}),
816
- is_required=True,
817
- _is_nullable=False,
818
- ),
819
- ParameterSpec(
820
- ("properties", ANY_STR, "through", "source", "type"),
821
- frozenset({"str"}),
822
- is_required=True,
823
- _is_nullable=False,
824
- ),
825
- ParameterSpec(
826
- # In the SDK, this is called "property"
827
- ("properties", ANY_STR, "through", "identifier"),
828
- frozenset({"str"}),
829
- is_required=True,
830
- _is_nullable=False,
831
- ),
832
- # Filters are complex, so we do not attempt to give any more specific spec.
833
- ParameterSpec(
834
- ("filter", ANYTHING),
835
- frozenset({"str"}),
836
- is_required=True,
837
- _is_nullable=False,
838
- ),
839
- }
840
- )
841
- )
842
- spec.discard(
843
- ParameterSpec(
844
- # The API spec calls this "identifier", while the SDK calls it "property".
845
- ("properties", ANY_STR, "through", "property"),
846
- frozenset({"str"}),
847
- is_required=True,
848
- _is_nullable=False,
849
- )
850
- )
851
- return spec
852
-
853
728
  @classmethod
854
729
  def as_str(cls, id: ViewId) -> str:
855
- return to_directory_compatible(id.external_id)
730
+ return sanitize_filename(id.external_id)
856
731
 
857
732
  def _lookup_views(self, view_ids: list[ViewId]) -> dict[ViewId, View]:
858
733
  """Looks up views by their IDs and caches them."""
@@ -863,14 +738,51 @@ class ViewLoader(ResourceLoader[ViewId, ViewApply, View, ViewApplyList, ViewList
863
738
  self._view_by_id[view.as_id()] = view
864
739
  return {view_id: self._view_by_id[view_id] for view_id in view_ids if view_id in self._view_by_id}
865
740
 
866
- def topological_sort(self, view_ids: list[ViewId]) -> list[ViewId]:
741
+ def get_readonly_properties(self, view_id: ViewId) -> set[str]:
742
+ """Retrieve the set of read-only properties for a given view."""
743
+
744
+ readonly_properties: set[str] = set()
745
+
746
+ # Retrieve the view to check its properties
747
+ view = self._lookup_views([view_id]).get(view_id)
748
+ if view is None:
749
+ return readonly_properties
750
+
751
+ # Check each property in the view
752
+ for property_identifier, property in view.properties.items():
753
+ if isinstance(
754
+ property, MappedProperty
755
+ ) and property.container_property_identifier in constants.READONLY_CONTAINER_PROPERTIES.get(
756
+ property.container, set()
757
+ ):
758
+ readonly_properties.add(property_identifier)
759
+ return readonly_properties
760
+
761
+ def _build_view_implements_dependencies(
762
+ self, view_by_ids: dict[ViewId, View], include: set[ViewId] | None = None
763
+ ) -> dict[ViewId, set[ViewId]]:
764
+ """Build a dependency graph based on view implements relationships.
765
+
766
+ Args:
767
+ view_by_ids: Mapping of view IDs to View objects
768
+ include: Optional set of view IDs to include in the dependencies, if None, all views are included.
769
+
770
+ Returns:
771
+ Dictionary mapping each view ID to the set of view IDs it depends on (implements)
772
+ """
773
+ dependencies: dict[ViewId, set[ViewId]] = {}
774
+ for view_id, view in view_by_ids.items():
775
+ dependencies[view_id] = set()
776
+ for implemented_view_id in view.implements or []:
777
+ if include is None or implemented_view_id in include:
778
+ dependencies[view_id].add(implemented_view_id)
779
+ return dependencies
780
+
781
+ def topological_sort_implements(self, view_ids: list[ViewId]) -> list[ViewId]:
867
782
  """Sorts the views in topological order based on their implements and through properties."""
868
783
  view_by_ids = self._lookup_views(view_ids)
869
- parents_by_child: dict[ViewId, set[ViewId]] = {}
870
- for child, view in view_by_ids.items():
871
- parents_by_child[child] = set()
872
- for parent in view.implements or []:
873
- parents_by_child[child].add(parent)
784
+ parents_by_child = self._build_view_implements_dependencies(view_by_ids)
785
+
874
786
  try:
875
787
  sorted_views = list(TopologicalSorter(parents_by_child).static_order())
876
788
  except CycleError as e:
@@ -880,17 +792,63 @@ class ViewLoader(ResourceLoader[ViewId, ViewApply, View, ViewApplyList, ViewList
880
792
 
881
793
  return sorted_views
882
794
 
795
+ def topological_sort_container_constraints(self, view_ids: list[ViewId]) -> list[ViewId]:
796
+ """Sorts the views in topological order based on their container constraints."""
797
+
798
+ view_by_ids = self._lookup_views(view_ids)
799
+ if missing_view_ids := set(view_ids) - set(view_by_ids.keys()):
800
+ MediumSeverityWarning(
801
+ f"Views {missing_view_ids} not found or you don't have permission to access them, skipping dependency check."
802
+ ).print_warning(console=self.console)
803
+ return view_ids
804
+
805
+ view_to_containers: dict[ViewId, set[ContainerId]] = {}
806
+ container_to_views: defaultdict[ContainerId, set[ViewId]] = defaultdict(set)
807
+ for view_id, view in view_by_ids.items():
808
+ view_to_containers[view_id] = view.referenced_containers()
809
+ for container_id in view_to_containers[view_id]:
810
+ container_to_views[container_id].add(view_id)
811
+
812
+ container_crud = ContainerCRUD.create_loader(self.client)
813
+ container_dependencies_by_id = container_crud._find_direct_and_indirect_container_dependencies(
814
+ list(container_to_views.keys())
815
+ )
816
+
817
+ # First, add view dependencies based on implements relationships
818
+ view_dependencies = self._build_view_implements_dependencies(view_by_ids, set(view_to_containers.keys()))
819
+
820
+ # Then, add view dependencies based on mapped container constraints
821
+ for view_id, mapped_containers in view_to_containers.items():
822
+ for container_id in mapped_containers:
823
+ # Get all containers this container depends on
824
+ if container_id not in container_dependencies_by_id:
825
+ continue
826
+ for required_container in container_dependencies_by_id[container_id]:
827
+ if required_container not in container_to_views:
828
+ continue
829
+ # If this view already implements the required container, the requirement is self-satisfied
830
+ # and we don't need to depend on other views that also implement it (they are peers).
831
+ if required_container in mapped_containers:
832
+ continue
833
+ # This view doesn't implement the required container, so depend on all views that do
834
+ view_dependencies[view_id].update(container_to_views[required_container])
835
+ try:
836
+ sorted_views = list(TopologicalSorter(view_dependencies).static_order())
837
+ except CycleError as e:
838
+ raise ToolkitCycleError(
839
+ f"Failed to sort views topologically. This likely due to a cycle in implements. {e.args[1]}"
840
+ )
841
+ return sorted_views
842
+
883
843
 
884
844
  @final
885
- class DataModelLoader(ResourceLoader[DataModelId, DataModelApply, DataModel, DataModelApplyList, DataModelList]):
886
- folder_name = "data_models"
887
- filename_pattern = r"^.*datamodel$"
845
+ class DataModelCRUD(ResourceCRUD[DataModelId, DataModelApply, DataModel]):
846
+ folder_name = "data_modeling"
888
847
  resource_cls = DataModel
889
848
  resource_write_cls = DataModelApply
890
- list_cls = DataModelList
891
- list_write_cls = DataModelApplyList
892
849
  kind = "DataModel"
893
- dependencies = frozenset({SpaceLoader, ViewLoader})
850
+ dependencies = frozenset({SpaceCRUD, ViewCRUD})
851
+ yaml_cls = DataModelYAML
894
852
  _doc_url = "Data-models/operation/createDataModels"
895
853
 
896
854
  @property
@@ -912,7 +870,7 @@ class DataModelLoader(ResourceLoader[DataModelId, DataModelApply, DataModel, Dat
912
870
  else DataModelsAcl.Scope.All()
913
871
  )
914
872
 
915
- return DataModelsAcl(actions, scope) # type: ignore[arg-type]
873
+ return DataModelsAcl(actions, scope)
916
874
 
917
875
  @classmethod
918
876
  def get_id(cls, item: DataModelApply | DataModel | dict) -> DataModelId:
@@ -928,13 +886,13 @@ class DataModelLoader(ResourceLoader[DataModelId, DataModelApply, DataModel, Dat
928
886
  return id.dump(include_type=False)
929
887
 
930
888
  @classmethod
931
- def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceLoader], Hashable]]:
889
+ def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
932
890
  if "space" in item:
933
- yield SpaceLoader, item["space"]
891
+ yield SpaceCRUD, item["space"]
934
892
  for view in item.get("views", []):
935
893
  if in_dict(("space", "externalId"), view):
936
894
  yield (
937
- ViewLoader,
895
+ ViewCRUD,
938
896
  ViewId(view["space"], view["externalId"], str(v) if (v := view.get("version")) else None),
939
897
  )
940
898
 
@@ -964,13 +922,13 @@ class DataModelLoader(ResourceLoader[DataModelId, DataModelApply, DataModel, Dat
964
922
  return diff_list_identifiable(local, cdf, get_identifier=dm_identifier)
965
923
  return super().diff_list(local, cdf, json_path)
966
924
 
967
- def create(self, items: DataModelApplyList) -> DataModelList:
925
+ def create(self, items: Sequence[DataModelApply]) -> DataModelList:
968
926
  return self.client.data_modeling.data_models.apply(items)
969
927
 
970
928
  def retrieve(self, ids: SequenceNotStr[DataModelId]) -> DataModelList:
971
929
  return self.client.data_modeling.data_models.retrieve(cast(Sequence, ids))
972
930
 
973
- def update(self, items: DataModelApplyList) -> DataModelList:
931
+ def update(self, items: Sequence[DataModelApply]) -> DataModelList:
974
932
  updated = self.create(items)
975
933
  # There is a bug in the API not raising an exception if view is removed from a data model.
976
934
  # So we check here that the update was fixed.
@@ -1008,32 +966,22 @@ class DataModelLoader(ResourceLoader[DataModelId, DataModelApply, DataModel, Dat
1008
966
  ) -> Iterable[DataModel]:
1009
967
  return iter(self.client.data_modeling.data_models(space=space, include_global=False))
1010
968
 
1011
- @classmethod
1012
- @lru_cache(maxsize=1)
1013
- def get_write_cls_parameter_spec(cls) -> ParameterSpecSet:
1014
- spec = super().get_write_cls_parameter_spec()
1015
- # ViewIds have the type set in the API Spec, but this is hidden in the SDK classes,
1016
- # so we need to add it manually.
1017
- spec.add(ParameterSpec(("views", ANY_INT, "type"), frozenset({"str"}), is_required=True, _is_nullable=False))
1018
- return spec
1019
-
1020
969
  @classmethod
1021
970
  def as_str(cls, id: DataModelId) -> str:
1022
- return to_directory_compatible(id.external_id)
971
+ return sanitize_filename(id.external_id)
1023
972
 
1024
973
 
1025
974
  @final
1026
- class NodeLoader(ResourceContainerLoader[NodeId, NodeApply, Node, NodeApplyList, NodeList]):
975
+ class NodeCRUD(ResourceContainerCRUD[NodeId, NodeApply, Node]):
1027
976
  item_name = "nodes"
1028
- folder_name = "data_models"
1029
- filename_pattern = r"^.*node$"
977
+ folder_name = "data_modeling"
1030
978
  resource_cls = Node
1031
979
  resource_write_cls = NodeApply
1032
- list_cls = NodeList
1033
- list_write_cls = NodeApplyList
1034
980
  kind = "Node"
1035
- dependencies = frozenset({SpaceLoader, ViewLoader, ContainerLoader})
981
+ yaml_cls = NodeYAML
982
+ dependencies = frozenset({SpaceCRUD, ViewCRUD, ContainerCRUD})
1036
983
  _doc_url = "Instances/operation/applyNodeAndEdges"
984
+ sub_folder_name = "nodes"
1037
985
 
1038
986
  def __init__(
1039
987
  self,
@@ -1084,14 +1032,14 @@ class NodeLoader(ResourceContainerLoader[NodeId, NodeApply, Node, NodeApplyList,
1084
1032
  return id.dump()
1085
1033
 
1086
1034
  @classmethod
1087
- def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceLoader], Hashable]]:
1035
+ def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
1088
1036
  if "space" in item:
1089
- yield SpaceLoader, item["space"]
1037
+ yield SpaceCRUD, item["space"]
1090
1038
  for source in item.get("sources", []):
1091
1039
  if (identifier := source.get("source")) and isinstance(identifier, dict):
1092
1040
  if identifier.get("type") == "view" and in_dict(("space", "externalId", "version"), identifier):
1093
1041
  yield (
1094
- ViewLoader,
1042
+ ViewCRUD,
1095
1043
  ViewId(
1096
1044
  identifier["space"],
1097
1045
  identifier["externalId"],
@@ -1099,7 +1047,7 @@ class NodeLoader(ResourceContainerLoader[NodeId, NodeApply, Node, NodeApplyList,
1099
1047
  ),
1100
1048
  )
1101
1049
  elif identifier.get("type") == "container" and in_dict(("space", "externalId"), identifier):
1102
- yield ContainerLoader, ContainerId(identifier["space"], identifier["externalId"])
1050
+ yield ContainerCRUD, ContainerId(identifier["space"], identifier["externalId"])
1103
1051
 
1104
1052
  def dump_resource(self, resource: Node, local: dict[str, Any] | None = None) -> dict[str, Any]:
1105
1053
  # CDF resource does not have properties set, so we need to do a lookup
@@ -1129,7 +1077,7 @@ class NodeLoader(ResourceContainerLoader[NodeId, NodeApply, Node, NodeApplyList,
1129
1077
 
1130
1078
  return dumped
1131
1079
 
1132
- def create(self, items: NodeApplyList) -> NodeApplyResultList:
1080
+ def create(self, items: Sequence[NodeApply]) -> NodeApplyResultList:
1133
1081
  result = self.client.data_modeling.instances.apply(
1134
1082
  # Note replace should never be relevant as Toolkit always checks whether the node exists before applying.
1135
1083
  nodes=items,
@@ -1141,7 +1089,7 @@ class NodeLoader(ResourceContainerLoader[NodeId, NodeApply, Node, NodeApplyList,
1141
1089
  def retrieve(self, ids: SequenceNotStr[NodeId]) -> NodeList:
1142
1090
  return self.client.data_modeling.instances.retrieve(nodes=cast(Sequence, ids), sources=self.view_id).nodes
1143
1091
 
1144
- def update(self, items: NodeApplyList) -> NodeApplyResultList:
1092
+ def update(self, items: Sequence[NodeApply]) -> NodeApplyResultList:
1145
1093
  result = self.client.data_modeling.instances.apply(
1146
1094
  nodes=items, auto_create_direct_relations=True, replace=False
1147
1095
  )
@@ -1173,41 +1121,19 @@ class NodeLoader(ResourceContainerLoader[NodeId, NodeApply, Node, NodeApplyList,
1173
1121
  # Nodes will be deleted in .delete call.
1174
1122
  return 0
1175
1123
 
1176
- @classmethod
1177
- @lru_cache(maxsize=1)
1178
- def get_write_cls_parameter_spec(cls) -> ParameterSpecSet:
1179
- node_spec = super().get_write_cls_parameter_spec()
1180
- # This is a deviation between the SDK and the API
1181
- node_spec.add(ParameterSpec(("instanceType",), frozenset({"str"}), is_required=False, _is_nullable=False))
1182
- node_spec.add(
1183
- ParameterSpec(
1184
- ("sources", ANY_INT, "source", "type"),
1185
- frozenset({"str"}),
1186
- is_required=True,
1187
- _is_nullable=False,
1188
- )
1189
- )
1190
- return ParameterSpecSet(node_spec, spec_name=cls.__name__)
1191
-
1192
1124
  @classmethod
1193
1125
  def as_str(cls, id: NodeId) -> str:
1194
- return to_directory_compatible(f"{id.space}_{id.external_id}")
1126
+ return sanitize_filename(f"{id.space}_{id.external_id}")
1195
1127
 
1196
1128
 
1197
- class GraphQLLoader(
1198
- ResourceContainerLoader[
1199
- DataModelId, GraphQLDataModelWrite, GraphQLDataModel, GraphQLDataModelWriteList, GraphQLDataModelList
1200
- ]
1201
- ):
1202
- folder_name = "data_models"
1203
- filename_pattern = r"^.*GraphQLSchema"
1129
+ class GraphQLCRUD(ResourceContainerCRUD[DataModelId, GraphQLDataModelWrite, GraphQLDataModel]):
1130
+ folder_name = "data_modeling"
1204
1131
  resource_cls = GraphQLDataModel
1205
1132
  resource_write_cls = GraphQLDataModelWrite
1206
- list_cls = GraphQLDataModelList
1207
- list_write_cls = GraphQLDataModelWriteList
1208
1133
  kind = "GraphQLSchema"
1209
- dependencies = frozenset({SpaceLoader, ContainerLoader})
1134
+ dependencies = frozenset({SpaceCRUD, ContainerCRUD})
1210
1135
  item_name = "views"
1136
+ yaml_cls = GraphQLDataModelYAML
1211
1137
  _doc_url = "Data-models/operation/createDataModels"
1212
1138
  _hash_name = "CDFToolkitHash:"
1213
1139
 
@@ -1249,9 +1175,9 @@ class GraphQLLoader(
1249
1175
  )
1250
1176
 
1251
1177
  @classmethod
1252
- def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceLoader], Hashable]]:
1178
+ def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
1253
1179
  if "space" in item:
1254
- yield SpaceLoader, item["space"]
1180
+ yield SpaceCRUD, item["space"]
1255
1181
 
1256
1182
  def safe_read(self, filepath: Path | str) -> str:
1257
1183
  # The version is a string, but the user often writes it as an int.
@@ -1294,7 +1220,7 @@ class GraphQLLoader(
1294
1220
 
1295
1221
  # Add hash to description
1296
1222
  description = item.get("description", "")
1297
- hash_ = calculate_str_or_file_hash(graphql_content)[:8]
1223
+ hash_ = calculate_hash(graphql_content)[:8]
1298
1224
  suffix = f"{self._hash_name}{hash_}"
1299
1225
  if len(description) + len(suffix) > 1024:
1300
1226
  LowSeverityWarning(f"Description is above limit for {model_id}. Truncating...").print_warning()
@@ -1317,7 +1243,7 @@ class GraphQLLoader(
1317
1243
  dumped["graphqlFile"] = match.group(3)
1318
1244
  return dumped
1319
1245
 
1320
- def create(self, items: GraphQLDataModelWriteList) -> list[DMLApplyResult]:
1246
+ def create(self, items: Sequence[GraphQLDataModelWrite]) -> list[DMLApplyResult]:
1321
1247
  creation_order = self._topological_sort(items)
1322
1248
 
1323
1249
  created_list: list[DMLApplyResult] = []
@@ -1348,7 +1274,7 @@ class GraphQLLoader(
1348
1274
  result = self.client.data_modeling.data_models.retrieve(list(ids), inline_views=False)
1349
1275
  return GraphQLDataModelList([GraphQLDataModel._load(d.dump()) for d in result])
1350
1276
 
1351
- def update(self, items: GraphQLDataModelWriteList) -> list[DMLApplyResult]:
1277
+ def update(self, items: Sequence[GraphQLDataModelWrite]) -> list[DMLApplyResult]:
1352
1278
  return self.create(items)
1353
1279
 
1354
1280
  def delete(self, ids: SequenceNotStr[DataModelId]) -> int:
@@ -1373,7 +1299,7 @@ class GraphQLLoader(
1373
1299
  def drop_data(self, ids: SequenceNotStr[DataModelId]) -> int:
1374
1300
  return self.delete(ids)
1375
1301
 
1376
- def _topological_sort(self, items: GraphQLDataModelWriteList) -> list[GraphQLDataModelWrite]:
1302
+ def _topological_sort(self, items: Sequence[GraphQLDataModelWrite]) -> list[GraphQLDataModelWrite]:
1377
1303
  to_sort = {item.as_id(): item for item in items}
1378
1304
  dependencies: dict[DataModelId, set[DataModelId]] = {}
1379
1305
  for item in items:
@@ -1396,16 +1322,14 @@ class GraphQLLoader(
1396
1322
 
1397
1323
 
1398
1324
  @final
1399
- class EdgeLoader(ResourceContainerLoader[EdgeId, EdgeApply, Edge, EdgeApplyList, EdgeList]):
1325
+ class EdgeCRUD(ResourceContainerCRUD[EdgeId, EdgeApply, Edge]):
1400
1326
  item_name = "edges"
1401
- folder_name = "data_models"
1402
- filename_pattern = r"^.*edge"
1327
+ folder_name = "data_modeling"
1403
1328
  resource_cls = Edge
1404
1329
  resource_write_cls = EdgeApply
1405
- list_cls = EdgeList
1406
- list_write_cls = EdgeApplyList
1407
1330
  kind = "Edge"
1408
- dependencies = frozenset({SpaceLoader, ViewLoader, ContainerLoader, NodeLoader})
1331
+ yaml_cls = EdgeYAML
1332
+ dependencies = frozenset({SpaceCRUD, ViewCRUD, ContainerCRUD, NodeCRUD})
1409
1333
  _doc_url = "Instances/operation/applyNodeAndEdges"
1410
1334
 
1411
1335
  @property
@@ -1446,14 +1370,14 @@ class EdgeLoader(ResourceContainerLoader[EdgeId, EdgeApply, Edge, EdgeApplyList,
1446
1370
  return id.dump()
1447
1371
 
1448
1372
  @classmethod
1449
- def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceLoader], Hashable]]:
1373
+ def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
1450
1374
  if "space" in item:
1451
- yield SpaceLoader, item["space"]
1375
+ yield SpaceCRUD, item["space"]
1452
1376
  for source in item.get("sources", []):
1453
1377
  if (identifier := source.get("source")) and isinstance(identifier, dict):
1454
1378
  if identifier.get("type") == "view" and in_dict(("space", "externalId", "version"), identifier):
1455
1379
  yield (
1456
- ViewLoader,
1380
+ ViewCRUD,
1457
1381
  ViewId(
1458
1382
  identifier["space"],
1459
1383
  identifier["externalId"],
@@ -1461,12 +1385,12 @@ class EdgeLoader(ResourceContainerLoader[EdgeId, EdgeApply, Edge, EdgeApplyList,
1461
1385
  ),
1462
1386
  )
1463
1387
  elif identifier.get("type") == "container" and in_dict(("space", "externalId"), identifier):
1464
- yield ContainerLoader, ContainerId(identifier["space"], identifier["externalId"])
1388
+ yield ContainerCRUD, ContainerId(identifier["space"], identifier["externalId"])
1465
1389
 
1466
1390
  for key in ["startNode", "endNode", "type"]:
1467
1391
  if node_ref := item.get(key):
1468
1392
  if isinstance(node_ref, dict) and in_dict(("space", "externalId"), node_ref):
1469
- yield NodeLoader, NodeId(node_ref["space"], node_ref["externalId"])
1393
+ yield NodeCRUD, NodeId(node_ref["space"], node_ref["externalId"])
1470
1394
 
1471
1395
  def dump_resource(self, resource: Edge, local: dict[str, Any] | None = None) -> dict[str, Any]:
1472
1396
  # CDF resource does not have properties set, so we need to do a lookup
@@ -1493,7 +1417,7 @@ class EdgeLoader(ResourceContainerLoader[EdgeId, EdgeApply, Edge, EdgeApplyList,
1493
1417
 
1494
1418
  return dumped
1495
1419
 
1496
- def create(self, items: EdgeApplyList) -> EdgeApplyResultList:
1420
+ def create(self, items: Sequence[EdgeApply]) -> EdgeApplyResultList:
1497
1421
  result = self.client.data_modeling.instances.apply(
1498
1422
  edges=items, auto_create_direct_relations=True, replace=False
1499
1423
  )
@@ -1502,7 +1426,7 @@ class EdgeLoader(ResourceContainerLoader[EdgeId, EdgeApply, Edge, EdgeApplyList,
1502
1426
  def retrieve(self, ids: SequenceNotStr[EdgeId]) -> EdgeList:
1503
1427
  return self.client.data_modeling.instances.retrieve(nodes=cast(Sequence, ids)).edges
1504
1428
 
1505
- def update(self, items: EdgeApplyList) -> EdgeApplyResultList:
1429
+ def update(self, items: Sequence[EdgeApply]) -> EdgeApplyResultList:
1506
1430
  result = self.client.data_modeling.instances.apply(
1507
1431
  edges=items, auto_create_direct_relations=False, replace=True
1508
1432
  )
@@ -1532,22 +1456,6 @@ class EdgeLoader(ResourceContainerLoader[EdgeId, EdgeApply, Edge, EdgeApplyList,
1532
1456
  # Edges will be deleted in .delete call.
1533
1457
  return 0
1534
1458
 
1535
- @classmethod
1536
- @lru_cache(maxsize=1)
1537
- def get_write_cls_parameter_spec(cls) -> ParameterSpecSet:
1538
- node_spec = super().get_write_cls_parameter_spec()
1539
- # This is a deviation between the SDK and the API
1540
- node_spec.add(ParameterSpec(("instanceType",), frozenset({"str"}), is_required=False, _is_nullable=False))
1541
- node_spec.add(
1542
- ParameterSpec(
1543
- ("sources", ANY_INT, "source", "type"),
1544
- frozenset({"str"}),
1545
- is_required=True,
1546
- _is_nullable=False,
1547
- )
1548
- )
1549
- return ParameterSpecSet(node_spec, spec_name=cls.__name__)
1550
-
1551
1459
  def diff_list(
1552
1460
  self, local: list[Any], cdf: list[Any], json_path: tuple[str | int, ...]
1553
1461
  ) -> tuple[dict[int, int], list[int]]: