cognite-neat 0.124.0__tar.gz → 0.125.1__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.

Potentially problematic release.


This version of cognite-neat might be problematic. Click here for more details.

Files changed (658) hide show
  1. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/.github/workflows/code-quality.yaml +1 -1
  2. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/PKG-INFO +1 -1
  3. cognite_neat-0.125.1/cognite/neat/_data_model/importers/__init__.py +4 -0
  4. cognite_neat-0.125.1/cognite/neat/_data_model/importers/_table_importer/data_classes.py +141 -0
  5. cognite_neat-0.125.1/cognite/neat/_data_model/importers/_table_importer/importer.py +76 -0
  6. cognite_neat-0.125.1/cognite/neat/_data_model/importers/_table_importer/source.py +89 -0
  7. cognite_neat-0.125.1/cognite/neat/_exceptions.py +17 -0
  8. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_utils/text.py +22 -0
  9. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_utils/useful_types.py +4 -0
  10. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_utils/validation.py +7 -4
  11. cognite_neat-0.125.1/cognite/neat/_version.py +2 -0
  12. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/_constants.py +1 -0
  13. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/exporters/_data_model2excel.py +3 -3
  14. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/importers/_dms2data_model.py +4 -3
  15. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/importers/_spreadsheet2data_model.py +85 -5
  16. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/entities/__init__.py +2 -0
  17. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/entities/_single_value.py +14 -0
  18. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/entities/_types.py +10 -0
  19. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/physical/_exporter.py +3 -11
  20. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/physical/_unverified.py +61 -12
  21. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/physical/_validation.py +8 -4
  22. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/physical/_verified.py +86 -15
  23. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/transformers/_converters.py +11 -4
  24. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/queries/_select.py +13 -29
  25. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_store/_instance.py +2 -2
  26. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_utils/spreadsheet.py +17 -3
  27. cognite_neat-0.125.1/docs/artifacts/rules/cdf-dms-architect-alice.xlsx +0 -0
  28. cognite_neat-0.125.1/last_changelog_entry.md +6 -0
  29. cognite_neat-0.125.1/last_git_message.txt +26 -0
  30. cognite_neat-0.125.1/last_version.txt +1 -0
  31. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/pyproject.toml +8 -1
  32. cognite_neat-0.125.1/tests/tests_unit/test_data_model/test_importers/test_dms_table_importer.py +259 -0
  33. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/tests_unit/test_utils/test_validation.py +1 -0
  34. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_end_to_end/test_rules_flow/test_excel_importer_to_yaml.yml +6 -6
  35. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_end_to_end/test_rules_flow.py +0 -3
  36. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_session/test_graph_flow/test_snapshot_workflow_ids_to_python.yml +11 -11
  37. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_session/test_graph_flow/test_snapshot_workflow_to_python.yml +11 -11
  38. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_session/test_read/test_read_cdm.yml +19 -19
  39. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_session/test_read.py +2 -9
  40. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_exporters/test_rules2dms.py +0 -26
  41. cognite_neat-0.125.1/tests/v0/tests_unit/test_rules/test_models/test_constraints.py +112 -0
  42. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_models/test_entities.py +14 -0
  43. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_models/test_physical_data_model.py +60 -12
  44. cognite_neat-0.125.1/tests/v0/tests_unit/test_store/__init__.py +0 -0
  45. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_store/test_select_queries.py +16 -45
  46. cognite_neat-0.125.1/tests/v0/tests_unit/test_utils/__init__.py +0 -0
  47. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/uv.lock +1 -1
  48. cognite_neat-0.124.0/cognite/neat/_data_model/importers/__init__.py +0 -3
  49. cognite_neat-0.124.0/cognite/neat/_version.py +0 -2
  50. cognite_neat-0.124.0/docs/artifacts/rules/cdf-dms-architect-alice.xlsx +0 -0
  51. cognite_neat-0.124.0/last_changelog_entry.md +0 -5
  52. cognite_neat-0.124.0/last_git_message.txt +0 -25
  53. cognite_neat-0.124.0/last_version.txt +0 -1
  54. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/.coveragerc +0 -0
  55. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/.gemini/styleguide.md +0 -0
  56. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/.github/CODEOWNERS +0 -0
  57. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
  58. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
  59. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/.github/pull_request_template.md +0 -0
  60. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/.github/renovate.json +0 -0
  61. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/.github/workflows/release.yaml +0 -0
  62. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/.gitignore +0 -0
  63. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/.pre-commit-config.yaml +0 -0
  64. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/.readthedocs.yaml +0 -0
  65. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/CODE_OF_CONDUCT.md +0 -0
  66. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/CONTRIBUTING.md +0 -0
  67. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/LICENSE +0 -0
  68. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/README.md +0 -0
  69. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cdf.toml +0 -0
  70. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/codecov.yml +0 -0
  71. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/__init__.py +0 -0
  72. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/__init__.py +0 -0
  73. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/_constants.py +0 -0
  74. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/_identifiers.py +0 -0
  75. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/importers/_base.py +0 -0
  76. {cognite_neat-0.124.0/cognite/neat/_data_model/models → cognite_neat-0.125.1/cognite/neat/_data_model/importers/_table_importer}/__init__.py +0 -0
  77. {cognite_neat-0.124.0/cognite/neat/_data_model/models/conceptual → cognite_neat-0.125.1/cognite/neat/_data_model/models}/__init__.py +0 -0
  78. {cognite_neat-0.124.0/cognite/neat/_session → cognite_neat-0.125.1/cognite/neat/_data_model/models/conceptual}/__init__.py +0 -0
  79. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/conceptual/_base.py +0 -0
  80. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/conceptual/_concept.py +0 -0
  81. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/conceptual/_data_model.py +0 -0
  82. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/conceptual/_properties.py +0 -0
  83. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/conceptual/_property.py +0 -0
  84. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/dms/__init__.py +0 -0
  85. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/dms/_base.py +0 -0
  86. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/dms/_constants.py +0 -0
  87. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/dms/_constraints.py +0 -0
  88. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/dms/_container.py +0 -0
  89. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/dms/_data_model.py +0 -0
  90. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/dms/_data_types.py +0 -0
  91. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/dms/_indexes.py +0 -0
  92. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/dms/_references.py +0 -0
  93. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/dms/_schema.py +0 -0
  94. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/dms/_space.py +0 -0
  95. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/dms/_types.py +0 -0
  96. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/dms/_view_property.py +0 -0
  97. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/dms/_views.py +0 -0
  98. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/entities/__init__.py +0 -0
  99. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/entities/_base.py +0 -0
  100. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/entities/_constants.py +0 -0
  101. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/entities/_data_types.py +0 -0
  102. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/entities/_identifiers.py +0 -0
  103. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_data_model/models/entities/_parser.py +0 -0
  104. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_issues.py +0 -0
  105. {cognite_neat-0.124.0/cognite/neat/_utils → cognite_neat-0.125.1/cognite/neat/_session}/__init__.py +0 -0
  106. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_session/_session.py +0 -0
  107. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_session/_state_machine/__init__.py +0 -0
  108. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_session/_state_machine/_base.py +0 -0
  109. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_session/_state_machine/_states.py +0 -0
  110. {cognite_neat-0.124.0/cognite/neat/v0 → cognite_neat-0.125.1/cognite/neat/_utils}/__init__.py +0 -0
  111. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_utils/auxiliary.py +0 -0
  112. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_utils/http_client/__init__.py +0 -0
  113. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_utils/http_client/_client.py +0 -0
  114. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_utils/http_client/_config.py +0 -0
  115. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_utils/http_client/_data_classes.py +0 -0
  116. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/_utils/http_client/_tracker.py +0 -0
  117. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/py.typed +0 -0
  118. {cognite_neat-0.124.0/cognite/neat/v0/core → cognite_neat-0.125.1/cognite/neat/v0}/__init__.py +0 -0
  119. {cognite_neat-0.124.0/cognite/neat/v0/core/_client/_api → cognite_neat-0.125.1/cognite/neat/v0/core}/__init__.py +0 -0
  120. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_client/__init__.py +0 -0
  121. {cognite_neat-0.124.0/cognite/neat/v0/core/_client/data_classes → cognite_neat-0.125.1/cognite/neat/v0/core/_client/_api}/__init__.py +0 -0
  122. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_client/_api/data_modeling_loaders.py +0 -0
  123. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_client/_api/neat_instances.py +0 -0
  124. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_client/_api/schema.py +0 -0
  125. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_client/_api/statistics.py +0 -0
  126. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_client/_api_client.py +0 -0
  127. {cognite_neat-0.124.0/cognite/neat/v0/core/_data_model → cognite_neat-0.125.1/cognite/neat/v0/core/_client/data_classes}/__init__.py +0 -0
  128. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_client/data_classes/data_modeling.py +0 -0
  129. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_client/data_classes/neat_sequence.py +0 -0
  130. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_client/data_classes/schema.py +0 -0
  131. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_client/data_classes/statistics.py +0 -0
  132. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_client/testing.py +0 -0
  133. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_config.py +0 -0
  134. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_constants.py +0 -0
  135. {cognite_neat-0.124.0/cognite/neat/v0/core/_instances → cognite_neat-0.125.1/cognite/neat/v0/core/_data_model}/__init__.py +0 -0
  136. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/_shared.py +0 -0
  137. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/analysis/__init__.py +0 -0
  138. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/analysis/_base.py +0 -0
  139. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/catalog/__init__.py +0 -0
  140. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/catalog/classic_model.xlsx +0 -0
  141. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/catalog/conceptual-imf-data-model.xlsx +0 -0
  142. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/catalog/hello_world_pump.xlsx +0 -0
  143. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/exporters/__init__.py +0 -0
  144. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/exporters/_base.py +0 -0
  145. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/exporters/_data_model2dms.py +0 -0
  146. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/exporters/_data_model2instance_template.py +0 -0
  147. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/exporters/_data_model2semantic_model.py +0 -0
  148. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/exporters/_data_model2yaml.py +0 -0
  149. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/importers/__init__.py +0 -0
  150. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/importers/_base.py +0 -0
  151. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/importers/_base_file_reader.py +0 -0
  152. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/importers/_dict2data_model.py +0 -0
  153. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/importers/_graph2data_model.py +0 -0
  154. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/importers/_rdf/__init__.py +0 -0
  155. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/importers/_rdf/_base.py +0 -0
  156. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/importers/_rdf/_inference2rdata_model.py +0 -0
  157. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/importers/_rdf/_owl2data_model.py +0 -0
  158. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/importers/_rdf/_shared.py +0 -0
  159. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/__init__.py +0 -0
  160. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/_base_unverified.py +0 -0
  161. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/_base_verified.py +0 -0
  162. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/_import_contexts.py +0 -0
  163. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/_types.py +0 -0
  164. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/conceptual/__init__.py +0 -0
  165. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/conceptual/_unverified.py +0 -0
  166. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/conceptual/_validation.py +0 -0
  167. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/conceptual/_verified.py +0 -0
  168. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/data_types.py +0 -0
  169. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/entities/_constants.py +0 -0
  170. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/entities/_loaders.py +0 -0
  171. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/entities/_multi_value.py +0 -0
  172. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/entities/_restrictions.py +0 -0
  173. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/entities/_wrapped.py +0 -0
  174. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/mapping/__init__.py +0 -0
  175. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/mapping/_classic2core.py +0 -0
  176. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/mapping/_classic2core.yaml +0 -0
  177. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/models/physical/__init__.py +0 -0
  178. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/transformers/__init__.py +0 -0
  179. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/transformers/_base.py +0 -0
  180. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/transformers/_mapping.py +0 -0
  181. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/transformers/_union_conceptual.py +0 -0
  182. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_data_model/transformers/_verification.py +0 -0
  183. {cognite_neat-0.124.0/cognite/neat/v0/core/_instances/extractors/_classic_cdf → cognite_neat-0.125.1/cognite/neat/v0/core/_instances}/__init__.py +0 -0
  184. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/_shared.py +0 -0
  185. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/_tracking/__init__.py +0 -0
  186. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/_tracking/base.py +0 -0
  187. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/_tracking/log.py +0 -0
  188. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
  189. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/examples/Knowledge-Graph-Nordic44.xml +0 -0
  190. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/examples/__init__.py +0 -0
  191. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
  192. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/extractors/__init__.py +0 -0
  193. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/extractors/_base.py +0 -0
  194. {cognite_neat-0.124.0/cognite/neat/v0/core/_utils → cognite_neat-0.125.1/cognite/neat/v0/core/_instances/extractors/_classic_cdf}/__init__.py +0 -0
  195. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_assets.py +0 -0
  196. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_base.py +0 -0
  197. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_classic.py +0 -0
  198. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_data_sets.py +0 -0
  199. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_events.py +0 -0
  200. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_files.py +0 -0
  201. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_labels.py +0 -0
  202. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_relationships.py +0 -0
  203. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_sequences.py +0 -0
  204. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_timeseries.py +0 -0
  205. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/extractors/_dict.py +0 -0
  206. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/extractors/_dms.py +0 -0
  207. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/extractors/_dms_graph.py +0 -0
  208. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/extractors/_mock_graph_generator.py +0 -0
  209. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/extractors/_raw.py +0 -0
  210. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/extractors/_rdf_file.py +0 -0
  211. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/loaders/__init__.py +0 -0
  212. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/loaders/_base.py +0 -0
  213. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/loaders/_rdf2dms.py +0 -0
  214. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/loaders/_rdf_to_instance_space.py +0 -0
  215. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/queries/__init__.py +0 -0
  216. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/queries/_base.py +0 -0
  217. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/queries/_queries.py +0 -0
  218. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/queries/_update.py +0 -0
  219. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/transformers/__init__.py +0 -0
  220. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/transformers/_base.py +0 -0
  221. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/transformers/_classic_cdf.py +0 -0
  222. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/transformers/_prune_graph.py +0 -0
  223. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/transformers/_rdfpath.py +0 -0
  224. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_instances/transformers/_value_type.py +0 -0
  225. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_issues/__init__.py +0 -0
  226. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_issues/_base.py +0 -0
  227. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_issues/_contextmanagers.py +0 -0
  228. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_issues/_factory.py +0 -0
  229. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_issues/errors/__init__.py +0 -0
  230. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_issues/errors/_external.py +0 -0
  231. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_issues/errors/_general.py +0 -0
  232. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_issues/errors/_properties.py +0 -0
  233. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_issues/errors/_resources.py +0 -0
  234. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_issues/errors/_wrapper.py +0 -0
  235. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_issues/formatters.py +0 -0
  236. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_issues/warnings/__init__.py +0 -0
  237. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_issues/warnings/_external.py +0 -0
  238. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_issues/warnings/_general.py +0 -0
  239. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_issues/warnings/_models.py +0 -0
  240. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_issues/warnings/_properties.py +0 -0
  241. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_issues/warnings/_resources.py +0 -0
  242. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_issues/warnings/user_modeling.py +0 -0
  243. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_shared.py +0 -0
  244. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_store/__init__.py +0 -0
  245. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_store/_data_model.py +0 -0
  246. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_store/_provenance.py +0 -0
  247. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_store/exceptions.py +0 -0
  248. {cognite_neat-0.124.0/tests → cognite_neat-0.125.1/cognite/neat/v0/core/_utils}/__init__.py +0 -0
  249. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_utils/auth.py +0 -0
  250. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_utils/auxiliary.py +0 -0
  251. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_utils/collection_.py +0 -0
  252. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_utils/graph_transformations_report.py +0 -0
  253. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_utils/io_.py +0 -0
  254. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_utils/rdf_.py +0 -0
  255. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_utils/reader/__init__.py +0 -0
  256. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_utils/reader/_base.py +0 -0
  257. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_utils/tarjan.py +0 -0
  258. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_utils/text.py +0 -0
  259. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_utils/time_.py +0 -0
  260. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_utils/upload.py +0 -0
  261. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/core/_utils/xml_.py +0 -0
  262. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/plugins/__init__.py +0 -0
  263. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/plugins/_base.py +0 -0
  264. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/plugins/_data_model.py +0 -0
  265. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/plugins/_issues.py +0 -0
  266. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/plugins/_manager.py +0 -0
  267. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/__init__.py +0 -0
  268. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_base.py +0 -0
  269. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_collector.py +0 -0
  270. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_diff.py +0 -0
  271. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_drop.py +0 -0
  272. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_experimental.py +0 -0
  273. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_explore.py +0 -0
  274. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_fix.py +0 -0
  275. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_inspect.py +0 -0
  276. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_mapping.py +0 -0
  277. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_plugin.py +0 -0
  278. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_prepare.py +0 -0
  279. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_read.py +0 -0
  280. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_set.py +0 -0
  281. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_show.py +0 -0
  282. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_state/README.md +0 -0
  283. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_state.py +0 -0
  284. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_subset.py +0 -0
  285. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_template.py +0 -0
  286. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_to.py +0 -0
  287. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/_wizard.py +0 -0
  288. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/engine/__init__.py +0 -0
  289. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/engine/_import.py +0 -0
  290. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/engine/_interface.py +0 -0
  291. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/engine/_load.py +0 -0
  292. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/cognite/neat/v0/session/exceptions.py +0 -0
  293. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/dev.py +0 -0
  294. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/DataModelCDF.PNG +0 -0
  295. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/DataModelInstancesCDF.PNG +0 -0
  296. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/DataModelInstancesVizCDF.PNG +0 -0
  297. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/aml-dm-cdf.png +0 -0
  298. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/aml-dm.png +0 -0
  299. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/aml-instances-cdf.png +0 -0
  300. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/aml-instances-full.png +0 -0
  301. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations.png +0 -0
  302. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_dms.png +0 -0
  303. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_dms_typed.png +0 -0
  304. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_populated.png +0 -0
  305. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_populated_with_typed.png +0 -0
  306. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/authorship.png +0 -0
  307. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/base-components.png +0 -0
  308. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/bid_capacity_data_model.png +0 -0
  309. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/change_validate_step.png +0 -0
  310. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/connecting_metadata_dm.png +0 -0
  311. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/connecting_metadata_populated.png +0 -0
  312. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/connecting_metadata_published_dm.png +0 -0
  313. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/container_spec.png +0 -0
  314. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/core_extension.png +0 -0
  315. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/core_extension_excel.png +0 -0
  316. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/core_extension_no_connection.png +0 -0
  317. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/core_extension_with_properties.png +0 -0
  318. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/data-exploration.gif +0 -0
  319. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/data-model-nordic44.png +0 -0
  320. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/data-modeling-flow.png +0 -0
  321. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/dexpi-dm-cdf.png +0 -0
  322. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/dexpi-dm-viz.png +0 -0
  323. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/dexpi-graph-viz.png +0 -0
  324. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/dexpi-instance-cdf.png +0 -0
  325. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/dexpi-transformed-graph-viz.png +0 -0
  326. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/dm-classes.png +0 -0
  327. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/dm-object-shapes.png +0 -0
  328. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/dm-prefixes.png +0 -0
  329. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/dm-source-to-solution-mapping.png +0 -0
  330. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/dm2cdf-asset.png +0 -0
  331. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/dm2cdf-mapping.png +0 -0
  332. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/execution-history.gif +0 -0
  333. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/export_dms_config.png +0 -0
  334. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/export_dms_executed.png +0 -0
  335. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/export_dms_workflow.png +0 -0
  336. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/features.png +0 -0
  337. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/graph-etl-flow.png +0 -0
  338. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/high-level-io.png +0 -0
  339. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/instances-nordic44.png +0 -0
  340. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/instances-sheet.png +0 -0
  341. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/key-aspects-of-neat.png +0 -0
  342. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/knowledge-graph-viz-filtering.gif +0 -0
  343. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/knowledge-graph-viz.gif +0 -0
  344. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/life_cycle_analitic_solution_export_dms.png +0 -0
  345. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/life_cycle_converter_model_analytic_solution_model.png +0 -0
  346. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/life_cycle_download_reference_model_analytic_soluteion_model.png +0 -0
  347. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/life_cycle_download_reference_model_analytic_solution_model_export.png +0 -0
  348. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/logo.png +0 -0
  349. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/metadata-sheet.png +0 -0
  350. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/multi-hop.png +0 -0
  351. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/neat-high-level.png +0 -0
  352. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/neat-two_flows.png +0 -0
  353. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/neat_shift_tab.png +0 -0
  354. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/neat_tab.png +0 -0
  355. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/prefixes-sheet.png +0 -0
  356. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/pump_hello_world_published.png +0 -0
  357. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/rdf-in-nutshell.png +0 -0
  358. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/rdf2cdf-graph-change.jpg +0 -0
  359. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/rdf2cdf-graph-resurrect.jpg +0 -0
  360. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/rdf2cdf-graph.jpg +0 -0
  361. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/rdf2cdf-init-run-step1.jpg +0 -0
  362. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/rdf2cdf-init-run-step2.png +0 -0
  363. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/rdf2cdf-init-run.jpg +0 -0
  364. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/rdf2cdf-post-init.jpg +0 -0
  365. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/run_workflow.png +0 -0
  366. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/sheet2cdf-asset-hierarchy.png +0 -0
  367. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/sheet2cdf-running-workflow.gif +0 -0
  368. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/sheet2cdf-transformation-rules-ui.png +0 -0
  369. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/sheet2cdf-upload-rules.gif +0 -0
  370. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/sheet2cdf-workflow-steps.png +0 -0
  371. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/sheet2cdf-workflow.gif +0 -0
  372. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/sheet2cdf-workflow.png +0 -0
  373. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/step-configurables.png +0 -0
  374. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/step-metrics.png +0 -0
  375. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/tutorial-notebooks-part-2_graph-capturing-sheet.gif +0 -0
  376. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/validate_workflow.png +0 -0
  377. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/wf-ephemeral-mode.png +0 -0
  378. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/wf-overview.gif +0 -0
  379. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/wf-persistent-blocking-mode.png +0 -0
  380. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/wf-persistent-non-blocking.png +0 -0
  381. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/wf-start-mode-ui.png +0 -0
  382. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/wind_farm_classic_knowledge_graph.png +0 -0
  383. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/wind_farm_data_product_instances.png +0 -0
  384. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/work-in-progress.png +0 -0
  385. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/workflow-context.jpg +0 -0
  386. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/working_with_metadata_provenance.png +0 -0
  387. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/figs/working_with_metadata_published_dm.png +0 -0
  388. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/rules/dms-addition-svein-harald.xlsx +0 -0
  389. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/rules/dms-analytics-olav.xlsx +0 -0
  390. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/rules/dms-architect-rules-raw-filter-example.xlsx +0 -0
  391. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/rules/dms-architect-rules-template.xlsx +0 -0
  392. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/rules/dms-rebuild-olav.xlsx +0 -0
  393. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/rules/domain-expert-rules-template.xlsx +0 -0
  394. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/rules/expert-grid-emma.xlsx +0 -0
  395. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/rules/expert-wind-energy-jon.xlsx +0 -0
  396. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/rules/information-addition-svein-harald.xlsx +0 -0
  397. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/rules/information-analytics-olav-ref.xlsx +0 -0
  398. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/rules/information-analytics-olav.xlsx +0 -0
  399. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/rules/information-architect-david.xlsx +0 -0
  400. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/rules/information-architect-rules-template.xlsx +0 -0
  401. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/videos/tutorial-1-defining-data-model.mp4 +0 -0
  402. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/videos/tutorial-1-download-rules-template.mp4 +0 -0
  403. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/videos/tutorial-1-upload-gql-schema-to-cdf.mp4 +0 -0
  404. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/videos/tutorial-2-graph-capturing-sheet.mp4 +0 -0
  405. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/videos/tutorial-3-asset-hierarchy.mp4 +0 -0
  406. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/videos/tutorial-3-decommissioning.mp4 +0 -0
  407. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/videos/tutorial-3-relationships.mp4 +0 -0
  408. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/videos/tutorial-3-resurrection.mp4 +0 -0
  409. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/artifacts/videos/tutorial-4-asset-hierarchy.mp4 +0 -0
  410. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/data-modeling-principles.md +0 -0
  411. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/excel_data_modeling/conceptual/overview.md +0 -0
  412. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/excel_data_modeling/conceptual/reference.md +0 -0
  413. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/excel_data_modeling/data_model.md +0 -0
  414. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/excel_data_modeling/physical/enum.md +0 -0
  415. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/excel_data_modeling/physical/overview.md +0 -0
  416. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/excel_data_modeling/physical/properties.md +0 -0
  417. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/excel_data_modeling/physical/reference.md +0 -0
  418. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/excel_data_modeling/physical/views.md +0 -0
  419. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/excel_data_modeling/units.md +0 -0
  420. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/gettingstarted/installation.md +0 -0
  421. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/gettingstarted/why-neat.md +0 -0
  422. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/index.md +0 -0
  423. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/reference/NeatSession/base.md +0 -0
  424. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/reference/NeatSession/drop.md +0 -0
  425. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/reference/NeatSession/fix.md +0 -0
  426. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/reference/NeatSession/inspect.md +0 -0
  427. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/reference/NeatSession/mapping.md +0 -0
  428. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/reference/NeatSession/prepare.md +0 -0
  429. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/reference/NeatSession/read.md +0 -0
  430. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/reference/NeatSession/set.md +0 -0
  431. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/reference/NeatSession/show.md +0 -0
  432. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/reference/NeatSession/subset.md +0 -0
  433. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/reference/NeatSession/template.md +0 -0
  434. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/reference/NeatSession/to.md +0 -0
  435. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/reference/issues/base.md +0 -0
  436. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/reference/issues/errors.md +0 -0
  437. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/reference/issues/user_model_warnings.md +0 -0
  438. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/reference/issues/warnings.md +0 -0
  439. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/reference/overview.md +0 -0
  440. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/tutorials/data-modeling/cold_start.ipynb +0 -0
  441. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/tutorials/data-modeling/figs/data-modeling-flow.png +0 -0
  442. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/tutorials/data-modeling/files/wind_farm_prospecting_conceptual_data_model.xlsx +0 -0
  443. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/tutorials/data-modeling/files/wind_farm_prospecting_conceptual_data_model_expanded.xlsx +0 -0
  444. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/tutorials/data-modeling/files/wind_farm_prospecting_physical_data_model.xlsx +0 -0
  445. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/tutorials/data-modeling/from-conceptual-to-physical-via-CDM.ipynb +0 -0
  446. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_conceptual_wind_energy_WindFarmProspecting_v1.html +0 -0
  447. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_conceptual_wind_energy_WindFarmProspecting_v1_implements.html +0 -0
  448. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_physical_neat_playground_NeatHelloWorld_v1.html +0 -0
  449. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/tutorials/data-modeling/my_first_model.xlsx +0 -0
  450. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/tutorials/data-modeling/physical-data-model.xlsx +0 -0
  451. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/docs/tutorials/introduction/introduction.ipynb +0 -0
  452. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/mkdocs.yml +0 -0
  453. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/clean_space.py +0 -0
  454. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/core_classic_mapping.xlsx +0 -0
  455. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/create_classic_core_mapping_yaml.py +0 -0
  456. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/dependency_profiler.py +0 -0
  457. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/docs_generate_reference.py +0 -0
  458. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/docs_generate_unit.py +0 -0
  459. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/generate_steps_md.py +0 -0
  460. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/.gitignore +0 -0
  461. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/README.md +0 -0
  462. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/config.dev.yaml +0 -0
  463. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/neat_integration_runner/README.md +0 -0
  464. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/neat_integration_runner/auth/neat_cicd_testing.group.yaml +0 -0
  465. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/lift_pumps/classic/lift_pump_stations_root.Asset.csv +0 -0
  466. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/lift_pumps/data_sets/hierarchies.DataSet.yaml +0 -0
  467. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/lift_pumps/raw/collections_pump.Table.csv +0 -0
  468. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/lift_pumps/raw/collections_pump.Table.yaml +0 -0
  469. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/classic/Measurement.Asset.yaml +0 -0
  470. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/classic/Measurement.Label.yaml +0 -0
  471. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/classic/MetMast.Asset.yaml +0 -0
  472. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/classic/PowerGeneratingUnit.Label.yaml +0 -0
  473. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/classic/Utsira.Asset.yaml +0 -0
  474. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-01.Asset.yaml +0 -0
  475. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-01_to_MetMast.Relationship.yaml +0 -0
  476. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-02.Asset.yaml +0 -0
  477. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-02_to_MetMast.Relationship.yaml +0 -0
  478. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/classic/WindTurbine.Label.yaml +0 -0
  479. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/classic/metMast.Label.yaml +0 -0
  480. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/classic/planned_WT-01_2022-01-01.Event.yaml +0 -0
  481. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/classic/power_curve_manufacturer1.Sequence.yaml +0 -0
  482. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/data_sets/maintenance.DataSet.yaml +0 -0
  483. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/data_sets/source_ds.DataSet.yaml +0 -0
  484. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/data_sets/usecase_01.DataSet.yaml +0 -0
  485. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/files/WT-01_datasheet.FileMetadata.yaml +0 -0
  486. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/files/WT-01_datasheet.txt +0 -0
  487. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-01_forecast.TimeSeries.yaml +0 -0
  488. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-01_production.TimeSeries.yaml +0 -0
  489. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-02_forecast.TimeSeries.yaml +0 -0
  490. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-02_production.TimeSeries.yaml +0 -0
  491. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/manual_test_dms_importer.py +0 -0
  492. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/migration.py +0 -0
  493. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/oxi_remote/README.md +0 -0
  494. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/oxi_remote/docker-compose.yaml +0 -0
  495. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/test_lookup_table.csv +0 -0
  496. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/scripts/windfarm_to_toolkit.py +0 -0
  497. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/test-pyodide.js +0 -0
  498. {cognite_neat-0.124.0/tests/tests_data_model → cognite_neat-0.125.1/tests}/__init__.py +0 -0
  499. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/config.py +0 -0
  500. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/data/_misc/state_machine_diagram.md +0 -0
  501. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/data/_misc/state_machine_table.md +0 -0
  502. {cognite_neat-0.124.0/tests/tests_data_model/test_models → cognite_neat-0.125.1/tests/tests_data_model}/__init__.py +0 -0
  503. {cognite_neat-0.124.0/tests/tests_data_model/test_models/test_conceptual → cognite_neat-0.125.1/tests/tests_data_model/test_models}/__init__.py +0 -0
  504. {cognite_neat-0.124.0/tests/tests_data_model/test_models/test_entities → cognite_neat-0.125.1/tests/tests_data_model/test_models/test_conceptual}/__init__.py +0 -0
  505. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/tests_data_model/test_models/test_conceptual/test_concept.py +0 -0
  506. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/tests_data_model/test_models/test_conceptual/test_data_model.py +0 -0
  507. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/tests_data_model/test_models/test_conceptual/test_property.py +0 -0
  508. {cognite_neat-0.124.0/tests/tests_unit → cognite_neat-0.125.1/tests/tests_data_model/test_models/test_entities}/__init__.py +0 -0
  509. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/tests_data_model/test_models/test_entities/test_base_entities.py +0 -0
  510. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/tests_data_model/test_models/test_entities/test_data_type.py +0 -0
  511. {cognite_neat-0.124.0/tests/tests_unit/test_data_model → cognite_neat-0.125.1/tests/tests_unit}/__init__.py +0 -0
  512. {cognite_neat-0.124.0/tests/tests_unit/test_data_model/test_models → cognite_neat-0.125.1/tests/tests_unit/test_data_model}/__init__.py +0 -0
  513. {cognite_neat-0.124.0/tests/tests_unit/test_data_model/test_models/test_dms → cognite_neat-0.125.1/tests/tests_unit/test_data_model/test_importers}/__init__.py +0 -0
  514. {cognite_neat-0.124.0/tests/tests_unit/test_data_model/test_models/test_entities → cognite_neat-0.125.1/tests/tests_unit/test_data_model/test_models}/__init__.py +0 -0
  515. {cognite_neat-0.124.0/tests/tests_unit/test_utils → cognite_neat-0.125.1/tests/tests_unit/test_data_model/test_models/test_dms}/__init__.py +0 -0
  516. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/tests_unit/test_data_model/test_models/test_dms/strategies.py +0 -0
  517. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/tests_unit/test_data_model/test_models/test_dms/test_containers.py +0 -0
  518. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/tests_unit/test_data_model/test_models/test_dms/test_data_models.py +0 -0
  519. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/tests_unit/test_data_model/test_models/test_dms/test_resources.py +0 -0
  520. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/tests_unit/test_data_model/test_models/test_dms/test_space.py +0 -0
  521. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/tests_unit/test_data_model/test_models/test_dms/test_views.py +0 -0
  522. {cognite_neat-0.124.0/tests/v0/tests_end_to_end → cognite_neat-0.125.1/tests/tests_unit/test_data_model/test_models/test_entities}/__init__.py +0 -0
  523. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/tests_unit/test_data_model/test_models/test_entities/test_identifiers.py +0 -0
  524. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/tests_unit/test_session.py +0 -0
  525. {cognite_neat-0.124.0/tests/v0/tests_integration → cognite_neat-0.125.1/tests/tests_unit/test_utils}/__init__.py +0 -0
  526. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/tests_unit/test_utils/test_auxiliary.py +0 -0
  527. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/tests_unit_v1/test_data_model/test_models/test_dms/test_containers.py +0 -0
  528. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/tests_unit_v1/test_data_model/test_models/test_dms/test_spaces.py +0 -0
  529. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/tests_unit_v1/test_data_model/test_models/test_entities/test_parser.py +0 -0
  530. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/tests_unit_v1/test_utils/test_http_client.py +0 -0
  531. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/config.py +0 -0
  532. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/conftest.py +0 -0
  533. {cognite_neat-0.124.0/tests/v0/tests_integration/test_api → cognite_neat-0.125.1/tests/v0/tests_end_to_end}/__init__.py +0 -0
  534. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_end_to_end/test_rules_flow/test_cdm_extension_verification.yaml +0 -0
  535. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_end_to_end/test_rules_flow/test_excel_importer_to_yaml_new_endpoint.yml +0 -0
  536. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_end_to_end/test_rules_flow/test_ontology_importer_to_yaml.yml +0 -0
  537. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_end_to_end/test_rules_flow/test_to_extension_transformer.yml +0 -0
  538. {cognite_neat-0.124.0/tests/v0/tests_integration/test_graph → cognite_neat-0.125.1/tests/v0/tests_integration}/__init__.py +0 -0
  539. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/conftest.py +0 -0
  540. {cognite_neat-0.124.0/tests/v0/tests_integration/test_graph/test_loaders → cognite_neat-0.125.1/tests/v0/tests_integration/test_api}/__init__.py +0 -0
  541. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_api/test_conversion.py +0 -0
  542. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_api/test_validate_rules.py +0 -0
  543. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_client_available.py +0 -0
  544. {cognite_neat-0.124.0/tests/v0/tests_integration/test_neat_client → cognite_neat-0.125.1/tests/v0/tests_integration/test_graph}/__init__.py +0 -0
  545. {cognite_neat-0.124.0/tests/v0/tests_integration/test_rules → cognite_neat-0.125.1/tests/v0/tests_integration/test_graph/test_loaders}/__init__.py +0 -0
  546. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_graph/test_loaders/test_dms_loader.py +0 -0
  547. {cognite_neat-0.124.0/tests/v0/tests_integration/test_rules/test_exporters → cognite_neat-0.125.1/tests/v0/tests_integration/test_neat_client}/__init__.py +0 -0
  548. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_neat_client/test_cdf_loaders.py +0 -0
  549. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_neat_client/test_statistics.py +0 -0
  550. {cognite_neat-0.124.0/tests/v0/tests_integration/test_rules/test_importers → cognite_neat-0.125.1/tests/v0/tests_integration/test_rules}/__init__.py +0 -0
  551. {cognite_neat-0.124.0/tests/v0/tests_integration/test_session → cognite_neat-0.125.1/tests/v0/tests_integration/test_rules/test_exporters}/__init__.py +0 -0
  552. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_rules/test_exporters/test_dms_exporters.py +0 -0
  553. {cognite_neat-0.124.0/tests/v0/tests_integration/test_utils → cognite_neat-0.125.1/tests/v0/tests_integration/test_rules/test_importers}/__init__.py +0 -0
  554. {cognite_neat-0.124.0/tests/v0/tests_unit → cognite_neat-0.125.1/tests/v0/tests_integration/test_session}/__init__.py +0 -0
  555. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_session/test_create_enterprise.py +0 -0
  556. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_session/test_data_model_prepare_fix/test_prefix_dms_rules_entities.yml +0 -0
  557. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_session/test_data_model_prepare_fix/test_prefix_info_rules_entities.yml +0 -0
  558. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_session/test_data_model_prepare_fix/test_standardize_space_and_version.yml +0 -0
  559. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_session/test_data_model_prepare_fix.py +0 -0
  560. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_session/test_data_model_to/test_raw_filter.yml +0 -0
  561. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_session/test_data_model_to.py +0 -0
  562. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_session/test_graph_flow/test_aml_to_dms.yml +0 -0
  563. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_session/test_graph_flow/test_create_extension_template.yml +0 -0
  564. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_session/test_graph_flow/test_dexpi_to_dms.yml +0 -0
  565. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_session/test_graph_flow/test_uplift_workflow_to_python.yml +0 -0
  566. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_session/test_graph_flow.py +0 -0
  567. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_session/test_read/test_read_model_referencing_core.yml +0 -0
  568. {cognite_neat-0.124.0/tests/v0/tests_unit/test_graph → cognite_neat-0.125.1/tests/v0/tests_integration/test_utils}/__init__.py +0 -0
  569. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_integration/test_utils/test_reader.py +0 -0
  570. {cognite_neat-0.124.0/tests/v0/tests_unit/test_graph/test_extractors → cognite_neat-0.125.1/tests/v0/tests_unit}/__init__.py +0 -0
  571. {cognite_neat-0.124.0/tests/v0/tests_unit/test_graph/test_loaders → cognite_neat-0.125.1/tests/v0/tests_unit/test_graph}/__init__.py +0 -0
  572. {cognite_neat-0.124.0/tests/v0/tests_unit/test_graph/test_transformers → cognite_neat-0.125.1/tests/v0/tests_unit/test_graph/test_extractors}/__init__.py +0 -0
  573. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_extractors/test_asset_extractor.py +0 -0
  574. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_extractors/test_dms_extractor.py +0 -0
  575. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_extractors/test_dms_graph_extractor.py +0 -0
  576. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_extractors/test_events_extractor.py +0 -0
  577. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_extractors/test_files_extractor.py +0 -0
  578. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_extractors/test_labels_extractor.py +0 -0
  579. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_extractors/test_raw_extractor.py +0 -0
  580. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_extractors/test_relationship_extractor.py +0 -0
  581. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_extractors/test_sequences_extractor.py +0 -0
  582. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_extractors/test_timeseries_extractor.py +0 -0
  583. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_graph_read.py +0 -0
  584. {cognite_neat-0.124.0/tests/v0/tests_unit/test_issues → cognite_neat-0.125.1/tests/v0/tests_unit/test_graph/test_loaders}/__init__.py +0 -0
  585. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_loaders/test_dms_loader.py +0 -0
  586. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_loaders/test_rdf2dms.py +0 -0
  587. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_loaders/test_rdf_to_instance_space.py +0 -0
  588. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_provenance.py +0 -0
  589. {cognite_neat-0.124.0/tests/v0/tests_unit/test_neat_client → cognite_neat-0.125.1/tests/v0/tests_unit/test_graph/test_transformers}/__init__.py +0 -0
  590. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_transformers/test_asset_depth_transformer.py +0 -0
  591. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_transformers/test_asset_event_connector_transformer.py +0 -0
  592. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_transformers/test_asset_file_connector_transformer.py +0 -0
  593. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_transformers/test_asset_relationship_connector_transformer.py +0 -0
  594. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_transformers/test_asset_sequence_connector_transformer.py +0 -0
  595. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_transformers/test_asset_ts_connector_transformer.py +0 -0
  596. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_transformers/test_attach_property_from_target2source.py +0 -0
  597. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_transformers/test_connection_to_literal.py +0 -0
  598. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_transformers/test_make_connection_on_exact_match.py +0 -0
  599. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_transformers/test_prune_graph.py +0 -0
  600. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_graph/test_transformers/test_split_multi_value_property_transformer.py +0 -0
  601. {cognite_neat-0.124.0/tests/v0/tests_unit/test_rules → cognite_neat-0.125.1/tests/v0/tests_unit/test_issues}/__init__.py +0 -0
  602. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_issues/test_formatters.py +0 -0
  603. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_issues/test_issue_behavior.py +0 -0
  604. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_issues/test_issues_metatests.py +0 -0
  605. {cognite_neat-0.124.0/tests/v0/tests_unit/test_rules/test_exporters → cognite_neat-0.125.1/tests/v0/tests_unit/test_neat_client}/__init__.py +0 -0
  606. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_neat_client/test_instances.py +0 -0
  607. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_neat_client/test_loaders.py +0 -0
  608. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_neat_client/test_schema.py +0 -0
  609. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_neat_package_metadata.py +0 -0
  610. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_plugins.py +0 -0
  611. {cognite_neat-0.124.0/tests/v0/tests_unit/test_rules/test_importers → cognite_neat-0.125.1/tests/v0/tests_unit/test_rules}/__init__.py +0 -0
  612. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_analysis.py +0 -0
  613. {cognite_neat-0.124.0/tests/v0/tests_unit/test_rules/test_models → cognite_neat-0.125.1/tests/v0/tests_unit/test_rules/test_exporters}/__init__.py +0 -0
  614. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_exporters/test_exporters_meta.py +0 -0
  615. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_exporters/test_rules2excel.py +0 -0
  616. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_exporters/test_rules2ontology.py +0 -0
  617. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_exporters/test_rules2yaml.py +0 -0
  618. {cognite_neat-0.124.0/tests/v0/tests_unit/test_rules/test_transformers → cognite_neat-0.125.1/tests/v0/tests_unit/test_rules/test_importers}/__init__.py +0 -0
  619. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_importers/constants.py +0 -0
  620. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_importers/test_dms_importer.py +0 -0
  621. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_importers/test_excel_importer.py +0 -0
  622. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_importers/test_graph_data_model_importer.py +0 -0
  623. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_importers/test_inference_importer.py +0 -0
  624. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_importers/test_owl_importer.py +0 -0
  625. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_importers/test_subinference_importer.py +0 -0
  626. {cognite_neat-0.124.0/tests/v0/tests_unit/test_session → cognite_neat-0.125.1/tests/v0/tests_unit/test_rules/test_models}/__init__.py +0 -0
  627. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_models/test_asset_rules.py +0 -0
  628. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_models/test_base_rules.py +0 -0
  629. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_models/test_conceptual_model.py +0 -0
  630. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_models/test_data_types.py +0 -0
  631. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_models/test_dms_schema.py +0 -0
  632. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_models/test_input_rules.py +0 -0
  633. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_models/test_restrictions.py +0 -0
  634. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_models/test_wrapped_entities.py +0 -0
  635. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_models/utils.py +0 -0
  636. {cognite_neat-0.124.0/tests/v0/tests_unit/test_store → cognite_neat-0.125.1/tests/v0/tests_unit/test_rules/test_transformers}/__init__.py +0 -0
  637. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_transformers/test_converters.py +0 -0
  638. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_transformers/test_mapping.py +0 -0
  639. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_transformers/test_transformer_meta.py +0 -0
  640. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_rules/test_transformers/test_union_conceptual.py +0 -0
  641. {cognite_neat-0.124.0/tests/v0/tests_unit/test_utils → cognite_neat-0.125.1/tests/v0/tests_unit/test_session}/__init__.py +0 -0
  642. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_session/test_diff.py +0 -0
  643. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_session/test_flows.py +0 -0
  644. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_session/test_meta.py +0 -0
  645. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_session/test_plugin.py +0 -0
  646. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_session/test_read.py +0 -0
  647. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_session/test_to_yaml.py +0 -0
  648. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_store/test_instance_diff.py +0 -0
  649. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_store/tests_rules_store/test_import_export.yml +0 -0
  650. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_store/tests_rules_store.py +0 -0
  651. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_utils/test_auxiliary.py +0 -0
  652. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_utils/test_cdf_classes.py +0 -0
  653. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_utils/test_rdf.py +0 -0
  654. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_utils/test_reader.py +0 -0
  655. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_utils/test_tarjan.py +0 -0
  656. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_utils/test_text.py +0 -0
  657. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/tests_unit/test_utils/test_utils.py +0 -0
  658. {cognite_neat-0.124.0 → cognite_neat-0.125.1}/tests/v0/utils.py +0 -0
@@ -124,7 +124,7 @@ jobs:
124
124
  with:
125
125
  coverageFile: coverage.xml
126
126
  token: ${{ secrets.GITHUB_TOKEN }}
127
- thresholdAll: 0.8
127
+ thresholdAll: 0.9
128
128
  - name: Upload coverage reports to Codecov
129
129
  uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5
130
130
  with:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cognite-neat
3
- Version: 0.124.0
3
+ Version: 0.125.1
4
4
  Summary: Knowledge graph transformation
5
5
  Project-URL: Documentation, https://cognite-neat.readthedocs-hosted.com/
6
6
  Project-URL: Homepage, https://cognite-neat.readthedocs-hosted.com/
@@ -0,0 +1,4 @@
1
+ from ._base import DMSImporter
2
+ from ._table_importer.importer import DMSTableImporter
3
+
4
+ __all__ = ["DMSImporter", "DMSTableImporter"]
@@ -0,0 +1,141 @@
1
+ from collections.abc import Mapping
2
+ from typing import Annotated, cast
3
+
4
+ from pydantic import AliasGenerator, BaseModel, BeforeValidator, Field, model_validator
5
+ from pydantic.alias_generators import to_camel
6
+
7
+ from cognite.neat._data_model.models.entities import ParsedEntity, parse_entities, parse_entity
8
+ from cognite.neat._utils.text import title_case
9
+ from cognite.neat._utils.useful_types import CellValueType
10
+
11
+
12
+ def parse_entity_str(v: str) -> ParsedEntity:
13
+ try:
14
+ return parse_entity(v)
15
+ except ValueError as e:
16
+ raise ValueError(f"Invalid entity syntax: {e}") from e
17
+
18
+
19
+ def parse_entities_str(v: str) -> list[ParsedEntity] | None:
20
+ try:
21
+ return parse_entities(v)
22
+ except ValueError as e:
23
+ raise ValueError(f"Invalid entity list syntax: {e}") from e
24
+
25
+
26
+ Entity = Annotated[ParsedEntity, BeforeValidator(parse_entity_str, str)]
27
+ EntityList = Annotated[list[ParsedEntity], BeforeValidator(parse_entities_str, str)]
28
+
29
+
30
+ class TableObj(
31
+ BaseModel,
32
+ extra="ignore",
33
+ alias_generator=AliasGenerator(
34
+ validation_alias=title_case,
35
+ serialization_alias=to_camel,
36
+ ),
37
+ ): ...
38
+
39
+
40
+ class MetadataValue(TableObj):
41
+ key: str
42
+ value: CellValueType
43
+
44
+
45
+ class DMSProperty(TableObj):
46
+ view: Entity
47
+ view_property: str
48
+ name: str | None = None
49
+ description: str | None = None
50
+ connection: Entity | None
51
+ value_type: Entity
52
+ min_count: int | None
53
+ max_count: int | None
54
+ immutable: bool | None = None
55
+ default: CellValueType | None = None
56
+ auto_increment: bool | None = None
57
+ container: Entity | None = None
58
+ container_property: str | None = None
59
+ container_property_name: str | None = None
60
+ container_property_description: str | None = None
61
+ index: EntityList | None = None
62
+ constraint: EntityList | None = None
63
+
64
+
65
+ class DMSView(TableObj):
66
+ view: Entity
67
+ name: str | None = None
68
+ description: str | None = None
69
+ implements: EntityList | None = None
70
+ filter: str | None = None
71
+ in_model: bool | None = None
72
+
73
+
74
+ class DMSContainer(TableObj):
75
+ container: Entity
76
+ name: str | None = None
77
+ description: str | None = None
78
+ constraint: EntityList | None = None
79
+ used_for: str | None = None
80
+
81
+
82
+ class DMSEnum(TableObj):
83
+ collection: str
84
+ value: str
85
+ name: str | None = None
86
+ description: str | None = None
87
+
88
+
89
+ class DMSNode(TableObj):
90
+ node: Entity
91
+
92
+
93
+ class TableDMS(TableObj):
94
+ metadata: list[MetadataValue]
95
+ properties: list[DMSProperty]
96
+ views: list[DMSView]
97
+ containers: list[DMSContainer] = Field(default_factory=list)
98
+ enum: list[DMSEnum] = Field(default_factory=list)
99
+ nodes: list[DMSNode] = Field(default_factory=list)
100
+
101
+ @model_validator(mode="before")
102
+ def _title_case_keys(
103
+ cls, data: dict[str, list[dict[str, CellValueType]]]
104
+ ) -> dict[str, list[dict[str, CellValueType]]]:
105
+ if isinstance(data, dict):
106
+ # We are case-insensitive on the table names.
107
+ return {title_case(k): v for k, v in data.items()}
108
+ return data
109
+
110
+
111
+ DMS_API_MAPPING: Mapping[str, Mapping[str, str]] = {
112
+ "Views": {
113
+ "space": "View",
114
+ "externalId": "View",
115
+ "version": "View",
116
+ **{
117
+ cast(str, field_.serialization_alias): cast(str, field_.validation_alias)
118
+ for field_id, field_ in DMSView.model_fields.items()
119
+ if field_id != "View"
120
+ },
121
+ },
122
+ "Containers": {
123
+ "space": "Container",
124
+ "externalId": "Container",
125
+ **{
126
+ cast(str, field_.serialization_alias): cast(str, field_.validation_alias)
127
+ for field_id, field_ in DMSContainer.model_fields.items()
128
+ if field_id != "Container"
129
+ },
130
+ },
131
+ "Properties": {
132
+ "space": "View",
133
+ "externalId": "View",
134
+ "property": "ViewProperty",
135
+ **{
136
+ cast(str, field_.serialization_alias): cast(str, field_.validation_alias)
137
+ for field_id, field_ in DMSProperty.model_fields.items()
138
+ if field_id not in ("View", "ViewProperty")
139
+ },
140
+ },
141
+ }
@@ -0,0 +1,76 @@
1
+ from collections.abc import Mapping
2
+ from typing import ClassVar, cast
3
+
4
+ from pydantic import ValidationError
5
+
6
+ from cognite.neat._data_model.importers._base import DMSImporter
7
+ from cognite.neat._data_model.models.dms import (
8
+ RequestSchema,
9
+ )
10
+ from cognite.neat._exceptions import DataModelImportError
11
+ from cognite.neat._issues import ModelSyntaxError
12
+ from cognite.neat._utils.useful_types import CellValueType
13
+ from cognite.neat._utils.validation import as_json_path, humanize_validation_error
14
+
15
+ from .data_classes import TableDMS
16
+
17
+
18
+ class DMSTableImporter(DMSImporter):
19
+ """Imports DMS from a table structure.
20
+
21
+ The tables can are expected to be a dictionary where the keys are the table names and the values
22
+ are lists of dictionaries representing the rows in the table.
23
+ """
24
+
25
+ # We can safely cast as we know the validation_alias is always set to a str.
26
+ REQUIRED_SHEETS = tuple(
27
+ cast(str, field_.validation_alias) for field_ in TableDMS.model_fields.values() if field_.is_required()
28
+ )
29
+ REQUIRED_SHEET_MESSAGES: ClassVar[Mapping[str, str]] = {
30
+ f"Missing required column: {sheet!r}": f"Missing required sheet: {sheet!r}" for sheet in REQUIRED_SHEETS
31
+ }
32
+
33
+ def __init__(self, tables: dict[str, list[dict[str, CellValueType]]]) -> None:
34
+ self._table = tables
35
+
36
+ def to_data_model(self) -> RequestSchema:
37
+ raise NotImplementedError()
38
+
39
+ def _read_tables(self) -> TableDMS:
40
+ try:
41
+ # Check tables, columns, data type and entity syntax.
42
+ table = TableDMS.model_validate(self._table)
43
+ except ValidationError as e:
44
+ errors = self._create_error_messages(e)
45
+ raise DataModelImportError(errors) from None
46
+ return table
47
+
48
+ def _create_error_messages(self, error: ValidationError) -> list[ModelSyntaxError]:
49
+ errors: list[ModelSyntaxError] = []
50
+ seen: set[str] = set()
51
+ for message in humanize_validation_error(
52
+ error,
53
+ humanize_location=self._location,
54
+ field_name="column",
55
+ missing_required_descriptor="missing",
56
+ ):
57
+ # Replace messages about missing required columns with missing required sheets.
58
+ message = self.REQUIRED_SHEET_MESSAGES.get(message, message)
59
+ if message in seen:
60
+ # We treat all rows as the same, so we get duplicated errors for each row.
61
+ continue
62
+ seen.add(message)
63
+ errors.append(ModelSyntaxError(message=message))
64
+ return errors
65
+
66
+ @staticmethod
67
+ def _location(loc: tuple[str | int, ...]) -> str:
68
+ if isinstance(loc[0], str) and len(loc) == 2: # Sheet + row.
69
+ # We skip the row as we treat all rows as the same. For example, if a required column is missing in one
70
+ # row, it is missing in all rows.
71
+ return f"{loc[0]} sheet"
72
+ elif len(loc) == 3 and isinstance(loc[0], str) and isinstance(loc[1], int) and isinstance(loc[2], str):
73
+ # This means there is something wrong in a specific cell.
74
+ return f"{loc[0]} sheet row {loc[1] + 1} column {loc[2]!r}"
75
+ # This should be unreachable as the TableDMS model only has 2 levels.
76
+ return as_json_path(loc)
@@ -0,0 +1,89 @@
1
+ from collections.abc import Mapping
2
+ from dataclasses import dataclass, field
3
+
4
+ from .data_classes import DMS_API_MAPPING
5
+
6
+
7
+ @dataclass
8
+ class SpreadsheetReadContext:
9
+ """This class is used to store information about the source spreadsheet.
10
+
11
+ It is used to adjust row numbers to account for header rows and empty rows
12
+ such that the error/warning messages are accurate.
13
+ """
14
+
15
+ header_row: int = 1
16
+ empty_rows: list[int] = field(default_factory=list)
17
+ skipped_rows: list[int] = field(default_factory=list)
18
+ is_one_indexed: bool = True
19
+
20
+ def __post_init__(self) -> None:
21
+ self.empty_rows.sort()
22
+ self.skipped_rows.sort()
23
+
24
+ def adjusted_row_number(self, row_no: int) -> int:
25
+ output = row_no
26
+ for empty_row in self.empty_rows:
27
+ if empty_row <= output:
28
+ output += 1
29
+ else:
30
+ break
31
+
32
+ for skipped_rows in self.skipped_rows:
33
+ if skipped_rows <= output:
34
+ output += 1
35
+ else:
36
+ break
37
+
38
+ return output + self.header_row + (1 if self.is_one_indexed else 0)
39
+
40
+
41
+ @dataclass
42
+ class TableSource:
43
+ source: str
44
+ table_read: dict[str, SpreadsheetReadContext] = field(default_factory=dict)
45
+
46
+ def location(self, path: tuple[int | str, ...]) -> str:
47
+ table_id: str | None = None
48
+ row_no: int | None = None
49
+ column: str | None = None
50
+ if len(path) >= 1 and isinstance(path[0], str):
51
+ table_id = path[0]
52
+ if len(path) >= 2 and isinstance(path[1], int):
53
+ row_no = path[1]
54
+ if len(path) >= 3 and isinstance(path[2], str):
55
+ column = path[2]
56
+ column = self.field_to_column(table_id, column)
57
+ if isinstance(row_no, int):
58
+ row_no = self.adjust_row_number(table_id, row_no)
59
+ location_parts = []
60
+ if table_id is not None:
61
+ location_parts.append(f"table {table_id!r}")
62
+ if row_no is not None:
63
+ location_parts.append(f"row {row_no}")
64
+ if column is not None:
65
+ location_parts.append(f"column {column!r}")
66
+ if len(path) > 4:
67
+ location_parts.append("-> " + ".".join(str(p) for p in path[3:]))
68
+
69
+ return " ".join(location_parts)
70
+
71
+ def adjust_row_number(self, table_id: str | None, row_no: int) -> int:
72
+ table_read = table_id and self.table_read.get(table_id)
73
+ if table_read:
74
+ return table_read.adjusted_row_number(row_no)
75
+ return row_no + 1 # Convert to 1-indexed if no table read info is available
76
+
77
+ @classmethod
78
+ def field_to_column(cls, table_id: str | None, field_: str) -> str:
79
+ """Maps the field name used in the DMS API to the column named used by Neat."""
80
+ mapping = cls.field_mapping(table_id)
81
+ if mapping is not None:
82
+ return mapping.get(field_, field_)
83
+ return field_
84
+
85
+ @classmethod
86
+ def field_mapping(cls, table_id: str | int | None) -> Mapping[str, str] | None:
87
+ if not isinstance(table_id, str):
88
+ return None
89
+ return DMS_API_MAPPING.get(table_id)
@@ -0,0 +1,17 @@
1
+ from ._issues import ModelSyntaxError
2
+
3
+
4
+ class NeatException(Exception):
5
+ """Base class for all exceptions raised by Neat."""
6
+
7
+ pass
8
+
9
+
10
+ class DataModelImportError(NeatException):
11
+ """Raised when there is an error importing a model."""
12
+
13
+ def __init__(self, errors: list[ModelSyntaxError]) -> None:
14
+ self.errors = errors
15
+
16
+ def __str__(self) -> str:
17
+ return f"Model import failed with {len(self.errors)} errors: " + "; ".join(map(str, self.errors))
@@ -38,3 +38,25 @@ def humanize_collection(collection: Collection[Any], /, *, sort: bool = True, bi
38
38
  sequence = list(strings)
39
39
 
40
40
  return f"{', '.join(sequence[:-1])} {bind_word} {sequence[-1]}"
41
+
42
+
43
+ def title_case(s: str) -> str:
44
+ """Convert a string to title case, handling underscores and hyphens.
45
+
46
+ Args:
47
+ s: The string to convert.
48
+ Returns:
49
+ The title-cased string.
50
+ Examples:
51
+ >>> title_case("hello world")
52
+ 'Hello World'
53
+ >>> title_case("hello_world")
54
+ 'Hello World'
55
+ >>> title_case("hello-world")
56
+ 'Hello World'
57
+ >>> title_case("hello_world-and-universe")
58
+ 'Hello World And Universe'
59
+ >>> title_case("HELLO WORLD")
60
+ 'Hello World'
61
+ """
62
+ return " ".join(word.capitalize() for word in s.replace("_", " ").replace("-", " ").split())
@@ -1,7 +1,11 @@
1
1
  from collections.abc import Hashable
2
+ from datetime import date, datetime, time, timedelta
2
3
  from typing import TypeAlias, TypeVar
3
4
 
4
5
  JsonVal: TypeAlias = None | str | int | float | bool | dict[str, "JsonVal"] | list["JsonVal"]
5
6
 
6
7
 
7
8
  T_ID = TypeVar("T_ID", bound=Hashable)
9
+
10
+ # These are the types that openpyxl supports in cells
11
+ CellValueType: TypeAlias = str | int | float | bool | datetime | date | time | timedelta | None
@@ -31,6 +31,7 @@ def humanize_validation_error(
31
31
  humanize_location: Callable[[tuple[int | str, ...]], str] = as_json_path,
32
32
  field_name: Literal["field", "column", "value"] = "field",
33
33
  field_renaming: Mapping[str, str] | None = None,
34
+ missing_required_descriptor: Literal["empty", "missing"] = "missing",
34
35
  ) -> list[str]:
35
36
  """Converts a ValidationError to a human-readable format.
36
37
 
@@ -50,6 +51,8 @@ def humanize_validation_error(
50
51
  This is useful when the field names in the model are different from the names in the source.
51
52
  For example, if the model field is "asset_id" but the source column is "Asset ID",
52
53
  you can provide a mapping {"asset_id": "Asset ID"} to have the error messages use the source names.
54
+ missing_required_descriptor: How to describe missing required fields. Default is "missing".
55
+ Other option is "empty" which can be more suitable for table data.
53
56
  Returns:
54
57
  A list of human-readable error messages.
55
58
  """
@@ -60,9 +63,9 @@ def humanize_validation_error(
60
63
  loc = (*parent_loc, *item["loc"])
61
64
  error_type = item["type"]
62
65
  if error_type == "missing":
63
- msg = f"Missing required field: {loc[-1]!r}"
66
+ msg = f"Missing required {field_name}: {loc[-1]!r}"
64
67
  elif error_type == "extra_forbidden":
65
- msg = f"Unused field: {loc[-1]!r}"
68
+ msg = f"Unused {field_name}: {loc[-1]!r}"
66
69
  elif error_type == "value_error":
67
70
  msg = str(item["ctx"]["error"])
68
71
  elif error_type == "literal_error":
@@ -92,10 +95,10 @@ def humanize_validation_error(
92
95
 
93
96
  error_suffix = f"{msg[:1].casefold()}{msg[1:]}"
94
97
  if len(loc) > 1 and error_type in {"extra_forbidden", "missing"}:
95
- if field_name == "column":
98
+ if missing_required_descriptor == "empty" and error_type == "missing":
96
99
  # This is a table so we modify the error message.
97
100
  msg = (
98
- f"In {humanize_location(loc[:-1])} the column {field_renaming.get(str(loc[-1]), loc[-1])!r} "
101
+ f"In {humanize_location(loc[:-1])} the {field_name} {field_renaming.get(str(loc[-1]), loc[-1])!r} "
99
102
  "cannot be empty."
100
103
  )
101
104
  else:
@@ -0,0 +1,2 @@
1
+ __version__ = "0.125.1"
2
+ __engine__ = "^2.0.4"
@@ -43,6 +43,7 @@ class EntityTypes(StrEnum):
43
43
  prefix = "prefix"
44
44
  space = "space"
45
45
  container_index = "container_index"
46
+ container_constraint = "container_constraint"
46
47
  concept_restriction = "conceptRestriction"
47
48
  value_constraint = "valueConstraint"
48
49
  cardinality_constraint = "cardinalityConstraint"
@@ -32,7 +32,7 @@ from cognite.neat.v0.core._data_model.models.data_types import (
32
32
  )
33
33
  from cognite.neat.v0.core._data_model.models.physical._verified import PhysicalDataModel
34
34
  from cognite.neat.v0.core._utils.spreadsheet import (
35
- find_column_with_value,
35
+ find_column_and_row_with_value,
36
36
  generate_data_validation,
37
37
  )
38
38
 
@@ -217,7 +217,7 @@ class ExcelExporter(BaseExporter[VerifiedDataModel, Workbook]):
217
217
  continue
218
218
  ws = workbook[sheet]
219
219
  for col in get_internal_properties():
220
- column_letter = find_column_with_value(ws, col)
220
+ column_letter = find_column_and_row_with_value(ws, col)[0]
221
221
  if column_letter:
222
222
  ws.column_dimensions[column_letter].hidden = True
223
223
 
@@ -451,7 +451,7 @@ class ExcelExporter(BaseExporter[VerifiedDataModel, Workbook]):
451
451
  workbook[sheet_name].add_data_validation(data_validators[data_validator_name])
452
452
 
453
453
  # APPLY VALIDATOR TO SPECIFIC COLUMN
454
- if column_letter := find_column_with_value(workbook[sheet_name], column_name):
454
+ if column_letter := find_column_and_row_with_value(workbook[sheet_name], column_name)[0]:
455
455
  data_validators[data_validator_name].add(f"{column_letter}{3}:{column_letter}{3 + total_rows}")
456
456
 
457
457
  def _create_sheet_with_header(
@@ -54,6 +54,7 @@ from cognite.neat.v0.core._data_model.models.entities import (
54
54
  ReverseConnectionEntity,
55
55
  ViewEntity,
56
56
  )
57
+ from cognite.neat.v0.core._data_model.models.entities._single_value import ContainerConstraintEntity
57
58
  from cognite.neat.v0.core._data_model.models.physical import (
58
59
  UnverifiedPhysicalContainer,
59
60
  UnverifiedPhysicalEnum,
@@ -571,17 +572,17 @@ class DMSImporter(BaseImporter[UnverifiedPhysicalDataModel]):
571
572
  index.append(ContainerIndexEntity(prefix="inverted", suffix=index_name, order=order))
572
573
  return index or None
573
574
 
574
- def _get_constraint(self, prop: ViewPropertyApply, prop_id: str) -> list[str] | None:
575
+ def _get_constraint(self, prop: ViewPropertyApply, prop_id: str) -> list[ContainerConstraintEntity] | None:
575
576
  if not isinstance(prop, dm.MappedPropertyApply):
576
577
  return None
577
578
  container = self._all_containers_by_id[prop.container]
578
- unique_constraints: list[str] = []
579
+ unique_constraints: list[ContainerConstraintEntity] = []
579
580
  for constraint_name, constraint_obj in (container.constraints or {}).items():
580
581
  if isinstance(constraint_obj, dm.RequiresConstraint):
581
582
  # This is handled in the .from_container method of DMSContainer
582
583
  continue
583
584
  elif isinstance(constraint_obj, dm.UniquenessConstraint) and prop_id in constraint_obj.properties:
584
- unique_constraints.append(constraint_name)
585
+ unique_constraints.append(ContainerConstraintEntity(prefix="uniqueness", suffix=constraint_name))
585
586
  elif isinstance(constraint_obj, dm.UniquenessConstraint):
586
587
  # This does not apply to this property
587
588
  continue
@@ -10,8 +10,10 @@ import pandas as pd
10
10
  from openpyxl import load_workbook
11
11
  from openpyxl.worksheet.worksheet import Worksheet
12
12
  from pandas import ExcelFile
13
+ from pydantic import ValidationError
13
14
  from rdflib import Namespace, URIRef
14
15
 
16
+ from cognite.neat.v0.core._data_model._constants import SPLIT_ON_COMMA_PATTERN
15
17
  from cognite.neat.v0.core._data_model._shared import (
16
18
  ImportedDataModel,
17
19
  T_UnverifiedDataModel,
@@ -23,6 +25,7 @@ from cognite.neat.v0.core._data_model.models import (
23
25
  SchemaCompleteness,
24
26
  )
25
27
  from cognite.neat.v0.core._data_model.models._import_contexts import SpreadsheetContext
28
+ from cognite.neat.v0.core._data_model.models.entities._single_value import ContainerConstraintEntity, ContainerEntity
26
29
  from cognite.neat.v0.core._issues import IssueList, MultiValueError
27
30
  from cognite.neat.v0.core._issues.errors import (
28
31
  FileMissingRequiredFieldError,
@@ -30,7 +33,11 @@ from cognite.neat.v0.core._issues.errors import (
30
33
  FileReadError,
31
34
  )
32
35
  from cognite.neat.v0.core._issues.warnings import FileMissingRequiredFieldWarning
33
- from cognite.neat.v0.core._utils.spreadsheet import SpreadsheetRead, read_individual_sheet
36
+ from cognite.neat.v0.core._utils.spreadsheet import (
37
+ SpreadsheetRead,
38
+ find_column_and_row_with_value,
39
+ read_individual_sheet,
40
+ )
34
41
  from cognite.neat.v0.core._utils.text import humanize_collection
35
42
 
36
43
  from ._base import BaseImporter
@@ -306,7 +313,7 @@ class ExcelImporter(BaseImporter[T_UnverifiedDataModel]):
306
313
 
307
314
  """
308
315
 
309
- workbook = load_workbook(filepath)
316
+ workbook = load_workbook(filepath, data_only=True)
310
317
 
311
318
  if "Classes" in workbook.sheetnames:
312
319
  print(
@@ -323,13 +330,17 @@ class ExcelImporter(BaseImporter[T_UnverifiedDataModel]):
323
330
  if "Properties" in workbook.sheetnames:
324
331
  _replace_class_with_concept_cell(workbook["Properties"])
325
332
 
326
- with tempfile.NamedTemporaryFile(prefix="temp_neat_file", suffix=".xlsx", delete=False) as temp_file:
327
- workbook.save(temp_file.name)
328
- return Path(temp_file.name)
333
+ elif "Containers" in workbook.sheetnames:
334
+ _replace_legacy_constraint_form(workbook["Containers"])
335
+ _replace_legacy_constraint_form(workbook["Properties"])
329
336
 
330
337
  else:
331
338
  return filepath
332
339
 
340
+ with tempfile.NamedTemporaryFile(prefix="temp_neat_file", suffix=".xlsx", delete=False) as temp_file:
341
+ workbook.save(temp_file.name)
342
+ return Path(temp_file.name)
343
+
333
344
 
334
345
  def _replace_class_with_concept_cell(sheet: Worksheet) -> None:
335
346
  """
@@ -342,3 +353,72 @@ def _replace_class_with_concept_cell(sheet: Worksheet) -> None:
342
353
  for cell in row:
343
354
  if cell.value == "Class":
344
355
  cell.value = "Concept"
356
+
357
+
358
+ def _replace_legacy_constraint_form(sheet: Worksheet) -> None:
359
+ """
360
+ Replaces the legacy form of container constraints with the new form in the given sheet.
361
+
362
+ Args:
363
+ sheet (Worksheet): The sheet in which to replace the old form of container constraints.
364
+ """
365
+ column, row = find_column_and_row_with_value(sheet, "Constraint", False)
366
+
367
+ if not column or not row:
368
+ return None
369
+
370
+ # Iterate over values in the constraint column and replace old form with new form
371
+ replaced: bool = False
372
+ for cell_row in sheet.iter_rows(min_row=row + 1, min_col=column, max_col=column):
373
+ cell = cell_row[0]
374
+ if cell.value is not None: # Skip empty cells
375
+ # Container sheet update
376
+ if sheet.title.lower() == "containers":
377
+ constraints = []
378
+ for constraint in SPLIT_ON_COMMA_PATTERN.split(str(cell.value)):
379
+ # latest format, do nothing
380
+ if "container" in constraint.lower():
381
+ constraints.append(constraint)
382
+ continue
383
+
384
+ try:
385
+ container = ContainerEntity.load(constraint, space="default")
386
+ container_str = container.external_id if container.space == "default" else str(container)
387
+ constraints.append(
388
+ f"requires:{container.space}_{container.external_id}(container={container_str})"
389
+ )
390
+ replaced = True
391
+ except ValidationError:
392
+ constraints.append(constraint)
393
+
394
+ cell.value = ",".join(constraints)
395
+
396
+ # Properties sheet update
397
+ elif sheet.title.lower() == "properties":
398
+ constraints = []
399
+ for constraint in SPLIT_ON_COMMA_PATTERN.split(str(cell.value)):
400
+ try:
401
+ constraint_entity = ContainerConstraintEntity.load(constraint)
402
+
403
+ if constraint_entity.prefix in ["uniqueness", "requires"]:
404
+ constraints.append(constraint)
405
+
406
+ # Replace old format with new format
407
+ else:
408
+ constraints.append(f"uniqueness:{constraint}")
409
+ replaced = True
410
+
411
+ # If the constraint is not valid, we keep it as is
412
+ # to be caught by validation later
413
+ except ValidationError:
414
+ constraints.append(constraint)
415
+
416
+ cell.value = ",".join(constraints)
417
+
418
+ if replaced:
419
+ print(
420
+ (
421
+ "You are using a legacy container constraints format "
422
+ f"in the {sheet.title} sheet. Please update to the latest format."
423
+ ),
424
+ )
@@ -7,6 +7,7 @@ from ._single_value import (
7
7
  AssetFields,
8
8
  ConceptEntity,
9
9
  ConceptualEntity,
10
+ ContainerConstraintEntity,
10
11
  ContainerEntity,
11
12
  ContainerIndexEntity,
12
13
  DataModelEntity,
@@ -35,6 +36,7 @@ __all__ = [
35
36
  "ConceptPropertyCardinalityConstraint",
36
37
  "ConceptPropertyValueConstraint",
37
38
  "ConceptualEntity",
39
+ "ContainerConstraintEntity",
38
40
  "ContainerEntity",
39
41
  "ContainerEntityList",
40
42
  "ContainerIndexEntity",
@@ -660,3 +660,17 @@ class ContainerIndexEntity(PhysicalEntity[None]):
660
660
  @classmethod
661
661
  def from_id(cls, id: None) -> Self:
662
662
  return cls(suffix="dummy")
663
+
664
+
665
+ class ContainerConstraintEntity(PhysicalEntity[None]):
666
+ type_: ClassVar[EntityTypes] = EntityTypes.container_constraint
667
+ prefix: _UndefinedType | Literal["uniqueness", "requires"] = Undefined # type: ignore[assignment]
668
+ suffix: str
669
+ container: ContainerEntity | None = None
670
+
671
+ def as_id(self) -> None:
672
+ return None
673
+
674
+ @classmethod
675
+ def from_id(cls, id: None) -> Self:
676
+ return cls(suffix="dummy")