cognite-neat 0.77.6__tar.gz → 0.77.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/PKG-INFO +1 -1
  2. cognite_neat-0.77.7/cognite/neat/_version.py +1 -0
  3. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/issues/importing.py +17 -0
  4. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/_types/_field.py +11 -17
  5. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/dms/_validation.py +4 -1
  6. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/information/_converter.py +45 -44
  7. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/pyproject.toml +1 -1
  8. cognite_neat-0.77.6/cognite/neat/_version.py +0 -1
  9. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/LICENSE +0 -0
  10. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/README.md +0 -0
  11. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/__init__.py +0 -0
  12. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/api/__init__.py +0 -0
  13. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/api/asgi/metrics.py +0 -0
  14. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/api/configuration.py +0 -0
  15. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/api/context_manager/__init__.py +0 -0
  16. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/api/context_manager/manager.py +0 -0
  17. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/api/data_classes/__init__.py +0 -0
  18. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/api/data_classes/rest.py +0 -0
  19. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/api/explorer.py +0 -0
  20. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/api/routers/configuration.py +0 -0
  21. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/api/routers/core.py +0 -0
  22. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/api/routers/crud.py +0 -0
  23. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/api/routers/data_exploration.py +0 -0
  24. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/api/routers/metrics.py +0 -0
  25. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/api/routers/rules.py +0 -0
  26. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/api/routers/workflows.py +0 -0
  27. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/api/utils/__init__.py +0 -0
  28. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/api/utils/data_mapping.py +0 -0
  29. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/api/utils/logging.py +0 -0
  30. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/api/utils/query_templates.py +0 -0
  31. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/main.py +0 -0
  32. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/monitoring/__init__.py +0 -0
  33. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/monitoring/metrics.py +0 -0
  34. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/ui/index.html +0 -0
  35. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/ui/neat-app/.gitignore +0 -0
  36. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/ui/neat-app/README.md +0 -0
  37. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/ui/neat-app/build/asset-manifest.json +0 -0
  38. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/ui/neat-app/build/favicon.ico +0 -0
  39. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/ui/neat-app/build/img/architect-icon.svg +0 -0
  40. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/ui/neat-app/build/img/developer-icon.svg +0 -0
  41. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/ui/neat-app/build/img/sme-icon.svg +0 -0
  42. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/ui/neat-app/build/index.html +0 -0
  43. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/ui/neat-app/build/logo192.png +0 -0
  44. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/ui/neat-app/build/manifest.json +0 -0
  45. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/ui/neat-app/build/robots.txt +0 -0
  46. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/ui/neat-app/build/static/css/main.38a62222.css +0 -0
  47. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/ui/neat-app/build/static/css/main.38a62222.css.map +0 -0
  48. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/ui/neat-app/build/static/js/main.ec7f72e2.js +0 -0
  49. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/ui/neat-app/build/static/js/main.ec7f72e2.js.LICENSE.txt +0 -0
  50. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/ui/neat-app/build/static/js/main.ec7f72e2.js.map +0 -0
  51. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/app/ui/neat-app/build/static/media/logo.8093b84df9ed36a174c629d6fe0b730d.svg +0 -0
  52. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/config.py +0 -0
  53. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/constants.py +0 -0
  54. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/exceptions.py +0 -0
  55. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/graph/__init__.py +0 -0
  56. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/graph/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
  57. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/graph/examples/Knowledge-Graph-Nordic44.xml +0 -0
  58. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/graph/examples/__init__.py +0 -0
  59. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/graph/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
  60. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/graph/exceptions.py +0 -0
  61. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/graph/extractors/__init__.py +0 -0
  62. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/graph/extractors/_base.py +0 -0
  63. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/graph/extractors/_mock_graph_generator.py +0 -0
  64. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/graph/models.py +0 -0
  65. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/graph/stores/__init__.py +0 -0
  66. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/graph/stores/_base.py +0 -0
  67. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/graph/stores/_graphdb_store.py +0 -0
  68. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/graph/stores/_memory_store.py +0 -0
  69. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/graph/stores/_oxigraph_store.py +0 -0
  70. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/graph/stores/_oxrdflib.py +0 -0
  71. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/graph/stores/_rdf_to_graph.py +0 -0
  72. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/__init__.py +0 -0
  73. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/__init__.py +0 -0
  74. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
  75. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/examples/Knowledge-Graph-Nordic44.xml +0 -0
  76. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/examples/__init__.py +0 -0
  77. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
  78. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/exceptions.py +0 -0
  79. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/extractors/__init__.py +0 -0
  80. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/extractors/_base.py +0 -0
  81. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/extractors/_dexpi.py +0 -0
  82. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/extractors/_graph_capturing_sheet.py +0 -0
  83. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/extractors/_mock_graph_generator.py +0 -0
  84. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/loaders/__init__.py +0 -0
  85. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/loaders/_asset_loader.py +0 -0
  86. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/loaders/_base.py +0 -0
  87. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/loaders/_exceptions.py +0 -0
  88. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/loaders/core/__init__.py +0 -0
  89. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/loaders/core/labels.py +0 -0
  90. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/loaders/core/models.py +0 -0
  91. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/loaders/core/rdf_to_assets.py +0 -0
  92. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/loaders/core/rdf_to_relationships.py +0 -0
  93. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/loaders/rdf_to_dms.py +0 -0
  94. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/loaders/validator.py +0 -0
  95. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/models.py +0 -0
  96. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/stores/__init__.py +0 -0
  97. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/stores/_base.py +0 -0
  98. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/stores/_graphdb_store.py +0 -0
  99. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/stores/_memory_store.py +0 -0
  100. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/stores/_oxigraph_store.py +0 -0
  101. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/stores/_oxrdflib.py +0 -0
  102. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/stores/_rdf_to_graph.py +0 -0
  103. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/transformations/__init__.py +0 -0
  104. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/transformations/entity_matcher.py +0 -0
  105. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/transformations/query_generator/__init__.py +0 -0
  106. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/transformations/query_generator/sparql.py +0 -0
  107. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/graph/transformations/transformer.py +0 -0
  108. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/__init__.py +0 -0
  109. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/analysis.py +0 -0
  110. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/examples/Rules-Nordic44-to-TNT.xlsx +0 -0
  111. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/examples/Rules-Nordic44-to-graphql.xlsx +0 -0
  112. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/examples/__init__.py +0 -0
  113. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/examples/power-grid-containers.yaml +0 -0
  114. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/examples/power-grid-example.xlsx +0 -0
  115. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/examples/power-grid-model.yaml +0 -0
  116. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/examples/rules-template.xlsx +0 -0
  117. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/examples/sheet2cdf-transformation-rules.xlsx +0 -0
  118. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/examples/skos-rules.xlsx +0 -0
  119. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/examples/source-to-solution-mapping-rules.xlsx +0 -0
  120. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/examples/wind-energy.owl +0 -0
  121. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/exceptions.py +0 -0
  122. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/exporters/__init__.py +0 -0
  123. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/exporters/_base.py +0 -0
  124. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/exporters/_core/__init__.py +0 -0
  125. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/exporters/_core/rules2labels.py +0 -0
  126. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/exporters/_rules2dms.py +0 -0
  127. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/exporters/_rules2excel.py +0 -0
  128. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/exporters/_rules2graphql.py +0 -0
  129. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/exporters/_rules2ontology.py +0 -0
  130. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/exporters/_rules2pydantic_models.py +0 -0
  131. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/exporters/_rules2rules.py +0 -0
  132. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/exporters/_rules2triples.py +0 -0
  133. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/exporters/_validation.py +0 -0
  134. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/importers/__init__.py +0 -0
  135. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/importers/_base.py +0 -0
  136. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/importers/_dict2rules.py +0 -0
  137. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/importers/_dms2rules.py +0 -0
  138. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/importers/_graph2rules.py +0 -0
  139. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/importers/_json2rules.py +0 -0
  140. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/importers/_owl2rules/__init__.py +0 -0
  141. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/importers/_owl2rules/_owl2classes.py +0 -0
  142. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/importers/_owl2rules/_owl2metadata.py +0 -0
  143. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/importers/_owl2rules/_owl2properties.py +0 -0
  144. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/importers/_owl2rules/_owl2rules.py +0 -0
  145. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/importers/_spreadsheet2rules.py +0 -0
  146. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/importers/_xsd2rules.py +0 -0
  147. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/importers/_yaml2rules.py +0 -0
  148. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/models/__init__.py +0 -0
  149. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/models/_base.py +0 -0
  150. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/models/raw_rules.py +0 -0
  151. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/models/rdfpath.py +0 -0
  152. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/models/rules.py +0 -0
  153. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/models/tables.py +0 -0
  154. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/rules/models/value_types.py +0 -0
  155. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/workflows/examples/Export_DMS/workflow.yaml +0 -0
  156. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/workflows/examples/Export_Rules_to_Ontology/workflow.yaml +0 -0
  157. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/workflows/examples/Extract_DEXPI_Graph_and_Export_Rules/workflow.yaml +0 -0
  158. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/workflows/examples/Extract_RDF_Graph_and_Generate_Assets/workflow.yaml +0 -0
  159. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/workflows/examples/Import_DMS/workflow.yaml +0 -0
  160. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/workflows/examples/Ontology_to_Data_Model/workflow.yaml +0 -0
  161. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/workflows/examples/Validate_Rules/workflow.yaml +0 -0
  162. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/workflows/examples/Validate_Solution_Model/workflow.yaml +0 -0
  163. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/workflows/examples/Visualize_Data_Model_Using_Mock_Graph/workflow.yaml +0 -0
  164. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/legacy/workflows/examples/Visualize_Semantic_Data_Model/workflow.yaml +0 -0
  165. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/py.typed +0 -0
  166. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/__init__.py +0 -0
  167. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/_shared.py +0 -0
  168. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/analysis/__init__.py +0 -0
  169. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/analysis/_base.py +0 -0
  170. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/analysis/_information_rules.py +0 -0
  171. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/examples/__init__.py +0 -0
  172. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/examples/wind-energy.owl +0 -0
  173. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/exceptions.py +0 -0
  174. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/exporters/__init__.py +0 -0
  175. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/exporters/_base.py +0 -0
  176. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/exporters/_models.py +0 -0
  177. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/exporters/_rules2dms.py +0 -0
  178. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/exporters/_rules2excel.py +0 -0
  179. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/exporters/_rules2ontology.py +0 -0
  180. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/exporters/_rules2yaml.py +0 -0
  181. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/exporters/_validation.py +0 -0
  182. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/importers/__init__.py +0 -0
  183. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/importers/_base.py +0 -0
  184. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/importers/_dms2rules.py +0 -0
  185. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/importers/_dtdl2rules/__init__.py +0 -0
  186. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/importers/_dtdl2rules/_unit_lookup.py +0 -0
  187. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/importers/_dtdl2rules/dtdl_converter.py +0 -0
  188. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/importers/_dtdl2rules/dtdl_importer.py +0 -0
  189. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/importers/_dtdl2rules/spec.py +0 -0
  190. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/importers/_owl2rules/__init__.py +0 -0
  191. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/importers/_owl2rules/_owl2classes.py +0 -0
  192. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/importers/_owl2rules/_owl2metadata.py +0 -0
  193. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/importers/_owl2rules/_owl2properties.py +0 -0
  194. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/importers/_owl2rules/_owl2rules.py +0 -0
  195. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/importers/_spreadsheet2rules.py +0 -0
  196. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/importers/_yaml2rules.py +0 -0
  197. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/issues/__init__.py +0 -0
  198. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/issues/base.py +0 -0
  199. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/issues/dms.py +0 -0
  200. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/issues/fileread.py +0 -0
  201. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/issues/formatters.py +0 -0
  202. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/issues/spreadsheet.py +0 -0
  203. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/issues/spreadsheet_file.py +0 -0
  204. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/__init__.py +0 -0
  205. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/_base.py +0 -0
  206. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/_rdfpath.py +0 -0
  207. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/_types/__init__.py +0 -0
  208. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/_types/_base.py +0 -0
  209. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/data_types.py +0 -0
  210. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/dms/__init__.py +0 -0
  211. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/dms/_converter.py +0 -0
  212. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/dms/_exporter.py +0 -0
  213. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/dms/_rules.py +0 -0
  214. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/dms/_rules_input.py +0 -0
  215. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/dms/_schema.py +0 -0
  216. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/dms/_serializer.py +0 -0
  217. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/domain.py +0 -0
  218. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/entities.py +0 -0
  219. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/information/__init__.py +0 -0
  220. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/information/_rules.py +0 -0
  221. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/information/_rules_input.py +0 -0
  222. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/information/_serializer.py +0 -0
  223. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/information/_validation.py +0 -0
  224. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/rules/models/wrapped_entities.py +0 -0
  225. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/utils/__init__.py +0 -0
  226. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/utils/auxiliary.py +0 -0
  227. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/utils/cdf.py +0 -0
  228. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/utils/cdf_classes.py +0 -0
  229. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/utils/cdf_loaders/__init__.py +0 -0
  230. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/utils/cdf_loaders/_base.py +0 -0
  231. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/utils/cdf_loaders/_data_modeling.py +0 -0
  232. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/utils/cdf_loaders/_ingestion.py +0 -0
  233. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/utils/cdf_loaders/data_classes.py +0 -0
  234. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/utils/exceptions.py +0 -0
  235. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/utils/spreadsheet.py +0 -0
  236. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/utils/text.py +0 -0
  237. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/utils/utils.py +0 -0
  238. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/utils/xml.py +0 -0
  239. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/__init__.py +0 -0
  240. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/_exceptions.py +0 -0
  241. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/base.py +0 -0
  242. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/cdf_store.py +0 -0
  243. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/examples/Export_DMS/workflow.yaml +0 -0
  244. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/examples/Export_Rules_to_Ontology/workflow.yaml +0 -0
  245. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/examples/Extract_DEXPI_Graph_and_Export_Rules/workflow.yaml +0 -0
  246. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/examples/Extract_RDF_Graph_and_Generate_Assets/workflow.yaml +0 -0
  247. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/examples/Import_DMS/workflow.yaml +0 -0
  248. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/examples/Ontology_to_Data_Model/workflow.yaml +0 -0
  249. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/examples/Validate_Rules/workflow.yaml +0 -0
  250. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/examples/Validate_Solution_Model/workflow.yaml +0 -0
  251. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/examples/Visualize_Data_Model_Using_Mock_Graph/workflow.yaml +0 -0
  252. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/examples/Visualize_Semantic_Data_Model/workflow.yaml +0 -0
  253. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/manager.py +0 -0
  254. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/migration/__init__.py +0 -0
  255. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/migration/steps.py +0 -0
  256. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/migration/wf_manifests.py +0 -0
  257. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/model.py +0 -0
  258. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/__init__.py +0 -0
  259. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/data_contracts.py +0 -0
  260. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/lib/__init__.py +0 -0
  261. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/lib/current/__init__.py +0 -0
  262. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/lib/current/graph_extractor.py +0 -0
  263. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/lib/current/graph_loader.py +0 -0
  264. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/lib/current/graph_store.py +0 -0
  265. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/lib/current/rules_exporter.py +0 -0
  266. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/lib/current/rules_importer.py +0 -0
  267. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/lib/current/rules_validator.py +0 -0
  268. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/lib/io/__init__.py +0 -0
  269. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/lib/io/io_steps.py +0 -0
  270. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/lib/legacy/__init__.py +0 -0
  271. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/lib/legacy/graph_contextualization.py +0 -0
  272. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/lib/legacy/graph_extractor.py +0 -0
  273. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/lib/legacy/graph_loader.py +0 -0
  274. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/lib/legacy/graph_store.py +0 -0
  275. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/lib/legacy/graph_transformer.py +0 -0
  276. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/lib/legacy/rules_exporter.py +0 -0
  277. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/lib/legacy/rules_importer.py +0 -0
  278. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps/step_model.py +0 -0
  279. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/steps_registry.py +0 -0
  280. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/tasks.py +0 -0
  281. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/triggers.py +0 -0
  282. {cognite_neat-0.77.6 → cognite_neat-0.77.7}/cognite/neat/workflows/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cognite-neat
3
- Version: 0.77.6
3
+ Version: 0.77.7
4
4
  Summary: Knowledge graph transformation
5
5
  Home-page: https://cognite-neat.readthedocs-hosted.com/
6
6
  License: Apache-2.0
@@ -0,0 +1 @@
1
+ __version__ = "0.77.7"
@@ -16,6 +16,7 @@ __all__ = [
16
16
  "MultipleDataModelsWarning",
17
17
  "UnknownPropertyTypeWarning",
18
18
  "FailedToInferValueTypeWarning",
19
+ "MoreThanOneNonAlphanumericCharacterWarning",
19
20
  "UnknownContainerConstraintWarning",
20
21
  "NoDataModelError",
21
22
  "ModelImportError",
@@ -275,6 +276,22 @@ class FailedImportWarning(ModelImportWarning):
275
276
  return {"identifier": list(self.identifier)}
276
277
 
277
278
 
279
+ @dataclass(frozen=True)
280
+ class MoreThanOneNonAlphanumericCharacterWarning(ModelImportWarning):
281
+ description = """This warning is raised when doing regex validation of strings which either represent class ids,
282
+ property ids, prefix, data model name, that contain more than one non-alphanumeric character,
283
+ such as for example '_' or '-'."""
284
+
285
+ field_name: str
286
+ value: str
287
+
288
+ def message(self) -> str:
289
+ return f"Field {self.field_name} with value {self.value} contains more than one non-alphanumeric character!"
290
+
291
+ def dump(self) -> dict[str, str]:
292
+ return {"field_name": self.field_name, "value": self.value}
293
+
294
+
278
295
  @dataclass(frozen=True)
279
296
  class ModelImportError(NeatValidationError, ABC):
280
297
  description = "An error was raised during importing."
@@ -1,4 +1,5 @@
1
1
  import re
2
+ import warnings
2
3
  from collections.abc import Callable
3
4
  from typing import Annotated, Any, cast
4
5
 
@@ -17,6 +18,7 @@ from pydantic.functional_serializers import PlainSerializer
17
18
  from pydantic_core import PydanticCustomError
18
19
 
19
20
  from cognite.neat.rules import exceptions
21
+ from cognite.neat.rules.issues.importing import MoreThanOneNonAlphanumericCharacterWarning
20
22
 
21
23
  from ._base import (
22
24
  MORE_THAN_ONE_NONE_ALPHANUMERIC_REGEX,
@@ -50,7 +52,6 @@ StrOrListType = Annotated[
50
52
  ),
51
53
  ]
52
54
 
53
-
54
55
  StrListType = Annotated[
55
56
  list[str],
56
57
  BeforeValidator(lambda value: [entry.strip() for entry in value.split(",")] if isinstance(value, str) else value),
@@ -96,19 +97,12 @@ VersionType = Annotated[
96
97
  ]
97
98
 
98
99
 
99
- PropertyType = Annotated[
100
- str,
101
- AfterValidator(
102
- lambda value: (
103
- _raise(exceptions.MoreThanOneNonAlphanumericCharacter("property", value).to_pydantic_custom_error())
104
- if re.search(MORE_THAN_ONE_NONE_ALPHANUMERIC_REGEX, value)
105
- else (
106
- value
107
- if re.match(PROPERTY_ID_COMPLIANCE_REGEX, value)
108
- else _raise(
109
- exceptions.PropertyIDRegexViolation(value, PROPERTY_ID_COMPLIANCE_REGEX).to_pydantic_custom_error()
110
- )
111
- )
112
- )
113
- ),
114
- ]
100
+ def _property_validation(value: str) -> str:
101
+ if not re.match(PROPERTY_ID_COMPLIANCE_REGEX, value):
102
+ _raise(exceptions.PropertyIDRegexViolation(value, PROPERTY_ID_COMPLIANCE_REGEX).to_pydantic_custom_error())
103
+ if re.search(MORE_THAN_ONE_NONE_ALPHANUMERIC_REGEX, value):
104
+ warnings.warn(MoreThanOneNonAlphanumericCharacterWarning("property", value), stacklevel=2)
105
+ return value
106
+
107
+
108
+ PropertyType = Annotated[str, AfterValidator(_property_validation)]
@@ -57,7 +57,10 @@ class DMSPostValidation:
57
57
  container_id = container.as_id()
58
58
  row_numbers = {prop_no for prop_no, _ in properties}
59
59
  value_types = {prop.value_type for _, prop in properties if prop.value_type}
60
- if len(value_types) > 1:
60
+ # The container type 'direct' is an exception. On a container the type direct can point to any
61
+ # node. The value type is typically set on the view.
62
+ is_all_direct = all(prop.connection == "direct" for _, prop in properties)
63
+ if len(value_types) > 1 and not is_all_direct:
61
64
  errors.append(
62
65
  issues.spreadsheet.MultiValueTypeError(
63
66
  container_id,
@@ -1,5 +1,6 @@
1
1
  import re
2
- from collections import defaultdict
2
+ from collections import Counter, defaultdict
3
+ from collections.abc import Collection
3
4
  from typing import TYPE_CHECKING, Literal
4
5
 
5
6
  from cognite.neat.rules.models._base import (
@@ -40,7 +41,6 @@ class _InformationRulesConverter:
40
41
  self.last_classes = {class_.class_: class_ for class_ in self.rules.last.classes}
41
42
  else:
42
43
  self.last_classes = {}
43
- self._created_classes_from: dict[ClassEntity, ClassEntity] = {}
44
44
 
45
45
  def as_domain_rules(self) -> DomainRules:
46
46
  raise NotImplementedError("DomainRules not implemented yet")
@@ -58,11 +58,13 @@ class _InformationRulesConverter:
58
58
  default_space = self._to_space(info_metadata.prefix)
59
59
  metadata = self._convert_metadata_to_dms(info_metadata)
60
60
 
61
- properties_by_class: dict[str, list[DMSProperty]] = defaultdict(list)
61
+ properties_by_class: dict[ClassEntity, list[DMSProperty]] = defaultdict(list)
62
+ referenced_containers: dict[ContainerEntity, Counter[ClassEntity]] = defaultdict(Counter)
62
63
  for prop in self.rules.properties:
63
- properties_by_class[prop.class_.versioned_id].append(
64
- self._as_dms_property(prop, default_space, default_version)
65
- )
64
+ dms_property = self._as_dms_property(prop, default_space, default_version)
65
+ properties_by_class[prop.class_].append(dms_property)
66
+ if dms_property.container:
67
+ referenced_containers[dms_property.container][prop.class_] += 1
66
68
 
67
69
  views: list[DMSView] = [
68
70
  DMSView(
@@ -76,41 +78,26 @@ class _InformationRulesConverter:
76
78
  for cls_ in self.rules.classes
77
79
  ]
78
80
 
79
- classes_without_properties: set[str] = set()
80
- for class_ in self.rules.classes:
81
- properties: list[DMSProperty] = properties_by_class.get(class_.class_.versioned_id, [])
82
- if not properties or all(
83
- isinstance(prop.value_type, ViewPropertyEntity) and prop.connection != "direct" for prop in properties
84
- ):
85
- classes_without_properties.add(class_.class_.versioned_id)
86
-
87
81
  containers: list[DMSContainer] = []
88
- classes = list(self.rules.classes)
89
- for new_class_entity, created_from in self._created_classes_from.items():
90
- # We create new classes in case metadata is set to addition or reshape
91
- # and the class was present in the last schema to avoid creating
92
- # a changed container and instead create a new one.
93
- created_class = self.last_classes[created_from].copy(deep=True)
94
- created_class.class_ = new_class_entity
95
- classes.append(created_class)
96
-
97
- for class_ in classes:
98
- if class_.class_.versioned_id in classes_without_properties:
99
- continue
100
- containers.append(
101
- DMSContainer(
102
- class_=class_.class_,
103
- name=class_.name,
104
- container=class_.class_.as_container_entity(default_space),
105
- description=class_.description,
106
- constraint=[
107
- parent.as_container_entity(default_space)
108
- for parent in class_.parent or []
109
- if parent.versioned_id not in classes_without_properties
110
- ]
111
- or None,
112
- )
82
+ class_by_entity = {cls_.class_: cls_ for cls_ in self.rules.classes}
83
+ if self.rules.last:
84
+ for cls_ in self.rules.last.classes:
85
+ if cls_.class_ not in class_by_entity:
86
+ class_by_entity[cls_.class_] = cls_
87
+ for container_entity, class_entities in referenced_containers.items():
88
+ constrains = self._create_container_constraint(
89
+ class_entities, default_space, class_by_entity, referenced_containers
113
90
  )
91
+ most_used_class_entity = class_entities.most_common(1)[0][0]
92
+ class_ = class_by_entity[most_used_class_entity]
93
+ container = DMSContainer(
94
+ class_=class_.class_,
95
+ container=container_entity,
96
+ name=class_.name,
97
+ description=class_.description,
98
+ constraint=constrains or None,
99
+ )
100
+ containers.append(container)
114
101
 
115
102
  return DMSRules(
116
103
  metadata=metadata,
@@ -123,6 +110,22 @@ class _InformationRulesConverter:
123
110
  reference=self.rules.reference.as_dms_architect_rules() if self.rules.reference else None,
124
111
  )
125
112
 
113
+ @staticmethod
114
+ def _create_container_constraint(
115
+ class_entities: Counter[ClassEntity],
116
+ default_space: str,
117
+ class_by_entity: dict[ClassEntity, InformationClass],
118
+ referenced_containers: Collection[ContainerEntity],
119
+ ) -> list[ContainerEntity]:
120
+ constrains: list[ContainerEntity] = []
121
+ for entity in class_entities:
122
+ class_ = class_by_entity[entity]
123
+ for parent in class_.parent or []:
124
+ parent_entity = parent.as_container_entity(default_space)
125
+ if parent_entity in referenced_containers:
126
+ constrains.append(parent_entity)
127
+ return constrains
128
+
126
129
  @classmethod
127
130
  def _convert_metadata_to_dms(cls, metadata: InformationMetadata) -> "DMSMetadata":
128
131
  from cognite.neat.rules.models.dms._rules import (
@@ -211,11 +214,9 @@ class _InformationRulesConverter:
211
214
  elif (self.is_addition or self.is_reshape) and prop.class_ in self.last_classes:
212
215
  # We need to create a new container for the property, as we cannot change
213
216
  # the existing container in the last schema
214
- class_entity = prop.class_.copy()
215
- class_entity.suffix = self._bump_suffix(class_entity.suffix)
216
- if class_entity not in self._created_classes_from:
217
- self._created_classes_from[class_entity] = prop.class_
218
- return class_entity.as_container_entity(default_space), prop.property_
217
+ container_entity = prop.class_.as_container_entity(default_space)
218
+ container_entity.suffix = self._bump_suffix(container_entity.suffix)
219
+ return container_entity, prop.property_
219
220
  else:
220
221
  return prop.class_.as_container_entity(default_space), prop.property_
221
222
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "cognite-neat"
3
- version = "0.77.6"
3
+ version = "0.77.7"
4
4
  readme = "README.md"
5
5
  description = "Knowledge graph transformation"
6
6
  authors = [
@@ -1 +0,0 @@
1
- __version__ = "0.77.6"
File without changes
File without changes