cognite-neat 0.123.43__tar.gz → 0.124.0__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 (649) hide show
  1. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/PKG-INFO +1 -1
  2. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/dms/__init__.py +12 -1
  3. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/dms/_base.py +1 -1
  4. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/dms/_constraints.py +5 -2
  5. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/dms/_data_types.py +26 -10
  6. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/dms/_indexes.py +6 -3
  7. cognite_neat-0.124.0/cognite/neat/_data_model/models/dms/_types.py +17 -0
  8. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/dms/_view_property.py +14 -25
  9. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/entities/__init__.py +2 -1
  10. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/entities/_parser.py +32 -0
  11. cognite_neat-0.124.0/cognite/neat/_session/_session.py +33 -0
  12. cognite_neat-0.124.0/cognite/neat/_session/_state_machine/__init__.py +23 -0
  13. cognite_neat-0.124.0/cognite/neat/_session/_state_machine/_base.py +27 -0
  14. cognite_neat-0.124.0/cognite/neat/_session/_state_machine/_states.py +150 -0
  15. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_utils/validation.py +58 -28
  16. cognite_neat-0.124.0/cognite/neat/_version.py +2 -0
  17. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_store/_instance.py +33 -0
  18. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/_base.py +2 -0
  19. cognite_neat-0.124.0/cognite/neat/v0/session/_diff.py +51 -0
  20. cognite_neat-0.124.0/last_changelog_entry.md +5 -0
  21. cognite_neat-0.124.0/last_git_message.txt +25 -0
  22. cognite_neat-0.124.0/last_version.txt +1 -0
  23. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/pyproject.toml +1 -1
  24. cognite_neat-0.124.0/tests/config.py +6 -0
  25. cognite_neat-0.124.0/tests/data/_misc/state_machine_diagram.md +68 -0
  26. cognite_neat-0.124.0/tests/data/_misc/state_machine_table.md +10 -0
  27. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/tests_unit/test_data_model/test_models/test_dms/strategies.py +1 -0
  28. cognite_neat-0.124.0/tests/tests_unit/test_data_model/test_models/test_dms/test_containers.py +247 -0
  29. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/tests_unit/test_data_model/test_models/test_dms/test_data_models.py +27 -27
  30. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/tests_unit/test_data_model/test_models/test_dms/test_views.py +64 -45
  31. cognite_neat-0.124.0/tests/tests_unit/test_session.py +125 -0
  32. cognite_neat-0.124.0/tests/tests_unit/test_utils/test_validation.py +94 -0
  33. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/tests_unit_v1/test_data_model/test_models/test_dms/test_containers.py +25 -44
  34. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/tests_unit_v1/test_data_model/test_models/test_dms/test_spaces.py +3 -3
  35. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/tests_unit_v1/test_data_model/test_models/test_entities/test_parser.py +115 -1
  36. cognite_neat-0.124.0/tests/v0/tests_unit/test_session/test_diff.py +62 -0
  37. cognite_neat-0.124.0/tests/v0/tests_unit/test_store/test_instance_diff.py +93 -0
  38. cognite_neat-0.124.0/tests/v0/tests_unit/test_utils/__init__.py +0 -0
  39. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/uv.lock +1 -1
  40. cognite_neat-0.123.43/cognite/neat/_version.py +0 -2
  41. cognite_neat-0.123.43/last_changelog_entry.md +0 -4
  42. cognite_neat-0.123.43/last_git_message.txt +0 -16
  43. cognite_neat-0.123.43/last_version.txt +0 -1
  44. cognite_neat-0.123.43/tests/tests_unit/test_data_model/test_models/test_dms/test_containers.py +0 -83
  45. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/.coveragerc +0 -0
  46. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/.gemini/styleguide.md +0 -0
  47. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/.github/CODEOWNERS +0 -0
  48. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
  49. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
  50. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/.github/pull_request_template.md +0 -0
  51. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/.github/renovate.json +0 -0
  52. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/.github/workflows/code-quality.yaml +0 -0
  53. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/.github/workflows/release.yaml +0 -0
  54. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/.gitignore +0 -0
  55. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/.pre-commit-config.yaml +0 -0
  56. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/.readthedocs.yaml +0 -0
  57. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/CODE_OF_CONDUCT.md +0 -0
  58. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/CONTRIBUTING.md +0 -0
  59. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/LICENSE +0 -0
  60. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/README.md +0 -0
  61. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cdf.toml +0 -0
  62. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/codecov.yml +0 -0
  63. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/__init__.py +0 -0
  64. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/__init__.py +0 -0
  65. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/_constants.py +0 -0
  66. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/_identifiers.py +0 -0
  67. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/importers/__init__.py +0 -0
  68. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/importers/_base.py +0 -0
  69. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/__init__.py +0 -0
  70. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/conceptual/__init__.py +0 -0
  71. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/conceptual/_base.py +0 -0
  72. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/conceptual/_concept.py +0 -0
  73. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/conceptual/_data_model.py +0 -0
  74. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/conceptual/_properties.py +0 -0
  75. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/conceptual/_property.py +0 -0
  76. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/dms/_constants.py +0 -0
  77. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/dms/_container.py +0 -0
  78. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/dms/_data_model.py +0 -0
  79. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/dms/_references.py +0 -0
  80. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/dms/_schema.py +0 -0
  81. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/dms/_space.py +0 -0
  82. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/dms/_views.py +0 -0
  83. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/entities/_base.py +0 -0
  84. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/entities/_constants.py +0 -0
  85. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/entities/_data_types.py +0 -0
  86. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_data_model/models/entities/_identifiers.py +0 -0
  87. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_issues.py +0 -0
  88. {cognite_neat-0.123.43/cognite/neat/_utils → cognite_neat-0.124.0/cognite/neat/_session}/__init__.py +0 -0
  89. {cognite_neat-0.123.43/cognite/neat/v0 → cognite_neat-0.124.0/cognite/neat/_utils}/__init__.py +0 -0
  90. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_utils/auxiliary.py +0 -0
  91. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_utils/http_client/__init__.py +0 -0
  92. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_utils/http_client/_client.py +0 -0
  93. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_utils/http_client/_config.py +0 -0
  94. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_utils/http_client/_data_classes.py +0 -0
  95. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_utils/http_client/_tracker.py +0 -0
  96. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_utils/text.py +0 -0
  97. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/_utils/useful_types.py +0 -0
  98. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/py.typed +0 -0
  99. {cognite_neat-0.123.43/cognite/neat/v0/core → cognite_neat-0.124.0/cognite/neat/v0}/__init__.py +0 -0
  100. {cognite_neat-0.123.43/cognite/neat/v0/core/_client/_api → cognite_neat-0.124.0/cognite/neat/v0/core}/__init__.py +0 -0
  101. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_client/__init__.py +0 -0
  102. {cognite_neat-0.123.43/cognite/neat/v0/core/_client/data_classes → cognite_neat-0.124.0/cognite/neat/v0/core/_client/_api}/__init__.py +0 -0
  103. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_client/_api/data_modeling_loaders.py +0 -0
  104. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_client/_api/neat_instances.py +0 -0
  105. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_client/_api/schema.py +0 -0
  106. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_client/_api/statistics.py +0 -0
  107. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_client/_api_client.py +0 -0
  108. {cognite_neat-0.123.43/cognite/neat/v0/core/_data_model → cognite_neat-0.124.0/cognite/neat/v0/core/_client/data_classes}/__init__.py +0 -0
  109. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_client/data_classes/data_modeling.py +0 -0
  110. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_client/data_classes/neat_sequence.py +0 -0
  111. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_client/data_classes/schema.py +0 -0
  112. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_client/data_classes/statistics.py +0 -0
  113. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_client/testing.py +0 -0
  114. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_config.py +0 -0
  115. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_constants.py +0 -0
  116. {cognite_neat-0.123.43/cognite/neat/v0/core/_instances → cognite_neat-0.124.0/cognite/neat/v0/core/_data_model}/__init__.py +0 -0
  117. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/_constants.py +0 -0
  118. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/_shared.py +0 -0
  119. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/analysis/__init__.py +0 -0
  120. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/analysis/_base.py +0 -0
  121. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/catalog/__init__.py +0 -0
  122. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/catalog/classic_model.xlsx +0 -0
  123. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/catalog/conceptual-imf-data-model.xlsx +0 -0
  124. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/catalog/hello_world_pump.xlsx +0 -0
  125. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/exporters/__init__.py +0 -0
  126. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/exporters/_base.py +0 -0
  127. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/exporters/_data_model2dms.py +0 -0
  128. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/exporters/_data_model2excel.py +0 -0
  129. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/exporters/_data_model2instance_template.py +0 -0
  130. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/exporters/_data_model2semantic_model.py +0 -0
  131. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/exporters/_data_model2yaml.py +0 -0
  132. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/importers/__init__.py +0 -0
  133. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/importers/_base.py +0 -0
  134. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/importers/_base_file_reader.py +0 -0
  135. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/importers/_dict2data_model.py +0 -0
  136. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/importers/_dms2data_model.py +0 -0
  137. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/importers/_graph2data_model.py +0 -0
  138. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/importers/_rdf/__init__.py +0 -0
  139. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/importers/_rdf/_base.py +0 -0
  140. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/importers/_rdf/_inference2rdata_model.py +0 -0
  141. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/importers/_rdf/_owl2data_model.py +0 -0
  142. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/importers/_rdf/_shared.py +0 -0
  143. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/importers/_spreadsheet2data_model.py +0 -0
  144. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/__init__.py +0 -0
  145. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/_base_unverified.py +0 -0
  146. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/_base_verified.py +0 -0
  147. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/_import_contexts.py +0 -0
  148. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/_types.py +0 -0
  149. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/conceptual/__init__.py +0 -0
  150. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/conceptual/_unverified.py +0 -0
  151. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/conceptual/_validation.py +0 -0
  152. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/conceptual/_verified.py +0 -0
  153. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/data_types.py +0 -0
  154. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/entities/__init__.py +0 -0
  155. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/entities/_constants.py +0 -0
  156. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/entities/_loaders.py +0 -0
  157. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/entities/_multi_value.py +0 -0
  158. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/entities/_restrictions.py +0 -0
  159. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/entities/_single_value.py +0 -0
  160. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/entities/_types.py +0 -0
  161. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/entities/_wrapped.py +0 -0
  162. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/mapping/__init__.py +0 -0
  163. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/mapping/_classic2core.py +0 -0
  164. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/mapping/_classic2core.yaml +0 -0
  165. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/physical/__init__.py +0 -0
  166. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/physical/_exporter.py +0 -0
  167. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/physical/_unverified.py +0 -0
  168. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/physical/_validation.py +0 -0
  169. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/models/physical/_verified.py +0 -0
  170. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/transformers/__init__.py +0 -0
  171. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/transformers/_base.py +0 -0
  172. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/transformers/_converters.py +0 -0
  173. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/transformers/_mapping.py +0 -0
  174. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/transformers/_union_conceptual.py +0 -0
  175. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_data_model/transformers/_verification.py +0 -0
  176. {cognite_neat-0.123.43/cognite/neat/v0/core/_instances/extractors/_classic_cdf → cognite_neat-0.124.0/cognite/neat/v0/core/_instances}/__init__.py +0 -0
  177. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/_shared.py +0 -0
  178. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/_tracking/__init__.py +0 -0
  179. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/_tracking/base.py +0 -0
  180. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/_tracking/log.py +0 -0
  181. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
  182. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/examples/Knowledge-Graph-Nordic44.xml +0 -0
  183. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/examples/__init__.py +0 -0
  184. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
  185. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/extractors/__init__.py +0 -0
  186. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/extractors/_base.py +0 -0
  187. {cognite_neat-0.123.43/cognite/neat/v0/core/_utils → cognite_neat-0.124.0/cognite/neat/v0/core/_instances/extractors/_classic_cdf}/__init__.py +0 -0
  188. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_assets.py +0 -0
  189. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_base.py +0 -0
  190. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_classic.py +0 -0
  191. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_data_sets.py +0 -0
  192. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_events.py +0 -0
  193. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_files.py +0 -0
  194. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_labels.py +0 -0
  195. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_relationships.py +0 -0
  196. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_sequences.py +0 -0
  197. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/extractors/_classic_cdf/_timeseries.py +0 -0
  198. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/extractors/_dict.py +0 -0
  199. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/extractors/_dms.py +0 -0
  200. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/extractors/_dms_graph.py +0 -0
  201. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/extractors/_mock_graph_generator.py +0 -0
  202. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/extractors/_raw.py +0 -0
  203. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/extractors/_rdf_file.py +0 -0
  204. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/loaders/__init__.py +0 -0
  205. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/loaders/_base.py +0 -0
  206. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/loaders/_rdf2dms.py +0 -0
  207. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/loaders/_rdf_to_instance_space.py +0 -0
  208. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/queries/__init__.py +0 -0
  209. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/queries/_base.py +0 -0
  210. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/queries/_queries.py +0 -0
  211. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/queries/_select.py +0 -0
  212. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/queries/_update.py +0 -0
  213. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/transformers/__init__.py +0 -0
  214. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/transformers/_base.py +0 -0
  215. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/transformers/_classic_cdf.py +0 -0
  216. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/transformers/_prune_graph.py +0 -0
  217. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/transformers/_rdfpath.py +0 -0
  218. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_instances/transformers/_value_type.py +0 -0
  219. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_issues/__init__.py +0 -0
  220. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_issues/_base.py +0 -0
  221. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_issues/_contextmanagers.py +0 -0
  222. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_issues/_factory.py +0 -0
  223. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_issues/errors/__init__.py +0 -0
  224. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_issues/errors/_external.py +0 -0
  225. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_issues/errors/_general.py +0 -0
  226. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_issues/errors/_properties.py +0 -0
  227. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_issues/errors/_resources.py +0 -0
  228. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_issues/errors/_wrapper.py +0 -0
  229. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_issues/formatters.py +0 -0
  230. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_issues/warnings/__init__.py +0 -0
  231. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_issues/warnings/_external.py +0 -0
  232. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_issues/warnings/_general.py +0 -0
  233. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_issues/warnings/_models.py +0 -0
  234. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_issues/warnings/_properties.py +0 -0
  235. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_issues/warnings/_resources.py +0 -0
  236. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_issues/warnings/user_modeling.py +0 -0
  237. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_shared.py +0 -0
  238. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_store/__init__.py +0 -0
  239. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_store/_data_model.py +0 -0
  240. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_store/_provenance.py +0 -0
  241. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_store/exceptions.py +0 -0
  242. {cognite_neat-0.123.43/tests → cognite_neat-0.124.0/cognite/neat/v0/core/_utils}/__init__.py +0 -0
  243. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_utils/auth.py +0 -0
  244. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_utils/auxiliary.py +0 -0
  245. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_utils/collection_.py +0 -0
  246. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_utils/graph_transformations_report.py +0 -0
  247. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_utils/io_.py +0 -0
  248. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_utils/rdf_.py +0 -0
  249. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_utils/reader/__init__.py +0 -0
  250. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_utils/reader/_base.py +0 -0
  251. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_utils/spreadsheet.py +0 -0
  252. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_utils/tarjan.py +0 -0
  253. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_utils/text.py +0 -0
  254. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_utils/time_.py +0 -0
  255. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_utils/upload.py +0 -0
  256. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/core/_utils/xml_.py +0 -0
  257. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/plugins/__init__.py +0 -0
  258. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/plugins/_base.py +0 -0
  259. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/plugins/_data_model.py +0 -0
  260. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/plugins/_issues.py +0 -0
  261. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/plugins/_manager.py +0 -0
  262. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/__init__.py +0 -0
  263. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/_collector.py +0 -0
  264. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/_drop.py +0 -0
  265. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/_experimental.py +0 -0
  266. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/_explore.py +0 -0
  267. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/_fix.py +0 -0
  268. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/_inspect.py +0 -0
  269. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/_mapping.py +0 -0
  270. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/_plugin.py +0 -0
  271. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/_prepare.py +0 -0
  272. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/_read.py +0 -0
  273. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/_set.py +0 -0
  274. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/_show.py +0 -0
  275. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/_state/README.md +0 -0
  276. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/_state.py +0 -0
  277. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/_subset.py +0 -0
  278. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/_template.py +0 -0
  279. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/_to.py +0 -0
  280. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/_wizard.py +0 -0
  281. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/engine/__init__.py +0 -0
  282. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/engine/_import.py +0 -0
  283. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/engine/_interface.py +0 -0
  284. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/engine/_load.py +0 -0
  285. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/cognite/neat/v0/session/exceptions.py +0 -0
  286. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/dev.py +0 -0
  287. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/DataModelCDF.PNG +0 -0
  288. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/DataModelInstancesCDF.PNG +0 -0
  289. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/DataModelInstancesVizCDF.PNG +0 -0
  290. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/aml-dm-cdf.png +0 -0
  291. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/aml-dm.png +0 -0
  292. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/aml-instances-cdf.png +0 -0
  293. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/aml-instances-full.png +0 -0
  294. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations.png +0 -0
  295. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_dms.png +0 -0
  296. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_dms_typed.png +0 -0
  297. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_populated.png +0 -0
  298. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_populated_with_typed.png +0 -0
  299. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/authorship.png +0 -0
  300. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/base-components.png +0 -0
  301. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/bid_capacity_data_model.png +0 -0
  302. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/change_validate_step.png +0 -0
  303. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/connecting_metadata_dm.png +0 -0
  304. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/connecting_metadata_populated.png +0 -0
  305. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/connecting_metadata_published_dm.png +0 -0
  306. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/container_spec.png +0 -0
  307. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/core_extension.png +0 -0
  308. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/core_extension_excel.png +0 -0
  309. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/core_extension_no_connection.png +0 -0
  310. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/core_extension_with_properties.png +0 -0
  311. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/data-exploration.gif +0 -0
  312. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/data-model-nordic44.png +0 -0
  313. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/data-modeling-flow.png +0 -0
  314. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/dexpi-dm-cdf.png +0 -0
  315. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/dexpi-dm-viz.png +0 -0
  316. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/dexpi-graph-viz.png +0 -0
  317. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/dexpi-instance-cdf.png +0 -0
  318. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/dexpi-transformed-graph-viz.png +0 -0
  319. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/dm-classes.png +0 -0
  320. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/dm-object-shapes.png +0 -0
  321. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/dm-prefixes.png +0 -0
  322. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/dm-source-to-solution-mapping.png +0 -0
  323. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/dm2cdf-asset.png +0 -0
  324. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/dm2cdf-mapping.png +0 -0
  325. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/execution-history.gif +0 -0
  326. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/export_dms_config.png +0 -0
  327. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/export_dms_executed.png +0 -0
  328. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/export_dms_workflow.png +0 -0
  329. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/features.png +0 -0
  330. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/graph-etl-flow.png +0 -0
  331. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/high-level-io.png +0 -0
  332. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/instances-nordic44.png +0 -0
  333. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/instances-sheet.png +0 -0
  334. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/key-aspects-of-neat.png +0 -0
  335. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/knowledge-graph-viz-filtering.gif +0 -0
  336. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/knowledge-graph-viz.gif +0 -0
  337. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/life_cycle_analitic_solution_export_dms.png +0 -0
  338. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/life_cycle_converter_model_analytic_solution_model.png +0 -0
  339. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/life_cycle_download_reference_model_analytic_soluteion_model.png +0 -0
  340. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/life_cycle_download_reference_model_analytic_solution_model_export.png +0 -0
  341. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/logo.png +0 -0
  342. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/metadata-sheet.png +0 -0
  343. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/multi-hop.png +0 -0
  344. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/neat-high-level.png +0 -0
  345. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/neat-two_flows.png +0 -0
  346. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/neat_shift_tab.png +0 -0
  347. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/neat_tab.png +0 -0
  348. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/prefixes-sheet.png +0 -0
  349. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/pump_hello_world_published.png +0 -0
  350. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/rdf-in-nutshell.png +0 -0
  351. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/rdf2cdf-graph-change.jpg +0 -0
  352. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/rdf2cdf-graph-resurrect.jpg +0 -0
  353. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/rdf2cdf-graph.jpg +0 -0
  354. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/rdf2cdf-init-run-step1.jpg +0 -0
  355. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/rdf2cdf-init-run-step2.png +0 -0
  356. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/rdf2cdf-init-run.jpg +0 -0
  357. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/rdf2cdf-post-init.jpg +0 -0
  358. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/run_workflow.png +0 -0
  359. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/sheet2cdf-asset-hierarchy.png +0 -0
  360. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/sheet2cdf-running-workflow.gif +0 -0
  361. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/sheet2cdf-transformation-rules-ui.png +0 -0
  362. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/sheet2cdf-upload-rules.gif +0 -0
  363. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/sheet2cdf-workflow-steps.png +0 -0
  364. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/sheet2cdf-workflow.gif +0 -0
  365. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/sheet2cdf-workflow.png +0 -0
  366. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/step-configurables.png +0 -0
  367. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/step-metrics.png +0 -0
  368. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/tutorial-notebooks-part-2_graph-capturing-sheet.gif +0 -0
  369. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/validate_workflow.png +0 -0
  370. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/wf-ephemeral-mode.png +0 -0
  371. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/wf-overview.gif +0 -0
  372. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/wf-persistent-blocking-mode.png +0 -0
  373. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/wf-persistent-non-blocking.png +0 -0
  374. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/wf-start-mode-ui.png +0 -0
  375. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/wind_farm_classic_knowledge_graph.png +0 -0
  376. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/wind_farm_data_product_instances.png +0 -0
  377. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/work-in-progress.png +0 -0
  378. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/workflow-context.jpg +0 -0
  379. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/working_with_metadata_provenance.png +0 -0
  380. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/figs/working_with_metadata_published_dm.png +0 -0
  381. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/rules/cdf-dms-architect-alice.xlsx +0 -0
  382. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/rules/dms-addition-svein-harald.xlsx +0 -0
  383. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/rules/dms-analytics-olav.xlsx +0 -0
  384. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/rules/dms-architect-rules-raw-filter-example.xlsx +0 -0
  385. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/rules/dms-architect-rules-template.xlsx +0 -0
  386. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/rules/dms-rebuild-olav.xlsx +0 -0
  387. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/rules/domain-expert-rules-template.xlsx +0 -0
  388. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/rules/expert-grid-emma.xlsx +0 -0
  389. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/rules/expert-wind-energy-jon.xlsx +0 -0
  390. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/rules/information-addition-svein-harald.xlsx +0 -0
  391. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/rules/information-analytics-olav-ref.xlsx +0 -0
  392. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/rules/information-analytics-olav.xlsx +0 -0
  393. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/rules/information-architect-david.xlsx +0 -0
  394. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/rules/information-architect-rules-template.xlsx +0 -0
  395. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/videos/tutorial-1-defining-data-model.mp4 +0 -0
  396. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/videos/tutorial-1-download-rules-template.mp4 +0 -0
  397. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/videos/tutorial-1-upload-gql-schema-to-cdf.mp4 +0 -0
  398. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/videos/tutorial-2-graph-capturing-sheet.mp4 +0 -0
  399. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/videos/tutorial-3-asset-hierarchy.mp4 +0 -0
  400. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/videos/tutorial-3-decommissioning.mp4 +0 -0
  401. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/videos/tutorial-3-relationships.mp4 +0 -0
  402. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/videos/tutorial-3-resurrection.mp4 +0 -0
  403. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/artifacts/videos/tutorial-4-asset-hierarchy.mp4 +0 -0
  404. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/data-modeling-principles.md +0 -0
  405. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/excel_data_modeling/conceptual/overview.md +0 -0
  406. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/excel_data_modeling/conceptual/reference.md +0 -0
  407. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/excel_data_modeling/data_model.md +0 -0
  408. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/excel_data_modeling/physical/enum.md +0 -0
  409. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/excel_data_modeling/physical/overview.md +0 -0
  410. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/excel_data_modeling/physical/properties.md +0 -0
  411. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/excel_data_modeling/physical/reference.md +0 -0
  412. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/excel_data_modeling/physical/views.md +0 -0
  413. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/excel_data_modeling/units.md +0 -0
  414. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/gettingstarted/installation.md +0 -0
  415. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/gettingstarted/why-neat.md +0 -0
  416. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/index.md +0 -0
  417. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/reference/NeatSession/base.md +0 -0
  418. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/reference/NeatSession/drop.md +0 -0
  419. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/reference/NeatSession/fix.md +0 -0
  420. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/reference/NeatSession/inspect.md +0 -0
  421. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/reference/NeatSession/mapping.md +0 -0
  422. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/reference/NeatSession/prepare.md +0 -0
  423. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/reference/NeatSession/read.md +0 -0
  424. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/reference/NeatSession/set.md +0 -0
  425. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/reference/NeatSession/show.md +0 -0
  426. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/reference/NeatSession/subset.md +0 -0
  427. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/reference/NeatSession/template.md +0 -0
  428. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/reference/NeatSession/to.md +0 -0
  429. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/reference/issues/base.md +0 -0
  430. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/reference/issues/errors.md +0 -0
  431. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/reference/issues/user_model_warnings.md +0 -0
  432. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/reference/issues/warnings.md +0 -0
  433. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/reference/overview.md +0 -0
  434. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/tutorials/data-modeling/cold_start.ipynb +0 -0
  435. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/tutorials/data-modeling/figs/data-modeling-flow.png +0 -0
  436. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/tutorials/data-modeling/files/wind_farm_prospecting_conceptual_data_model.xlsx +0 -0
  437. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/tutorials/data-modeling/files/wind_farm_prospecting_conceptual_data_model_expanded.xlsx +0 -0
  438. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/tutorials/data-modeling/files/wind_farm_prospecting_physical_data_model.xlsx +0 -0
  439. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/tutorials/data-modeling/from-conceptual-to-physical-via-CDM.ipynb +0 -0
  440. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_conceptual_wind_energy_WindFarmProspecting_v1.html +0 -0
  441. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_conceptual_wind_energy_WindFarmProspecting_v1_implements.html +0 -0
  442. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_physical_neat_playground_NeatHelloWorld_v1.html +0 -0
  443. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/tutorials/data-modeling/my_first_model.xlsx +0 -0
  444. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/tutorials/data-modeling/physical-data-model.xlsx +0 -0
  445. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/docs/tutorials/introduction/introduction.ipynb +0 -0
  446. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/mkdocs.yml +0 -0
  447. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/clean_space.py +0 -0
  448. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/core_classic_mapping.xlsx +0 -0
  449. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/create_classic_core_mapping_yaml.py +0 -0
  450. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/dependency_profiler.py +0 -0
  451. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/docs_generate_reference.py +0 -0
  452. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/docs_generate_unit.py +0 -0
  453. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/generate_steps_md.py +0 -0
  454. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/.gitignore +0 -0
  455. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/README.md +0 -0
  456. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/config.dev.yaml +0 -0
  457. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/neat_integration_runner/README.md +0 -0
  458. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/neat_integration_runner/auth/neat_cicd_testing.group.yaml +0 -0
  459. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/lift_pumps/classic/lift_pump_stations_root.Asset.csv +0 -0
  460. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/lift_pumps/data_sets/hierarchies.DataSet.yaml +0 -0
  461. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/lift_pumps/raw/collections_pump.Table.csv +0 -0
  462. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/lift_pumps/raw/collections_pump.Table.yaml +0 -0
  463. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/classic/Measurement.Asset.yaml +0 -0
  464. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/classic/Measurement.Label.yaml +0 -0
  465. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/classic/MetMast.Asset.yaml +0 -0
  466. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/classic/PowerGeneratingUnit.Label.yaml +0 -0
  467. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/classic/Utsira.Asset.yaml +0 -0
  468. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-01.Asset.yaml +0 -0
  469. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-01_to_MetMast.Relationship.yaml +0 -0
  470. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-02.Asset.yaml +0 -0
  471. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-02_to_MetMast.Relationship.yaml +0 -0
  472. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/classic/WindTurbine.Label.yaml +0 -0
  473. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/classic/metMast.Label.yaml +0 -0
  474. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/classic/planned_WT-01_2022-01-01.Event.yaml +0 -0
  475. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/classic/power_curve_manufacturer1.Sequence.yaml +0 -0
  476. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/data_sets/maintenance.DataSet.yaml +0 -0
  477. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/data_sets/source_ds.DataSet.yaml +0 -0
  478. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/data_sets/usecase_01.DataSet.yaml +0 -0
  479. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/files/WT-01_datasheet.FileMetadata.yaml +0 -0
  480. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/files/WT-01_datasheet.txt +0 -0
  481. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-01_forecast.TimeSeries.yaml +0 -0
  482. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-01_production.TimeSeries.yaml +0 -0
  483. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-02_forecast.TimeSeries.yaml +0 -0
  484. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-02_production.TimeSeries.yaml +0 -0
  485. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/manual_test_dms_importer.py +0 -0
  486. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/migration.py +0 -0
  487. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/oxi_remote/README.md +0 -0
  488. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/oxi_remote/docker-compose.yaml +0 -0
  489. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/test_lookup_table.csv +0 -0
  490. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/scripts/windfarm_to_toolkit.py +0 -0
  491. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/test-pyodide.js +0 -0
  492. {cognite_neat-0.123.43/tests/tests_data_model → cognite_neat-0.124.0/tests}/__init__.py +0 -0
  493. {cognite_neat-0.123.43/tests/tests_data_model/test_models → cognite_neat-0.124.0/tests/tests_data_model}/__init__.py +0 -0
  494. {cognite_neat-0.123.43/tests/tests_data_model/test_models/test_conceptual → cognite_neat-0.124.0/tests/tests_data_model/test_models}/__init__.py +0 -0
  495. {cognite_neat-0.123.43/tests/tests_data_model/test_models/test_entities → cognite_neat-0.124.0/tests/tests_data_model/test_models/test_conceptual}/__init__.py +0 -0
  496. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/tests_data_model/test_models/test_conceptual/test_concept.py +0 -0
  497. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/tests_data_model/test_models/test_conceptual/test_data_model.py +0 -0
  498. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/tests_data_model/test_models/test_conceptual/test_property.py +0 -0
  499. {cognite_neat-0.123.43/tests/tests_unit → cognite_neat-0.124.0/tests/tests_data_model/test_models/test_entities}/__init__.py +0 -0
  500. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/tests_data_model/test_models/test_entities/test_base_entities.py +0 -0
  501. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/tests_data_model/test_models/test_entities/test_data_type.py +0 -0
  502. {cognite_neat-0.123.43/tests/tests_unit/test_data_model → cognite_neat-0.124.0/tests/tests_unit}/__init__.py +0 -0
  503. {cognite_neat-0.123.43/tests/tests_unit/test_data_model/test_models → cognite_neat-0.124.0/tests/tests_unit/test_data_model}/__init__.py +0 -0
  504. {cognite_neat-0.123.43/tests/tests_unit/test_data_model/test_models/test_dms → cognite_neat-0.124.0/tests/tests_unit/test_data_model/test_models}/__init__.py +0 -0
  505. {cognite_neat-0.123.43/tests/tests_unit/test_data_model/test_models/test_entities → cognite_neat-0.124.0/tests/tests_unit/test_data_model/test_models/test_dms}/__init__.py +0 -0
  506. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/tests_unit/test_data_model/test_models/test_dms/test_resources.py +0 -0
  507. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/tests_unit/test_data_model/test_models/test_dms/test_space.py +0 -0
  508. {cognite_neat-0.123.43/tests/tests_unit/test_utils → cognite_neat-0.124.0/tests/tests_unit/test_data_model/test_models/test_entities}/__init__.py +0 -0
  509. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/tests_unit/test_data_model/test_models/test_entities/test_identifiers.py +0 -0
  510. {cognite_neat-0.123.43/tests/v0/tests_end_to_end → cognite_neat-0.124.0/tests/tests_unit/test_utils}/__init__.py +0 -0
  511. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/tests_unit/test_utils/test_auxiliary.py +0 -0
  512. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/tests_unit_v1/test_utils/test_http_client.py +0 -0
  513. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/config.py +0 -0
  514. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/conftest.py +0 -0
  515. {cognite_neat-0.123.43/tests/v0/tests_integration → cognite_neat-0.124.0/tests/v0/tests_end_to_end}/__init__.py +0 -0
  516. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_end_to_end/test_rules_flow/test_cdm_extension_verification.yaml +0 -0
  517. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_end_to_end/test_rules_flow/test_excel_importer_to_yaml.yml +0 -0
  518. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_end_to_end/test_rules_flow/test_excel_importer_to_yaml_new_endpoint.yml +0 -0
  519. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_end_to_end/test_rules_flow/test_ontology_importer_to_yaml.yml +0 -0
  520. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_end_to_end/test_rules_flow/test_to_extension_transformer.yml +0 -0
  521. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_end_to_end/test_rules_flow.py +0 -0
  522. {cognite_neat-0.123.43/tests/v0/tests_integration/test_api → cognite_neat-0.124.0/tests/v0/tests_integration}/__init__.py +0 -0
  523. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/conftest.py +0 -0
  524. {cognite_neat-0.123.43/tests/v0/tests_integration/test_graph → cognite_neat-0.124.0/tests/v0/tests_integration/test_api}/__init__.py +0 -0
  525. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_api/test_conversion.py +0 -0
  526. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_api/test_validate_rules.py +0 -0
  527. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_client_available.py +0 -0
  528. {cognite_neat-0.123.43/tests/v0/tests_integration/test_graph/test_loaders → cognite_neat-0.124.0/tests/v0/tests_integration/test_graph}/__init__.py +0 -0
  529. {cognite_neat-0.123.43/tests/v0/tests_integration/test_neat_client → cognite_neat-0.124.0/tests/v0/tests_integration/test_graph/test_loaders}/__init__.py +0 -0
  530. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_graph/test_loaders/test_dms_loader.py +0 -0
  531. {cognite_neat-0.123.43/tests/v0/tests_integration/test_rules → cognite_neat-0.124.0/tests/v0/tests_integration/test_neat_client}/__init__.py +0 -0
  532. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_neat_client/test_cdf_loaders.py +0 -0
  533. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_neat_client/test_statistics.py +0 -0
  534. {cognite_neat-0.123.43/tests/v0/tests_integration/test_rules/test_exporters → cognite_neat-0.124.0/tests/v0/tests_integration/test_rules}/__init__.py +0 -0
  535. {cognite_neat-0.123.43/tests/v0/tests_integration/test_rules/test_importers → cognite_neat-0.124.0/tests/v0/tests_integration/test_rules/test_exporters}/__init__.py +0 -0
  536. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_rules/test_exporters/test_dms_exporters.py +0 -0
  537. {cognite_neat-0.123.43/tests/v0/tests_integration/test_session → cognite_neat-0.124.0/tests/v0/tests_integration/test_rules/test_importers}/__init__.py +0 -0
  538. {cognite_neat-0.123.43/tests/v0/tests_integration/test_utils → cognite_neat-0.124.0/tests/v0/tests_integration/test_session}/__init__.py +0 -0
  539. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_session/test_create_enterprise.py +0 -0
  540. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_session/test_data_model_prepare_fix/test_prefix_dms_rules_entities.yml +0 -0
  541. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_session/test_data_model_prepare_fix/test_prefix_info_rules_entities.yml +0 -0
  542. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_session/test_data_model_prepare_fix/test_standardize_space_and_version.yml +0 -0
  543. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_session/test_data_model_prepare_fix.py +0 -0
  544. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_session/test_data_model_to/test_raw_filter.yml +0 -0
  545. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_session/test_data_model_to.py +0 -0
  546. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_session/test_graph_flow/test_aml_to_dms.yml +0 -0
  547. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_session/test_graph_flow/test_create_extension_template.yml +0 -0
  548. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_session/test_graph_flow/test_dexpi_to_dms.yml +0 -0
  549. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_session/test_graph_flow/test_snapshot_workflow_ids_to_python.yml +0 -0
  550. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_session/test_graph_flow/test_snapshot_workflow_to_python.yml +0 -0
  551. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_session/test_graph_flow/test_uplift_workflow_to_python.yml +0 -0
  552. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_session/test_graph_flow.py +0 -0
  553. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_session/test_read/test_read_cdm.yml +0 -0
  554. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_session/test_read/test_read_model_referencing_core.yml +0 -0
  555. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_session/test_read.py +0 -0
  556. {cognite_neat-0.123.43/tests/v0/tests_unit → cognite_neat-0.124.0/tests/v0/tests_integration/test_utils}/__init__.py +0 -0
  557. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_integration/test_utils/test_reader.py +0 -0
  558. {cognite_neat-0.123.43/tests/v0/tests_unit/test_graph → cognite_neat-0.124.0/tests/v0/tests_unit}/__init__.py +0 -0
  559. {cognite_neat-0.123.43/tests/v0/tests_unit/test_graph/test_extractors → cognite_neat-0.124.0/tests/v0/tests_unit/test_graph}/__init__.py +0 -0
  560. {cognite_neat-0.123.43/tests/v0/tests_unit/test_graph/test_loaders → cognite_neat-0.124.0/tests/v0/tests_unit/test_graph/test_extractors}/__init__.py +0 -0
  561. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_extractors/test_asset_extractor.py +0 -0
  562. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_extractors/test_dms_extractor.py +0 -0
  563. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_extractors/test_dms_graph_extractor.py +0 -0
  564. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_extractors/test_events_extractor.py +0 -0
  565. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_extractors/test_files_extractor.py +0 -0
  566. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_extractors/test_labels_extractor.py +0 -0
  567. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_extractors/test_raw_extractor.py +0 -0
  568. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_extractors/test_relationship_extractor.py +0 -0
  569. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_extractors/test_sequences_extractor.py +0 -0
  570. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_extractors/test_timeseries_extractor.py +0 -0
  571. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_graph_read.py +0 -0
  572. {cognite_neat-0.123.43/tests/v0/tests_unit/test_graph/test_transformers → cognite_neat-0.124.0/tests/v0/tests_unit/test_graph/test_loaders}/__init__.py +0 -0
  573. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_loaders/test_dms_loader.py +0 -0
  574. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_loaders/test_rdf2dms.py +0 -0
  575. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_loaders/test_rdf_to_instance_space.py +0 -0
  576. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_provenance.py +0 -0
  577. {cognite_neat-0.123.43/tests/v0/tests_unit/test_issues → cognite_neat-0.124.0/tests/v0/tests_unit/test_graph/test_transformers}/__init__.py +0 -0
  578. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_transformers/test_asset_depth_transformer.py +0 -0
  579. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_transformers/test_asset_event_connector_transformer.py +0 -0
  580. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_transformers/test_asset_file_connector_transformer.py +0 -0
  581. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_transformers/test_asset_relationship_connector_transformer.py +0 -0
  582. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_transformers/test_asset_sequence_connector_transformer.py +0 -0
  583. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_transformers/test_asset_ts_connector_transformer.py +0 -0
  584. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_transformers/test_attach_property_from_target2source.py +0 -0
  585. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_transformers/test_connection_to_literal.py +0 -0
  586. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_transformers/test_make_connection_on_exact_match.py +0 -0
  587. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_transformers/test_prune_graph.py +0 -0
  588. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_graph/test_transformers/test_split_multi_value_property_transformer.py +0 -0
  589. {cognite_neat-0.123.43/tests/v0/tests_unit/test_neat_client → cognite_neat-0.124.0/tests/v0/tests_unit/test_issues}/__init__.py +0 -0
  590. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_issues/test_formatters.py +0 -0
  591. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_issues/test_issue_behavior.py +0 -0
  592. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_issues/test_issues_metatests.py +0 -0
  593. {cognite_neat-0.123.43/tests/v0/tests_unit/test_rules → cognite_neat-0.124.0/tests/v0/tests_unit/test_neat_client}/__init__.py +0 -0
  594. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_neat_client/test_instances.py +0 -0
  595. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_neat_client/test_loaders.py +0 -0
  596. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_neat_client/test_schema.py +0 -0
  597. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_neat_package_metadata.py +0 -0
  598. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_plugins.py +0 -0
  599. {cognite_neat-0.123.43/tests/v0/tests_unit/test_rules/test_exporters → cognite_neat-0.124.0/tests/v0/tests_unit/test_rules}/__init__.py +0 -0
  600. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_analysis.py +0 -0
  601. {cognite_neat-0.123.43/tests/v0/tests_unit/test_rules/test_importers → cognite_neat-0.124.0/tests/v0/tests_unit/test_rules/test_exporters}/__init__.py +0 -0
  602. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_exporters/test_exporters_meta.py +0 -0
  603. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_exporters/test_rules2dms.py +0 -0
  604. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_exporters/test_rules2excel.py +0 -0
  605. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_exporters/test_rules2ontology.py +0 -0
  606. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_exporters/test_rules2yaml.py +0 -0
  607. {cognite_neat-0.123.43/tests/v0/tests_unit/test_rules/test_models → cognite_neat-0.124.0/tests/v0/tests_unit/test_rules/test_importers}/__init__.py +0 -0
  608. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_importers/constants.py +0 -0
  609. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_importers/test_dms_importer.py +0 -0
  610. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_importers/test_excel_importer.py +0 -0
  611. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_importers/test_graph_data_model_importer.py +0 -0
  612. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_importers/test_inference_importer.py +0 -0
  613. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_importers/test_owl_importer.py +0 -0
  614. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_importers/test_subinference_importer.py +0 -0
  615. {cognite_neat-0.123.43/tests/v0/tests_unit/test_rules/test_transformers → cognite_neat-0.124.0/tests/v0/tests_unit/test_rules/test_models}/__init__.py +0 -0
  616. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_models/test_asset_rules.py +0 -0
  617. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_models/test_base_rules.py +0 -0
  618. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_models/test_conceptual_model.py +0 -0
  619. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_models/test_data_types.py +0 -0
  620. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_models/test_dms_schema.py +0 -0
  621. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_models/test_entities.py +0 -0
  622. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_models/test_input_rules.py +0 -0
  623. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_models/test_physical_data_model.py +0 -0
  624. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_models/test_restrictions.py +0 -0
  625. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_models/test_wrapped_entities.py +0 -0
  626. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_models/utils.py +0 -0
  627. {cognite_neat-0.123.43/tests/v0/tests_unit/test_session → cognite_neat-0.124.0/tests/v0/tests_unit/test_rules/test_transformers}/__init__.py +0 -0
  628. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_transformers/test_converters.py +0 -0
  629. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_transformers/test_mapping.py +0 -0
  630. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_transformers/test_transformer_meta.py +0 -0
  631. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_rules/test_transformers/test_union_conceptual.py +0 -0
  632. {cognite_neat-0.123.43/tests/v0/tests_unit/test_store → cognite_neat-0.124.0/tests/v0/tests_unit/test_session}/__init__.py +0 -0
  633. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_session/test_flows.py +0 -0
  634. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_session/test_meta.py +0 -0
  635. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_session/test_plugin.py +0 -0
  636. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_session/test_read.py +0 -0
  637. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_session/test_to_yaml.py +0 -0
  638. {cognite_neat-0.123.43/tests/v0/tests_unit/test_utils → cognite_neat-0.124.0/tests/v0/tests_unit/test_store}/__init__.py +0 -0
  639. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_store/test_select_queries.py +0 -0
  640. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_store/tests_rules_store/test_import_export.yml +0 -0
  641. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_store/tests_rules_store.py +0 -0
  642. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_utils/test_auxiliary.py +0 -0
  643. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_utils/test_cdf_classes.py +0 -0
  644. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_utils/test_rdf.py +0 -0
  645. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_utils/test_reader.py +0 -0
  646. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_utils/test_tarjan.py +0 -0
  647. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_utils/test_text.py +0 -0
  648. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/tests_unit/test_utils/test_utils.py +0 -0
  649. {cognite_neat-0.123.43 → cognite_neat-0.124.0}/tests/v0/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cognite-neat
3
- Version: 0.123.43
3
+ Version: 0.124.0
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/
@@ -1,6 +1,7 @@
1
1
  from cognite.neat._data_model.models.dms._base import Resource, WriteableResource
2
2
  from cognite.neat._data_model.models.dms._constraints import (
3
3
  Constraint,
4
+ ConstraintAdapter,
4
5
  ConstraintDefinition,
5
6
  RequiresConstraintDefinition,
6
7
  UniquenessConstraintDefinition,
@@ -14,10 +15,14 @@ from cognite.neat._data_model.models.dms._container import (
14
15
  from cognite.neat._data_model.models.dms._data_types import (
15
16
  BooleanProperty,
16
17
  DataType,
18
+ DataTypeAdapter,
17
19
  DateProperty,
18
20
  DirectNodeRelation,
19
21
  EnumProperty,
22
+ EnumValue,
20
23
  FileCDFExternalIdReference,
24
+ Float32Property,
25
+ Float64Property,
21
26
  FloatProperty,
22
27
  Int32Property,
23
28
  Int64Property,
@@ -29,7 +34,7 @@ from cognite.neat._data_model.models.dms._data_types import (
29
34
  TimeseriesCDFExternalIdReference,
30
35
  TimestampProperty,
31
36
  )
32
- from cognite.neat._data_model.models.dms._indexes import BtreeIndex, Index, IndexDefinition, InvertedIndex
37
+ from cognite.neat._data_model.models.dms._indexes import BtreeIndex, Index, IndexAdapter, IndexDefinition, InvertedIndex
33
38
  from cognite.neat._data_model.models.dms._space import Space, SpaceRequest, SpaceResponse
34
39
 
35
40
  from ._data_model import DataModelRequest, DataModelResponse
@@ -68,6 +73,7 @@ __all__ = [
68
73
  "BtreeIndex",
69
74
  "ConnectionPropertyDefinition",
70
75
  "Constraint",
76
+ "ConstraintAdapter",
71
77
  "ConstraintDefinition",
72
78
  "ConstraintOrIndexState",
73
79
  "Container",
@@ -80,12 +86,17 @@ __all__ = [
80
86
  "DataModelRequest",
81
87
  "DataModelResponse",
82
88
  "DataType",
89
+ "DataTypeAdapter",
83
90
  "DateProperty",
84
91
  "DirectNodeRelation",
85
92
  "EnumProperty",
93
+ "EnumValue",
86
94
  "FileCDFExternalIdReference",
95
+ "Float32Property",
96
+ "Float64Property",
87
97
  "FloatProperty",
88
98
  "Index",
99
+ "IndexAdapter",
89
100
  "IndexDefinition",
90
101
  "Int32Property",
91
102
  "Int64Property",
@@ -20,7 +20,7 @@ class Resource(BaseModelObject):
20
20
  T_Resource = TypeVar("T_Resource", bound=Resource)
21
21
 
22
22
 
23
- class WriteableResource(Generic[T_Resource], Resource, ABC):
23
+ class WriteableResource(Resource, Generic[T_Resource], ABC):
24
24
  @abstractmethod
25
25
  def as_request(self) -> T_Resource:
26
26
  """Convert the response model to a request model by removing read-only fields."""
@@ -1,10 +1,11 @@
1
1
  from abc import ABC
2
2
  from typing import Annotated, Literal
3
3
 
4
- from pydantic import Field
4
+ from pydantic import Field, TypeAdapter
5
5
 
6
6
  from ._base import BaseModelObject
7
7
  from ._references import ContainerReference
8
+ from ._types import Bool
8
9
 
9
10
 
10
11
  class ConstraintDefinition(BaseModelObject, ABC):
@@ -16,7 +17,7 @@ class UniquenessConstraintDefinition(ConstraintDefinition):
16
17
  properties: list[str] = Field(
17
18
  description="List of properties included in the constraint.", min_length=1, max_length=10
18
19
  )
19
- by_space: bool | None = Field(default=None, description="Whether to make the constraint space-specific.")
20
+ by_space: Bool | None = Field(default=None, description="Whether to make the constraint space-specific.")
20
21
 
21
22
 
22
23
  class RequiresConstraintDefinition(ConstraintDefinition):
@@ -28,3 +29,5 @@ Constraint = Annotated[
28
29
  UniquenessConstraintDefinition | RequiresConstraintDefinition,
29
30
  Field(discriminator="constraint_type"),
30
31
  ]
32
+
33
+ ConstraintAdapter: TypeAdapter[Constraint] = TypeAdapter(Constraint)
@@ -1,9 +1,8 @@
1
+ import re
1
2
  from abc import ABC
2
3
  from typing import Annotated, Literal
3
4
 
4
- from pydantic import Field, field_validator
5
-
6
- from cognite.neat._utils.text import humanize_collection
5
+ from pydantic import Field, TypeAdapter, field_validator
7
6
 
8
7
  from ._base import BaseModelObject
9
8
  from ._constants import ENUM_VALUE_IDENTIFIER_PATTERN, FORBIDDEN_ENUM_VALUES, INSTANCE_ID_PATTERN
@@ -111,6 +110,7 @@ class DirectNodeRelation(ListablePropertyTypeDefinition):
111
110
 
112
111
  class EnumValue(BaseModelObject):
113
112
  name: str | None = Field(
113
+ None,
114
114
  max_length=255,
115
115
  description="The name of the enum value.",
116
116
  )
@@ -121,6 +121,9 @@ class EnumValue(BaseModelObject):
121
121
  )
122
122
 
123
123
 
124
+ _ENUM_KEY = re.compile(ENUM_VALUE_IDENTIFIER_PATTERN)
125
+
126
+
124
127
  class EnumProperty(PropertyTypeDefinition):
125
128
  type: Literal["enum"] = "enum"
126
129
  unknown_value: str | None = Field(
@@ -129,22 +132,33 @@ class EnumProperty(PropertyTypeDefinition):
129
132
  "provide forward-compatibility, Specifying what value to use if the client does not "
130
133
  "recognize the returned value. It is not possible to ingest the unknown value, "
131
134
  "but it must be part of the allowed values.",
135
+ min_length=1,
136
+ max_length=128,
137
+ pattern=ENUM_VALUE_IDENTIFIER_PATTERN,
132
138
  )
133
139
  values: dict[str, EnumValue] = Field(
134
140
  description="A set of all possible values for the enum property.",
135
141
  min_length=1,
136
142
  max_length=32,
137
- pattern=ENUM_VALUE_IDENTIFIER_PATTERN,
138
143
  )
139
144
 
140
145
  @field_validator("values", mode="after")
141
146
  def _valid_enum_value(cls, val: dict[str, EnumValue]) -> dict[str, EnumValue]:
142
- invalid_enum_values = set(val.keys()).intersection(FORBIDDEN_ENUM_VALUES)
143
- if invalid_enum_values:
144
- raise ValueError(
145
- "Enum values cannot be any of the following reserved values: "
146
- f"{humanize_collection(invalid_enum_values)}"
147
- )
147
+ errors: list[str] = []
148
+ for key in val.keys():
149
+ if not _ENUM_KEY.match(key):
150
+ errors.append(
151
+ f"Enum value {key!r} is not valid. Enum values must match "
152
+ f"the pattern: {ENUM_VALUE_IDENTIFIER_PATTERN}"
153
+ )
154
+ if len(key) > 128 or len(key) < 1:
155
+ errors.append(f"Enum value {key!r} must be between 1 and 128 characters long.")
156
+ if key.lower() in FORBIDDEN_ENUM_VALUES:
157
+ errors.append(
158
+ f"Enum value {key!r} cannot be any of the following reserved values: {FORBIDDEN_ENUM_VALUES}"
159
+ )
160
+ if errors:
161
+ raise ValueError(";".join(errors))
148
162
  return val
149
163
 
150
164
 
@@ -165,3 +179,5 @@ DataType = Annotated[
165
179
  | EnumProperty,
166
180
  Field(discriminator="type"),
167
181
  ]
182
+
183
+ DataTypeAdapter: TypeAdapter[DataType] = TypeAdapter(DataType)
@@ -1,9 +1,10 @@
1
1
  from abc import ABC
2
2
  from typing import Annotated, Literal
3
3
 
4
- from pydantic import Field
4
+ from pydantic import Field, TypeAdapter
5
5
 
6
6
  from ._base import BaseModelObject
7
+ from ._types import Bool
7
8
 
8
9
 
9
10
  class IndexDefinition(BaseModelObject, ABC):
@@ -13,8 +14,8 @@ class IndexDefinition(BaseModelObject, ABC):
13
14
 
14
15
  class BtreeIndex(IndexDefinition):
15
16
  index_type: Literal["btree"] = "btree"
16
- by_space: bool | None = Field(default=None, description="Whether to make the index space-specific.")
17
- cursorable: bool | None = Field(
17
+ by_space: Bool | None = Field(default=None, description="Whether to make the index space-specific.")
18
+ cursorable: Bool | None = Field(
18
19
  default=None, description="Whether the index can be used for cursor-based pagination."
19
20
  )
20
21
 
@@ -24,3 +25,5 @@ class InvertedIndex(IndexDefinition):
24
25
 
25
26
 
26
27
  Index = Annotated[BtreeIndex | InvertedIndex, Field(discriminator="index_type")]
28
+
29
+ IndexAdapter: TypeAdapter[Index] = TypeAdapter(Index)
@@ -0,0 +1,17 @@
1
+ from typing import Annotated, Any
2
+
3
+ from pydantic import BeforeValidator
4
+
5
+
6
+ def str_as_bool(value: Any) -> Any:
7
+ if isinstance(value, str):
8
+ val = value.lower()
9
+ if val in {"true", "1", "yes"}:
10
+ return True
11
+ if val in {"false", "0", "no"}:
12
+ return False
13
+ # All other cases are handled by Pydantic's built-in bool validator
14
+ return value
15
+
16
+
17
+ Bool = Annotated[bool, BeforeValidator(str_as_bool, str)]
@@ -1,7 +1,7 @@
1
1
  from abc import ABC
2
2
  from typing import Annotated, Literal
3
3
 
4
- from pydantic import Field, Json
4
+ from pydantic import Field, Json, TypeAdapter
5
5
 
6
6
  from ._base import BaseModelObject, Resource, WriteableResource
7
7
  from ._constants import CONTAINER_AND_VIEW_PROPERTIES_IDENTIFIER_PATTERN
@@ -130,53 +130,40 @@ class ReverseDirectRelationProperty(ConnectionPropertyDefinition, ABC):
130
130
  description="The node(s) containing the direct relation property can be read "
131
131
  "through the view specified in 'source'."
132
132
  )
133
+ through: ContainerDirectReference | ViewDirectReference = Field(
134
+ description="The view of the node containing the direct relation property."
135
+ )
133
136
 
134
137
 
135
138
  class SingleReverseDirectRelationPropertyRequest(ReverseDirectRelationProperty):
136
139
  connection_type: Literal["single_reverse_direct_relation"] = "single_reverse_direct_relation"
137
- # The API support through as either ViewDirectReference or ContainerDirectReference. However, in Neat
138
- # we only use ContainerDirectReference. This is for simplicity and it improves performance as the server
139
- # does not have to resolve the view to a container first.
140
- through: ContainerDirectReference = Field(
141
- description="The view of the node containing the direct relation property."
142
- )
140
+
141
+
142
+ class MultiReverseDirectRelationPropertyRequest(ReverseDirectRelationProperty):
143
+ connection_type: Literal["multi_reverse_direct_relation"] = "multi_reverse_direct_relation"
143
144
 
144
145
 
145
146
  class SingleReverseDirectRelationPropertyResponse(
146
147
  ReverseDirectRelationProperty, WriteableResource[SingleReverseDirectRelationPropertyRequest]
147
148
  ):
148
149
  connection_type: Literal["single_reverse_direct_relation"] = "single_reverse_direct_relation"
149
- through: ContainerDirectReference | ViewDirectReference = Field(
150
- description="The view of the node containing the direct relation property."
150
+ target_list: bool = Field(
151
+ description="Whether or not this reverse direct relation targets a list of direct relations.",
151
152
  )
152
153
 
153
154
  def as_request(self) -> SingleReverseDirectRelationPropertyRequest:
154
- if isinstance(self.through, ViewDirectReference):
155
- raise TypeError("Cannot convert to request when 'through' is a ViewDirectReference.")
156
155
  return SingleReverseDirectRelationPropertyRequest.model_validate(self.model_dump(by_alias=True))
157
156
 
158
157
 
159
- class MultiReverseDirectRelationPropertyRequest(ReverseDirectRelationProperty):
160
- connection_type: Literal["multi_reverse_direct_relation"] = "multi_reverse_direct_relation"
161
- # The API support through as either ViewDirectReference or ContainerDirectReference. However, in Neat
162
- # we only use ContainerDirectReference. This is for simplicity and it improves performance as the server
163
- # does not have to resolve the view to a container first.
164
- through: ContainerDirectReference = Field(
165
- description="The view of the node containing the direct relation property."
166
- )
167
-
168
-
169
158
  class MultiReverseDirectRelationPropertyResponse(
170
159
  ReverseDirectRelationProperty, WriteableResource[MultiReverseDirectRelationPropertyRequest]
171
160
  ):
172
161
  connection_type: Literal["multi_reverse_direct_relation"] = "multi_reverse_direct_relation"
173
- through: ContainerDirectReference | ViewDirectReference = Field(
174
- description="The view of the node containing the direct relation property."
162
+ target_list: bool = Field(
163
+ description="Whether or not this reverse direct relation targets a list of direct relations.",
175
164
  )
176
165
 
177
166
  def as_request(self) -> MultiReverseDirectRelationPropertyRequest:
178
- if isinstance(self.through, ViewDirectReference):
179
- raise TypeError("Cannot convert to request when 'through' is a ViewDirectReference.")
180
167
  return MultiReverseDirectRelationPropertyRequest.model_validate(self.model_dump(by_alias=True))
181
168
 
182
169
 
@@ -196,3 +183,5 @@ ViewResponseProperty = Annotated[
196
183
  | ViewCorePropertyResponse,
197
184
  Field(discriminator="connection_type"),
198
185
  ]
186
+
187
+ ViewRequestPropertyAdapter: TypeAdapter[ViewRequestProperty] = TypeAdapter(ViewRequestProperty)
@@ -19,7 +19,7 @@ from ._data_types import (
19
19
  Timeseries,
20
20
  )
21
21
  from ._identifiers import URI, NameSpace
22
- from ._parser import ParsedEntity, parse_entity
22
+ from ._parser import ParsedEntity, parse_entities, parse_entity
23
23
 
24
24
  __all__ = [
25
25
  "URI",
@@ -45,5 +45,6 @@ __all__ = [
45
45
  "Undefined",
46
46
  "Unknown",
47
47
  "UnknownEntity",
48
+ "parse_entities",
48
49
  "parse_entity",
49
50
  ]
@@ -1,4 +1,6 @@
1
+ import re
1
2
  from dataclasses import dataclass
3
+ from typing import Literal
2
4
 
3
5
  SPECIAL_CHARACTERS = ":()=,"
4
6
 
@@ -11,6 +13,18 @@ class ParsedEntity:
11
13
  suffix: str
12
14
  properties: dict[str, str]
13
15
 
16
+ def __str__(self) -> str:
17
+ props_str = ""
18
+ if self.properties:
19
+ joined = ",".join(f"{k}={v}" for k, v in sorted(self.properties.items(), key=lambda x: x[0]))
20
+ props_str = f"({joined})"
21
+ if self.prefix:
22
+ return f"{self.prefix}:{self.suffix}{props_str}"
23
+ return f"{self.suffix}{props_str}"
24
+
25
+ def __hash__(self) -> int:
26
+ return hash(str(self))
27
+
14
28
 
15
29
  class _EntityParser:
16
30
  """A parser for entity strings in the format 'prefix:suffix(prop1=val1,prop2=val2)'."""
@@ -192,3 +206,21 @@ def parse_entity(entity_string: str) -> ParsedEntity:
192
206
  """
193
207
  parser = _EntityParser(entity_string)
194
208
  return parser.parse()
209
+
210
+
211
+ def parse_entities(entities_str: str, separator: Literal[","] = ",") -> list[ParsedEntity] | None:
212
+ """Parse a comma-separated string of entities.
213
+
214
+ Args:
215
+ entities_str: A comma-separated string of entities.
216
+ separator: The separator used to split entities.
217
+ A list of `ParsedEntity` objects or None if the input string is empty.
218
+ """
219
+ if not entities_str.strip():
220
+ return None
221
+ if separator != ",":
222
+ raise ValueError("Only ',' is supported as a separator currently.")
223
+ # Regex to split on the separator but ignore separators within parentheses
224
+ pattern = rf"{separator}(?![^()]*\))"
225
+ parts = re.split(pattern, entities_str)
226
+ return [parse_entity(part.strip()) for part in parts if part.strip()]
@@ -0,0 +1,33 @@
1
+ from ._state_machine import EmptyState, ForbiddenState, State
2
+
3
+
4
+ class NeatSession:
5
+ """A session is an interface for neat operations. It works as
6
+ a manager for handling user interactions and orchestrating
7
+ the state machine for data model and instance operations.
8
+ """
9
+
10
+ def __init__(self) -> None:
11
+ self.state: State = EmptyState()
12
+
13
+ def _execute_event(self, event: str) -> bool:
14
+ """Place holder function for executing events and transitioning states.
15
+ It will be modified to include actual logic as we progress with v1 of neat.
16
+
17
+ """
18
+ print(f"\n--- Executing event: '{event}' from {self.state} ---")
19
+
20
+ old_state = self.state
21
+ new_state = self.state.on_event(event)
22
+
23
+ # Handle ForbiddenState
24
+ if isinstance(new_state, ForbiddenState):
25
+ print(f"❌ Event '{event}' is FORBIDDEN from {old_state}")
26
+ # Return to previous state (as per your table logic)
27
+ self.state = new_state.on_event("undo")
28
+ print(f"↩️ Returned to: {self.state}")
29
+ return False
30
+ else:
31
+ self.state = new_state
32
+ print(f"✅ Transition successful: {old_state} → {self.state}")
33
+ return True
@@ -0,0 +1,23 @@
1
+ from ._base import State
2
+ from ._states import (
3
+ ConceptualPhysicalState,
4
+ ConceptualState,
5
+ EmptyState,
6
+ ForbiddenState,
7
+ InstancesConceptualPhysicalState,
8
+ InstancesConceptualState,
9
+ InstancesState,
10
+ PhysicalState,
11
+ )
12
+
13
+ __all__ = [
14
+ "ConceptualPhysicalState",
15
+ "ConceptualState",
16
+ "EmptyState",
17
+ "ForbiddenState",
18
+ "InstancesConceptualPhysicalState",
19
+ "InstancesConceptualState",
20
+ "InstancesState",
21
+ "PhysicalState",
22
+ "State",
23
+ ]
@@ -0,0 +1,27 @@
1
+ from abc import ABC, abstractmethod
2
+
3
+
4
+ class State(ABC):
5
+ def __init__(self) -> None:
6
+ # this will be reference to the actual store in the session
7
+ # used to store data models and instances, here only as a placeholder
8
+ self._store = None
9
+
10
+ @abstractmethod
11
+ def on_event(self, event: str) -> "State":
12
+ """
13
+ Handle events that are delegated to this State.
14
+ """
15
+ raise NotImplementedError("on_event() must be implemented by the subclass.")
16
+
17
+ def __repr__(self) -> str:
18
+ """
19
+ Leverages the __str__ method to describe the State.
20
+ """
21
+ return self.__str__()
22
+
23
+ def __str__(self) -> str:
24
+ """
25
+ Returns the name of the State.
26
+ """
27
+ return self.__class__.__name__
@@ -0,0 +1,150 @@
1
+ from ._base import State
2
+
3
+
4
+ class EmptyState(State):
5
+ """
6
+ The initial state with empty NEAT store.
7
+ """
8
+
9
+ def on_event(self, event: str) -> State:
10
+ if event == "read_instances":
11
+ return InstancesState()
12
+ elif event == "read_conceptual":
13
+ return ConceptualState()
14
+ elif event == "read_physical":
15
+ return PhysicalState()
16
+
17
+ return ForbiddenState(self)
18
+
19
+
20
+ class InstancesState(State):
21
+ """
22
+ State with instances loaded to the store.
23
+ """
24
+
25
+ def on_event(self, event: str) -> State:
26
+ # One can keep on reading instances to stay in the same state
27
+ if event == "read_instances":
28
+ return InstancesState()
29
+ # We either read conceptual model or infer it from instances
30
+ # if read conceptual, we need to make sure that conceptual model is compatible with instances
31
+ elif event in ["infer_conceptual", "read_conceptual"]:
32
+ return InstancesConceptualState()
33
+
34
+ # transforming instances keeps us in the same state
35
+ elif event == "transform_instances":
36
+ return InstancesState()
37
+ # we should allow writing out instances in RDF format but not to CDF
38
+ elif event == "write_instances":
39
+ return InstancesState()
40
+
41
+ # all other operations are forbidden
42
+ return ForbiddenState(self)
43
+
44
+
45
+ class ConceptualState(State):
46
+ """
47
+ State with conceptual model loaded.
48
+ """
49
+
50
+ def on_event(self, event: str) -> State:
51
+ # re-reading of model means transformation of
52
+ # the current model has been done outside of NeatSession
53
+ # requires checking that the new model is compatible with the existing
54
+ if event == "read_conceptual":
55
+ return ConceptualState()
56
+
57
+ # when reading: requires linking between models
58
+ # when converting: links are automatically created
59
+ elif event == "read_physical" or event == "convert_to_physical":
60
+ return ConceptualPhysicalState()
61
+ elif event == "transform_conceptual":
62
+ return ConceptualState()
63
+ elif event == "write_conceptual":
64
+ return ConceptualState()
65
+
66
+ return ForbiddenState(self)
67
+
68
+
69
+ class PhysicalState(State):
70
+ """
71
+ State with physical model loaded.
72
+ """
73
+
74
+ def on_event(self, event: str) -> State:
75
+ if event == "read_physical":
76
+ return PhysicalState()
77
+ elif event == "transform_physical":
78
+ return PhysicalState()
79
+ elif event == "write_physical":
80
+ return PhysicalState()
81
+ elif event == "convert_to_conceptual" or event == "read_conceptual":
82
+ return ConceptualPhysicalState()
83
+
84
+ return ForbiddenState(self)
85
+
86
+
87
+ class InstancesConceptualState(State):
88
+ """
89
+ State with both instances and conceptual model loaded.
90
+ """
91
+
92
+ def on_event(self, event: str) -> State:
93
+ if event == "read_conceptual":
94
+ return InstancesConceptualState()
95
+ elif event == "transform_conceptual":
96
+ return InstancesConceptualState()
97
+ elif event in ["write_instances", "write_conceptual"]:
98
+ return InstancesConceptualState()
99
+ elif event in ["read_physical", "convert_to_physical"]:
100
+ return InstancesConceptualPhysicalState()
101
+
102
+ return ForbiddenState(self)
103
+
104
+
105
+ class ConceptualPhysicalState(State):
106
+ """
107
+ State with both conceptual and physical models loaded.
108
+ """
109
+
110
+ def on_event(self, event: str) -> State:
111
+ if event == "read_physical":
112
+ return ConceptualPhysicalState()
113
+ elif event == "transform_physical":
114
+ return ConceptualPhysicalState()
115
+ elif event in ["write_conceptual", "write_physical"]:
116
+ return ConceptualPhysicalState()
117
+
118
+ return ForbiddenState(self)
119
+
120
+
121
+ class InstancesConceptualPhysicalState(State):
122
+ """
123
+ State with instances, conceptual, and physical models loaded.
124
+ """
125
+
126
+ def on_event(self, event: str) -> State:
127
+ if event == "read_physical":
128
+ return InstancesConceptualPhysicalState()
129
+ elif event == "transform_physical":
130
+ return InstancesConceptualPhysicalState()
131
+ elif event in ["write_instances", "write_conceptual", "write_physical"]:
132
+ return InstancesConceptualPhysicalState()
133
+
134
+ return ForbiddenState(self)
135
+
136
+
137
+ class ForbiddenState(State):
138
+ """
139
+ State representing forbidden transitions - returns to previous state.
140
+ """
141
+
142
+ def __init__(self, previous_state: State):
143
+ self.previous_state = previous_state
144
+ print(f"Forbidden action attempted. Returning to previous state: {previous_state}")
145
+
146
+ def on_event(self, event: str) -> State:
147
+ # only "undo" to trigger going back to previous state
148
+ if event.strip().lower() == "undo":
149
+ return self.previous_state
150
+ return self