cognite-toolkit 0.7.35__tar.gz → 0.7.37__tar.gz

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 (324) hide show
  1. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/PKG-INFO +1 -1
  2. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/apps/_migrate_app.py +101 -0
  3. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/infield.py +16 -17
  4. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/streams.py +3 -4
  5. cognite_toolkit-0.7.37/cognite_toolkit/_cdf_tk/client/api/three_d.py +384 -0
  6. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/api_classes.py +13 -0
  7. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/base.py +6 -10
  8. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/instance_api.py +7 -7
  9. cognite_toolkit-0.7.37/cognite_toolkit/_cdf_tk/client/data_classes/three_d.py +112 -0
  10. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py +7 -1
  11. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py +50 -1
  12. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_migrate/data_model.py +1 -0
  13. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_migrate/migration_io.py +119 -8
  14. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_purge.py +9 -11
  15. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py +17 -15
  16. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/http_client/_data_classes2.py +1 -3
  17. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml +1 -1
  18. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml +1 -1
  19. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_resources/cdf.toml +1 -1
  20. cognite_toolkit-0.7.37/cognite_toolkit/_version.py +1 -0
  21. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/pyproject.toml +1 -2
  22. cognite_toolkit-0.7.35/cognite_toolkit/_cdf_tk/client/api/three_d.py +0 -131
  23. cognite_toolkit-0.7.35/cognite_toolkit/_cdf_tk/client/data_classes/three_d.py +0 -53
  24. cognite_toolkit-0.7.35/cognite_toolkit/_version.py +0 -1
  25. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/README.md +0 -0
  26. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/__init__.py +0 -0
  27. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf.py +0 -0
  28. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/__init__.py +0 -0
  29. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/apps/__init__.py +0 -0
  30. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/apps/_auth_app.py +0 -0
  31. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/apps/_core_app.py +0 -0
  32. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/apps/_data_app.py +0 -0
  33. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/apps/_dev_app.py +0 -0
  34. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/apps/_download_app.py +0 -0
  35. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/apps/_dump_app.py +0 -0
  36. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/apps/_import_app.py +0 -0
  37. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/apps/_landing_app.py +0 -0
  38. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/apps/_modules_app.py +0 -0
  39. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/apps/_profile_app.py +0 -0
  40. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/apps/_purge.py +0 -0
  41. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/apps/_repo_app.py +0 -0
  42. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/apps/_run.py +0 -0
  43. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/apps/_upload_app.py +0 -0
  44. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/builders/__init__.py +0 -0
  45. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/builders/_base.py +0 -0
  46. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/builders/_datamodels.py +0 -0
  47. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/builders/_file.py +0 -0
  48. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/builders/_function.py +0 -0
  49. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/builders/_location.py +0 -0
  50. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/builders/_raw.py +0 -0
  51. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/builders/_streamlit.py +0 -0
  52. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/builders/_transformation.py +0 -0
  53. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cdf_toml.py +0 -0
  54. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/__init__.py +0 -0
  55. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/_constants.py +0 -0
  56. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/_toolkit_client.py +0 -0
  57. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/__init__.py +0 -0
  58. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/__init__.py +0 -0
  59. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/canvas.py +0 -0
  60. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/charts.py +0 -0
  61. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/dml.py +0 -0
  62. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/extended_data_modeling.py +0 -0
  63. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/extended_files.py +0 -0
  64. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/extended_functions.py +0 -0
  65. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/extended_raw.py +0 -0
  66. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/extended_timeseries.py +0 -0
  67. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/fixed_transformations.py +0 -0
  68. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/location_filters.py +0 -0
  69. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/robotics/__init__.py +0 -0
  70. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/robotics/api.py +0 -0
  71. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/robotics/capabilities.py +0 -0
  72. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/robotics/data_postprocessing.py +0 -0
  73. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/robotics/frames.py +0 -0
  74. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/robotics/locations.py +0 -0
  75. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/robotics/maps.py +0 -0
  76. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/robotics/robots.py +0 -0
  77. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/robotics/utlis.py +0 -0
  78. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/legacy/search_config.py +0 -0
  79. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/lookup.py +0 -0
  80. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/migration.py +0 -0
  81. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/project.py +0 -0
  82. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/search.py +0 -0
  83. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/token.py +0 -0
  84. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api/verify.py +0 -0
  85. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/api_client.py +0 -0
  86. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/config.py +0 -0
  87. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/__init__.py +0 -0
  88. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/capabilities.py +0 -0
  89. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/charts_data.py +0 -0
  90. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/infield.py +0 -0
  91. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/__init__.py +0 -0
  92. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/apm_config_v1.py +0 -0
  93. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/canvas.py +0 -0
  94. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/charts.py +0 -0
  95. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/extendable_cognite_file.py +0 -0
  96. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/extended_filemetadata.py +0 -0
  97. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/extended_filemetdata.py +0 -0
  98. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/extended_timeseries.py +0 -0
  99. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/functions.py +0 -0
  100. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/graphql_data_models.py +0 -0
  101. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/instances.py +0 -0
  102. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/location_filters.py +0 -0
  103. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/migration.py +0 -0
  104. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/pending_instances_ids.py +0 -0
  105. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/project.py +0 -0
  106. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/raw.py +0 -0
  107. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/robotics.py +0 -0
  108. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/search_config.py +0 -0
  109. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/sequences.py +0 -0
  110. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/legacy/streamlit_.py +0 -0
  111. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/data_classes/streams.py +0 -0
  112. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/testing.py +0 -0
  113. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/utils/__init__.py +0 -0
  114. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/utils/_concurrency.py +0 -0
  115. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/client/utils/_http_client.py +0 -0
  116. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/__init__.py +0 -0
  117. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_base.py +0 -0
  118. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_changes.py +0 -0
  119. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_cli_commands.py +0 -0
  120. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_download.py +0 -0
  121. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_import_cmd.py +0 -0
  122. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_migrate/__init__.py +0 -0
  123. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_migrate/command.py +0 -0
  124. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_migrate/creators.py +0 -0
  125. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_migrate/data_classes.py +0 -0
  126. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_migrate/default_mappings.py +0 -0
  127. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_migrate/issues.py +0 -0
  128. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_migrate/prepare.py +0 -0
  129. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_migrate/selectors.py +0 -0
  130. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_profile.py +0 -0
  131. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_questionary_style.py +0 -0
  132. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_upload.py +0 -0
  133. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_utils.py +0 -0
  134. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/_virtual_env.py +0 -0
  135. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/about.py +0 -0
  136. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/auth.py +0 -0
  137. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/build_cmd.py +0 -0
  138. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/build_v2/__init__.py +0 -0
  139. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/build_v2/build_cmd.py +0 -0
  140. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/build_v2/build_input.py +0 -0
  141. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/build_v2/build_issues.py +0 -0
  142. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/clean.py +0 -0
  143. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/collect.py +0 -0
  144. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/deploy.py +0 -0
  145. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/dump_resource.py +0 -0
  146. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/init.py +0 -0
  147. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/modules.py +0 -0
  148. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/pull.py +0 -0
  149. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/repo.py +0 -0
  150. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/resources.py +0 -0
  151. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/commands/run.py +0 -0
  152. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/constants.py +0 -0
  153. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/__init__.py +0 -0
  154. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_base_cruds.py +0 -0
  155. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_data_cruds.py +0 -0
  156. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/__init__.py +0 -0
  157. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/agent.py +0 -0
  158. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/auth.py +0 -0
  159. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/classic.py +0 -0
  160. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py +0 -0
  161. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/data_organization.py +0 -0
  162. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py +0 -0
  163. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/extraction_pipeline.py +0 -0
  164. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py +0 -0
  165. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/function.py +0 -0
  166. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/group_scoped.py +0 -0
  167. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/hosted_extractors.py +0 -0
  168. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/industrial_tool.py +0 -0
  169. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/location.py +0 -0
  170. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/migration.py +0 -0
  171. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/raw.py +0 -0
  172. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/relationship.py +0 -0
  173. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/robotics.py +0 -0
  174. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py +0 -0
  175. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/three_d_model.py +0 -0
  176. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py +0 -0
  177. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py +0 -0
  178. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/workflow.py +0 -0
  179. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/cruds/_worker.py +0 -0
  180. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/data_classes/__init__.py +0 -0
  181. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/data_classes/_base.py +0 -0
  182. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/data_classes/_build_files.py +0 -0
  183. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/data_classes/_build_variables.py +0 -0
  184. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/data_classes/_built_modules.py +0 -0
  185. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/data_classes/_built_resources.py +0 -0
  186. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/data_classes/_config_yaml.py +0 -0
  187. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/data_classes/_deploy_results.py +0 -0
  188. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/data_classes/_module_directories.py +0 -0
  189. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/data_classes/_module_resources.py +0 -0
  190. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/data_classes/_module_toml.py +0 -0
  191. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/data_classes/_packages.py +0 -0
  192. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/data_classes/_tracking_info.py +0 -0
  193. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/data_classes/_yaml_comments.py +0 -0
  194. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/exceptions.py +0 -0
  195. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/feature_flags.py +0 -0
  196. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/hints.py +0 -0
  197. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/plugins.py +0 -0
  198. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/protocols.py +0 -0
  199. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/__init__.py +0 -0
  200. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/agent.py +0 -0
  201. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/agent_tools.py +0 -0
  202. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/asset.py +0 -0
  203. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/authentication.py +0 -0
  204. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/base.py +0 -0
  205. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/capabilities.py +0 -0
  206. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/cognitefile.py +0 -0
  207. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/container_field_definitions.py +0 -0
  208. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/containers.py +0 -0
  209. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/data_model.py +0 -0
  210. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/datapoint_subscription.py +0 -0
  211. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/dataset.py +0 -0
  212. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/event.py +0 -0
  213. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/extraction_pipeline.py +0 -0
  214. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/extraction_pipeline_config.py +0 -0
  215. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/filemetadata.py +0 -0
  216. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/function_schedule.py +0 -0
  217. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/functions.py +0 -0
  218. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/graphql_model.py +0 -0
  219. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/groups.py +0 -0
  220. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_destination.py +0 -0
  221. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_job.py +0 -0
  222. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_mapping.py +0 -0
  223. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_source.py +0 -0
  224. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/infield_cdm_location_config.py +0 -0
  225. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/infield_location_config.py +0 -0
  226. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/infield_v1.py +0 -0
  227. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/instance.py +0 -0
  228. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/labels.py +0 -0
  229. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/location.py +0 -0
  230. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/migration.py +0 -0
  231. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/raw_database_table.py +0 -0
  232. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/relationship.py +0 -0
  233. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/robotics/__init__.py +0 -0
  234. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/robotics/capability.py +0 -0
  235. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/robotics/data_postprocessing.py +0 -0
  236. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/robotics/frame.py +0 -0
  237. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/robotics/location.py +0 -0
  238. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/robotics/map.py +0 -0
  239. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/search_config.py +0 -0
  240. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/securitycategories.py +0 -0
  241. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/sequence.py +0 -0
  242. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/space.py +0 -0
  243. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/streamlit_.py +0 -0
  244. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/streams.py +0 -0
  245. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/threedmodels.py +0 -0
  246. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/timeseries.py +0 -0
  247. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/transformation_destination.py +0 -0
  248. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/transformation_notification.py +0 -0
  249. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/transformation_schedule.py +0 -0
  250. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/transformations.py +0 -0
  251. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/view_field_definitions.py +0 -0
  252. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/views.py +0 -0
  253. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/workflow.py +0 -0
  254. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/workflow_trigger.py +0 -0
  255. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/resource_classes/workflow_version.py +0 -0
  256. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/__init__.py +0 -0
  257. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/_annotations.py +0 -0
  258. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/_applications.py +0 -0
  259. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/_asset_centric.py +0 -0
  260. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/_base.py +0 -0
  261. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/_data_classes.py +0 -0
  262. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/_datapoints.py +0 -0
  263. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/_file_content.py +0 -0
  264. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/_instances.py +0 -0
  265. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/_raw.py +0 -0
  266. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/selectors/__init__.py +0 -0
  267. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/selectors/_asset_centric.py +0 -0
  268. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/selectors/_base.py +0 -0
  269. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/selectors/_canvas.py +0 -0
  270. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/selectors/_charts.py +0 -0
  271. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/selectors/_datapoints.py +0 -0
  272. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/selectors/_file_content.py +0 -0
  273. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/selectors/_instances.py +0 -0
  274. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/selectors/_raw.py +0 -0
  275. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/storageio/selectors/_three_d.py +0 -0
  276. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/tk_warnings/__init__.py +0 -0
  277. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/tk_warnings/base.py +0 -0
  278. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/tk_warnings/fileread.py +0 -0
  279. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/tk_warnings/other.py +0 -0
  280. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/tracker.py +0 -0
  281. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/__init__.py +0 -0
  282. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/_auxiliary.py +0 -0
  283. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/aggregators.py +0 -0
  284. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/auth.py +0 -0
  285. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/auxiliary.py +0 -0
  286. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/cdf.py +0 -0
  287. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/cicd.py +0 -0
  288. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/cli_args.py +0 -0
  289. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/collection.py +0 -0
  290. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/diff_list.py +0 -0
  291. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/dtype_conversion.py +0 -0
  292. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/file.py +0 -0
  293. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/fileio/__init__.py +0 -0
  294. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/fileio/_base.py +0 -0
  295. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/fileio/_compression.py +0 -0
  296. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/fileio/_readers.py +0 -0
  297. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/fileio/_writers.py +0 -0
  298. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/graphql_parser.py +0 -0
  299. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/hashing.py +0 -0
  300. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/http_client/__init__.py +0 -0
  301. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/http_client/_client.py +0 -0
  302. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/http_client/_data_classes.py +0 -0
  303. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/http_client/_exception.py +0 -0
  304. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/http_client/_tracker.py +0 -0
  305. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/interactive_select.py +0 -0
  306. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/modules.py +0 -0
  307. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/producer_worker.py +0 -0
  308. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/progress_tracker.py +0 -0
  309. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/repository.py +0 -0
  310. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/sentry_utils.py +0 -0
  311. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/sql_parser.py +0 -0
  312. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/text.py +0 -0
  313. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/thread_safe_dict.py +0 -0
  314. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/useful_types.py +0 -0
  315. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/utils/validate_access.py +0 -0
  316. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_cdf_tk/validation.py +0 -0
  317. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_repo_files/.env.tmpl +0 -0
  318. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_repo_files/.gitignore +0 -0
  319. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_repo_files/AzureDevOps/.devops/README.md +0 -0
  320. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_repo_files/AzureDevOps/.devops/deploy-pipeline.yml +0 -0
  321. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/_repo_files/AzureDevOps/.devops/dry-run-pipeline.yml +0 -0
  322. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/config.dev.yaml +0 -0
  323. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/demo/__init__.py +0 -0
  324. {cognite_toolkit-0.7.35 → cognite_toolkit-0.7.37}/cognite_toolkit/demo/_base.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cognite_toolkit
3
- Version: 0.7.35
3
+ Version: 0.7.37
4
4
  Summary: Official Cognite Data Fusion tool for project templates and configuration deployment
5
5
  Author: Cognite AS
6
6
  Author-email: Cognite AS <support@cognite.com>
@@ -19,11 +19,13 @@ from cognite_toolkit._cdf_tk.commands._migrate.data_mapper import (
19
19
  AssetCentricMapper,
20
20
  CanvasMapper,
21
21
  ChartMapper,
22
+ ThreeDAssetMapper,
22
23
  ThreeDMapper,
23
24
  )
24
25
  from cognite_toolkit._cdf_tk.commands._migrate.migration_io import (
25
26
  AnnotationMigrationIO,
26
27
  AssetCentricMigrationIO,
28
+ ThreeDAssetMappingMigrationIO,
27
29
  ThreeDMigrationIO,
28
30
  )
29
31
  from cognite_toolkit._cdf_tk.commands._migrate.selectors import (
@@ -68,6 +70,7 @@ class MigrateApp(typer.Typer):
68
70
  self.command("canvas")(self.canvas)
69
71
  self.command("charts")(self.charts)
70
72
  self.command("3d")(self.three_d)
73
+ self.command("3d-mappings")(self.three_d_asset_mapping)
71
74
  # Uncomment when infield v2 config migration is ready
72
75
  # self.command("infield-configs")(self.infield_configs)
73
76
 
@@ -1054,6 +1057,104 @@ class MigrateApp(typer.Typer):
1054
1057
  )
1055
1058
  )
1056
1059
 
1060
+ @staticmethod
1061
+ def three_d_asset_mapping(
1062
+ ctx: typer.Context,
1063
+ model_id: Annotated[
1064
+ list[int] | None,
1065
+ typer.Argument(
1066
+ help="The IDs of the 3D model to migrate asset mappings for. If not provided, an interactive selection will be "
1067
+ "performed to select the."
1068
+ ),
1069
+ ] = None,
1070
+ object_3D_space: Annotated[
1071
+ str | None,
1072
+ typer.Option(
1073
+ "--object-3d-space",
1074
+ "-o",
1075
+ help="The instance space to ceate the 3D object nodes in.",
1076
+ ),
1077
+ ] = None,
1078
+ cad_node_space: Annotated[
1079
+ str | None,
1080
+ typer.Option(
1081
+ "--cad-node-space",
1082
+ "-c",
1083
+ help="The instance space to create the CAD node nodes in.",
1084
+ ),
1085
+ ] = None,
1086
+ log_dir: Annotated[
1087
+ Path,
1088
+ typer.Option(
1089
+ "--log-dir",
1090
+ "-l",
1091
+ help="Path to the directory where migration logs will be stored.",
1092
+ ),
1093
+ ] = Path(f"migration_logs_{TODAY}"),
1094
+ dry_run: Annotated[
1095
+ bool,
1096
+ typer.Option(
1097
+ "--dry-run",
1098
+ "-d",
1099
+ help="If set, the migration will not be executed, but only a report of what would be done is printed.",
1100
+ ),
1101
+ ] = False,
1102
+ verbose: Annotated[
1103
+ bool,
1104
+ typer.Option(
1105
+ "--verbose",
1106
+ "-v",
1107
+ help="Turn on to get more verbose output when running the command",
1108
+ ),
1109
+ ] = False,
1110
+ ) -> None:
1111
+ """Migrate 3D Model Asset Mappings from Asset-Centric to data modeling in CDF.
1112
+
1113
+ This command expects that the selected 3D model has already been migrated to data modeling.
1114
+ """
1115
+ client = EnvironmentVariables.create_from_environment().get_client()
1116
+ selected_ids: list[int]
1117
+ if model_id is not None:
1118
+ selected_ids = model_id
1119
+ else:
1120
+ # Interactive selection
1121
+ selected_models = ThreeDInteractiveSelect(client, "migrate").select_three_d_models("dm")
1122
+ selected_ids = [model.id for model in selected_models]
1123
+ space_selector = DataModelingSelect(client, "migrate")
1124
+ object_3D_space = space_selector.select_instance_space(
1125
+ multiselect=False,
1126
+ message="In which instance space do you want to create the 3D Object nodes?",
1127
+ include_empty=False,
1128
+ )
1129
+ cad_node_space = space_selector.select_instance_space(
1130
+ multiselect=False,
1131
+ message="In which instance space do you want to create the CAD Node nodes?",
1132
+ include_empty=False,
1133
+ )
1134
+ dry_run = questionary.confirm("Do you want to perform a dry run?", default=dry_run).ask()
1135
+ verbose = questionary.confirm("Do you want verbose output?", default=verbose).ask()
1136
+ if any(res is None for res in [dry_run, verbose]):
1137
+ raise typer.Abort()
1138
+
1139
+ if object_3D_space is None or cad_node_space is None:
1140
+ raise typer.BadParameter(
1141
+ "--object-3d-space and --cad-node-space are required when specifying IDs directly."
1142
+ )
1143
+
1144
+ cmd = MigrationCommand()
1145
+ cmd.run(
1146
+ lambda: cmd.migrate(
1147
+ selected=ThreeDModelIdSelector(ids=tuple(selected_ids)),
1148
+ data=ThreeDAssetMappingMigrationIO(
1149
+ client, object_3D_space=object_3D_space, cad_node_space=cad_node_space
1150
+ ),
1151
+ mapper=ThreeDAssetMapper(client),
1152
+ log_dir=log_dir,
1153
+ dry_run=dry_run,
1154
+ verbose=verbose,
1155
+ )
1156
+ )
1157
+
1057
1158
  @staticmethod
1058
1159
  def infield_configs(
1059
1160
  ctx: typer.Context,
@@ -4,7 +4,7 @@ from typing import Any, cast
4
4
  from pydantic import TypeAdapter
5
5
  from rich.console import Console
6
6
 
7
- from cognite_toolkit._cdf_tk.client.data_classes.api_classes import PagedResponse, QueryResponse
7
+ from cognite_toolkit._cdf_tk.client.data_classes.api_classes import QueryResponse
8
8
  from cognite_toolkit._cdf_tk.client.data_classes.infield import (
9
9
  DataExplorationConfig,
10
10
  InFieldCDMLocationConfig,
@@ -13,12 +13,11 @@ from cognite_toolkit._cdf_tk.client.data_classes.infield import (
13
13
  from cognite_toolkit._cdf_tk.client.data_classes.instance_api import (
14
14
  InstanceResponseItem,
15
15
  InstanceResult,
16
- NodeIdentifier,
16
+ TypedNodeIdentifier,
17
17
  )
18
18
  from cognite_toolkit._cdf_tk.tk_warnings import HighSeverityWarning
19
19
  from cognite_toolkit._cdf_tk.utils.http_client import (
20
20
  HTTPClient,
21
- ItemsRequest,
22
21
  ItemsRequest2,
23
22
  RequestMessage2,
24
23
  )
@@ -56,7 +55,7 @@ class InfieldConfigAPI:
56
55
  responses.raise_for_status()
57
56
  return TypeAdapter(list[InstanceResult]).validate_python(responses.get_items())
58
57
 
59
- def retrieve(self, items: Sequence[NodeIdentifier]) -> list[InfieldLocationConfig]:
58
+ def retrieve(self, items: Sequence[TypedNodeIdentifier]) -> list[InfieldLocationConfig]:
60
59
  if len(items) > 100:
61
60
  raise ValueError("Cannot retrieve more than 100 InfieldLocationConfig items at once.")
62
61
  if not items:
@@ -73,7 +72,7 @@ class InfieldConfigAPI:
73
72
  parsed_response = QueryResponse[InstanceResponseItem].model_validate(success.body_json)
74
73
  return self._parse_retrieve_response(parsed_response)
75
74
 
76
- def delete(self, items: Sequence[InfieldLocationConfig]) -> list[NodeIdentifier]:
75
+ def delete(self, items: Sequence[InfieldLocationConfig]) -> list[TypedNodeIdentifier]:
77
76
  if len(items) > 500:
78
77
  raise ValueError("Cannot delete more than 500 InfieldLocationConfig items at once.")
79
78
 
@@ -83,18 +82,18 @@ class InfieldConfigAPI:
83
82
  else [item.as_id(), item.data_exploration_config.as_id()]
84
83
  for item in items
85
84
  )
86
- responses = self._http_client.request_with_retries(
87
- ItemsRequest(
85
+ responses = self._http_client.request_items_retries(
86
+ ItemsRequest2(
88
87
  endpoint_url=self._config.create_api_url(f"{self.ENDPOINT}/delete"),
89
88
  method="POST",
90
89
  items=[identifier for sublist in identifiers for identifier in sublist],
91
90
  )
92
91
  )
93
92
  responses.raise_for_status()
94
- return PagedResponse[NodeIdentifier].model_validate(responses.get_first_body()).items
93
+ return TypeAdapter(list[TypedNodeIdentifier]).validate_python(responses.get_items())
95
94
 
96
95
  @classmethod
97
- def _retrieve_query(cls, items: Sequence[NodeIdentifier]) -> dict[str, Any]:
96
+ def _retrieve_query(cls, items: Sequence[TypedNodeIdentifier]) -> dict[str, Any]:
98
97
  return {
99
98
  "with": {
100
99
  cls.LOCATION_REF: {
@@ -184,7 +183,7 @@ class InFieldCDMConfigAPI:
184
183
  results.raise_for_status()
185
184
  return TypeAdapter(list[InstanceResult]).validate_python(results.get_items())
186
185
 
187
- def retrieve(self, items: Sequence[NodeIdentifier]) -> list[InFieldCDMLocationConfig]:
186
+ def retrieve(self, items: Sequence[TypedNodeIdentifier]) -> list[InFieldCDMLocationConfig]:
188
187
  if len(items) > 100:
189
188
  raise ValueError("Cannot retrieve more than 100 InFieldCDMLocationConfig items at once.")
190
189
  if not items:
@@ -200,23 +199,23 @@ class InFieldCDMConfigAPI:
200
199
  parsed_response = QueryResponse[InstanceResponseItem].model_validate(success.body_json)
201
200
  return self._parse_retrieve_response(parsed_response)
202
201
 
203
- def delete(self, items: Sequence[InFieldCDMLocationConfig]) -> list[NodeIdentifier]:
202
+ def delete(self, items: Sequence[InFieldCDMLocationConfig]) -> list[TypedNodeIdentifier]:
204
203
  if len(items) > 500:
205
204
  raise ValueError("Cannot delete more than 500 InFieldCDMLocationConfig items at once.")
206
205
 
207
- identifiers: Sequence = [item.as_id() for item in items]
208
- responses = self._http_client.request_with_retries(
209
- ItemsRequest(
206
+ identifiers = [item.as_id() for item in items]
207
+ responses = self._http_client.request_items_retries(
208
+ ItemsRequest2(
210
209
  endpoint_url=self._config.create_api_url(f"{self.ENDPOINT}/delete"),
211
210
  method="POST",
212
- items=identifiers, # type: ignore[arg-type]
211
+ items=identifiers,
213
212
  )
214
213
  )
215
214
  responses.raise_for_status()
216
- return PagedResponse[NodeIdentifier].model_validate(responses.get_first_body()).items
215
+ return TypeAdapter(list[TypedNodeIdentifier]).validate_python(responses.get_items())
217
216
 
218
217
  @classmethod
219
- def _retrieve_query(cls, items: Sequence[NodeIdentifier]) -> dict[str, Any]:
218
+ def _retrieve_query(cls, items: Sequence[TypedNodeIdentifier]) -> dict[str, Any]:
220
219
  return {
221
220
  "with": {
222
221
  cls.LOCATION_REF: {
@@ -8,7 +8,6 @@ from cognite_toolkit._cdf_tk.client.data_classes.streams import StreamRequest, S
8
8
  from cognite_toolkit._cdf_tk.utils.http_client import (
9
9
  HTTPClient,
10
10
  ItemsRequest2,
11
- ParamRequest,
12
11
  RequestMessage2,
13
12
  )
14
13
 
@@ -46,13 +45,13 @@ class StreamsAPI:
46
45
  Args:
47
46
  external_id: External ID of the stream to delete.
48
47
  """
49
- responses = self._http_client.request_with_retries(
50
- ParamRequest(
48
+ response = self._http_client.request_single_retries(
49
+ RequestMessage2(
51
50
  endpoint_url=self._config.create_api_url(f"{self.ENDPOINT}/{external_id}"),
52
51
  method="DELETE",
53
52
  )
54
53
  )
55
- responses.raise_for_status()
54
+ _ = response.get_success_or_raise()
56
55
 
57
56
  def list(self) -> list[StreamResponse]:
58
57
  """List streams.
@@ -0,0 +1,384 @@
1
+ from collections import defaultdict
2
+ from collections.abc import Iterable, Sequence
3
+ from typing import Any, TypeVar
4
+
5
+ from pydantic import TypeAdapter
6
+ from rich.console import Console
7
+
8
+ from cognite_toolkit._cdf_tk.client.data_classes.api_classes import InternalIdRequest, PagedResponse
9
+ from cognite_toolkit._cdf_tk.client.data_classes.three_d import (
10
+ AssetMappingClassicRequest,
11
+ AssetMappingDMRequest,
12
+ AssetMappingResponse,
13
+ ThreeDModelClassicRequest,
14
+ ThreeDModelResponse,
15
+ )
16
+ from cognite_toolkit._cdf_tk.utils.collection import chunker_sequence
17
+ from cognite_toolkit._cdf_tk.utils.http_client import (
18
+ HTTPClient,
19
+ ItemsRequest2,
20
+ RequestMessage2,
21
+ )
22
+ from cognite_toolkit._cdf_tk.utils.useful_types import PrimitiveType
23
+
24
+
25
+ class ThreeDModelAPI:
26
+ ENDPOINT = "/3d/models"
27
+ MAX_CLASSIC_MODELS_PER_CREATE_REQUEST = 1000
28
+ MAX_MODELS_PER_DELETE_REQUEST = 1000
29
+ _LIST_REQUEST_MAX_LIMIT = 1000
30
+
31
+ def __init__(self, http_client: HTTPClient, console: Console) -> None:
32
+ self._http_client = http_client
33
+ self._console = console
34
+ self._config = http_client.config
35
+
36
+ def create(self, models: Sequence[ThreeDModelClassicRequest]) -> list[ThreeDModelResponse]:
37
+ """Create 3D models in classic format.
38
+
39
+ Args:
40
+ models (Sequence[ThreeDModelClassicRequest]): The 3D model(s) to create.
41
+
42
+ Returns:
43
+ list[ThreeDModelResponse]: The created 3D model(s).
44
+ """
45
+ if not models:
46
+ return []
47
+ if len(models) > self.MAX_CLASSIC_MODELS_PER_CREATE_REQUEST:
48
+ raise ValueError("Cannot create more than 1000 3D models in a single request.")
49
+ responses = self._http_client.request_items_retries(
50
+ ItemsRequest2(
51
+ endpoint_url=self._config.create_api_url(self.ENDPOINT),
52
+ method="POST",
53
+ items=models,
54
+ )
55
+ )
56
+ responses.raise_for_status()
57
+ return TypeAdapter(list[ThreeDModelResponse]).validate_python(responses.get_items())
58
+
59
+ def delete(self, ids: Sequence[int]) -> None:
60
+ """Delete 3D models by their IDs.
61
+
62
+ Args:
63
+ ids (Sequence[int]): The IDs of the 3D models to delete.
64
+ """
65
+ if not ids:
66
+ return None
67
+ if len(ids) > self.MAX_MODELS_PER_DELETE_REQUEST:
68
+ raise ValueError("Cannot delete more than 1000 3D models in a single request.")
69
+ responses = self._http_client.request_items_retries(
70
+ ItemsRequest2(
71
+ endpoint_url=self._config.create_api_url(self.ENDPOINT + "/delete"),
72
+ method="POST",
73
+ items=InternalIdRequest.from_ids(list(ids)),
74
+ )
75
+ )
76
+ responses.raise_for_status()
77
+
78
+ def iterate(
79
+ self,
80
+ published: bool | None = None,
81
+ include_revision_info: bool = False,
82
+ limit: int = 100,
83
+ cursor: str | None = None,
84
+ ) -> PagedResponse[ThreeDModelResponse]:
85
+ if not (0 < limit <= self._LIST_REQUEST_MAX_LIMIT):
86
+ raise ValueError(f"Limit must be between 1 and {self._LIST_REQUEST_MAX_LIMIT}, got {limit}.")
87
+ parameters: dict[str, PrimitiveType] = {
88
+ # There is a bug in the API. The parameter includeRevisionInfo is expected to be lower case and not
89
+ # camel case as documented. You get error message: Unrecognized query parameter includeRevisionInfo,
90
+ # did you mean includerevisioninfo?
91
+ "includerevisioninfo": include_revision_info,
92
+ "limit": limit,
93
+ }
94
+ if published is not None:
95
+ parameters["published"] = published
96
+ if cursor is not None:
97
+ parameters["cursor"] = cursor
98
+ responses = self._http_client.request_single_retries(
99
+ RequestMessage2(
100
+ endpoint_url=self._config.create_api_url(self.ENDPOINT),
101
+ method="GET",
102
+ parameters=parameters,
103
+ )
104
+ )
105
+ success_response = responses.get_success_or_raise()
106
+ return PagedResponse[ThreeDModelResponse].model_validate(success_response.body_json)
107
+
108
+ def list(
109
+ self,
110
+ published: bool | None = None,
111
+ include_revision_info: bool = False,
112
+ limit: int | None = 100,
113
+ cursor: str | None = None,
114
+ ) -> list[ThreeDModelResponse]:
115
+ results: list[ThreeDModelResponse] = []
116
+ while True:
117
+ request_limit = (
118
+ self._LIST_REQUEST_MAX_LIMIT
119
+ if limit is None
120
+ else min(limit - len(results), self._LIST_REQUEST_MAX_LIMIT)
121
+ )
122
+ if request_limit <= 0:
123
+ break
124
+ page = self.iterate(
125
+ published=published,
126
+ include_revision_info=include_revision_info,
127
+ limit=request_limit,
128
+ cursor=cursor,
129
+ )
130
+ results.extend(page.items)
131
+ if page.next_cursor is None:
132
+ break
133
+ cursor = page.next_cursor
134
+ return results
135
+
136
+
137
+ T_RequestMapping = TypeVar("T_RequestMapping", bound=AssetMappingClassicRequest | AssetMappingDMRequest)
138
+
139
+
140
+ class ThreeDAssetMappingAPI:
141
+ ENDPOINT = "/3d/models/{modelId}/revisions/{revisionId}/mappings"
142
+ CREATE_CLASSIC_MAX_MAPPINGS_PER_REQUEST = 1000
143
+ CREATE_DM_MAX_MAPPINGS_PER_REQUEST = 100
144
+ DELETE_CLASSIC_MAX_MAPPINGS_PER_REQUEST = 1000
145
+ DELETE_DM_MAX_MAPPINGS_PER_REQUEST = 100
146
+ LIST_REQUEST_MAX_LIMIT = 1000
147
+
148
+ def __init__(self, http_client: HTTPClient, console: Console) -> None:
149
+ self._http_client = http_client
150
+ self._console = console
151
+ self._config = http_client.config
152
+
153
+ def create(self, mappings: Sequence[AssetMappingClassicRequest]) -> list[AssetMappingResponse]:
154
+ """Create 3D asset mappings.
155
+
156
+ Args:
157
+ mappings (Sequence[AssetMappingClassicRequest]):
158
+ The 3D asset mapping(s) to create.
159
+
160
+ Returns:
161
+ list[AssetMappingResponse]: The created 3D asset mapping(s).
162
+ """
163
+ results: list[AssetMappingResponse] = []
164
+ for endpoint, model_id, revision_id, revision_mappings in self._chunk_mappings_by_endpoint(
165
+ mappings, self.CREATE_CLASSIC_MAX_MAPPINGS_PER_REQUEST
166
+ ):
167
+ responses = self._http_client.request_items_retries(
168
+ ItemsRequest2(
169
+ endpoint_url=self._config.create_api_url(endpoint),
170
+ method="POST",
171
+ items=revision_mappings,
172
+ )
173
+ )
174
+ responses.raise_for_status()
175
+ items = responses.get_items()
176
+ for item in items:
177
+ # We append modelId and revisionId to each item since the API does not return them
178
+ # this is needed to fully populate the AssetMappingResponse data class
179
+ item["modelId"] = model_id
180
+ item["revisionId"] = revision_id
181
+ results.extend(TypeAdapter(list[AssetMappingResponse]).validate_python(items))
182
+ return results
183
+
184
+ def create_dm(
185
+ self, mappings: Sequence[AssetMappingDMRequest], object_3d_space: str, cad_node_space: str
186
+ ) -> list[AssetMappingResponse]:
187
+ """Create 3D asset mappings in Data Modeling format.
188
+
189
+ Args:
190
+ mappings (Sequence[AssetMappingDMRequest]):
191
+ The 3D asset mapping(s) to create
192
+ object_3d_space (str):
193
+ The instance space where the Cognite3DObject are located.
194
+ cad_node_space (str):
195
+ The instance space where the CogniteCADNode are located.
196
+ Returns:
197
+ list[AssetMappingResponse]: The created 3D asset mapping(s).
198
+ """
199
+ results: list[AssetMappingResponse] = []
200
+ for endpoint, model_id, revision_id, revision_mappings in self._chunk_mappings_by_endpoint(
201
+ mappings, self.CREATE_DM_MAX_MAPPINGS_PER_REQUEST
202
+ ):
203
+ responses = self._http_client.request_items_retries(
204
+ ItemsRequest2(
205
+ endpoint_url=self._config.create_api_url(endpoint),
206
+ method="POST",
207
+ items=revision_mappings,
208
+ extra_body_fields={
209
+ "dmsContextualizationConfig": {
210
+ "object3DSpace": object_3d_space,
211
+ "cadNodeSpace": cad_node_space,
212
+ }
213
+ },
214
+ )
215
+ )
216
+ responses.raise_for_status()
217
+ items = responses.get_items()
218
+ for item in items:
219
+ # We append modelId and revisionId to each item since the API does not return them
220
+ # this is needed to fully populate the AssetMappingResponse data class
221
+ item["modelId"] = model_id
222
+ item["revisionId"] = revision_id
223
+ results.extend(TypeAdapter(list[AssetMappingResponse]).validate_python(items))
224
+ return results
225
+
226
+ @classmethod
227
+ def _chunk_mappings_by_endpoint(
228
+ cls, mappings: Sequence[T_RequestMapping], chunk_size: int
229
+ ) -> Iterable[tuple[str, int, int, list[T_RequestMapping]]]:
230
+ chunked_mappings: dict[tuple[int, int], list[T_RequestMapping]] = defaultdict(list)
231
+ for mapping in mappings:
232
+ key = mapping.model_id, mapping.revision_id
233
+ chunked_mappings[key].append(mapping)
234
+ for (model_id, revision_id), revision_mappings in chunked_mappings.items():
235
+ endpoint = cls.ENDPOINT.format(modelId=model_id, revisionId=revision_id)
236
+ for chunk in chunker_sequence(revision_mappings, chunk_size):
237
+ yield endpoint, model_id, revision_id, chunk
238
+
239
+ def delete(self, mappings: Sequence[AssetMappingClassicRequest]) -> None:
240
+ """Delete 3D asset mappings.
241
+
242
+ Args:
243
+ mappings (Sequence[AssetMappingClassicRequest]):
244
+ The 3D asset mapping(s) to delete.
245
+ """
246
+ for endpoint, *_, revision_mappings in self._chunk_mappings_by_endpoint(
247
+ mappings, self.DELETE_CLASSIC_MAX_MAPPINGS_PER_REQUEST
248
+ ):
249
+ responses = self._http_client.request_items_retries(
250
+ ItemsRequest2(
251
+ endpoint_url=self._config.create_api_url(f"{endpoint}/delete"),
252
+ method="DELETE",
253
+ items=revision_mappings,
254
+ )
255
+ )
256
+ responses.raise_for_status()
257
+ return None
258
+
259
+ def delete_dm(self, mappings: Sequence[AssetMappingDMRequest], object_3d_space: str, cad_node_space: str) -> None:
260
+ """Delete 3D asset mappings in Data Modeling format.
261
+
262
+ Args:
263
+ mappings (Sequence[AssetMappingDMRequest]):
264
+ The 3D asset mapping(s) to delete.
265
+ object_3d_space (str):
266
+ The instance space where the Cognite3DObject are located.
267
+ cad_node_space (str):
268
+ The instance space where the CogniteCADNode are located.
269
+ """
270
+ for endpoint, *_, revision_mappings in self._chunk_mappings_by_endpoint(
271
+ mappings, self.DELETE_DM_MAX_MAPPINGS_PER_REQUEST
272
+ ):
273
+ responses = self._http_client.request_items_retries(
274
+ ItemsRequest2(
275
+ endpoint_url=self._config.create_api_url(f"{endpoint}/delete"),
276
+ method="DELETE",
277
+ items=revision_mappings,
278
+ extra_body_fields={
279
+ "dmsContextualizationConfig": {
280
+ "object3DSpace": object_3d_space,
281
+ "cadNodeSpace": cad_node_space,
282
+ }
283
+ },
284
+ )
285
+ )
286
+ responses.raise_for_status()
287
+ return None
288
+
289
+ def iterate(
290
+ self,
291
+ model_id: int,
292
+ revision_id: int,
293
+ asset_ids: list[int] | None = None,
294
+ asset_instance_ids: list[str] | None = None,
295
+ node_ids: list[int] | None = None,
296
+ tree_indexes: list[int] | None = None,
297
+ get_dms_instances: bool = False,
298
+ limit: int = 100,
299
+ cursor: str | None = None,
300
+ ) -> PagedResponse[AssetMappingResponse]:
301
+ if not (0 < limit <= self.LIST_REQUEST_MAX_LIMIT):
302
+ raise ValueError(f"Limit must be between 1 and {self.LIST_REQUEST_MAX_LIMIT}, got {limit}.")
303
+ if sum(param is not None for param in [asset_ids, asset_instance_ids, node_ids, tree_indexes]) > 1:
304
+ raise ValueError("Only one of asset_ids, asset_instance_ids, node_ids, or tree_indexes can be provided.")
305
+ body: dict[str, Any] = {
306
+ "getDmsInstances": get_dms_instances,
307
+ "limit": limit,
308
+ }
309
+ if asset_ids is not None:
310
+ if not (0 < len(asset_ids) <= 100):
311
+ raise ValueError("asset_ids must contain between 1 and 100 IDs.")
312
+ body["filter"] = {"assetIds": asset_ids}
313
+ elif asset_instance_ids is not None:
314
+ if not (0 < len(asset_instance_ids) <= 100):
315
+ raise ValueError("asset_instance_ids must contain between 1 and 100 IDs.")
316
+ body["filter"] = {"assetInstanceIds": asset_instance_ids}
317
+ elif node_ids is not None:
318
+ if not (0 < len(node_ids) <= 100):
319
+ raise ValueError("node_ids must contain between 1 and 100 IDs.")
320
+ body["filter"] = {"nodeIds": node_ids}
321
+ elif tree_indexes is not None:
322
+ if not (0 < len(tree_indexes) <= 100):
323
+ raise ValueError("tree_indexes must contain between 1 and 100 indexes.")
324
+ body["filter"] = {"treeIndexes": tree_indexes}
325
+ if cursor is not None:
326
+ body["cursor"] = cursor
327
+
328
+ endpoint = self.ENDPOINT.format(modelId=model_id, revisionId=revision_id)
329
+ responses = self._http_client.request_single_retries(
330
+ RequestMessage2(
331
+ endpoint_url=self._config.create_api_url(f"{endpoint}/list"),
332
+ method="POST",
333
+ body_content=body,
334
+ )
335
+ )
336
+ success_response = responses.get_success_or_raise()
337
+ body_json = success_response.body_json
338
+ # Add modelId and revisionId to items since the API does not return them
339
+ for item in body_json.get("items", []):
340
+ item["modelId"] = model_id
341
+ item["revisionId"] = revision_id
342
+ return PagedResponse[AssetMappingResponse].model_validate(body_json)
343
+
344
+ def list(
345
+ self,
346
+ model_id: int,
347
+ revision_id: int,
348
+ asset_ids: list[int] | None = None,
349
+ asset_instance_ids: list[str] | None = None,
350
+ node_ids: list[int] | None = None,
351
+ tree_indexes: list[int] | None = None,
352
+ get_dms_instances: bool = False,
353
+ limit: int | None = 100,
354
+ ) -> list[AssetMappingResponse]:
355
+ results: list[AssetMappingResponse] = []
356
+ cursor: str | None = None
357
+ while True:
358
+ request_limit = (
359
+ self.LIST_REQUEST_MAX_LIMIT if limit is None else min(limit - len(results), self.LIST_REQUEST_MAX_LIMIT)
360
+ )
361
+ if request_limit <= 0:
362
+ break
363
+ page = self.iterate(
364
+ model_id=model_id,
365
+ revision_id=revision_id,
366
+ asset_ids=asset_ids,
367
+ asset_instance_ids=asset_instance_ids,
368
+ node_ids=node_ids,
369
+ tree_indexes=tree_indexes,
370
+ get_dms_instances=get_dms_instances,
371
+ limit=request_limit,
372
+ cursor=cursor,
373
+ )
374
+ results.extend(page.items)
375
+ if page.next_cursor is None:
376
+ break
377
+ cursor = page.next_cursor
378
+ return results
379
+
380
+
381
+ class ThreeDAPI:
382
+ def __init__(self, http_client: HTTPClient, console: Console) -> None:
383
+ self.models = ThreeDModelAPI(http_client, console)
384
+ self.asset_mappings = ThreeDAssetMappingAPI(http_client, console)
@@ -2,6 +2,8 @@ from typing import Generic, TypeVar
2
2
 
3
3
  from pydantic import BaseModel, Field, JsonValue
4
4
 
5
+ from cognite_toolkit._cdf_tk.utils.http_client._data_classes2 import RequestResource
6
+
5
7
  T = TypeVar("T", bound=BaseModel)
6
8
 
7
9
 
@@ -15,3 +17,14 @@ class QueryResponse(BaseModel, Generic[T]):
15
17
  typing: dict[str, JsonValue] | None = None
16
18
  next_cursor: dict[str, str] = Field(alias="nextCursor")
17
19
  debug: dict[str, JsonValue] | None = None
20
+
21
+
22
+ class InternalIdRequest(RequestResource):
23
+ id: int
24
+
25
+ def as_id(self) -> int:
26
+ return self.id
27
+
28
+ @classmethod
29
+ def from_ids(cls, ids: list[int]) -> list["InternalIdRequest"]:
30
+ return [cls(id=id_) for id_ in ids]