cognite-neat 1.0.6__tar.gz → 1.0.8__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_neat-1.0.6 → cognite_neat-1.0.8}/PKG-INFO +1 -1
  2. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_client/containers_api.py +30 -17
  3. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_client/views_api.py +29 -14
  4. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/deployer/data_classes.py +1 -1
  5. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/dms/_view_filter.py +3 -0
  6. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_session/_html/static/deployment.css +173 -0
  7. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_session/_html/static/deployment.js +36 -5
  8. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_session/_html/templates/deployment.html +8 -3
  9. cognite_neat-1.0.8/cognite/neat/_session/_result/__init__.py +3 -0
  10. cognite_neat-1.0.8/cognite/neat/_session/_result/_deployment/_physical/_changes.py +195 -0
  11. cognite_neat-1.0.8/cognite/neat/_session/_result/_deployment/_physical/_statistics.py +180 -0
  12. cognite_neat-1.0.8/cognite/neat/_session/_result/_deployment/_physical/serializer.py +35 -0
  13. cognite_neat-1.0.8/cognite/neat/_session/_result/_result.py +31 -0
  14. cognite_neat-1.0.8/cognite/neat/_v0/core/_utils/__init__.py +0 -0
  15. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_version.py +1 -1
  16. cognite_neat-1.0.8/cognite/neat/py.typed +0 -0
  17. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/pyproject.toml +1 -1
  18. cognite_neat-1.0.6/cognite/neat/_session/_result.py +0 -236
  19. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/README.md +0 -0
  20. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/__init__.py +0 -0
  21. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_client/__init__.py +0 -0
  22. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_client/api.py +0 -0
  23. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_client/client.py +0 -0
  24. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_client/config.py +0 -0
  25. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_client/data_classes.py +0 -0
  26. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_client/data_model_api.py +0 -0
  27. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_client/spaces_api.py +0 -0
  28. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_client/statistics_api.py +0 -0
  29. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_config.py +0 -0
  30. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/__init__.py +0 -0
  31. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/_analysis.py +0 -0
  32. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/_constants.py +0 -0
  33. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/_identifiers.py +0 -0
  34. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/_shared.py +0 -0
  35. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/deployer/__init__.py +0 -0
  36. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/deployer/_differ.py +0 -0
  37. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/deployer/_differ_container.py +0 -0
  38. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/deployer/_differ_data_model.py +0 -0
  39. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/deployer/_differ_space.py +0 -0
  40. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/deployer/_differ_view.py +0 -0
  41. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/deployer/deployer.py +0 -0
  42. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/exporters/__init__.py +0 -0
  43. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/exporters/_api_exporter.py +0 -0
  44. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/exporters/_base.py +0 -0
  45. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/exporters/_table_exporter/__init__.py +0 -0
  46. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/exporters/_table_exporter/exporter.py +0 -0
  47. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/exporters/_table_exporter/workbook.py +0 -0
  48. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/exporters/_table_exporter/writer.py +0 -0
  49. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/importers/__init__.py +0 -0
  50. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/importers/_api_importer.py +0 -0
  51. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/importers/_base.py +0 -0
  52. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/importers/_table_importer/__init__.py +0 -0
  53. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/importers/_table_importer/data_classes.py +0 -0
  54. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/importers/_table_importer/importer.py +0 -0
  55. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/importers/_table_importer/reader.py +0 -0
  56. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/importers/_table_importer/source.py +0 -0
  57. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/__init__.py +0 -0
  58. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/conceptual/__init__.py +0 -0
  59. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/conceptual/_base.py +0 -0
  60. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/conceptual/_concept.py +0 -0
  61. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/conceptual/_data_model.py +0 -0
  62. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/conceptual/_properties.py +0 -0
  63. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/conceptual/_property.py +0 -0
  64. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/dms/__init__.py +0 -0
  65. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/dms/_base.py +0 -0
  66. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/dms/_constants.py +0 -0
  67. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/dms/_constraints.py +0 -0
  68. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/dms/_container.py +0 -0
  69. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/dms/_data_model.py +0 -0
  70. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/dms/_data_types.py +0 -0
  71. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/dms/_http.py +0 -0
  72. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/dms/_indexes.py +0 -0
  73. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/dms/_limits.py +0 -0
  74. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/dms/_references.py +0 -0
  75. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/dms/_schema.py +0 -0
  76. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/dms/_space.py +0 -0
  77. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/dms/_types.py +0 -0
  78. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/dms/_view_property.py +0 -0
  79. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/dms/_views.py +0 -0
  80. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/entities/__init__.py +0 -0
  81. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/entities/_base.py +0 -0
  82. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/entities/_constants.py +0 -0
  83. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/entities/_data_types.py +0 -0
  84. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/entities/_identifiers.py +0 -0
  85. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/models/entities/_parser.py +0 -0
  86. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/validation/__init__.py +0 -0
  87. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/validation/dms/__init__.py +0 -0
  88. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/validation/dms/_ai_readiness.py +0 -0
  89. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/validation/dms/_base.py +0 -0
  90. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/validation/dms/_connections.py +0 -0
  91. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/validation/dms/_consistency.py +0 -0
  92. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/validation/dms/_containers.py +0 -0
  93. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/validation/dms/_limits.py +0 -0
  94. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/validation/dms/_orchestrator.py +0 -0
  95. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_data_model/validation/dms/_views.py +0 -0
  96. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_exceptions.py +0 -0
  97. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_issues.py +0 -0
  98. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_session/__init__.py +0 -0
  99. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_session/_html/__init__.py +0 -0
  100. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_session/_html/_render.py +0 -0
  101. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_session/_html/static/__init__.py +0 -0
  102. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_session/_html/static/issues.css +0 -0
  103. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_session/_html/static/issues.js +0 -0
  104. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_session/_html/static/shared.css +0 -0
  105. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_session/_html/templates/__init__.py +0 -0
  106. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_session/_html/templates/issues.html +0 -0
  107. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_session/_issues.py +0 -0
  108. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_session/_physical.py +0 -0
  109. {cognite_neat-1.0.6/cognite/neat/_session/_usage_analytics → cognite_neat-1.0.8/cognite/neat/_session/_result/_deployment}/__init__.py +0 -0
  110. {cognite_neat-1.0.6/cognite/neat/_utils → cognite_neat-1.0.8/cognite/neat/_session/_result/_deployment/_physical}/__init__.py +0 -0
  111. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_session/_session.py +0 -0
  112. {cognite_neat-1.0.6/cognite/neat/_v0 → cognite_neat-1.0.8/cognite/neat/_session/_usage_analytics}/__init__.py +0 -0
  113. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_session/_usage_analytics/_collector.py +0 -0
  114. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_session/_usage_analytics/_constants.py +0 -0
  115. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_session/_usage_analytics/_storage.py +0 -0
  116. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_session/_wrappers.py +0 -0
  117. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_state_machine/__init__.py +0 -0
  118. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_state_machine/_base.py +0 -0
  119. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_state_machine/_states.py +0 -0
  120. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_store/__init__.py +0 -0
  121. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_store/_provenance.py +0 -0
  122. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_store/_store.py +0 -0
  123. {cognite_neat-1.0.6/cognite/neat/_v0/core → cognite_neat-1.0.8/cognite/neat/_utils}/__init__.py +0 -0
  124. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_utils/_reader.py +0 -0
  125. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_utils/auxiliary.py +0 -0
  126. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_utils/collection.py +0 -0
  127. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_utils/http_client/__init__.py +0 -0
  128. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_utils/http_client/_client.py +0 -0
  129. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_utils/http_client/_config.py +0 -0
  130. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_utils/http_client/_data_classes.py +0 -0
  131. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_utils/http_client/_tracker.py +0 -0
  132. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_utils/text.py +0 -0
  133. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_utils/useful_types.py +0 -0
  134. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_utils/validation.py +0 -0
  135. {cognite_neat-1.0.6/cognite/neat/_v0/core/_client/_api → cognite_neat-1.0.8/cognite/neat/_v0}/__init__.py +0 -0
  136. {cognite_neat-1.0.6/cognite/neat/_v0/core/_client/data_classes → cognite_neat-1.0.8/cognite/neat/_v0/core}/__init__.py +0 -0
  137. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_client/__init__.py +0 -0
  138. {cognite_neat-1.0.6/cognite/neat/_v0/core/_data_model → cognite_neat-1.0.8/cognite/neat/_v0/core/_client/_api}/__init__.py +0 -0
  139. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_client/_api/data_modeling_loaders.py +0 -0
  140. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_client/_api/neat_instances.py +0 -0
  141. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_client/_api/schema.py +0 -0
  142. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_client/_api/statistics.py +0 -0
  143. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_client/_api_client.py +0 -0
  144. {cognite_neat-1.0.6/cognite/neat/_v0/core/_instances → cognite_neat-1.0.8/cognite/neat/_v0/core/_client/data_classes}/__init__.py +0 -0
  145. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_client/data_classes/data_modeling.py +0 -0
  146. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_client/data_classes/neat_sequence.py +0 -0
  147. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_client/data_classes/schema.py +0 -0
  148. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_client/data_classes/statistics.py +0 -0
  149. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_client/testing.py +0 -0
  150. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_config.py +0 -0
  151. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_constants.py +0 -0
  152. {cognite_neat-1.0.6/cognite/neat/_v0/core/_instances/extractors/_classic_cdf → cognite_neat-1.0.8/cognite/neat/_v0/core/_data_model}/__init__.py +0 -0
  153. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/_constants.py +0 -0
  154. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/_shared.py +0 -0
  155. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/analysis/__init__.py +0 -0
  156. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/analysis/_base.py +0 -0
  157. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/catalog/__init__.py +0 -0
  158. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/catalog/classic_model.xlsx +0 -0
  159. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/catalog/conceptual-imf-data-model.xlsx +0 -0
  160. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/catalog/hello_world_pump.xlsx +0 -0
  161. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/exporters/__init__.py +0 -0
  162. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/exporters/_base.py +0 -0
  163. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/exporters/_data_model2dms.py +0 -0
  164. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/exporters/_data_model2excel.py +0 -0
  165. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/exporters/_data_model2instance_template.py +0 -0
  166. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/exporters/_data_model2semantic_model.py +0 -0
  167. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/exporters/_data_model2yaml.py +0 -0
  168. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/importers/__init__.py +0 -0
  169. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/importers/_base.py +0 -0
  170. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/importers/_base_file_reader.py +0 -0
  171. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/importers/_dict2data_model.py +0 -0
  172. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/importers/_dms2data_model.py +0 -0
  173. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/importers/_graph2data_model.py +0 -0
  174. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/importers/_rdf/__init__.py +0 -0
  175. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/importers/_rdf/_base.py +0 -0
  176. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/importers/_rdf/_inference2rdata_model.py +0 -0
  177. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/importers/_rdf/_owl2data_model.py +0 -0
  178. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/importers/_rdf/_shared.py +0 -0
  179. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/importers/_spreadsheet2data_model.py +0 -0
  180. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/__init__.py +0 -0
  181. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/_base_unverified.py +0 -0
  182. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/_base_verified.py +0 -0
  183. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/_import_contexts.py +0 -0
  184. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/_types.py +0 -0
  185. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/conceptual/__init__.py +0 -0
  186. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/conceptual/_unverified.py +0 -0
  187. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/conceptual/_validation.py +0 -0
  188. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/conceptual/_verified.py +0 -0
  189. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/data_types.py +0 -0
  190. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/entities/__init__.py +0 -0
  191. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/entities/_constants.py +0 -0
  192. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/entities/_loaders.py +0 -0
  193. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/entities/_multi_value.py +0 -0
  194. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/entities/_restrictions.py +0 -0
  195. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/entities/_single_value.py +0 -0
  196. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/entities/_types.py +0 -0
  197. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/entities/_wrapped.py +0 -0
  198. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/mapping/__init__.py +0 -0
  199. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/mapping/_classic2core.py +0 -0
  200. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/mapping/_classic2core.yaml +0 -0
  201. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/physical/__init__.py +0 -0
  202. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/physical/_exporter.py +0 -0
  203. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/physical/_unverified.py +0 -0
  204. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/physical/_validation.py +0 -0
  205. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/models/physical/_verified.py +0 -0
  206. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/transformers/__init__.py +0 -0
  207. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/transformers/_base.py +0 -0
  208. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/transformers/_converters.py +0 -0
  209. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/transformers/_mapping.py +0 -0
  210. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/transformers/_union_conceptual.py +0 -0
  211. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_data_model/transformers/_verification.py +0 -0
  212. {cognite_neat-1.0.6/cognite/neat/_v0/core/_utils → cognite_neat-1.0.8/cognite/neat/_v0/core/_instances}/__init__.py +0 -0
  213. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/_shared.py +0 -0
  214. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/_tracking/__init__.py +0 -0
  215. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/_tracking/base.py +0 -0
  216. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/_tracking/log.py +0 -0
  217. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
  218. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/examples/Knowledge-Graph-Nordic44.xml +0 -0
  219. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/examples/__init__.py +0 -0
  220. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
  221. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/extractors/__init__.py +0 -0
  222. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/extractors/_base.py +0 -0
  223. /cognite_neat-1.0.6/cognite/neat/py.typed → /cognite_neat-1.0.8/cognite/neat/_v0/core/_instances/extractors/_classic_cdf/__init__.py +0 -0
  224. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/extractors/_classic_cdf/_assets.py +0 -0
  225. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/extractors/_classic_cdf/_base.py +0 -0
  226. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/extractors/_classic_cdf/_classic.py +0 -0
  227. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/extractors/_classic_cdf/_data_sets.py +0 -0
  228. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/extractors/_classic_cdf/_events.py +0 -0
  229. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/extractors/_classic_cdf/_files.py +0 -0
  230. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/extractors/_classic_cdf/_labels.py +0 -0
  231. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/extractors/_classic_cdf/_relationships.py +0 -0
  232. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/extractors/_classic_cdf/_sequences.py +0 -0
  233. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/extractors/_classic_cdf/_timeseries.py +0 -0
  234. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/extractors/_dict.py +0 -0
  235. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/extractors/_dms.py +0 -0
  236. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/extractors/_dms_graph.py +0 -0
  237. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/extractors/_mock_graph_generator.py +0 -0
  238. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/extractors/_raw.py +0 -0
  239. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/extractors/_rdf_file.py +0 -0
  240. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/loaders/__init__.py +0 -0
  241. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/loaders/_base.py +0 -0
  242. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/loaders/_rdf2dms.py +0 -0
  243. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/loaders/_rdf_to_instance_space.py +0 -0
  244. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/queries/__init__.py +0 -0
  245. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/queries/_base.py +0 -0
  246. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/queries/_queries.py +0 -0
  247. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/queries/_select.py +0 -0
  248. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/queries/_update.py +0 -0
  249. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/transformers/__init__.py +0 -0
  250. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/transformers/_base.py +0 -0
  251. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/transformers/_classic_cdf.py +0 -0
  252. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/transformers/_prune_graph.py +0 -0
  253. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/transformers/_rdfpath.py +0 -0
  254. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_instances/transformers/_value_type.py +0 -0
  255. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_issues/__init__.py +0 -0
  256. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_issues/_base.py +0 -0
  257. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_issues/_contextmanagers.py +0 -0
  258. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_issues/_factory.py +0 -0
  259. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_issues/errors/__init__.py +0 -0
  260. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_issues/errors/_external.py +0 -0
  261. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_issues/errors/_general.py +0 -0
  262. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_issues/errors/_properties.py +0 -0
  263. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_issues/errors/_resources.py +0 -0
  264. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_issues/errors/_wrapper.py +0 -0
  265. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_issues/formatters.py +0 -0
  266. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_issues/warnings/__init__.py +0 -0
  267. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_issues/warnings/_external.py +0 -0
  268. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_issues/warnings/_general.py +0 -0
  269. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_issues/warnings/_models.py +0 -0
  270. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_issues/warnings/_properties.py +0 -0
  271. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_issues/warnings/_resources.py +0 -0
  272. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_issues/warnings/user_modeling.py +0 -0
  273. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_shared.py +0 -0
  274. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_store/__init__.py +0 -0
  275. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_store/_data_model.py +0 -0
  276. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_store/_instance.py +0 -0
  277. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_store/_provenance.py +0 -0
  278. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_store/exceptions.py +0 -0
  279. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_utils/auth.py +0 -0
  280. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_utils/auxiliary.py +0 -0
  281. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_utils/collection_.py +0 -0
  282. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_utils/graph_transformations_report.py +0 -0
  283. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_utils/io_.py +0 -0
  284. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_utils/rdf_.py +0 -0
  285. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_utils/reader/__init__.py +0 -0
  286. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_utils/reader/_base.py +0 -0
  287. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_utils/spreadsheet.py +0 -0
  288. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_utils/tarjan.py +0 -0
  289. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_utils/text.py +0 -0
  290. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_utils/time_.py +0 -0
  291. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_utils/upload.py +0 -0
  292. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/core/_utils/xml_.py +0 -0
  293. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/engine/__init__.py +0 -0
  294. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/engine/_import.py +0 -0
  295. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/engine/_interface.py +0 -0
  296. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/engine/_load.py +0 -0
  297. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/plugins/__init__.py +0 -0
  298. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/plugins/_base.py +0 -0
  299. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/plugins/_data_model.py +0 -0
  300. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/plugins/_issues.py +0 -0
  301. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/plugins/_manager.py +0 -0
  302. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/__init__.py +0 -0
  303. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_base.py +0 -0
  304. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_collector.py +0 -0
  305. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_diff.py +0 -0
  306. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_drop.py +0 -0
  307. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_experimental.py +0 -0
  308. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_explore.py +0 -0
  309. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_fix.py +0 -0
  310. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_inspect.py +0 -0
  311. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_mapping.py +0 -0
  312. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_plugin.py +0 -0
  313. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_prepare.py +0 -0
  314. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_read.py +0 -0
  315. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_set.py +0 -0
  316. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_show.py +0 -0
  317. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_state/README.md +0 -0
  318. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_state.py +0 -0
  319. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_subset.py +0 -0
  320. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_template.py +0 -0
  321. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_to.py +0 -0
  322. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/_wizard.py +0 -0
  323. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/_v0/session/exceptions.py +0 -0
  324. {cognite_neat-1.0.6 → cognite_neat-1.0.8}/cognite/neat/legacy.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cognite-neat
3
- Version: 1.0.6
3
+ Version: 1.0.8
4
4
  Summary: Knowledge graph transformation
5
5
  Author: Nikola Vasiljevic, Anders Albert
6
6
  Author-email: Nikola Vasiljevic <nikola.vasiljevic@cognite.com>, Anders Albert <anders.albert@cognite.com>
@@ -12,6 +12,7 @@ from .data_classes import PagedResponse
12
12
 
13
13
  class ContainersAPI(NeatAPI):
14
14
  ENDPOINT = "/models/containers"
15
+ LIST_REQUEST_LIMIT = 1000
15
16
 
16
17
  def apply(self, items: Sequence[ContainerRequest]) -> list[ContainerResponse]:
17
18
  """Apply (create or update) containers in CDF.
@@ -93,33 +94,45 @@ class ContainersAPI(NeatAPI):
93
94
  self,
94
95
  space: str | None = None,
95
96
  include_global: bool = False,
96
- limit: int = 10,
97
+ limit: int | None = 10,
97
98
  ) -> list[ContainerResponse]:
98
99
  """List containers in CDF Project.
99
100
 
100
101
  Args:
101
102
  space: If specified, only containers in this space are returned.
102
103
  include_global: If True, include global containers.
103
- limit: Maximum number of containers to return. Max is 1000.
104
+ limit: Maximum number of containers to return. If None, return all containers.
104
105
 
105
106
  Returns:
106
107
  List of ContainerResponse objects.
107
108
  """
108
- if limit > 1000:
109
- raise ValueError("Pagination is not (yet) supported for listing containers. The maximum limit is 1000.")
110
- parameters: dict[str, PrimitiveType] = {
111
- "includeGlobal": include_global,
112
- "limit": limit,
113
- }
109
+ if limit is not None and limit < 0:
110
+ raise ValueError("Limit must be non-negative.")
111
+ elif limit is not None and limit == 0:
112
+ return []
113
+ parameters: dict[str, PrimitiveType] = {"includeGlobal": include_global}
114
114
  if space is not None:
115
115
  parameters["space"] = space
116
- result = self._http_client.request_with_retries(
117
- ParametersRequest(
118
- endpoint_url=self._config.create_api_url(self.ENDPOINT),
119
- method="GET",
120
- parameters=parameters,
116
+ cursor: str | None = None
117
+ container_responses: list[ContainerResponse] = []
118
+ while True:
119
+ if cursor is not None:
120
+ parameters["cursor"] = cursor
121
+ if limit is None:
122
+ parameters["limit"] = self.LIST_REQUEST_LIMIT
123
+ else:
124
+ parameters["limit"] = min(self.LIST_REQUEST_LIMIT, limit - len(container_responses))
125
+ result = self._http_client.request_with_retries(
126
+ ParametersRequest(
127
+ endpoint_url=self._config.create_api_url(self.ENDPOINT),
128
+ method="GET",
129
+ parameters=parameters,
130
+ )
121
131
  )
122
- )
123
- result.raise_for_status()
124
- result = PagedResponse[ContainerResponse].model_validate_json(result.success_response.body)
125
- return result.items
132
+ result.raise_for_status()
133
+ result = PagedResponse[ContainerResponse].model_validate_json(result.success_response.body)
134
+ container_responses.extend(result.items)
135
+ cursor = result.next_cursor
136
+ if cursor is None or (limit is not None and len(container_responses) >= limit):
137
+ break
138
+ return container_responses
@@ -13,6 +13,7 @@ from .data_classes import PagedResponse
13
13
 
14
14
  class ViewsAPI(NeatAPI):
15
15
  ENDPOINT = "/models/views"
16
+ LIST_REQUEST_LIMIT = 1000
16
17
 
17
18
  def apply(self, items: Sequence[ViewRequest]) -> list[ViewResponse]:
18
19
  """Create or update views in CDF Project.
@@ -93,7 +94,7 @@ class ViewsAPI(NeatAPI):
93
94
  all_versions: bool = False,
94
95
  include_inherited_properties: bool = True,
95
96
  include_global: bool = False,
96
- limit: int = 10,
97
+ limit: int | None = 10,
97
98
  ) -> list[ViewResponse]:
98
99
  """List views in CDF Project.
99
100
 
@@ -102,28 +103,42 @@ class ViewsAPI(NeatAPI):
102
103
  all_versions: If True, return all versions. If False, only return the latest version.
103
104
  include_inherited_properties: If True, include properties inherited from parent views.
104
105
  include_global: If True, include global views.
105
- limit: Maximum number of views to return. Max is 1000.
106
+ limit: Maximum number of views to return. If None, return all views.
106
107
 
107
108
  Returns:
108
109
  List of ViewResponse objects.
109
110
  """
110
- if limit > 1000:
111
- raise ValueError("Pagination is not (yet) supported for listing views. The maximum limit is 1000.")
111
+ if limit is not None and limit < 0:
112
+ raise ValueError("Limit must be non-negative.")
113
+ elif limit is not None and limit == 0:
114
+ return []
112
115
  parameters: dict[str, PrimitiveType] = {
113
116
  "allVersions": all_versions,
114
117
  "includeInheritedProperties": include_inherited_properties,
115
118
  "includeGlobal": include_global,
116
- "limit": limit,
117
119
  }
118
120
  if space is not None:
119
121
  parameters["space"] = space
120
- result = self._http_client.request_with_retries(
121
- ParametersRequest(
122
- endpoint_url=self._config.create_api_url(self.ENDPOINT),
123
- method="GET",
124
- parameters=parameters,
122
+ cursor: str | None = None
123
+ view_responses: list[ViewResponse] = []
124
+ while True:
125
+ if cursor is not None:
126
+ parameters["cursor"] = cursor
127
+ if limit is None:
128
+ parameters["limit"] = self.LIST_REQUEST_LIMIT
129
+ else:
130
+ parameters["limit"] = min(self.LIST_REQUEST_LIMIT, limit - len(view_responses))
131
+ result = self._http_client.request_with_retries(
132
+ ParametersRequest(
133
+ endpoint_url=self._config.create_api_url(self.ENDPOINT),
134
+ method="GET",
135
+ parameters=parameters,
136
+ )
125
137
  )
126
- )
127
- result.raise_for_status()
128
- result = PagedResponse[ViewResponse].model_validate_json(result.success_response.body)
129
- return result.items
138
+ result.raise_for_status()
139
+ result = PagedResponse[ViewResponse].model_validate_json(result.success_response.body)
140
+ view_responses.extend(result.items)
141
+ cursor = result.next_cursor
142
+ if cursor is None or (limit is not None and len(view_responses) >= limit):
143
+ break
144
+ return view_responses
@@ -607,7 +607,7 @@ class DeploymentResult(BaseDeployObject):
607
607
 
608
608
  @property
609
609
  def is_dry_run(self) -> bool:
610
- return self.status == "pending"
610
+ return self.responses is None
611
611
 
612
612
  @property
613
613
  def is_success(self) -> bool:
@@ -254,6 +254,9 @@ def _move_filter_key(value: Any) -> Any:
254
254
  # Already in the correct format
255
255
  return value
256
256
  key, data = next(iter(value.items()))
257
+ # Check if inner data already has filterType (already processed by a previous recursive call)
258
+ if isinstance(data, dict) and "filterType" in data:
259
+ return value
257
260
  if key not in AVAILABLE_FILTERS:
258
261
  raise ValueError(
259
262
  f"Unknown filter type: {key!r}. Available filter types: {humanize_collection(AVAILABLE_FILTERS)}."
@@ -132,6 +132,16 @@
132
132
  color: #9ca3af;
133
133
  }
134
134
 
135
+ .change-failed {
136
+ background: #fee2e2;
137
+ color: #991b1b;
138
+ }
139
+
140
+ .dark-mode .change-failed {
141
+ background: #7f1d1d;
142
+ color: #fca5a5;
143
+ }
144
+
135
145
  .severity-badge {
136
146
  padding: 4px 10px;
137
147
  border-radius: 4px;
@@ -286,6 +296,16 @@
286
296
  color: white;
287
297
  }
288
298
 
299
+ .status-recovered {
300
+ background: #10b981;
301
+ color: white;
302
+ }
303
+
304
+ .status-recovery_failed {
305
+ background: #dc2626;
306
+ color: white;
307
+ }
308
+
289
309
  .dark-mode .status-success {
290
310
  background: #059669;
291
311
  }
@@ -300,4 +320,157 @@
300
320
 
301
321
  .dark-mode .status-pending {
302
322
  background: #2563eb;
323
+ }
324
+
325
+ .dark-mode .status-recovered {
326
+ background: #059669;
327
+ }
328
+
329
+ .dark-mode .status-recovery_failed {
330
+ background: #b91c1c;
331
+ }
332
+
333
+
334
+ /* Error message handling */
335
+
336
+ .error-message-box {
337
+ background: #fee2e2;
338
+ border: 2px solid #dc2626;
339
+ border-left: 6px solid #dc2626;
340
+ border-radius: 8px;
341
+ padding: 16px;
342
+ margin-top: 12px;
343
+ animation: slideIn 0.3s ease-out;
344
+ }
345
+
346
+ .dark-mode .error-message-box {
347
+ background: #7f1d1d;
348
+ border-color: #ef4444;
349
+ }
350
+
351
+ .error-message-header {
352
+ display: flex;
353
+ align-items: center;
354
+ gap: 10px;
355
+ margin-bottom: 8px;
356
+ }
357
+
358
+ .error-icon {
359
+ font-size: 24px;
360
+ }
361
+
362
+ .error-title {
363
+ font-weight: 700;
364
+ font-size: 14px;
365
+ color: #991b1b;
366
+ }
367
+
368
+ .dark-mode .error-title {
369
+ color: #fca5a5;
370
+ }
371
+
372
+ .error-message-content {
373
+ color: #7f1d1d;
374
+ font-size: 13px;
375
+ line-height: 1.6;
376
+ padding-left: 34px;
377
+ font-family: 'Monaco', 'Courier New', monospace;
378
+ }
379
+
380
+ .dark-mode .error-message-content {
381
+ color: #fca5a5;
382
+ }
383
+
384
+ .change-item.failed-change {
385
+ border-left: 4px solid #dc2626;
386
+ background: rgba(254, 226, 226, 0.1);
387
+ }
388
+
389
+ .dark-mode .change-item.failed-change {
390
+ border-left-color: #ef4444;
391
+ background: rgba(127, 29, 29, 0.2);
392
+ }
393
+
394
+ .info-message-box {
395
+ border-radius: 6px;
396
+ padding: 12px 16px;
397
+ margin-top: 12px;
398
+ font-size: 13px;
399
+ line-height: 1.6;
400
+ }
401
+
402
+ .info-message-content {
403
+ color: inherit;
404
+ }
405
+
406
+ .info-message-create {
407
+ background: #d1fae5;
408
+ border-left: 4px solid #065f46;
409
+ color: #065f46;
410
+ }
411
+
412
+ .info-message-update {
413
+ background: #dbeafe;
414
+ border-left: 4px solid #1e40af;
415
+ color: #1e40af;
416
+ }
417
+
418
+ .info-message-delete {
419
+ background: #fee2e2;
420
+ border-left: 4px solid #991b1b;
421
+ color: #991b1b;
422
+ }
423
+
424
+ .info-message-skip {
425
+ background: #fef3c7;
426
+ border-left: 4px solid #92400e;
427
+ color: #92400e;
428
+ }
429
+
430
+ .info-message-unchanged {
431
+ background: #f3f4f6;
432
+ border-left: 4px solid #4b5563;
433
+ color: #4b5563;
434
+ }
435
+
436
+ .dark-mode .info-message-create {
437
+ background: #064e3b;
438
+ border-left-color: #6ee7b7;
439
+ color: #6ee7b7;
440
+ }
441
+
442
+ .dark-mode .info-message-update {
443
+ background: #1e3a8a;
444
+ border-left-color: #93c5fd;
445
+ color: #93c5fd;
446
+ }
447
+
448
+ .dark-mode .info-message-delete {
449
+ background: #7f1d1d;
450
+ border-left-color: #fca5a5;
451
+ color: #fca5a5;
452
+ }
453
+
454
+ .dark-mode .info-message-skip {
455
+ background: #78350f;
456
+ border-left-color: #fde68a;
457
+ color: #fde68a;
458
+ }
459
+
460
+ .dark-mode .info-message-unchanged {
461
+ background: #374151;
462
+ border-left-color: #9ca3af;
463
+ color: #9ca3af;
464
+ }
465
+
466
+
467
+ @keyframes slideIn {
468
+ from {
469
+ opacity: 0;
470
+ transform: translateY(-10px);
471
+ }
472
+ to {
473
+ opacity: 1;
474
+ transform: translateY(0);
475
+ }
303
476
  }
@@ -17,7 +17,9 @@ const STATUS_CONFIG = {
17
17
  success: { icon: '✅', text: 'Success' },
18
18
  failure: { icon: '❌', text: 'Failure' },
19
19
  partial: { icon: '⚠️', text: 'Partial Success' },
20
- pending: { icon: '⏳', text: 'Pending (Dry Run)' }
20
+ pending: { icon: '⏳', text: 'Pending (Dry Run)' },
21
+ recovered: { icon: '🔄', text: 'Recovered' },
22
+ recovery_failed: { icon: '💔', text: 'Recovery Failed' }
21
23
  };
22
24
 
23
25
  // Initialize status badge
@@ -26,7 +28,7 @@ function initializeStatus() {
26
28
  const statusIcon = document.getElementById('statusIcon-' + uniqueId);
27
29
  const statusText = document.getElementById('statusText-' + uniqueId);
28
30
 
29
- const statusConfig = STATUS_CONFIG[stats.status] || STATUS_CONFIG.pending;
31
+ const statusConfig = STATUS_CONFIG[deploymentStatus] || STATUS_CONFIG.pending;
30
32
  statusIcon.textContent = statusConfig.icon;
31
33
  statusText.textContent = statusConfig.text;
32
34
  }
@@ -43,6 +45,31 @@ function updateTheme() {
43
45
  }
44
46
  }
45
47
 
48
+ function renderChangeMessage(change) {
49
+ if (!change.message) return '';
50
+
51
+ // Using textContent to set the message prevents XSS vulnerabilities
52
+ // by automatically escaping HTML characters.
53
+ const messageHolder = document.createElement('div');
54
+ messageHolder.textContent = change.message;
55
+ const escapedMessage = messageHolder.innerHTML;
56
+
57
+ if (change.change_type === 'failed') {
58
+ return `
59
+ <div class="error-message-box">
60
+ <div class="error-message-header">
61
+ <span class="error-icon">❌</span>
62
+ <span class="error-title">Deployment Failed</span>
63
+ </div>
64
+ <div class="error-message-content">${escapedMessage}</div>
65
+ </div>`;
66
+ }
67
+ return `
68
+ <div class="info-message-box info-message-${change.change_type}">
69
+ <div class="info-message-content">${escapedMessage}</div>
70
+ </div>`;
71
+ }
72
+
46
73
  updateTheme();
47
74
  initializeStatus();
48
75
 
@@ -76,13 +103,14 @@ function renderChanges() {
76
103
  }
77
104
 
78
105
  listContainer.innerHTML = filtered.map(change => `
79
- <div class="change-item">
106
+ <div class="change-item ${change.change_type === 'failed' ? 'failed-change' : ''}">
80
107
  <div class="change-header">
81
108
  <span class="endpoint-badge endpoint-${change.endpoint}">${change.endpoint}</span>
82
109
  <span class="change-type-badge change-${change.change_type}">${change.change_type}</span>
83
110
  <span class="severity-badge severity-${change.severity}">${change.severity}</span>
84
111
  </div>
85
112
  <div class="resource-id">${change.resource_id}</div>
113
+
86
114
  ${change.changes.length > 0 ? `
87
115
  <div class="field-changes">
88
116
  ${change.changes.map(fc => `
@@ -93,6 +121,9 @@ function renderChanges() {
93
121
  `).join('')}
94
122
  </div>
95
123
  ` : ''}
124
+
125
+ ${renderChangeMessage(change)}
126
+
96
127
  </div>
97
128
  `).join('');
98
129
  }
@@ -130,8 +161,8 @@ document.getElementById('searchInput-' + uniqueId).addEventListener('input', fun
130
161
  window['exportDeployment_' + uniqueId] = function() {
131
162
  const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
132
163
  const report = {
133
- status: stats.status,
134
- is_dry_run: stats.is_dry_run,
164
+ status: deploymentStatus,
165
+ is_dry_run: is_dry_run === 'True',
135
166
  timestamp: timestamp,
136
167
  statistics: stats,
137
168
  changes: changes,
@@ -20,6 +20,9 @@
20
20
  <div class="stat-item active" data-filter="all">
21
21
  <span class="stat-number">{{total_changes}}</span> Total Changes
22
22
  </div>
23
+ <div class="stat-item" data-filter="failed">
24
+ <span class="stat-number">{{failed}}</span> Failed
25
+ </div>
23
26
  <div class="stat-item" data-filter="create">
24
27
  <span class="stat-number">{{created}}</span> Created
25
28
  </div>
@@ -29,12 +32,12 @@
29
32
  <div class="stat-item" data-filter="delete">
30
33
  <span class="stat-number">{{deleted}}</span> Deleted
31
34
  </div>
32
- <div class="stat-item" data-filter="skip">
33
- <span class="stat-number">{{skipped}}</span> Skipped
34
- </div>
35
35
  <div class="stat-item" data-filter="unchanged">
36
36
  <span class="stat-number">{{unchanged}}</span> Unchanged
37
37
  </div>
38
+ <div class="stat-item" data-filter="skip">
39
+ <span class="stat-number">{{skipped}}</span> Skipped
40
+ </div>
38
41
  <button class="export-btn" onclick="exportDeployment_{{unique_id}}()">Export Report</button>
39
42
  </div>
40
43
  </div>
@@ -70,6 +73,8 @@
70
73
  const changes = {{CHANGES_JSON}};
71
74
  const stats = {{STATS_JSON}};
72
75
  const uniqueId = '{{unique_id}}';
76
+ const is_dry_run = '{{is_dry_run}}';
77
+ const deploymentStatus = '{{status}}';
73
78
  {{SCRIPTS}}
74
79
  })();
75
80
  </script>
@@ -0,0 +1,3 @@
1
+ from ._result import Result
2
+
3
+ __all__ = ["Result"]
@@ -0,0 +1,195 @@
1
+ import itertools
2
+ from typing import Any
3
+
4
+ from pydantic import BaseModel, Field
5
+
6
+ from cognite.neat._data_model.deployer.data_classes import (
7
+ AddedField,
8
+ AppliedChanges,
9
+ ChangedField,
10
+ ChangeResult,
11
+ DeploymentResult,
12
+ FieldChange,
13
+ FieldChanges,
14
+ RemovedField,
15
+ ResourceChange,
16
+ )
17
+
18
+
19
+ class SerializedFieldChange(BaseModel):
20
+ """Serialized field change for JSON output."""
21
+
22
+ field_path: str
23
+ severity: str
24
+ description: str
25
+
26
+ @classmethod
27
+ def from_field_change(cls, field_change: FieldChange) -> list["SerializedFieldChange"]:
28
+ """Serialize a field change, handling nested FieldChanges recursively.
29
+
30
+ Args:
31
+ field_change: The field change to serialize.
32
+
33
+ Returns:
34
+ List of serialized field changes (may be multiple if nested).
35
+ """
36
+ serialized_changes: list[SerializedFieldChange] = []
37
+
38
+ if isinstance(field_change, FieldChanges):
39
+ # Recursively handle nested changes
40
+ for change in field_change.changes:
41
+ serialized_changes.extend(cls.from_field_change(change))
42
+ else:
43
+ # Base case: single field change
44
+ serialized_changes.append(cls._from_single_field_change(field_change))
45
+
46
+ return serialized_changes
47
+
48
+ @classmethod
49
+ def _from_single_field_change(cls, field_change: FieldChange) -> "SerializedFieldChange":
50
+ """Serialize a single non-nested field change.
51
+
52
+ Args:
53
+ field_change: The single field change to serialize.
54
+
55
+ Returns:
56
+ Serialized field change.
57
+ """
58
+ return cls(
59
+ field_path=field_change.field_path,
60
+ severity=field_change.severity.name,
61
+ description=field_change.description
62
+ if isinstance(field_change, AddedField | RemovedField | ChangedField)
63
+ else "Field changed",
64
+ )
65
+
66
+
67
+ class SerializedResourceChange(BaseModel):
68
+ """Serialized resource change for JSON output."""
69
+
70
+ id: int
71
+ endpoint: str
72
+ change_type: str
73
+ severity: str
74
+ resource_id: str
75
+ message: str | None = None
76
+ changes: list[SerializedFieldChange] = Field(default_factory=list)
77
+
78
+ @classmethod
79
+ def from_resource_change(
80
+ cls, resource: ResourceChange, endpoint: str, change_id: int
81
+ ) -> "SerializedResourceChange":
82
+ """Serialize a single resource change.
83
+
84
+ Args:
85
+ resource: The resource change to serialize.
86
+ endpoint: The endpoint type.
87
+ change_id: Unique ID for this change.
88
+
89
+ Returns:
90
+ Serialized resource change.
91
+ """
92
+ changes: list[SerializedFieldChange] = []
93
+
94
+ for change in resource.changes:
95
+ changes.extend(SerializedFieldChange.from_field_change(change))
96
+
97
+ return cls(
98
+ id=change_id,
99
+ endpoint=endpoint,
100
+ change_type=resource.change_type,
101
+ severity=resource.severity.name,
102
+ resource_id=str(resource.resource_id),
103
+ changes=changes,
104
+ )
105
+
106
+ @classmethod
107
+ def from_change_result(cls, change_id: int, response: ChangeResult) -> "SerializedResourceChange":
108
+ """Serialize from a change result (actual deployment).
109
+
110
+ Args:
111
+ change_id: Unique ID for this change.
112
+ response: The change result from deployment.
113
+
114
+ Returns:
115
+ Serialized resource change with deployment status.
116
+ """
117
+ serialized_resource_change = cls.from_resource_change(
118
+ resource=response.change,
119
+ endpoint=response.endpoint,
120
+ change_id=change_id,
121
+ )
122
+
123
+ serialized_resource_change.message = response.message
124
+ if not response.is_success:
125
+ serialized_resource_change.change_type = "failed"
126
+
127
+ return serialized_resource_change
128
+
129
+
130
+ class SerializedChanges(BaseModel):
131
+ """Container for all serialized changes."""
132
+
133
+ changes: list[SerializedResourceChange] = Field(default_factory=list)
134
+
135
+ @classmethod
136
+ def from_deployment_result(cls, result: DeploymentResult) -> "SerializedChanges":
137
+ """Create SerializedChanges from a DeploymentResult.
138
+
139
+ Args:
140
+ result: The deployment result to serialize changes from.
141
+
142
+ Returns:
143
+ SerializedChanges instance with all changes.
144
+ """
145
+ serialized = cls()
146
+
147
+ if not result.responses:
148
+ serialized._add_from_dry_run(result)
149
+ else:
150
+ serialized._add_from_applied_changes(result.responses)
151
+
152
+ return serialized
153
+
154
+ def _add_from_dry_run(self, result: DeploymentResult) -> None:
155
+ """Add changes from dry run deployment.
156
+
157
+ Args:
158
+ result: The deployment result in dry run mode.
159
+ """
160
+ # Iterate over each endpoint plan
161
+ for endpoint_plan in result.plan:
162
+ # Then per resource in the endpoint
163
+ for resource in endpoint_plan.resources:
164
+ # Then serialize individual resource change
165
+ serialized_resource_change = SerializedResourceChange.from_resource_change(
166
+ resource=resource,
167
+ endpoint=endpoint_plan.endpoint,
168
+ change_id=len(self.changes),
169
+ )
170
+ self.changes.append(serialized_resource_change)
171
+
172
+ def _add_from_applied_changes(self, applied_changes: AppliedChanges) -> None:
173
+ """Add changes from actual deployment.
174
+ Args:
175
+ result: The deployment result from actual deployment.
176
+ """
177
+ for response in itertools.chain(
178
+ applied_changes.created,
179
+ applied_changes.merged_updated,
180
+ applied_changes.deletions,
181
+ applied_changes.unchanged,
182
+ applied_changes.skipped,
183
+ ):
184
+ self.changes.append(SerializedResourceChange.from_change_result(len(self.changes), response))
185
+
186
+ def model_dump_json_flat(self, **kwargs: Any) -> str:
187
+ """Dump changes as JSON array without the wrapper key.
188
+ Returns:
189
+ JSON string of the changes array.
190
+ """
191
+ if not self.changes:
192
+ return "[]"
193
+
194
+ iterator = (change.model_dump_json(**kwargs) for change in self.changes)
195
+ return f"[{','.join(iterator)}]"