cognite-toolkit 0.7.27__tar.gz → 0.7.29__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 (317) hide show
  1. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/PKG-INFO +1 -1
  2. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/_toolkit_client.py +10 -3
  3. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/extended_functions.py +6 -9
  4. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/charts.py +3 -3
  5. cognite_toolkit-0.7.29/cognite_toolkit/_cdf_tk/client/data_classes/charts_data.py +184 -0
  6. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py +3 -5
  7. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_migrate/migration_io.py +15 -0
  8. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/function.py +2 -2
  9. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/storageio/_annotations.py +2 -1
  10. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/http_client/_client.py +126 -11
  11. cognite_toolkit-0.7.29/cognite_toolkit/_cdf_tk/utils/http_client/_data_classes2.py +97 -0
  12. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml +1 -1
  13. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml +1 -1
  14. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_resources/cdf.toml +1 -1
  15. cognite_toolkit-0.7.29/cognite_toolkit/_version.py +1 -0
  16. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/pyproject.toml +1 -1
  17. cognite_toolkit-0.7.27/cognite_toolkit/_cdf_tk/client/data_classes/charts_data.py +0 -322
  18. cognite_toolkit-0.7.27/cognite_toolkit/_version.py +0 -1
  19. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/README.md +0 -0
  20. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/__init__.py +0 -0
  21. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf.py +0 -0
  22. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/__init__.py +0 -0
  23. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/apps/__init__.py +0 -0
  24. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/apps/_auth_app.py +0 -0
  25. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/apps/_core_app.py +0 -0
  26. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/apps/_data_app.py +0 -0
  27. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/apps/_dev_app.py +0 -0
  28. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/apps/_download_app.py +0 -0
  29. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/apps/_dump_app.py +0 -0
  30. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/apps/_landing_app.py +0 -0
  31. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/apps/_migrate_app.py +0 -0
  32. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/apps/_modules_app.py +0 -0
  33. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/apps/_profile_app.py +0 -0
  34. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/apps/_purge.py +0 -0
  35. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/apps/_repo_app.py +0 -0
  36. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/apps/_run.py +0 -0
  37. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/apps/_upload_app.py +0 -0
  38. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/builders/__init__.py +0 -0
  39. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/builders/_base.py +0 -0
  40. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/builders/_datamodels.py +0 -0
  41. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/builders/_file.py +0 -0
  42. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/builders/_function.py +0 -0
  43. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/builders/_location.py +0 -0
  44. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/builders/_raw.py +0 -0
  45. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/builders/_streamlit.py +0 -0
  46. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/builders/_transformation.py +0 -0
  47. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cdf_toml.py +0 -0
  48. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/__init__.py +0 -0
  49. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/_constants.py +0 -0
  50. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/__init__.py +0 -0
  51. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/canvas.py +0 -0
  52. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/charts.py +0 -0
  53. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/dml.py +0 -0
  54. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/extended_data_modeling.py +0 -0
  55. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/extended_files.py +0 -0
  56. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/extended_raw.py +0 -0
  57. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/extended_timeseries.py +0 -0
  58. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/fixed_transformations.py +0 -0
  59. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/infield.py +0 -0
  60. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/location_filters.py +0 -0
  61. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/lookup.py +0 -0
  62. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/migration.py +0 -0
  63. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/project.py +0 -0
  64. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/robotics/__init__.py +0 -0
  65. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/robotics/api.py +0 -0
  66. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/robotics/capabilities.py +0 -0
  67. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/robotics/data_postprocessing.py +0 -0
  68. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/robotics/frames.py +0 -0
  69. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/robotics/locations.py +0 -0
  70. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/robotics/maps.py +0 -0
  71. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/robotics/robots.py +0 -0
  72. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/robotics/utlis.py +0 -0
  73. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/search.py +0 -0
  74. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/search_config.py +0 -0
  75. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/streams.py +0 -0
  76. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/three_d.py +0 -0
  77. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/token.py +0 -0
  78. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api/verify.py +0 -0
  79. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/api_client.py +0 -0
  80. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/config.py +0 -0
  81. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/__init__.py +0 -0
  82. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/api_classes.py +0 -0
  83. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/apm_config_v1.py +0 -0
  84. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/base.py +0 -0
  85. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/canvas.py +0 -0
  86. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/capabilities.py +0 -0
  87. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/extendable_cognite_file.py +0 -0
  88. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/extended_filemetadata.py +0 -0
  89. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/extended_filemetdata.py +0 -0
  90. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/extended_timeseries.py +0 -0
  91. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/functions.py +0 -0
  92. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/graphql_data_models.py +0 -0
  93. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/infield.py +0 -0
  94. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/instance_api.py +0 -0
  95. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/instances.py +0 -0
  96. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/location_filters.py +0 -0
  97. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/migration.py +0 -0
  98. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/pending_instances_ids.py +0 -0
  99. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/project.py +0 -0
  100. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/raw.py +0 -0
  101. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/robotics.py +0 -0
  102. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/search_config.py +0 -0
  103. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/sequences.py +0 -0
  104. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/streamlit_.py +0 -0
  105. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/streams.py +0 -0
  106. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/data_classes/three_d.py +0 -0
  107. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/testing.py +0 -0
  108. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/utils/__init__.py +0 -0
  109. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/utils/_concurrency.py +0 -0
  110. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/client/utils/_http_client.py +0 -0
  111. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/__init__.py +0 -0
  112. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_base.py +0 -0
  113. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_changes.py +0 -0
  114. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_cli_commands.py +0 -0
  115. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_download.py +0 -0
  116. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_migrate/__init__.py +0 -0
  117. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_migrate/command.py +0 -0
  118. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py +0 -0
  119. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_migrate/creators.py +0 -0
  120. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_migrate/data_classes.py +0 -0
  121. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_migrate/data_model.py +0 -0
  122. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_migrate/default_mappings.py +0 -0
  123. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_migrate/issues.py +0 -0
  124. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_migrate/prepare.py +0 -0
  125. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_migrate/selectors.py +0 -0
  126. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_profile.py +0 -0
  127. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_purge.py +0 -0
  128. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_questionary_style.py +0 -0
  129. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_upload.py +0 -0
  130. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_utils.py +0 -0
  131. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/_virtual_env.py +0 -0
  132. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/about.py +0 -0
  133. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/auth.py +0 -0
  134. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/build_cmd.py +0 -0
  135. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/clean.py +0 -0
  136. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/collect.py +0 -0
  137. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/deploy.py +0 -0
  138. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/dump_resource.py +0 -0
  139. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/init.py +0 -0
  140. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/modules.py +0 -0
  141. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/pull.py +0 -0
  142. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/repo.py +0 -0
  143. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/resources.py +0 -0
  144. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/commands/run.py +0 -0
  145. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/constants.py +0 -0
  146. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/__init__.py +0 -0
  147. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_base_cruds.py +0 -0
  148. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_data_cruds.py +0 -0
  149. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/__init__.py +0 -0
  150. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/agent.py +0 -0
  151. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/auth.py +0 -0
  152. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/classic.py +0 -0
  153. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py +0 -0
  154. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/data_organization.py +0 -0
  155. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py +0 -0
  156. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/extraction_pipeline.py +0 -0
  157. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py +0 -0
  158. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py +0 -0
  159. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/group_scoped.py +0 -0
  160. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/hosted_extractors.py +0 -0
  161. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/industrial_tool.py +0 -0
  162. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/location.py +0 -0
  163. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/migration.py +0 -0
  164. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/raw.py +0 -0
  165. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/relationship.py +0 -0
  166. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/robotics.py +0 -0
  167. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py +0 -0
  168. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/three_d_model.py +0 -0
  169. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py +0 -0
  170. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py +0 -0
  171. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_resource_cruds/workflow.py +0 -0
  172. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/cruds/_worker.py +0 -0
  173. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/data_classes/__init__.py +0 -0
  174. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/data_classes/_base.py +0 -0
  175. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/data_classes/_build_files.py +0 -0
  176. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/data_classes/_build_variables.py +0 -0
  177. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/data_classes/_built_modules.py +0 -0
  178. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/data_classes/_built_resources.py +0 -0
  179. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/data_classes/_config_yaml.py +0 -0
  180. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/data_classes/_deploy_results.py +0 -0
  181. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/data_classes/_module_directories.py +0 -0
  182. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/data_classes/_module_resources.py +0 -0
  183. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/data_classes/_module_toml.py +0 -0
  184. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/data_classes/_packages.py +0 -0
  185. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/data_classes/_tracking_info.py +0 -0
  186. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/data_classes/_yaml_comments.py +0 -0
  187. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/exceptions.py +0 -0
  188. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/feature_flags.py +0 -0
  189. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/hints.py +0 -0
  190. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/plugins.py +0 -0
  191. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/protocols.py +0 -0
  192. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/prototypes/commands/__init__.py +0 -0
  193. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/prototypes/commands/import_.py +0 -0
  194. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/prototypes/import_app.py +0 -0
  195. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/__init__.py +0 -0
  196. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/agent.py +0 -0
  197. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/agent_tools.py +0 -0
  198. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/asset.py +0 -0
  199. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/authentication.py +0 -0
  200. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/base.py +0 -0
  201. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/capabilities.py +0 -0
  202. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/cognitefile.py +0 -0
  203. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/container_field_definitions.py +0 -0
  204. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/containers.py +0 -0
  205. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/data_model.py +0 -0
  206. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/datapoint_subscription.py +0 -0
  207. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/dataset.py +0 -0
  208. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/event.py +0 -0
  209. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/extraction_pipeline.py +0 -0
  210. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/extraction_pipeline_config.py +0 -0
  211. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/filemetadata.py +0 -0
  212. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/function_schedule.py +0 -0
  213. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/functions.py +0 -0
  214. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/graphql_model.py +0 -0
  215. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/groups.py +0 -0
  216. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_destination.py +0 -0
  217. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_job.py +0 -0
  218. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_mapping.py +0 -0
  219. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/hosted_extractor_source.py +0 -0
  220. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/infield_cdm_location_config.py +0 -0
  221. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/infield_location_config.py +0 -0
  222. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/infield_v1.py +0 -0
  223. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/instance.py +0 -0
  224. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/labels.py +0 -0
  225. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/location.py +0 -0
  226. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/migration.py +0 -0
  227. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/raw_database_table.py +0 -0
  228. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/relationship.py +0 -0
  229. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/robotics/__init__.py +0 -0
  230. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/robotics/capability.py +0 -0
  231. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/robotics/data_postprocessing.py +0 -0
  232. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/robotics/frame.py +0 -0
  233. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/robotics/location.py +0 -0
  234. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/robotics/map.py +0 -0
  235. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/search_config.py +0 -0
  236. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/securitycategories.py +0 -0
  237. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/sequence.py +0 -0
  238. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/space.py +0 -0
  239. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/streamlit_.py +0 -0
  240. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/streams.py +0 -0
  241. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/threedmodels.py +0 -0
  242. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/timeseries.py +0 -0
  243. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/transformation_destination.py +0 -0
  244. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/transformation_notification.py +0 -0
  245. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/transformation_schedule.py +0 -0
  246. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/transformations.py +0 -0
  247. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/view_field_definitions.py +0 -0
  248. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/views.py +0 -0
  249. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/workflow.py +0 -0
  250. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/workflow_trigger.py +0 -0
  251. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/resource_classes/workflow_version.py +0 -0
  252. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/storageio/__init__.py +0 -0
  253. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/storageio/_applications.py +0 -0
  254. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/storageio/_asset_centric.py +0 -0
  255. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/storageio/_base.py +0 -0
  256. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/storageio/_data_classes.py +0 -0
  257. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/storageio/_datapoints.py +0 -0
  258. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/storageio/_file_content.py +0 -0
  259. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/storageio/_instances.py +0 -0
  260. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/storageio/_raw.py +0 -0
  261. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/storageio/selectors/__init__.py +0 -0
  262. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/storageio/selectors/_asset_centric.py +0 -0
  263. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/storageio/selectors/_base.py +0 -0
  264. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/storageio/selectors/_canvas.py +0 -0
  265. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/storageio/selectors/_charts.py +0 -0
  266. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/storageio/selectors/_datapoints.py +0 -0
  267. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/storageio/selectors/_file_content.py +0 -0
  268. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/storageio/selectors/_instances.py +0 -0
  269. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/storageio/selectors/_raw.py +0 -0
  270. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/tk_warnings/__init__.py +0 -0
  271. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/tk_warnings/base.py +0 -0
  272. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/tk_warnings/fileread.py +0 -0
  273. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/tk_warnings/other.py +0 -0
  274. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/tracker.py +0 -0
  275. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/__init__.py +0 -0
  276. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/_auxiliary.py +0 -0
  277. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/aggregators.py +0 -0
  278. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/auth.py +0 -0
  279. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/auxiliary.py +0 -0
  280. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/cdf.py +0 -0
  281. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/cicd.py +0 -0
  282. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/cli_args.py +0 -0
  283. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/collection.py +0 -0
  284. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/diff_list.py +0 -0
  285. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/dtype_conversion.py +0 -0
  286. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/file.py +0 -0
  287. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/fileio/__init__.py +0 -0
  288. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/fileio/_base.py +0 -0
  289. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/fileio/_compression.py +0 -0
  290. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/fileio/_readers.py +0 -0
  291. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/fileio/_writers.py +0 -0
  292. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/graphql_parser.py +0 -0
  293. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/hashing.py +0 -0
  294. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/http_client/__init__.py +0 -0
  295. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/http_client/_data_classes.py +0 -0
  296. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/http_client/_exception.py +0 -0
  297. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/http_client/_tracker.py +0 -0
  298. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/interactive_select.py +0 -0
  299. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/modules.py +0 -0
  300. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/producer_worker.py +0 -0
  301. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/progress_tracker.py +0 -0
  302. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/repository.py +0 -0
  303. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/sentry_utils.py +0 -0
  304. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/sql_parser.py +0 -0
  305. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/text.py +0 -0
  306. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/thread_safe_dict.py +0 -0
  307. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/useful_types.py +0 -0
  308. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/utils/validate_access.py +0 -0
  309. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_cdf_tk/validation.py +0 -0
  310. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_repo_files/.env.tmpl +0 -0
  311. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_repo_files/.gitignore +0 -0
  312. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_repo_files/AzureDevOps/.devops/README.md +0 -0
  313. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_repo_files/AzureDevOps/.devops/deploy-pipeline.yml +0 -0
  314. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/_repo_files/AzureDevOps/.devops/dry-run-pipeline.yml +0 -0
  315. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/config.dev.yaml +0 -0
  316. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/cognite_toolkit/demo/__init__.py +0 -0
  317. {cognite_toolkit-0.7.27 → cognite_toolkit-0.7.29}/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.27
3
+ Version: 0.7.29
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>
@@ -35,19 +35,26 @@ class ToolAPI:
35
35
 
36
36
 
37
37
  class ToolkitClient(CogniteClient):
38
- def __init__(self, config: ToolkitClientConfig | None = None, enable_set_pending_ids: bool = False) -> None:
38
+ def __init__(
39
+ self,
40
+ config: ToolkitClientConfig | None = None,
41
+ enable_set_pending_ids: bool = False,
42
+ console: Console | None = None,
43
+ ) -> None:
39
44
  super().__init__(config=config)
40
45
  http_client = HTTPClient(self.config)
41
46
  self.http_client = http_client
42
47
  toolkit_config = ToolkitClientConfig.from_client_config(self.config)
43
- self.console = Console()
48
+ self.console = console or Console()
44
49
  self.tool = ToolAPI(http_client, self.console)
45
50
  self.search = SearchAPI(self._config, self._API_VERSION, self)
46
51
  self.robotics = RoboticsAPI(self._config, self._API_VERSION, self)
47
52
  self.dml = DMLAPI(self._config, self._API_VERSION, self)
48
53
  self.verify = VerifyAPI(self._config, self._API_VERSION, self)
49
54
  self.lookup = LookUpGroup(self._config, self._API_VERSION, self, self.console)
50
- self.functions: ExtendedFunctionsAPI = ExtendedFunctionsAPI(toolkit_config, self._API_VERSION, self)
55
+ self.functions: ExtendedFunctionsAPI = ExtendedFunctionsAPI(
56
+ toolkit_config, self._API_VERSION, self, self.console
57
+ )
51
58
  self.data_modeling: ExtendedDataModelingAPI = ExtendedDataModelingAPI(self._config, self._API_VERSION, self)
52
59
  if enable_set_pending_ids:
53
60
  self.time_series: ExtendedTimeSeriesAPI = ExtendedTimeSeriesAPI(self._config, self._API_VERSION, self)
@@ -17,15 +17,16 @@ class ExtendedFunctionsAPI(FunctionsAPI):
17
17
  config: ToolkitClientConfig,
18
18
  api_version: str | None,
19
19
  cognite_client: CogniteClient,
20
+ console: Console | None = None,
20
21
  ) -> None:
21
22
  """
22
23
  Extended Functions API to include custom headers and payload preparation.
23
24
  """
24
25
  super().__init__(config, api_version, cognite_client)
25
26
  self._toolkit_config = config
26
- self._toolkit_http_client = HTTPClient(config, max_retries=global_config.max_retries)
27
+ self._toolkit_http_client = HTTPClient(config, max_retries=global_config.max_retries, console=console)
27
28
 
28
- def create_with_429_retry(self, function: FunctionWrite, console: Console | None = None) -> Function:
29
+ def create_with_429_retry(self, function: FunctionWrite) -> Function:
29
30
  """Create a function with manual retry handling for 429 Too Many Requests responses.
30
31
 
31
32
  This method is a workaround for scenarios where the function creation API is temporarily unavailable
@@ -43,16 +44,13 @@ class ExtendedFunctionsAPI(FunctionsAPI):
43
44
  endpoint_url=self._toolkit_config.create_api_url("/functions"),
44
45
  method="POST",
45
46
  body_content={"items": [function.dump(camel_case=True)]},
46
- ),
47
- console=console,
47
+ )
48
48
  )
49
49
  result.raise_for_status()
50
50
  # We assume the API response is one item on a successful creation
51
51
  return Function._load(result.get_first_body()["items"][0], cognite_client=self._cognite_client) # type: ignore[arg-type,index]
52
52
 
53
- def delete_with_429_retry(
54
- self, external_id: SequenceNotStr[str], ignore_unknown_ids: bool = False, console: Console | None = None
55
- ) -> None:
53
+ def delete_with_429_retry(self, external_id: SequenceNotStr[str], ignore_unknown_ids: bool = False) -> None:
56
54
  """Delete one or more functions with retry handling for 429 Too Many Requests responses.
57
55
 
58
56
  This method is an improvement over the standard delete method in the FunctionsAPI.
@@ -77,7 +75,6 @@ class ExtendedFunctionsAPI(FunctionsAPI):
77
75
  endpoint_url=self._toolkit_config.create_api_url("/functions/delete"),
78
76
  method="POST",
79
77
  body_content=body_content,
80
- ),
81
- console=console,
78
+ )
82
79
  ).raise_for_status()
83
80
  return None
@@ -36,7 +36,7 @@ class ChartCore(WriteableCogniteResource["ChartWrite"], ABC):
36
36
  def dump(self, camel_case: bool = True) -> dict[str, Any]:
37
37
  """Convert the chart to a dictionary representation."""
38
38
  output = super().dump(camel_case=camel_case)
39
- output["data"] = self.data.dump(camel_case=camel_case)
39
+ output["data"] = self.data.model_dump(mode="json", by_alias=camel_case, exclude_unset=True)
40
40
  return output
41
41
 
42
42
 
@@ -58,7 +58,7 @@ class ChartWrite(ChartCore):
58
58
  return cls(
59
59
  external_id=resource["externalId"],
60
60
  visibility=resource["visibility"],
61
- data=ChartData._load(resource["data"], cognite_client=cognite_client),
61
+ data=ChartData._load(resource["data"]),
62
62
  )
63
63
 
64
64
 
@@ -98,7 +98,7 @@ class Chart(ChartCore):
98
98
  created_time=resource["createdTime"],
99
99
  last_updated_time=resource["lastUpdatedTime"],
100
100
  visibility=resource["visibility"],
101
- data=ChartData._load(resource["data"], cognite_client=cognite_client),
101
+ data=ChartData._load(resource["data"]),
102
102
  owner_id=resource["ownerId"],
103
103
  )
104
104
 
@@ -0,0 +1,184 @@
1
+ from typing import Any
2
+
3
+ from cognite.client.data_classes.data_modeling import NodeId, ViewId
4
+ from pydantic import JsonValue, field_serializer, field_validator
5
+
6
+ from .base import BaseModelObject
7
+
8
+
9
+ class UserInfo(BaseModelObject):
10
+ id: str | None = None
11
+ email: str | None = None
12
+ display_name: str | None = None
13
+
14
+
15
+ class ChartSettings(BaseModelObject):
16
+ show_y_axis: bool = True
17
+ show_min_max: bool = True
18
+ show_gridlines: bool = True
19
+ merge_units: bool = False
20
+
21
+
22
+ class ThresholdFilter(BaseModelObject):
23
+ min_unit: str | None = None
24
+ max_unit: str | None = None
25
+
26
+
27
+ class ChartCall(BaseModelObject):
28
+ id: str | None = None
29
+ hash: int | None = None
30
+ call_id: str | None = None
31
+ call_date: int | None = None
32
+ status: str | None = None
33
+
34
+
35
+ class SubSetting(BaseModelObject):
36
+ auto_align: bool | None = None
37
+
38
+
39
+ class ChartPosition(BaseModelObject):
40
+ x: float | None = None
41
+ y: float | None = None
42
+
43
+
44
+ class FlowElement(BaseModelObject):
45
+ id: str | None = None
46
+ type: str | None = None
47
+ position: ChartPosition | None = None
48
+ data: JsonValue | None = None
49
+ source: str | None = None
50
+ target: str | None = None
51
+ source_handle: str | None = None
52
+ target_handle: str | None = None
53
+
54
+
55
+ class Flow(BaseModelObject):
56
+ zoom: float | None = None
57
+ elements: list[FlowElement] | None = None
58
+ position: tuple[float | None, float | None] | None = None
59
+
60
+
61
+ class ChartElement(BaseModelObject):
62
+ id: str | None = None
63
+ type: str | None = None
64
+
65
+
66
+ class ChartSource(ChartElement): ...
67
+
68
+
69
+ class ChartCoreTimeseries(ChartElement):
70
+ node_reference: NodeId | None = None
71
+ view_reference: ViewId | None = None
72
+ display_mode: str | None = None
73
+ color: str | None = None
74
+ created_at: int | None = None
75
+ enabled: bool | None = None
76
+ interpolation: str | None = None
77
+ line_style: str | None = None
78
+ line_weight: float | None = None
79
+ name: str | None = None
80
+ preferred_unit: str | None = None
81
+ range: list[float | None] | None = None
82
+
83
+ @field_serializer("node_reference", when_used="always")
84
+ def serialize_node_reference(self, node_reference: NodeId | None) -> dict[str, Any] | None:
85
+ if node_reference:
86
+ return node_reference.dump(include_instance_type=False)
87
+ return None
88
+
89
+ @field_serializer("view_reference", when_used="always")
90
+ def serialize_view_reference(self, view_reference: ViewId | None) -> dict[str, Any] | None:
91
+ if view_reference:
92
+ return view_reference.dump(include_type=False)
93
+ return None
94
+
95
+ @field_validator("node_reference", mode="before")
96
+ @classmethod
97
+ def validate_node_reference(cls, value: Any) -> NodeId | None:
98
+ if value is None or isinstance(value, NodeId):
99
+ return value
100
+ return NodeId.load(value)
101
+
102
+ @field_validator("view_reference", mode="before")
103
+ @classmethod
104
+ def validate_view_reference(cls, value: Any) -> ViewId | None:
105
+ if value is None or isinstance(value, ViewId):
106
+ return value
107
+ return ViewId.load(value)
108
+
109
+
110
+ class ChartTimeseries(ChartElement):
111
+ color: str | None = None
112
+ created_at: int | None = None
113
+ enabled: bool | None = None
114
+ interpolation: str | None = None
115
+ line_style: str | None = None
116
+ line_weight: float | None = None
117
+ name: str | None = None
118
+ preferred_unit: str | None = None
119
+ range: list[float | None] | None = None
120
+ unit: str | None = None
121
+ ts_id: int | None = None
122
+ ts_external_id: str | None = None
123
+ display_mode: str | None = None
124
+ original_unit: str | None = None
125
+ description: str | None = None
126
+
127
+
128
+ class ChartWorkflow(ChartElement):
129
+ version: str | None = None
130
+ name: str | None = None
131
+ color: str | None = None
132
+ enabled: bool | None = None
133
+ line_weight: float | None = None
134
+ line_style: str | None = None
135
+ interpolation: str | None = None
136
+ unit: str | None = None
137
+ preferred_unit: str | None = None
138
+ range: list[float | None] | None = None
139
+ created_at: int | None = None
140
+ settings: SubSetting | None = None
141
+ flow: Flow | None = None
142
+ calls: list[ChartCall] | None = None
143
+
144
+
145
+ class ChartThreshold(ChartElement):
146
+ visible: bool | None = None
147
+ name: str | None = None
148
+ source_id: str | None = None
149
+ upper_limit: float | None = None
150
+ filter: ThresholdFilter | None = None
151
+ calls: list[ChartCall] | None = None
152
+
153
+
154
+ class ChartScheduledCalculation(ChartElement):
155
+ color: str | None = None
156
+ created_at: int | None = None
157
+ description: str | None = None
158
+ enabled: bool | None = None
159
+ interpolation: str | None = None
160
+ line_style: str | None = None
161
+ line_weight: float | None = None
162
+ name: str | None = None
163
+ preferred_unit: str | None = None
164
+ range: list[float | None] | None = None
165
+ unit: str | None = None
166
+ version: str | None = None
167
+ settings: SubSetting | None = None
168
+ flow: Flow | None = None
169
+
170
+
171
+ class ChartData(BaseModelObject):
172
+ version: int | None = None
173
+ name: str | None = None
174
+ date_from: str | None = None
175
+ date_to: str | None = None
176
+ user_info: UserInfo | None = None
177
+ live_mode: bool | None = None
178
+ time_series_collection: list[ChartTimeseries] | None = None
179
+ core_timeseries_collection: list[ChartCoreTimeseries] | None = None
180
+ workflow_collection: list[ChartWorkflow] | None = None
181
+ source_collection: list[ChartSource] | None = None
182
+ threshold_collection: list[ChartThreshold] | None = None
183
+ scheduled_calculation_collection: list[ChartScheduledCalculation] | None = None
184
+ settings: ChartSettings | None = None
@@ -210,16 +210,14 @@ class ChartMapper(DataMapper[ChartSelector, Chart, ChartWrite]):
210
210
  def _create_new_timeseries_core(
211
211
  self, ts_item: ChartTimeseries, node_id: NodeId, consumer_view_id: ViewId | None
212
212
  ) -> ChartCoreTimeseries:
213
- dumped = ts_item.dump(camel_case=True)
214
- for asset_centric_key in ["tsId", "tsExternalId", "originalUnit"]:
215
- dumped.pop(asset_centric_key, None)
216
-
213
+ dumped = ts_item.model_dump(mode="json", by_alias=True, exclude_unset=True)
217
214
  dumped["nodeReference"] = node_id
218
215
  dumped["viewReference"] = consumer_view_id
219
216
  new_uuid = str(uuid4())
220
217
  dumped["id"] = new_uuid
221
218
  dumped["type"] = "coreTimeseries"
222
- core_timeseries = ChartCoreTimeseries._load(dumped)
219
+ # We ignore extra here to only include the fields that are shared between ChartTimeseries and ChartCoreTimeseries
220
+ core_timeseries = ChartCoreTimeseries.model_validate(dumped, extra="ignore")
223
221
  return core_timeseries
224
222
 
225
223
  def _get_node_id_consumer_view_id(self, ts_item: ChartTimeseries) -> tuple[NodeId | None, ViewId | None]:
@@ -231,6 +231,8 @@ class AnnotationMigrationIO(
231
231
  CHUNK_SIZE = 1000
232
232
  UPLOAD_ENDPOINT = InstanceIO.UPLOAD_ENDPOINT
233
233
 
234
+ SUPPORTED_ANNOTATION_TYPES = frozenset({"diagrams.AssetLink", "diagrams.FileLink"})
235
+
234
236
  def __init__(
235
237
  self,
236
238
  client: ToolkitClient,
@@ -272,6 +274,10 @@ class AnnotationMigrationIO(
272
274
  for data_chunk in self.annotation_io.stream_data(asset_centric_selector, limit):
273
275
  mapping_list = AssetCentricMappingList[Annotation]([])
274
276
  for resource in data_chunk.items:
277
+ if resource.annotation_type not in self.SUPPORTED_ANNOTATION_TYPES:
278
+ # This should not happen, as the annotation_io should already filter these out.
279
+ # This is just in case.
280
+ continue
275
281
  mapping = AnnotationMapping(
276
282
  instance_id=EdgeId(space=self.instance_space, external_id=f"annotation_{resource.id!r}"),
277
283
  id=resource.id,
@@ -294,11 +300,15 @@ class AnnotationMigrationIO(
294
300
  resources = self.client.annotations.retrieve_multiple(current_batch.get_ids())
295
301
  resources_by_id = {resource.id: resource for resource in resources}
296
302
  not_found = 0
303
+ incorrect_type_count = 0
297
304
  for mapping in current_batch:
298
305
  resource = resources_by_id.get(mapping.id)
299
306
  if resource is None:
300
307
  not_found += 1
301
308
  continue
309
+ if resource.annotation_type not in self.SUPPORTED_ANNOTATION_TYPES:
310
+ incorrect_type_count += 1
311
+ continue
302
312
  mapping.ingestion_view = self._get_mapping(mapping.ingestion_view, resource)
303
313
  chunk.append(AssetCentricMapping(mapping=mapping, resource=resource))
304
314
  if chunk:
@@ -308,6 +318,11 @@ class AnnotationMigrationIO(
308
318
  MediumSeverityWarning(
309
319
  f"Could not find {not_found} annotations referenced in the CSV file. They will be skipped during migration."
310
320
  ).print_warning(include_timestamp=True, console=self.client.console)
321
+ if incorrect_type_count:
322
+ MediumSeverityWarning(
323
+ f"Found {incorrect_type_count} annotations with unsupported types. Only 'diagrams.AssetLink' and "
324
+ "'diagrams.FileLink' are supported. These annotations will be skipped during migration."
325
+ ).print_warning(include_timestamp=True, console=self.client.console)
311
326
 
312
327
  def _get_mapping(self, current_mapping: str | None, resource: Annotation) -> str:
313
328
  try:
@@ -320,7 +320,7 @@ class FunctionCRUD(ResourceCRUD[str, FunctionWrite, Function]):
320
320
  " problem persists, please contact Cognite support."
321
321
  )
322
322
  item.file_id = file_id
323
- created_item = self.client.functions.create_with_429_retry(item, console=self.console)
323
+ created_item = self.client.functions.create_with_429_retry(item)
324
324
  self._warn_if_cpu_or_memory_changed(created_item, item)
325
325
  created.append(created_item)
326
326
  return created
@@ -404,7 +404,7 @@ class FunctionCRUD(ResourceCRUD[str, FunctionWrite, Function]):
404
404
  def delete(self, ids: SequenceNotStr[str]) -> int:
405
405
  functions = self.retrieve(ids)
406
406
 
407
- self.client.functions.delete_with_429_retry(external_id=ids, ignore_unknown_ids=True, console=self.console)
407
+ self.client.functions.delete_with_429_retry(external_id=ids, ignore_unknown_ids=True)
408
408
  file_ids = {func.file_id for func in functions if func.file_id}
409
409
  self.client.files.delete(id=list(file_ids), ignore_unknown_ids=True)
410
410
  return len(ids)
@@ -33,7 +33,8 @@ class AnnotationIO(StorageIO[AssetCentricSelector, Annotation]):
33
33
  annotated_resource_type="file",
34
34
  annotated_resource_ids=[{"id": file_metadata.id} for file_metadata in file_chunk.items],
35
35
  annotation_type=annotation_type,
36
- )
36
+ ),
37
+ limit=-1,
37
38
  )
38
39
  if limit is not None and total + len(results) > limit:
39
40
  results = results[: limit - total]
@@ -23,6 +23,15 @@ from cognite_toolkit._cdf_tk.utils.http_client._data_classes import (
23
23
  ResponseList,
24
24
  ResponseMessage,
25
25
  )
26
+ from cognite_toolkit._cdf_tk.utils.http_client._data_classes2 import (
27
+ BaseRequestMessage,
28
+ ErrorDetails2,
29
+ FailedRequest2,
30
+ FailedResponse2,
31
+ HTTPResult2,
32
+ RequestMessage2,
33
+ SuccessResponse2,
34
+ )
26
35
  from cognite_toolkit._cdf_tk.utils.useful_types import PrimitiveType
27
36
 
28
37
  if sys.version_info >= (3, 11):
@@ -48,6 +57,7 @@ class HTTPClient:
48
57
  Default is {408, 429, 502, 503, 504}.
49
58
  split_items_status_codes (frozenset[int]): In the case of ItemRequest with multiple
50
59
  items, these status codes will trigger splitting the request into smaller batches.
60
+ console (Console | None): Optional Rich Console for printing warnings.
51
61
 
52
62
  """
53
63
 
@@ -59,6 +69,7 @@ class HTTPClient:
59
69
  pool_maxsize: int = 20,
60
70
  retry_status_codes: Set[int] = frozenset({408, 429, 502, 503, 504}),
61
71
  split_items_status_codes: Set[int] = frozenset({400, 408, 409, 422, 502, 503, 504}),
72
+ console: Console | None = None,
62
73
  ):
63
74
  self.config = config
64
75
  self._max_retries = max_retries
@@ -66,6 +77,7 @@ class HTTPClient:
66
77
  self._pool_maxsize = pool_maxsize
67
78
  self._retry_status_codes = retry_status_codes
68
79
  self._split_items_status_codes = split_items_status_codes
80
+ self._console = console
69
81
 
70
82
  # Thread-safe session for connection pooling
71
83
  self.session = self._create_thread_safe_session()
@@ -80,12 +92,11 @@ class HTTPClient:
80
92
  self.session.close()
81
93
  return False # Do not suppress exceptions
82
94
 
83
- def request(self, message: RequestMessage, console: Console | None = None) -> Sequence[HTTPMessage]:
95
+ def request(self, message: RequestMessage) -> Sequence[HTTPMessage]:
84
96
  """Send an HTTP request and return the response.
85
97
 
86
98
  Args:
87
99
  message (RequestMessage): The request message to send.
88
- console (Console | None): The rich console to use for printing warnings.
89
100
 
90
101
  Returns:
91
102
  Sequence[HTTPMessage]: The response message(s). This can also
@@ -98,12 +109,12 @@ class HTTPClient:
98
109
  return message.create_failed_request(error_msg)
99
110
  try:
100
111
  response = self._make_request(message)
101
- results = self._handle_response(response, message, console)
112
+ results = self._handle_response(response, message)
102
113
  except Exception as e:
103
114
  results = self._handle_error(e, message)
104
115
  return results
105
116
 
106
- def request_with_retries(self, message: RequestMessage, console: Console | None = None) -> ResponseList:
117
+ def request_with_retries(self, message: RequestMessage) -> ResponseList:
107
118
  """Send an HTTP request and handle retries.
108
119
 
109
120
  This method will keep retrying the request until it either succeeds or
@@ -114,7 +125,6 @@ class HTTPClient:
114
125
 
115
126
  Args:
116
127
  message (RequestMessage): The request message to send.
117
- console (Console | None): The rich console to use for printing warnings.
118
128
 
119
129
  Returns:
120
130
  Sequence[ResponseMessage | FailedRequestMessage]: The final response
@@ -127,7 +137,7 @@ class HTTPClient:
127
137
  final_responses = ResponseList([])
128
138
  while pending_requests:
129
139
  current_request = pending_requests.popleft()
130
- results = self.request(current_request, console)
140
+ results = self.request(current_request)
131
141
 
132
142
  for result in results:
133
143
  if isinstance(result, RequestMessage):
@@ -194,9 +204,7 @@ class HTTPClient:
194
204
  follow_redirects=False,
195
205
  )
196
206
 
197
- def _handle_response(
198
- self, response: httpx.Response, request: RequestMessage, console: Console | None = None
199
- ) -> Sequence[HTTPMessage]:
207
+ def _handle_response(self, response: httpx.Response, request: RequestMessage) -> Sequence[HTTPMessage]:
200
208
  if 200 <= response.status_code < 300:
201
209
  return request.create_success_response(response)
202
210
  elif (
@@ -216,11 +224,11 @@ class HTTPClient:
216
224
 
217
225
  retry_after = self._get_retry_after_in_header(response)
218
226
  if retry_after is not None and response.status_code == 429 and request.status_attempt < self._max_retries:
219
- if console is not None:
227
+ if self._console is not None:
220
228
  short_url = request.endpoint_url.removeprefix(self.config.base_api_url)
221
229
  HighSeverityWarning(
222
230
  f"Rate limit exceeded for the {short_url!r} endpoint. Retrying after {retry_after} seconds."
223
- ).print_warning(console=console)
231
+ ).print_warning(console=self._console)
224
232
  request.status_attempt += 1
225
233
  time.sleep(retry_after)
226
234
  return [request]
@@ -273,3 +281,110 @@ class HTTPClient:
273
281
  error_msg = f"RequestException after {request.total_attempts - 1} attempts ({error_type} error): {e!s}"
274
282
 
275
283
  return request.create_failed_request(error_msg)
284
+
285
+ def request_single(self, message: RequestMessage2) -> RequestMessage2 | HTTPResult2:
286
+ """Send an HTTP request and return the response.
287
+
288
+ Args:
289
+ message (RequestMessage2): The request message to send.
290
+ Returns:
291
+ HTTPMessage: The response message.
292
+ """
293
+ try:
294
+ response = self._make_request2(message)
295
+ result = self._handle_response_single(response, message)
296
+ except Exception as e:
297
+ result = self._handle_error_single(e, message)
298
+ return result
299
+
300
+ def request_single_retries(self, message: RequestMessage2) -> HTTPResult2:
301
+ """Send an HTTP request and handle retries.
302
+
303
+ This method will keep retrying the request until it either succeeds or
304
+ exhausts the maximum number of retries.
305
+
306
+ Note this method will use the current thread to process all request, thus
307
+ it is blocking.
308
+
309
+ Args:
310
+ message (RequestMessage2): The request message to send.
311
+ Returns:
312
+ HTTPMessage2: The final response message, which can be either successful response or failed request.
313
+ """
314
+ if message.total_attempts > 0:
315
+ raise RuntimeError(f"RequestMessage has already been attempted {message.total_attempts} times.")
316
+ current_request = message
317
+ while True:
318
+ result = self.request_single(current_request)
319
+ if isinstance(result, RequestMessage2):
320
+ current_request = result
321
+ elif isinstance(result, HTTPResult2):
322
+ return result
323
+ else:
324
+ raise TypeError(f"Unexpected result type: {type(result)}")
325
+
326
+ def _make_request2(self, message: BaseRequestMessage) -> httpx.Response:
327
+ headers = self._create_headers(message.api_version, message.content_type, message.accept)
328
+ return self.session.request(
329
+ method=message.method,
330
+ url=message.endpoint_url,
331
+ content=message.content,
332
+ headers=headers,
333
+ params=message.parameters,
334
+ timeout=self.config.timeout,
335
+ follow_redirects=False,
336
+ )
337
+
338
+ def _handle_response_single(
339
+ self, response: httpx.Response, request: RequestMessage2
340
+ ) -> RequestMessage2 | HTTPResult2:
341
+ if 200 <= response.status_code < 300:
342
+ return SuccessResponse2(
343
+ status_code=response.status_code,
344
+ body=response.text,
345
+ content=response.content,
346
+ )
347
+ retry_after = self._get_retry_after_in_header(response)
348
+ if retry_after is not None and response.status_code == 429 and request.status_attempt < self._max_retries:
349
+ if self._console is not None:
350
+ short_url = request.endpoint_url.removeprefix(self.config.base_api_url)
351
+ HighSeverityWarning(
352
+ f"Rate limit exceeded for the {short_url!r} endpoint. Retrying after {retry_after} seconds."
353
+ ).print_warning(console=self._console)
354
+ request.status_attempt += 1
355
+ time.sleep(retry_after)
356
+ return request
357
+
358
+ if request.status_attempt < self._max_retries and response.status_code in self._retry_status_codes:
359
+ request.status_attempt += 1
360
+ time.sleep(self._backoff_time(request.total_attempts))
361
+ return request
362
+ else:
363
+ # Permanent failure
364
+ return FailedResponse2(
365
+ status_code=response.status_code,
366
+ body=response.text,
367
+ error=ErrorDetails2.from_response(response),
368
+ )
369
+
370
+ def _handle_error_single(self, e: Exception, request: RequestMessage2) -> RequestMessage2 | HTTPResult2:
371
+ if isinstance(e, httpx.ReadTimeout | httpx.TimeoutException):
372
+ error_type = "read"
373
+ request.read_attempt += 1
374
+ attempts = request.read_attempt
375
+ elif isinstance(e, ConnectionError | httpx.ConnectError | httpx.ConnectTimeout):
376
+ error_type = "connect"
377
+ request.connect_attempt += 1
378
+ attempts = request.connect_attempt
379
+ else:
380
+ error_msg = f"Unexpected exception: {e!s}"
381
+ return FailedRequest2(error=error_msg)
382
+
383
+ if attempts <= self._max_retries:
384
+ time.sleep(self._backoff_time(request.total_attempts))
385
+ return request
386
+ else:
387
+ # We have already incremented the attempt count, so we subtract 1 here
388
+ error_msg = f"RequestException after {request.total_attempts - 1} attempts ({error_type} error): {e!s}"
389
+
390
+ return FailedRequest2(error=error_msg)