cognite-neat 0.109.4__tar.gz → 0.110.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 (192) hide show
  1. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/PKG-INFO +1 -1
  2. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_alpha.py +2 -0
  3. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/_api/schema.py +17 -1
  4. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/data_classes/schema.py +3 -3
  5. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_constants.py +11 -0
  6. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_classic.py +9 -10
  7. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_iodd.py +3 -3
  8. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_mock_graph_generator.py +9 -7
  9. cognite_neat-0.110.0/cognite/neat/_graph/loaders/_rdf2dms.py +581 -0
  10. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/queries/_base.py +28 -92
  11. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/transformers/__init__.py +1 -3
  12. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/transformers/_rdfpath.py +2 -49
  13. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/__init__.py +1 -6
  14. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/_base.py +21 -252
  15. cognite_neat-0.110.0/cognite/neat/_issues/_contextmanagers.py +46 -0
  16. cognite_neat-0.110.0/cognite/neat/_issues/_factory.py +61 -0
  17. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/errors/__init__.py +18 -4
  18. cognite_neat-0.110.0/cognite/neat/_issues/errors/_wrapper.py +89 -0
  19. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/formatters.py +4 -4
  20. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/warnings/__init__.py +3 -2
  21. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/warnings/_properties.py +8 -0
  22. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/_constants.py +9 -0
  23. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/_shared.py +3 -2
  24. cognite_neat-0.110.0/cognite/neat/_rules/analysis/__init__.py +3 -0
  25. cognite_neat-0.110.0/cognite/neat/_rules/analysis/_base.py +577 -0
  26. cognite_neat-0.110.0/cognite/neat/_rules/catalog/info-rules-imf.xlsx +0 -0
  27. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/exporters/_rules2excel.py +2 -8
  28. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/exporters/_rules2instance_template.py +2 -2
  29. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/exporters/_rules2ontology.py +5 -4
  30. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_base.py +2 -47
  31. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_dms2rules.py +7 -10
  32. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_dtdl2rules/dtdl_importer.py +2 -2
  33. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_rdf/_inference2rules.py +59 -25
  34. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_rdf/_shared.py +1 -1
  35. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_spreadsheet2rules.py +12 -9
  36. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/dms/_rules.py +3 -1
  37. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/dms/_rules_input.py +4 -0
  38. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/dms/_validation.py +14 -4
  39. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/entities/_loaders.py +1 -1
  40. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/entities/_multi_value.py +2 -2
  41. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/information/_rules.py +18 -17
  42. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/information/_rules_input.py +2 -1
  43. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/information/_validation.py +3 -1
  44. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/transformers/__init__.py +8 -2
  45. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/transformers/_converters.py +228 -43
  46. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/transformers/_verification.py +5 -10
  47. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_base.py +4 -4
  48. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_prepare.py +12 -0
  49. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_read.py +21 -17
  50. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_show.py +11 -123
  51. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_state.py +0 -2
  52. cognite_neat-0.110.0/cognite/neat/_session/_subset.py +64 -0
  53. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_to.py +63 -12
  54. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_store/_graph_store.py +5 -246
  55. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/rdf_.py +2 -2
  56. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/spreadsheet.py +44 -1
  57. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/text.py +51 -32
  58. cognite_neat-0.110.0/cognite/neat/_version.py +2 -0
  59. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/pyproject.toml +2 -2
  60. cognite_neat-0.109.4/cognite/neat/_graph/loaders/_rdf2dms.py +0 -642
  61. cognite_neat-0.109.4/cognite/neat/_graph/queries/_construct.py +0 -187
  62. cognite_neat-0.109.4/cognite/neat/_graph/queries/_shared.py +0 -173
  63. cognite_neat-0.109.4/cognite/neat/_issues/errors/_wrapper.py +0 -11
  64. cognite_neat-0.109.4/cognite/neat/_rules/analysis/__init__.py +0 -4
  65. cognite_neat-0.109.4/cognite/neat/_rules/analysis/_base.py +0 -385
  66. cognite_neat-0.109.4/cognite/neat/_rules/analysis/_dms.py +0 -57
  67. cognite_neat-0.109.4/cognite/neat/_rules/analysis/_information.py +0 -249
  68. cognite_neat-0.109.4/cognite/neat/_rules/catalog/info-rules-imf.xlsx +0 -0
  69. cognite_neat-0.109.4/cognite/neat/_rules/models/_rdfpath.py +0 -372
  70. cognite_neat-0.109.4/cognite/neat/_version.py +0 -2
  71. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/LICENSE +0 -0
  72. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/README.md +0 -0
  73. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/__init__.py +0 -0
  74. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/__init__.py +0 -0
  75. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/_api/__init__.py +0 -0
  76. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/_api/data_modeling_loaders.py +0 -0
  77. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/_api_client.py +0 -0
  78. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/data_classes/__init__.py +0 -0
  79. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/data_classes/data_modeling.py +0 -0
  80. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/data_classes/neat_sequence.py +0 -0
  81. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/testing.py +0 -0
  82. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_config.py +0 -0
  83. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/__init__.py +0 -0
  84. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/_shared.py +0 -0
  85. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/_tracking/__init__.py +0 -0
  86. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/_tracking/base.py +0 -0
  87. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/_tracking/log.py +0 -0
  88. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
  89. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/examples/Knowledge-Graph-Nordic44.xml +0 -0
  90. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/examples/__init__.py +0 -0
  91. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
  92. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/__init__.py +0 -0
  93. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_base.py +0 -0
  94. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/__init__.py +0 -0
  95. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_assets.py +0 -0
  96. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_base.py +0 -0
  97. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_data_sets.py +0 -0
  98. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_events.py +0 -0
  99. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_files.py +0 -0
  100. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_labels.py +0 -0
  101. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_relationships.py +0 -0
  102. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_sequences.py +0 -0
  103. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_timeseries.py +0 -0
  104. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_dexpi.py +0 -0
  105. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_dms.py +0 -0
  106. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_dms_graph.py +0 -0
  107. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_rdf_file.py +0 -0
  108. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/loaders/__init__.py +0 -0
  109. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/loaders/_base.py +0 -0
  110. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/queries/__init__.py +0 -0
  111. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/transformers/_base.py +0 -0
  112. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/transformers/_classic_cdf.py +0 -0
  113. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/transformers/_iodd.py +0 -0
  114. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/transformers/_prune_graph.py +0 -0
  115. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/transformers/_value_type.py +0 -0
  116. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/errors/_external.py +0 -0
  117. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/errors/_general.py +0 -0
  118. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/errors/_properties.py +0 -0
  119. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/errors/_resources.py +0 -0
  120. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/warnings/_external.py +0 -0
  121. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/warnings/_general.py +0 -0
  122. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/warnings/_models.py +0 -0
  123. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/warnings/_resources.py +0 -0
  124. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/warnings/user_modeling.py +0 -0
  125. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/__init__.py +0 -0
  126. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/catalog/__init__.py +0 -0
  127. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/catalog/classic_model.xlsx +0 -0
  128. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/catalog/hello_world_pump.xlsx +0 -0
  129. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/exporters/__init__.py +0 -0
  130. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/exporters/_base.py +0 -0
  131. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/exporters/_rules2dms.py +0 -0
  132. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/exporters/_rules2yaml.py +0 -0
  133. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/exporters/_validation.py +0 -0
  134. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/__init__.py +0 -0
  135. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_dtdl2rules/__init__.py +0 -0
  136. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_dtdl2rules/_unit_lookup.py +0 -0
  137. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_dtdl2rules/dtdl_converter.py +0 -0
  138. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_dtdl2rules/spec.py +0 -0
  139. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_rdf/__init__.py +0 -0
  140. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_rdf/_base.py +0 -0
  141. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_rdf/_imf2rules.py +0 -0
  142. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_rdf/_owl2rules.py +0 -0
  143. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_yaml2rules.py +0 -0
  144. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/__init__.py +0 -0
  145. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/_base_input.py +0 -0
  146. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/_base_rules.py +0 -0
  147. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/_types.py +0 -0
  148. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/data_types.py +0 -0
  149. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/dms/__init__.py +0 -0
  150. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/dms/_exporter.py +0 -0
  151. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/entities/__init__.py +0 -0
  152. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/entities/_constants.py +0 -0
  153. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/entities/_single_value.py +0 -0
  154. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/entities/_types.py +0 -0
  155. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/entities/_wrapped.py +0 -0
  156. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/information/__init__.py +0 -0
  157. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/mapping/__init__.py +0 -0
  158. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/mapping/_classic2core.py +0 -0
  159. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/mapping/_classic2core.yaml +0 -0
  160. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/transformers/_base.py +0 -0
  161. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/transformers/_mapping.py +0 -0
  162. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/__init__.py +0 -0
  163. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_collector.py +0 -0
  164. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_create.py +0 -0
  165. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_drop.py +0 -0
  166. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_fix.py +0 -0
  167. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_inspect.py +0 -0
  168. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_mapping.py +0 -0
  169. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_set.py +0 -0
  170. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_wizard.py +0 -0
  171. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/engine/__init__.py +0 -0
  172. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/engine/_import.py +0 -0
  173. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/engine/_interface.py +0 -0
  174. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/engine/_load.py +0 -0
  175. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/exceptions.py +0 -0
  176. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_shared.py +0 -0
  177. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_store/__init__.py +0 -0
  178. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_store/_provenance.py +0 -0
  179. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_store/_rules_store.py +0 -0
  180. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_store/exceptions.py +0 -0
  181. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/__init__.py +0 -0
  182. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/auth.py +0 -0
  183. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/auxiliary.py +0 -0
  184. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/collection_.py +0 -0
  185. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/graph_transformations_report.py +0 -0
  186. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/io_.py +0 -0
  187. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/reader/__init__.py +0 -0
  188. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/reader/_base.py +0 -0
  189. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/time_.py +0 -0
  190. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/upload.py +0 -0
  191. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/xml_.py +0 -0
  192. {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: cognite-neat
3
- Version: 0.109.4
3
+ Version: 0.110.0
4
4
  Summary: Knowledge graph transformation
5
5
  License: Apache-2.0
6
6
  Author: Nikola Vasiljevic
@@ -13,3 +13,5 @@ class AlphaFlags:
13
13
  manual_rules_edit = AlphaWarning("enable_manual_edit")
14
14
  same_space_properties_only_export = AlphaWarning("same-space-properties-only")
15
15
  standardize_naming = AlphaWarning("standardize_naming")
16
+ standardize_space_and_version = AlphaWarning("standardize_space_and_version")
17
+ data_model_subsetting = AlphaWarning("data_model_subsetting")
@@ -1,10 +1,12 @@
1
- from collections.abc import Sequence
1
+ from collections import defaultdict
2
+ from collections.abc import Iterable, Sequence
2
3
  from typing import TYPE_CHECKING
3
4
 
4
5
  from cognite.client import data_modeling as dm
5
6
 
6
7
  from cognite.neat._client.data_classes.data_modeling import ContainerApplyDict, SpaceApplyDict, ViewApplyDict
7
8
  from cognite.neat._client.data_classes.schema import DMSSchema
9
+ from cognite.neat._constants import is_hierarchy_property
8
10
  from cognite.neat._issues.errors import NeatValueError
9
11
 
10
12
  if TYPE_CHECKING:
@@ -110,3 +112,17 @@ class SchemaAPI:
110
112
  views=view_write,
111
113
  containers=container_write,
112
114
  )
115
+
116
+ @staticmethod
117
+ def get_hierarchical_properties(
118
+ views: Iterable[dm.View | dm.ViewApply],
119
+ ) -> dict[dm.ViewId, set[str]]:
120
+ """Sorts the views by container constraints."""
121
+ hierarchical_properties_by_view_id: dict[dm.ViewId, set[str]] = defaultdict(set)
122
+ for view in views:
123
+ for prop_id, prop in (view.properties or {}).items():
124
+ if not isinstance(prop, dm.MappedProperty | dm.MappedPropertyApply):
125
+ continue
126
+ if is_hierarchy_property(prop.container, prop.container_property_identifier):
127
+ hierarchical_properties_by_view_id[view.as_id()].add(prop_id)
128
+ return hierarchical_properties_by_view_id
@@ -34,7 +34,7 @@ from cognite.neat._issues.warnings import (
34
34
  FileTypeUnexpectedWarning,
35
35
  ResourcesDuplicatedWarning,
36
36
  )
37
- from cognite.neat._utils.text import to_camel
37
+ from cognite.neat._utils.text import to_camel_case
38
38
 
39
39
  if sys.version_info >= (3, 11):
40
40
  from typing import Self
@@ -238,7 +238,7 @@ class DMSSchema:
238
238
  data_dict = data
239
239
  loaded: dict[str, Any] = {}
240
240
  for attr in fields(cls):
241
- if items := data_dict.get(attr.name) or data_dict.get(to_camel(attr.name)):
241
+ if items := data_dict.get(attr.name) or data_dict.get(to_camel_case(attr.name)):
242
242
  if attr.name == "data_model":
243
243
  if isinstance(items, list) and len(items) > 1:
244
244
  try:
@@ -320,7 +320,7 @@ class DMSSchema:
320
320
  cls_fields = sorted(fields(self), key=lambda f: f.name) if sort else fields(self)
321
321
  for attr in cls_fields:
322
322
  if items := getattr(self, attr.name):
323
- key = to_camel(attr.name) if camel_case else attr.name
323
+ key = to_camel_case(attr.name) if camel_case else attr.name
324
324
  if isinstance(items, CogniteResourceDict):
325
325
  if sort:
326
326
  output[key] = [
@@ -164,11 +164,22 @@ READONLY_PROPERTIES_BY_CONTAINER: Mapping[dm.ContainerId, frozenset[str]] = {
164
164
  dm.ContainerId("cdf_cdm", "CogniteFile"): frozenset({"isUploaded", "uploadedTime"}),
165
165
  }
166
166
 
167
+ HIERARCHICAL_PROPERTIES_BY_CONTAINER: Mapping[dm.ContainerId, frozenset[str]] = {
168
+ dm.ContainerId("cdf_cdm", "CogniteAsset"): frozenset({"assetHierarchy_parent"})
169
+ }
170
+
167
171
 
168
172
  def is_readonly_property(container: dm.ContainerId, property_: str) -> bool:
169
173
  return container in READONLY_PROPERTIES_BY_CONTAINER and property_ in READONLY_PROPERTIES_BY_CONTAINER[container]
170
174
 
171
175
 
176
+ def is_hierarchy_property(container: dm.ContainerId, property_: str) -> bool:
177
+ return (
178
+ container in HIERARCHICAL_PROPERTIES_BY_CONTAINER
179
+ and property_ in HIERARCHICAL_PROPERTIES_BY_CONTAINER[container]
180
+ )
181
+
182
+
172
183
  DMS_RESERVED_PROPERTIES = frozenset(
173
184
  {
174
185
  "createdTime",
@@ -16,12 +16,10 @@ from cognite.neat._issues.warnings import CDFAuthWarning, NeatValueWarning
16
16
  from cognite.neat._rules._shared import ReadRules
17
17
  from cognite.neat._rules.catalog import classic_model
18
18
  from cognite.neat._rules.models import InformationInputRules, InformationRules
19
- from cognite.neat._rules.models._rdfpath import Entity as RDFPathEntity
20
- from cognite.neat._rules.models._rdfpath import RDFPath, SingleProperty
21
19
  from cognite.neat._shared import Triple
22
20
  from cognite.neat._utils.collection_ import chunker, iterate_progress_bar
23
21
  from cognite.neat._utils.rdf_ import remove_namespace_from_uri
24
- from cognite.neat._utils.text import to_snake
22
+ from cognite.neat._utils.text import to_snake_case
25
23
 
26
24
  from ._assets import AssetsExtractor
27
25
  from ._base import ClassicCDFBaseExtractor, InstanceIdPrefix
@@ -194,13 +192,14 @@ class ClassicGraphExtractor(KnowledgeGraphExtractor):
194
192
  for prop in verified.properties:
195
193
  prop_id = prop.property_
196
194
  if is_snake_case:
197
- prop_id = to_snake(prop_id)
198
- prop.instance_source = RDFPath(
199
- traversal=SingleProperty(
200
- class_=RDFPathEntity(prefix=instance_prefix, suffix=prop.class_.suffix),
201
- property=RDFPathEntity(prefix=instance_prefix, suffix=prop_id),
202
- )
203
- )
195
+ prop_id = to_snake_case(prop_id)
196
+ prop.instance_source = [self._namespace[prop_id]]
197
+ for cls_ in verified.classes:
198
+ cls_id = cls_.class_.suffix
199
+ if is_snake_case:
200
+ cls_id = to_snake_case(cls_id)
201
+ cls_.instance_source = self._namespace[cls_id]
202
+
204
203
  return verified
205
204
 
206
205
  @property
@@ -14,7 +14,7 @@ from cognite.neat._graph.extractors._base import BaseExtractor
14
14
  from cognite.neat._issues.errors import FileReadError, NeatValueError
15
15
  from cognite.neat._shared import Triple
16
16
  from cognite.neat._utils.rdf_ import remove_namespace_from_uri
17
- from cognite.neat._utils.text import to_camel
17
+ from cognite.neat._utils.text import to_camel_case
18
18
  from cognite.neat._utils.xml_ import get_children
19
19
 
20
20
  IODD = Namespace("http://www.io-link.com/IODD/2010/10/")
@@ -170,7 +170,7 @@ class IODDExtractor(BaseExtractor):
170
170
  ):
171
171
  if text_id := child[0].attrib.get("textId"):
172
172
  # Create connection from device to textId node
173
- element_tag = to_camel(element_tag)
173
+ element_tag = to_camel_case(element_tag)
174
174
  triples.append((id, IODD[element_tag], namespace[text_id]))
175
175
 
176
176
  return triples
@@ -216,7 +216,7 @@ class IODDExtractor(BaseExtractor):
216
216
  if id := element.attrib.get("id"):
217
217
  if id in cls.std_variable_elements_to_extract:
218
218
  if object := element.attrib.get("defaultValue"):
219
- predicate = to_camel(id.replace("V_", ""))
219
+ predicate = to_camel_case(id.replace("V_", ""))
220
220
  triples.append((device_id, IODD[predicate], Literal(object)))
221
221
  return triples
222
222
 
@@ -12,11 +12,12 @@ import pandas as pd
12
12
  from rdflib import RDF, Literal, Namespace, URIRef
13
13
 
14
14
  from cognite.neat._rules._constants import EntityTypes
15
- from cognite.neat._rules.analysis import InformationAnalysis
15
+ from cognite.neat._rules.analysis import RulesAnalysis
16
16
  from cognite.neat._rules.models import DMSRules, InformationRules
17
17
  from cognite.neat._rules.models.data_types import DataType
18
18
  from cognite.neat._rules.models.entities import ClassEntity
19
19
  from cognite.neat._rules.models.information import InformationProperty
20
+ from cognite.neat._rules.transformers import SubsetInformationRules
20
21
  from cognite.neat._shared import Triple
21
22
  from cognite.neat._utils.rdf_ import remove_namespace_from_uri
22
23
 
@@ -54,7 +55,7 @@ class MockGraphGenerator(BaseExtractor):
54
55
 
55
56
  if not class_count:
56
57
  self.class_count = {
57
- class_: 1 for class_ in InformationAnalysis(self.rules).defined_classes(consider_inheritance=True)
58
+ class_: 1 for class_ in RulesAnalysis(self.rules).defined_classes(include_ancestors=True)
58
59
  }
59
60
  elif all(isinstance(key, str) for key in class_count.keys()):
60
61
  self.class_count = {
@@ -104,7 +105,8 @@ def generate_triples(
104
105
  """
105
106
 
106
107
  namespace = rules.metadata.namespace
107
- defined_classes = InformationAnalysis(rules).defined_classes(consider_inheritance=True)
108
+ analysis = RulesAnalysis(rules)
109
+ defined_classes = analysis.defined_classes(include_ancestors=True)
108
110
 
109
111
  if non_existing_classes := set(class_count.keys()) - defined_classes:
110
112
  msg = f"Class count contains classes {non_existing_classes} for which properties are not defined in Data Model!"
@@ -118,16 +120,16 @@ def generate_triples(
118
120
 
119
121
  # Subset data model to only classes that are defined in class count
120
122
  rules = (
121
- InformationAnalysis(rules).subset_rules(set(class_count.keys()))
123
+ SubsetInformationRules(classes=set(class_count.keys())).transform(rules)
122
124
  if defined_classes != set(class_count.keys())
123
125
  else rules
124
126
  )
125
127
 
126
- class_linkage = InformationAnalysis(rules).class_linkage().to_pandas()
128
+ class_linkage = analysis.class_linkage().to_pandas()
127
129
 
128
130
  # Remove one of symmetric pairs from class linkage to maintain proper linking
129
131
  # among instances of symmetrically linked classes
130
- if sym_pairs := InformationAnalysis(rules).symmetrically_connected_classes():
132
+ if sym_pairs := analysis.symmetrically_connected_classes():
131
133
  class_linkage = _remove_higher_occurring_sym_pair(class_linkage, sym_pairs)
132
134
 
133
135
  # Remove any of symmetric pairs containing classes that are not present class count
@@ -137,7 +139,7 @@ def generate_triples(
137
139
  generation_order = _prettify_generation_order(_get_generation_order(class_linkage))
138
140
 
139
141
  # Generated simple view of data model
140
- class_property_pairs = InformationAnalysis(rules).classes_with_properties(consider_inheritance=True)
142
+ class_property_pairs = analysis.properties_by_class(include_ancestors=True)
141
143
 
142
144
  # pregenerate instance ids for each remaining class
143
145
  instance_ids = {