cognite-neat 0.117.1__tar.gz → 0.117.3__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 (187) hide show
  1. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/PKG-INFO +1 -1
  2. cognite_neat-0.117.3/cognite/neat/_client/_api/neat_instances.py +71 -0
  3. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_client/_api_client.py +2 -0
  4. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_client/testing.py +2 -0
  5. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_dms.py +11 -21
  6. cognite_neat-0.117.3/cognite/neat/_rules/catalog/hello_world_pump.xlsx +0 -0
  7. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_utils/spreadsheet.py +14 -2
  8. cognite_neat-0.117.3/cognite/neat/_version.py +2 -0
  9. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/pyproject.toml +1 -1
  10. cognite_neat-0.117.1/cognite/neat/_rules/catalog/hello_world_pump.xlsx +0 -0
  11. cognite_neat-0.117.1/cognite/neat/_version.py +0 -2
  12. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/LICENSE +0 -0
  13. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/README.md +0 -0
  14. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/__init__.py +0 -0
  15. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_alpha.py +0 -0
  16. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_client/__init__.py +0 -0
  17. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_client/_api/__init__.py +0 -0
  18. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_client/_api/data_modeling_loaders.py +0 -0
  19. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_client/_api/schema.py +0 -0
  20. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_client/data_classes/__init__.py +0 -0
  21. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_client/data_classes/data_modeling.py +0 -0
  22. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_client/data_classes/neat_sequence.py +0 -0
  23. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_client/data_classes/schema.py +0 -0
  24. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_config.py +0 -0
  25. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_constants.py +0 -0
  26. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/__init__.py +0 -0
  27. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/_shared.py +0 -0
  28. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/_tracking/__init__.py +0 -0
  29. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/_tracking/base.py +0 -0
  30. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/_tracking/log.py +0 -0
  31. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
  32. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/examples/Knowledge-Graph-Nordic44.xml +0 -0
  33. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/examples/__init__.py +0 -0
  34. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
  35. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/__init__.py +0 -0
  36. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_base.py +0 -0
  37. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_classic_cdf/__init__.py +0 -0
  38. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_classic_cdf/_assets.py +0 -0
  39. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_classic_cdf/_base.py +0 -0
  40. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_classic_cdf/_classic.py +0 -0
  41. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_classic_cdf/_data_sets.py +0 -0
  42. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_classic_cdf/_events.py +0 -0
  43. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_classic_cdf/_files.py +0 -0
  44. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_classic_cdf/_labels.py +0 -0
  45. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_classic_cdf/_relationships.py +0 -0
  46. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_classic_cdf/_sequences.py +0 -0
  47. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_classic_cdf/_timeseries.py +0 -0
  48. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_dexpi.py +0 -0
  49. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_dict.py +0 -0
  50. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_dms_graph.py +0 -0
  51. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_iodd.py +0 -0
  52. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_mock_graph_generator.py +0 -0
  53. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_raw.py +0 -0
  54. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/extractors/_rdf_file.py +0 -0
  55. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/loaders/__init__.py +0 -0
  56. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/loaders/_base.py +0 -0
  57. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/loaders/_rdf2dms.py +0 -0
  58. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/queries/__init__.py +0 -0
  59. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/queries/_base.py +0 -0
  60. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/transformers/__init__.py +0 -0
  61. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/transformers/_base.py +0 -0
  62. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/transformers/_classic_cdf.py +0 -0
  63. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/transformers/_iodd.py +0 -0
  64. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/transformers/_prune_graph.py +0 -0
  65. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/transformers/_rdfpath.py +0 -0
  66. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_graph/transformers/_value_type.py +0 -0
  67. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_issues/__init__.py +0 -0
  68. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_issues/_base.py +0 -0
  69. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_issues/_contextmanagers.py +0 -0
  70. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_issues/_factory.py +0 -0
  71. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_issues/errors/__init__.py +0 -0
  72. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_issues/errors/_external.py +0 -0
  73. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_issues/errors/_general.py +0 -0
  74. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_issues/errors/_properties.py +0 -0
  75. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_issues/errors/_resources.py +0 -0
  76. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_issues/errors/_wrapper.py +0 -0
  77. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_issues/formatters.py +0 -0
  78. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_issues/warnings/__init__.py +0 -0
  79. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_issues/warnings/_external.py +0 -0
  80. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_issues/warnings/_general.py +0 -0
  81. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_issues/warnings/_models.py +0 -0
  82. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_issues/warnings/_properties.py +0 -0
  83. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_issues/warnings/_resources.py +0 -0
  84. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_issues/warnings/user_modeling.py +0 -0
  85. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/__init__.py +0 -0
  86. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/_constants.py +0 -0
  87. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/_shared.py +0 -0
  88. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/analysis/__init__.py +0 -0
  89. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/analysis/_base.py +0 -0
  90. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/catalog/__init__.py +0 -0
  91. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/catalog/classic_model.xlsx +0 -0
  92. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/catalog/info-rules-imf.xlsx +0 -0
  93. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/exporters/__init__.py +0 -0
  94. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/exporters/_base.py +0 -0
  95. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/exporters/_rules2dms.py +0 -0
  96. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/exporters/_rules2excel.py +0 -0
  97. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/exporters/_rules2instance_template.py +0 -0
  98. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/exporters/_rules2ontology.py +0 -0
  99. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/exporters/_rules2yaml.py +0 -0
  100. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/exporters/_validation.py +0 -0
  101. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/importers/__init__.py +0 -0
  102. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/importers/_base.py +0 -0
  103. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/importers/_dms2rules.py +0 -0
  104. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/importers/_dtdl2rules/__init__.py +0 -0
  105. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/importers/_dtdl2rules/_unit_lookup.py +0 -0
  106. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/importers/_dtdl2rules/dtdl_converter.py +0 -0
  107. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/importers/_dtdl2rules/dtdl_importer.py +0 -0
  108. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/importers/_dtdl2rules/spec.py +0 -0
  109. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/importers/_rdf/__init__.py +0 -0
  110. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/importers/_rdf/_base.py +0 -0
  111. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/importers/_rdf/_imf2rules.py +0 -0
  112. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/importers/_rdf/_inference2rules.py +0 -0
  113. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/importers/_rdf/_owl2rules.py +0 -0
  114. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/importers/_rdf/_shared.py +0 -0
  115. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/importers/_spreadsheet2rules.py +0 -0
  116. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/importers/_yaml2rules.py +0 -0
  117. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/__init__.py +0 -0
  118. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/_base_input.py +0 -0
  119. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/_base_rules.py +0 -0
  120. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/_types.py +0 -0
  121. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/data_types.py +0 -0
  122. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/dms/__init__.py +0 -0
  123. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/dms/_exporter.py +0 -0
  124. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/dms/_rules.py +0 -0
  125. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/dms/_rules_input.py +0 -0
  126. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/dms/_validation.py +0 -0
  127. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/entities/__init__.py +0 -0
  128. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/entities/_constants.py +0 -0
  129. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/entities/_loaders.py +0 -0
  130. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/entities/_multi_value.py +0 -0
  131. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/entities/_single_value.py +0 -0
  132. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/entities/_types.py +0 -0
  133. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/entities/_wrapped.py +0 -0
  134. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/information/__init__.py +0 -0
  135. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/information/_rules.py +0 -0
  136. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/information/_rules_input.py +0 -0
  137. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/information/_validation.py +0 -0
  138. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/mapping/__init__.py +0 -0
  139. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/mapping/_classic2core.py +0 -0
  140. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/models/mapping/_classic2core.yaml +0 -0
  141. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/transformers/__init__.py +0 -0
  142. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/transformers/_base.py +0 -0
  143. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/transformers/_converters.py +0 -0
  144. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/transformers/_mapping.py +0 -0
  145. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_rules/transformers/_verification.py +0 -0
  146. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/__init__.py +0 -0
  147. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/_base.py +0 -0
  148. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/_collector.py +0 -0
  149. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/_drop.py +0 -0
  150. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/_explore.py +0 -0
  151. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/_fix.py +0 -0
  152. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/_inspect.py +0 -0
  153. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/_mapping.py +0 -0
  154. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/_prepare.py +0 -0
  155. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/_read.py +0 -0
  156. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/_set.py +0 -0
  157. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/_show.py +0 -0
  158. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/_state.py +0 -0
  159. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/_subset.py +0 -0
  160. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/_template.py +0 -0
  161. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/_to.py +0 -0
  162. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/_wizard.py +0 -0
  163. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/engine/__init__.py +0 -0
  164. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/engine/_import.py +0 -0
  165. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/engine/_interface.py +0 -0
  166. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/engine/_load.py +0 -0
  167. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_session/exceptions.py +0 -0
  168. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_shared.py +0 -0
  169. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_store/__init__.py +0 -0
  170. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_store/_graph_store.py +0 -0
  171. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_store/_provenance.py +0 -0
  172. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_store/_rules_store.py +0 -0
  173. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_store/exceptions.py +0 -0
  174. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_utils/__init__.py +0 -0
  175. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_utils/auth.py +0 -0
  176. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_utils/auxiliary.py +0 -0
  177. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_utils/collection_.py +0 -0
  178. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_utils/graph_transformations_report.py +0 -0
  179. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_utils/io_.py +0 -0
  180. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_utils/rdf_.py +0 -0
  181. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_utils/reader/__init__.py +0 -0
  182. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_utils/reader/_base.py +0 -0
  183. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_utils/text.py +0 -0
  184. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_utils/time_.py +0 -0
  185. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_utils/upload.py +0 -0
  186. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/_utils/xml_.py +0 -0
  187. {cognite_neat-0.117.1 → cognite_neat-0.117.3}/cognite/neat/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: cognite-neat
3
- Version: 0.117.1
3
+ Version: 0.117.3
4
4
  Summary: Knowledge graph transformation
5
5
  License: Apache-2.0
6
6
  Author: Nikola Vasiljevic
@@ -0,0 +1,71 @@
1
+ import time
2
+ from collections.abc import Iterator
3
+ from typing import TYPE_CHECKING, Any, Literal
4
+
5
+ from cognite.client.data_classes.data_modeling import Edge, Node, ViewId
6
+ from cognite.client.data_classes.filters import Filter
7
+ from cognite.client.exceptions import CogniteAPIError
8
+ from cognite.client.utils.useful_types import SequenceNotStr
9
+
10
+ if TYPE_CHECKING:
11
+ from cognite.neat._client._api_client import NeatClient
12
+
13
+
14
+ class NeatInstancesAPI:
15
+ def __init__(self, client: "NeatClient") -> None:
16
+ self._client = client
17
+
18
+ def iterate(
19
+ self,
20
+ instance_type: Literal["node", "edge"] = "node",
21
+ space: str | SequenceNotStr[str] | None = None,
22
+ filter_: Filter | None = None,
23
+ source: ViewId | None = None,
24
+ ) -> Iterator[Node] | Iterator[Edge]:
25
+ """Neat specific implementation of the client.data_modeling.instances(...) method to account for 408.
26
+
27
+ In addition, we enforce sort based on the argument below (provided by Alex B.).
28
+ """
29
+ body: dict[str, Any] = {"limit": 1_000, "cursor": None, "instanceType": instance_type}
30
+ # Without a sort, the sort is implicitly by the internal id, as cursoring needs a stable sort.
31
+ # By making the sort be on external_id, Postgres should pick the index that's on
32
+ # (project_id, space, external_id) WHERE deleted_at IS NULL. In other words,
33
+ # avoiding soft deleted instances.
34
+ body["sort"] = [
35
+ {
36
+ "property": [instance_type, "externalId"],
37
+ "direction": "ascending",
38
+ }
39
+ ]
40
+ url = f"/api/{self._client._API_VERSION}/projects/{self._client.config.project}/models/instances/list"
41
+ filter_ = self._client.data_modeling.instances._merge_space_into_filter(instance_type, space, filter_)
42
+ if filter_:
43
+ body["filter"] = filter_.dump() if isinstance(filter_, Filter) else filter_
44
+ if source:
45
+ body["sources"] = [{"source": source.dump(include_type=True, camel_case=True)}]
46
+ last_limit_change: float = 0.0
47
+ while True:
48
+ try:
49
+ response = self._client.post(url=url, json=body)
50
+ except CogniteAPIError as e:
51
+ if e.code == 408 and body["limit"] > 1:
52
+ body["limit"] = body["limit"] // 2
53
+ last_limit_change = time.perf_counter()
54
+ continue
55
+ raise e
56
+ response_body = response.json()
57
+ yield from (
58
+ Node.load(item) if item.get("instanceType") == "node" else Edge.load(item)
59
+ for item in response_body["items"]
60
+ )
61
+ next_cursor = response_body.get("nextCursor")
62
+ if next_cursor is None:
63
+ break
64
+ body["cursor"] = next_cursor
65
+ # Increase the limit every 30 seconds to avoid fetching reduced
66
+ # instances for a long time after a 408. This limit is somewhat arbitrary,
67
+ # but it should be large enough to avoid many requests, but small enough
68
+ # to avoid fetching very slowly for a long time after a 408.
69
+ if (time.perf_counter() - last_limit_change) > 30.0 and body["limit"] < 1_000:
70
+ body["limit"] = min(int(body["limit"] * 1.5), 1_000)
71
+ last_limit_change = time.perf_counter()
@@ -3,6 +3,7 @@ from cognite.client import ClientConfig, CogniteClient
3
3
  from cognite.neat._utils.auth import _CLIENT_NAME
4
4
 
5
5
  from ._api.data_modeling_loaders import DataModelLoaderAPI
6
+ from ._api.neat_instances import NeatInstancesAPI
6
7
  from ._api.schema import SchemaAPI
7
8
 
8
9
 
@@ -15,3 +16,4 @@ class NeatClient(CogniteClient):
15
16
  self._config.client_name = _CLIENT_NAME
16
17
  self.loaders = DataModelLoaderAPI(self)
17
18
  self.schema = SchemaAPI(self)
19
+ self.instances = NeatInstancesAPI(self)
@@ -7,6 +7,7 @@ from cognite.client.testing import CogniteClientMock
7
7
  from cognite.neat._client._api_client import NeatClient
8
8
 
9
9
  from ._api.data_modeling_loaders import DataModelLoaderAPI
10
+ from ._api.neat_instances import NeatInstancesAPI
10
11
  from ._api.schema import SchemaAPI
11
12
 
12
13
 
@@ -23,6 +24,7 @@ class NeatClientMock(CogniteClientMock):
23
24
  super().__init__(*args, **kwargs)
24
25
  self.schema = SchemaAPI(self)
25
26
  self.loaders = DataModelLoaderAPI(self)
27
+ self.instances = NeatInstancesAPI(self)
26
28
 
27
29
 
28
30
  @contextmanager
@@ -3,13 +3,13 @@ import urllib.parse
3
3
  from collections.abc import Callable, Iterable, Iterator, Set
4
4
  from functools import cached_property
5
5
 
6
- from cognite.client import CogniteClient
7
6
  from cognite.client import data_modeling as dm
8
7
  from cognite.client.data_classes.data_modeling import DataModelIdentifier
9
- from cognite.client.data_classes.data_modeling.instances import Edge, Instance, InstanceSort, Node
8
+ from cognite.client.data_classes.data_modeling.instances import Edge, Instance, Node
10
9
  from cognite.client.utils.useful_types import SequenceNotStr
11
10
  from rdflib import RDF, Literal, Namespace, URIRef
12
11
 
12
+ from cognite.neat._client import NeatClient
13
13
  from cognite.neat._config import GLOBAL_CONFIG
14
14
  from cognite.neat._constants import DEFAULT_SPACE_URI, is_readonly_property
15
15
  from cognite.neat._issues.errors import ResourceRetrievalError
@@ -62,7 +62,7 @@ class DMSExtractor(BaseExtractor):
62
62
  @classmethod
63
63
  def from_data_model(
64
64
  cls,
65
- client: CogniteClient,
65
+ client: NeatClient,
66
66
  data_model: DataModelIdentifier,
67
67
  limit: int | None = None,
68
68
  overwrite_namespace: Namespace | None = None,
@@ -96,7 +96,7 @@ class DMSExtractor(BaseExtractor):
96
96
  @classmethod
97
97
  def from_views(
98
98
  cls,
99
- client: CogniteClient,
99
+ client: NeatClient,
100
100
  views: Iterable[dm.View],
101
101
  limit: int | None = None,
102
102
  overwrite_namespace: Namespace | None = None,
@@ -237,7 +237,7 @@ class DMSExtractor(BaseExtractor):
237
237
 
238
238
 
239
239
  class _ViewInstanceIterator(Iterable[Instance]):
240
- def __init__(self, client: CogniteClient, view: dm.View, instance_space: str | SequenceNotStr[str] | None = None):
240
+ def __init__(self, client: NeatClient, view: dm.View, instance_space: str | SequenceNotStr[str] | None = None):
241
241
  self.client = client
242
242
  self.view = view
243
243
  self.instance_space = instance_space
@@ -275,28 +275,20 @@ class _ViewInstanceIterator(Iterable[Instance]):
275
275
  }
276
276
  # All nodes and edges with properties
277
277
  if self.view.used_for in ("node", "all"):
278
- # Without a sort, the sort is implicitly by the internal id, as cursoring needs a stable sort.
279
- # By making the sort be on external_id, Postgres should pick the index
280
- # that's on (project_id, space, external_id)
281
- # WHERE deleted_at IS NULL. In other words, avoiding soft deleted instances.
282
- node_iterable: Iterable[Instance] = self.client.data_modeling.instances(
283
- chunk_size=None,
278
+ node_iterable: Iterable[Instance] = self.client.instances.iterate(
284
279
  instance_type="node",
285
- sources=[view_id],
280
+ source=view_id,
286
281
  space=self.instance_space,
287
- sort=InstanceSort(["node", "externalId"]),
288
282
  )
289
283
  if read_only_properties:
290
284
  node_iterable = self._remove_read_only_properties(node_iterable, read_only_properties, view_id)
291
285
  yield from node_iterable
292
286
 
293
287
  if self.view.used_for in ("edge", "all"):
294
- yield from self.client.data_modeling.instances(
295
- chunk_size=None,
288
+ yield from self.client.instances.iterate(
296
289
  instance_type="edge",
297
- sources=[view_id],
290
+ source=view_id,
298
291
  space=self.instance_space,
299
- sort=InstanceSort(["edge", "externalId"]),
300
292
  )
301
293
 
302
294
  for prop in self.view.properties.values():
@@ -304,14 +296,12 @@ class _ViewInstanceIterator(Iterable[Instance]):
304
296
  if prop.edge_source:
305
297
  # All edges with properties are extracted from the edge source
306
298
  continue
307
- yield from self.client.data_modeling.instances(
308
- chunk_size=None,
299
+ yield from self.client.instances.iterate(
309
300
  instance_type="edge",
310
- filter=dm.filters.Equals(
301
+ filter_=dm.filters.Equals(
311
302
  ["edge", "type"], {"space": prop.type.space, "externalId": prop.type.external_id}
312
303
  ),
313
304
  space=self.instance_space,
314
- sort=InstanceSort(["edge", "externalId"]),
315
305
  )
316
306
 
317
307
  @staticmethod
@@ -1,5 +1,7 @@
1
+ import warnings
1
2
  from dataclasses import dataclass, field
2
3
  from typing import Any, Literal, cast, overload
4
+ from warnings import catch_warnings
3
5
 
4
6
  import pandas as pd
5
7
  from openpyxl import load_workbook
@@ -67,12 +69,22 @@ def read_individual_sheet(
67
69
  expected_headers: list[str] | None = None,
68
70
  ) -> tuple[list[dict], SpreadsheetRead] | list[dict]:
69
71
  if expected_headers:
70
- target_row = _get_row_number(cast(Worksheet, load_workbook(excel_file)[sheet_name]), expected_headers)
72
+ with catch_warnings():
73
+ # When reading spreadsheets produced by neat, they contain dropdowns. These
74
+ # are not supported by openpyxl and will raise a warning as openpyxl cannot validate these.
75
+ # We ignore these warnings as Neat will do the same checks.
76
+ warnings.simplefilter("ignore")
77
+ target_row = _get_row_number(cast(Worksheet, load_workbook(excel_file)[sheet_name]), expected_headers)
71
78
  skiprows = target_row - 1 if target_row is not None else 0
72
79
  else:
73
80
  skiprows = 0
74
81
 
75
- raw = pd.read_excel(excel_file, sheet_name, skiprows=skiprows)
82
+ with catch_warnings():
83
+ # When reading spreadsheets produced by neat, they contain dropdowns. These
84
+ # are not supported by openpyxl and will raise a warning as openpyxl cannot validate these.
85
+ # We ignore these warnings as Neat will do the same checks.
86
+ warnings.simplefilter("ignore")
87
+ raw = pd.read_excel(excel_file, sheet_name, skiprows=skiprows)
76
88
  is_na = raw.isnull().all(axis=1)
77
89
  skip_rows = _find_rows_to_skip(raw)
78
90
  empty_rows = is_na[is_na].index.tolist()
@@ -0,0 +1,2 @@
1
+ __version__ = "0.117.3"
2
+ __engine__ = "^2.0.4"
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "cognite-neat"
3
- version = "0.117.1"
3
+ version = "0.117.3"
4
4
  readme = "README.md"
5
5
  description = "Knowledge graph transformation"
6
6
  authors = [
@@ -1,2 +0,0 @@
1
- __version__ = "0.117.1"
2
- __engine__ = "^2.0.4"
File without changes
File without changes