cognite-neat 0.113.4__tar.gz → 0.114.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 (185) hide show
  1. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/PKG-INFO +1 -1
  2. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_client/_api/data_modeling_loaders.py +87 -0
  3. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/exporters/_rules2dms.py +7 -1
  4. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/_to.py +3 -1
  5. cognite_neat-0.114.0/cognite/neat/_version.py +2 -0
  6. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/pyproject.toml +3 -1
  7. cognite_neat-0.113.4/cognite/neat/_version.py +0 -2
  8. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/LICENSE +0 -0
  9. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/README.md +0 -0
  10. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/__init__.py +0 -0
  11. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_alpha.py +0 -0
  12. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_client/__init__.py +0 -0
  13. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_client/_api/__init__.py +0 -0
  14. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_client/_api/schema.py +0 -0
  15. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_client/_api_client.py +0 -0
  16. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_client/data_classes/__init__.py +0 -0
  17. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_client/data_classes/data_modeling.py +0 -0
  18. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_client/data_classes/neat_sequence.py +0 -0
  19. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_client/data_classes/schema.py +0 -0
  20. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_client/testing.py +0 -0
  21. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_config.py +0 -0
  22. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_constants.py +0 -0
  23. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/__init__.py +0 -0
  24. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/_shared.py +0 -0
  25. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/_tracking/__init__.py +0 -0
  26. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/_tracking/base.py +0 -0
  27. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/_tracking/log.py +0 -0
  28. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
  29. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/examples/Knowledge-Graph-Nordic44.xml +0 -0
  30. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/examples/__init__.py +0 -0
  31. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
  32. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/__init__.py +0 -0
  33. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_base.py +0 -0
  34. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_classic_cdf/__init__.py +0 -0
  35. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_classic_cdf/_assets.py +0 -0
  36. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_classic_cdf/_base.py +0 -0
  37. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_classic_cdf/_classic.py +0 -0
  38. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_classic_cdf/_data_sets.py +0 -0
  39. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_classic_cdf/_events.py +0 -0
  40. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_classic_cdf/_files.py +0 -0
  41. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_classic_cdf/_labels.py +0 -0
  42. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_classic_cdf/_relationships.py +0 -0
  43. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_classic_cdf/_sequences.py +0 -0
  44. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_classic_cdf/_timeseries.py +0 -0
  45. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_dexpi.py +0 -0
  46. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_dict.py +0 -0
  47. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_dms.py +0 -0
  48. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_dms_graph.py +0 -0
  49. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_iodd.py +0 -0
  50. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_mock_graph_generator.py +0 -0
  51. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_raw.py +0 -0
  52. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/extractors/_rdf_file.py +0 -0
  53. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/loaders/__init__.py +0 -0
  54. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/loaders/_base.py +0 -0
  55. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/loaders/_rdf2dms.py +0 -0
  56. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/queries/__init__.py +0 -0
  57. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/queries/_base.py +0 -0
  58. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/transformers/__init__.py +0 -0
  59. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/transformers/_base.py +0 -0
  60. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/transformers/_classic_cdf.py +0 -0
  61. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/transformers/_iodd.py +0 -0
  62. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/transformers/_prune_graph.py +0 -0
  63. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/transformers/_rdfpath.py +0 -0
  64. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_graph/transformers/_value_type.py +0 -0
  65. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_issues/__init__.py +0 -0
  66. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_issues/_base.py +0 -0
  67. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_issues/_contextmanagers.py +0 -0
  68. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_issues/_factory.py +0 -0
  69. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_issues/errors/__init__.py +0 -0
  70. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_issues/errors/_external.py +0 -0
  71. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_issues/errors/_general.py +0 -0
  72. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_issues/errors/_properties.py +0 -0
  73. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_issues/errors/_resources.py +0 -0
  74. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_issues/errors/_wrapper.py +0 -0
  75. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_issues/formatters.py +0 -0
  76. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_issues/warnings/__init__.py +0 -0
  77. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_issues/warnings/_external.py +0 -0
  78. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_issues/warnings/_general.py +0 -0
  79. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_issues/warnings/_models.py +0 -0
  80. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_issues/warnings/_properties.py +0 -0
  81. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_issues/warnings/_resources.py +0 -0
  82. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_issues/warnings/user_modeling.py +0 -0
  83. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/__init__.py +0 -0
  84. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/_constants.py +0 -0
  85. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/_shared.py +0 -0
  86. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/analysis/__init__.py +0 -0
  87. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/analysis/_base.py +0 -0
  88. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/catalog/__init__.py +0 -0
  89. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/catalog/classic_model.xlsx +0 -0
  90. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/catalog/hello_world_pump.xlsx +0 -0
  91. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/catalog/info-rules-imf.xlsx +0 -0
  92. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/exporters/__init__.py +0 -0
  93. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/exporters/_base.py +0 -0
  94. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/exporters/_rules2excel.py +0 -0
  95. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/exporters/_rules2instance_template.py +0 -0
  96. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/exporters/_rules2ontology.py +0 -0
  97. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/exporters/_rules2yaml.py +0 -0
  98. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/exporters/_validation.py +0 -0
  99. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/importers/__init__.py +0 -0
  100. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/importers/_base.py +0 -0
  101. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/importers/_dms2rules.py +0 -0
  102. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/importers/_dtdl2rules/__init__.py +0 -0
  103. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/importers/_dtdl2rules/_unit_lookup.py +0 -0
  104. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/importers/_dtdl2rules/dtdl_converter.py +0 -0
  105. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/importers/_dtdl2rules/dtdl_importer.py +0 -0
  106. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/importers/_dtdl2rules/spec.py +0 -0
  107. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/importers/_rdf/__init__.py +0 -0
  108. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/importers/_rdf/_base.py +0 -0
  109. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/importers/_rdf/_imf2rules.py +0 -0
  110. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/importers/_rdf/_inference2rules.py +0 -0
  111. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/importers/_rdf/_owl2rules.py +0 -0
  112. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/importers/_rdf/_shared.py +0 -0
  113. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/importers/_spreadsheet2rules.py +0 -0
  114. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/importers/_yaml2rules.py +0 -0
  115. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/__init__.py +0 -0
  116. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/_base_input.py +0 -0
  117. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/_base_rules.py +0 -0
  118. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/_types.py +0 -0
  119. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/data_types.py +0 -0
  120. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/dms/__init__.py +0 -0
  121. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/dms/_exporter.py +0 -0
  122. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/dms/_rules.py +0 -0
  123. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/dms/_rules_input.py +0 -0
  124. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/dms/_validation.py +0 -0
  125. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/entities/__init__.py +0 -0
  126. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/entities/_constants.py +0 -0
  127. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/entities/_loaders.py +0 -0
  128. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/entities/_multi_value.py +0 -0
  129. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/entities/_single_value.py +0 -0
  130. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/entities/_types.py +0 -0
  131. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/entities/_wrapped.py +0 -0
  132. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/information/__init__.py +0 -0
  133. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/information/_rules.py +0 -0
  134. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/information/_rules_input.py +0 -0
  135. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/information/_validation.py +0 -0
  136. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/mapping/__init__.py +0 -0
  137. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/mapping/_classic2core.py +0 -0
  138. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/models/mapping/_classic2core.yaml +0 -0
  139. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/transformers/__init__.py +0 -0
  140. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/transformers/_base.py +0 -0
  141. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/transformers/_converters.py +0 -0
  142. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/transformers/_mapping.py +0 -0
  143. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_rules/transformers/_verification.py +0 -0
  144. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/__init__.py +0 -0
  145. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/_base.py +0 -0
  146. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/_collector.py +0 -0
  147. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/_create.py +0 -0
  148. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/_drop.py +0 -0
  149. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/_explore.py +0 -0
  150. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/_fix.py +0 -0
  151. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/_inspect.py +0 -0
  152. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/_mapping.py +0 -0
  153. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/_prepare.py +0 -0
  154. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/_read.py +0 -0
  155. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/_set.py +0 -0
  156. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/_show.py +0 -0
  157. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/_state.py +0 -0
  158. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/_subset.py +0 -0
  159. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/_wizard.py +0 -0
  160. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/engine/__init__.py +0 -0
  161. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/engine/_import.py +0 -0
  162. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/engine/_interface.py +0 -0
  163. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/engine/_load.py +0 -0
  164. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_session/exceptions.py +0 -0
  165. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_shared.py +0 -0
  166. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_store/__init__.py +0 -0
  167. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_store/_graph_store.py +0 -0
  168. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_store/_provenance.py +0 -0
  169. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_store/_rules_store.py +0 -0
  170. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_store/exceptions.py +0 -0
  171. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_utils/__init__.py +0 -0
  172. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_utils/auth.py +0 -0
  173. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_utils/auxiliary.py +0 -0
  174. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_utils/collection_.py +0 -0
  175. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_utils/graph_transformations_report.py +0 -0
  176. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_utils/io_.py +0 -0
  177. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_utils/rdf_.py +0 -0
  178. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_utils/reader/__init__.py +0 -0
  179. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_utils/reader/_base.py +0 -0
  180. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_utils/spreadsheet.py +0 -0
  181. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_utils/text.py +0 -0
  182. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_utils/time_.py +0 -0
  183. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_utils/upload.py +0 -0
  184. {cognite_neat-0.113.4 → cognite_neat-0.114.0}/cognite/neat/_utils/xml_.py +0 -0
  185. {cognite_neat-0.113.4 → cognite_neat-0.114.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.113.4
3
+ Version: 0.114.0
4
4
  Summary: Knowledge graph transformation
5
5
  License: Apache-2.0
6
6
  Author: Nikola Vasiljevic
@@ -291,6 +291,8 @@ class DataModelingLoader(
291
291
  ResourceLoader[T_ID, T_WriteClass, T_WritableCogniteResource, T_CogniteResourceList, T_WritableCogniteResourceList],
292
292
  ABC,
293
293
  ):
294
+ support_merge: ClassVar[bool] = True
295
+
294
296
  @classmethod
295
297
  def in_space(cls, item: T_WriteClass | T_WritableCogniteResource | T_ID, space: set[str]) -> bool:
296
298
  if hasattr(item, "space"):
@@ -302,9 +304,15 @@ class DataModelingLoader(
302
304
  def items_from_schema(cls, schema: DMSSchema) -> T_CogniteResourceList:
303
305
  raise NotImplementedError
304
306
 
307
+ @classmethod
308
+ @abstractmethod
309
+ def merge(cls, local: T_WriteClass, remote: T_WritableCogniteResource) -> T_WriteClass:
310
+ raise NotImplementedError
311
+
305
312
 
306
313
  class SpaceLoader(DataModelingLoader[str, SpaceApply, Space, SpaceApplyList, SpaceList]):
307
314
  resource_name = "spaces"
315
+ support_merge = False
308
316
 
309
317
  @classmethod
310
318
  def get_id(cls, item: Space | SpaceApply | str | dict) -> str:
@@ -314,6 +322,10 @@ class SpaceLoader(DataModelingLoader[str, SpaceApply, Space, SpaceApplyList, Spa
314
322
  return item["space"]
315
323
  return item
316
324
 
325
+ @classmethod
326
+ def merge(cls, local: SpaceApply, remote: Space) -> SpaceApply:
327
+ raise NotImplementedError("Spaces cannot be merged")
328
+
317
329
  def _create(self, items: Sequence[SpaceApply]) -> SpaceList:
318
330
  return self._client.data_modeling.spaces.apply(items)
319
331
 
@@ -401,6 +413,28 @@ class ContainerLoader(DataModelingLoader[ContainerId, ContainerApply, Container,
401
413
  return ContainerId.load(item)
402
414
  return item
403
415
 
416
+ @classmethod
417
+ def merge(cls, local: ContainerApply, remote: Container) -> ContainerApply:
418
+ if local.as_id() != remote.as_id():
419
+ raise ValueError(f"Cannot merge containers with different IDs: {local.as_id()} and {remote.as_id()}")
420
+ if local.used_for != remote.used_for:
421
+ raise ValueError(f"Cannot merge containers with different used_for: {local.used_for} and {remote.used_for}")
422
+ remote_write = remote.as_write()
423
+ existing_properties = remote_write.properties or {}
424
+ merged_properties = {**existing_properties, **(local.properties or {})}
425
+ merged_indices = {**remote_write.indexes, **local.indexes}
426
+ merged_constraints = {**remote_write.constraints, **local.constraints}
427
+ return ContainerApply(
428
+ space=remote.space,
429
+ external_id=remote.external_id,
430
+ properties=merged_properties,
431
+ description=local.description or remote.description,
432
+ name=local.name or remote.name,
433
+ used_for=local.used_for,
434
+ constraints=merged_constraints,
435
+ indexes=merged_indices,
436
+ )
437
+
404
438
  def sort_by_dependencies(self, items: Sequence[ContainerApply]) -> list[ContainerApply]:
405
439
  container_by_id = {container.as_id(): container for container in items}
406
440
  container_dependencies = {
@@ -561,6 +595,28 @@ class ViewLoader(DataModelingLoader[ViewId, ViewApply, View, ViewApplyList, View
561
595
  return ViewId.load(item)
562
596
  return item
563
597
 
598
+ @classmethod
599
+ def merge(cls, local: ViewApply, remote: View) -> ViewApply:
600
+ if local.as_id() != remote.as_id():
601
+ raise ValueError(f"Cannot merge views with different IDs: {local.as_id()} and {remote.as_id()}")
602
+ remote_write = remote.as_write()
603
+ existing_properties = remote_write.properties or {}
604
+ merged_properties = {**existing_properties, **(local.properties or {})}
605
+ merged_implements = list(remote_write.implements or [])
606
+ for view_id in local.implements or []:
607
+ if view_id not in merged_implements:
608
+ merged_implements.append(view_id)
609
+ return ViewApply(
610
+ space=remote.space,
611
+ external_id=remote.external_id,
612
+ version=remote.version,
613
+ properties=merged_properties,
614
+ description=local.description or remote.description,
615
+ name=local.name or remote.name,
616
+ filter=local.filter or remote.filter,
617
+ implements=merged_implements,
618
+ )
619
+
564
620
  def _create(self, items: Sequence[ViewApply]) -> ViewList:
565
621
  return self._client.data_modeling.views.apply(items)
566
622
 
@@ -736,6 +792,32 @@ class DataModelLoader(DataModelingLoader[DataModelId, DataModelApply, DataModel,
736
792
  return DataModelId.load(item)
737
793
  return item
738
794
 
795
+ @classmethod
796
+ def merge(cls, local: DataModelApply, remote: DataModel) -> DataModelApply:
797
+ if local.as_id() != remote.as_id():
798
+ raise ValueError(f"Cannot merge data models with different IDs: {local.as_id()} and {remote.as_id()}")
799
+ existing_view = {
800
+ view.as_id() if isinstance(view, View) else view: view.as_write() if isinstance(view, View) else view
801
+ for view in remote.views
802
+ }
803
+ new_views = {view.as_id() if isinstance(view, ViewApply) else view: view for view in local.views or []}
804
+ merged_views: list[ViewId | ViewApply] = []
805
+ for view_id, view in existing_view.items():
806
+ if view_id in new_views:
807
+ merged_views.append(new_views.pop(view_id))
808
+ else:
809
+ merged_views.append(view)
810
+ merged_views.extend(new_views.values())
811
+
812
+ return DataModelApply(
813
+ space=local.space,
814
+ external_id=local.external_id,
815
+ version=local.version,
816
+ description=local.description or remote.description,
817
+ name=local.name or remote.name,
818
+ views=merged_views,
819
+ )
820
+
739
821
  def _create(self, items: Sequence[DataModelApply]) -> DataModelList:
740
822
  return self._client.data_modeling.data_models.apply(items)
741
823
 
@@ -774,6 +856,7 @@ class DataModelLoader(DataModelingLoader[DataModelId, DataModelApply, DataModel,
774
856
  class NodeLoader(DataModelingLoader[NodeId, NodeApply, Node, NodeApplyList, NodeList]):
775
857
  resource_name = "nodes"
776
858
  dependencies = frozenset({SpaceLoader, ContainerLoader, ViewLoader})
859
+ support_merge = False
777
860
 
778
861
  @classmethod
779
862
  def get_id(cls, item: Node | NodeApply | NodeId | dict) -> NodeId:
@@ -783,6 +866,10 @@ class NodeLoader(DataModelingLoader[NodeId, NodeApply, Node, NodeApplyList, Node
783
866
  return NodeId.load(item)
784
867
  return item
785
868
 
869
+ @classmethod
870
+ def merge(cls, local: NodeApply, remote: Node) -> NodeApply:
871
+ raise NotImplementedError("Nodes cannot be merged")
872
+
786
873
  def _create(self, items: Sequence[NodeApply]) -> NodeList:
787
874
  self._client.data_modeling.instances.apply(items)
788
875
  return self._retrieve([item.as_id() for item in items])
@@ -344,9 +344,15 @@ class DMSExporter(CDFExporter[DMSRules, DMSSchema]):
344
344
  categorized.to_skip.append(cdf_item)
345
345
  else:
346
346
  categorized.to_delete.append(cdf_item.as_write())
347
- categorized.to_create.append(item)
347
+ if isinstance(item, dm.DataModelApply) and self.existing != "recreate":
348
+ # Mypy failing to understand the output of merge is T_WriteClass.
349
+ categorized.to_create.append(loader.merge(item, cdf_item)) # type: ignore[arg-type]
350
+ else:
351
+ categorized.to_create.append(item)
348
352
  elif loader.are_equal(item, cdf_item):
349
353
  categorized.unchanged.append(item)
354
+ elif loader.support_merge:
355
+ categorized.to_update.append(loader.merge(item, cdf_item))
350
356
  else:
351
357
  categorized.to_update.append(item)
352
358
  return categorized
@@ -364,7 +364,9 @@ class CDFToAPI:
364
364
  !!! note "Data Model creation modes"
365
365
  - "fail": If any component already exists, the export will fail.
366
366
  - "skip": If any component already exists, it will be skipped.
367
- - "update": If any component already exists, it will be updated.
367
+ - "update": If any component already exists, it will be updated. For data models, views, and containers
368
+ this means combining the existing and new component. Fo example, for data models the new
369
+ views will be added to the existing views.
368
370
  - "force": If any component already exists, and the update fails, it will be deleted and recreated.
369
371
  - "recreate": All components will be deleted and recreated. The exception is spaces, which will be updated.
370
372
 
@@ -0,0 +1,2 @@
1
+ __version__ = "0.114.0"
2
+ __engine__ = "^2.0.4"
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "cognite-neat"
3
- version = "0.113.4"
3
+ version = "0.114.0"
4
4
  readme = "README.md"
5
5
  description = "Knowledge graph transformation"
6
6
  authors = [
@@ -121,6 +121,7 @@ docs = [
121
121
  google = ["gspread", "google-api-python-client", "google-auth-oauthlib"]
122
122
  oxi = ["oxrdflib", "pyoxigraph"]
123
123
 
124
+
124
125
  all = [
125
126
  "pyoxigraph",
126
127
  "oxrdflib",
@@ -155,6 +156,7 @@ types-tqdm = "^4.67.0.20241221"
155
156
  networkx-stubs = "^0.0.1"
156
157
  cognite-toolkit = "^0.4.8"
157
158
  tqdm = "^4.67.1"
159
+ deepdiff = "^8.2.0"
158
160
 
159
161
  [build-system]
160
162
  requires = ["poetry>=0.12"]
@@ -1,2 +0,0 @@
1
- __version__ = "0.113.4"
2
- __engine__ = "^2.0.4"
File without changes
File without changes