cognite-neat 0.105.1__tar.gz → 0.105.2__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 (179) hide show
  1. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/PKG-INFO +1 -1
  2. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/transformers/_classic_cdf.py +113 -39
  3. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_utils/auth.py +35 -15
  4. cognite_neat-0.105.2/cognite/neat/_version.py +2 -0
  5. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/pyproject.toml +1 -1
  6. cognite_neat-0.105.1/cognite/neat/_version.py +0 -2
  7. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/LICENSE +0 -0
  8. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/README.md +0 -0
  9. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/__init__.py +0 -0
  10. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_client/__init__.py +0 -0
  11. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_client/_api/__init__.py +0 -0
  12. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_client/_api/data_modeling_loaders.py +0 -0
  13. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_client/_api/schema.py +0 -0
  14. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_client/_api_client.py +0 -0
  15. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_client/data_classes/__init__.py +0 -0
  16. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_client/data_classes/data_modeling.py +0 -0
  17. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_client/data_classes/neat_sequence.py +0 -0
  18. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_client/data_classes/schema.py +0 -0
  19. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_client/testing.py +0 -0
  20. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_config.py +0 -0
  21. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_constants.py +0 -0
  22. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/__init__.py +0 -0
  23. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/_shared.py +0 -0
  24. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/_tracking/__init__.py +0 -0
  25. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/_tracking/base.py +0 -0
  26. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/_tracking/log.py +0 -0
  27. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
  28. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/examples/Knowledge-Graph-Nordic44.xml +0 -0
  29. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/examples/__init__.py +0 -0
  30. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
  31. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/extractors/__init__.py +0 -0
  32. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/extractors/_base.py +0 -0
  33. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/extractors/_classic_cdf/__init__.py +0 -0
  34. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/extractors/_classic_cdf/_assets.py +0 -0
  35. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/extractors/_classic_cdf/_base.py +0 -0
  36. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/extractors/_classic_cdf/_classic.py +0 -0
  37. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/extractors/_classic_cdf/_data_sets.py +0 -0
  38. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/extractors/_classic_cdf/_events.py +0 -0
  39. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/extractors/_classic_cdf/_files.py +0 -0
  40. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/extractors/_classic_cdf/_labels.py +0 -0
  41. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/extractors/_classic_cdf/_relationships.py +0 -0
  42. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/extractors/_classic_cdf/_sequences.py +0 -0
  43. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/extractors/_classic_cdf/_timeseries.py +0 -0
  44. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/extractors/_dexpi.py +0 -0
  45. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/extractors/_dms.py +0 -0
  46. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/extractors/_iodd.py +0 -0
  47. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/extractors/_mock_graph_generator.py +0 -0
  48. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/extractors/_rdf_file.py +0 -0
  49. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/loaders/__init__.py +0 -0
  50. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/loaders/_base.py +0 -0
  51. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/loaders/_rdf2dms.py +0 -0
  52. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/queries/__init__.py +0 -0
  53. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/queries/_base.py +0 -0
  54. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/queries/_construct.py +0 -0
  55. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/queries/_shared.py +0 -0
  56. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/transformers/__init__.py +0 -0
  57. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/transformers/_base.py +0 -0
  58. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/transformers/_iodd.py +0 -0
  59. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/transformers/_prune_graph.py +0 -0
  60. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/transformers/_rdfpath.py +0 -0
  61. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_graph/transformers/_value_type.py +0 -0
  62. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_issues/__init__.py +0 -0
  63. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_issues/_base.py +0 -0
  64. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_issues/errors/__init__.py +0 -0
  65. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_issues/errors/_external.py +0 -0
  66. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_issues/errors/_general.py +0 -0
  67. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_issues/errors/_properties.py +0 -0
  68. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_issues/errors/_resources.py +0 -0
  69. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_issues/errors/_workflow.py +0 -0
  70. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_issues/formatters.py +0 -0
  71. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_issues/warnings/__init__.py +0 -0
  72. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_issues/warnings/_external.py +0 -0
  73. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_issues/warnings/_general.py +0 -0
  74. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_issues/warnings/_models.py +0 -0
  75. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_issues/warnings/_properties.py +0 -0
  76. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_issues/warnings/_resources.py +0 -0
  77. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_issues/warnings/user_modeling.py +0 -0
  78. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/__init__.py +0 -0
  79. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/_constants.py +0 -0
  80. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/_shared.py +0 -0
  81. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/analysis/__init__.py +0 -0
  82. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/analysis/_base.py +0 -0
  83. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/analysis/_dms.py +0 -0
  84. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/analysis/_information.py +0 -0
  85. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/catalog/__init__.py +0 -0
  86. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/catalog/hello_world_pump.xlsx +0 -0
  87. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/catalog/info-rules-imf.xlsx +0 -0
  88. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/exporters/__init__.py +0 -0
  89. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/exporters/_base.py +0 -0
  90. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/exporters/_rules2dms.py +0 -0
  91. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/exporters/_rules2excel.py +0 -0
  92. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/exporters/_rules2instance_template.py +0 -0
  93. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/exporters/_rules2ontology.py +0 -0
  94. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/exporters/_rules2yaml.py +0 -0
  95. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/exporters/_validation.py +0 -0
  96. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/importers/__init__.py +0 -0
  97. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/importers/_base.py +0 -0
  98. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/importers/_dms2rules.py +0 -0
  99. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/importers/_dtdl2rules/__init__.py +0 -0
  100. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/importers/_dtdl2rules/_unit_lookup.py +0 -0
  101. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/importers/_dtdl2rules/dtdl_converter.py +0 -0
  102. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/importers/_dtdl2rules/dtdl_importer.py +0 -0
  103. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/importers/_dtdl2rules/spec.py +0 -0
  104. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/importers/_rdf/__init__.py +0 -0
  105. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/importers/_rdf/_base.py +0 -0
  106. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/importers/_rdf/_imf2rules.py +0 -0
  107. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/importers/_rdf/_inference2rules.py +0 -0
  108. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/importers/_rdf/_owl2rules.py +0 -0
  109. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/importers/_rdf/_shared.py +0 -0
  110. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/importers/_spreadsheet2rules.py +0 -0
  111. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/importers/_yaml2rules.py +0 -0
  112. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/__init__.py +0 -0
  113. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/_base_input.py +0 -0
  114. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/_base_rules.py +0 -0
  115. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/_rdfpath.py +0 -0
  116. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/_types.py +0 -0
  117. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/data_types.py +0 -0
  118. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/dms/__init__.py +0 -0
  119. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/dms/_exporter.py +0 -0
  120. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/dms/_rules.py +0 -0
  121. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/dms/_rules_input.py +0 -0
  122. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/dms/_validation.py +0 -0
  123. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/entities/__init__.py +0 -0
  124. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/entities/_constants.py +0 -0
  125. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/entities/_loaders.py +0 -0
  126. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/entities/_multi_value.py +0 -0
  127. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/entities/_single_value.py +0 -0
  128. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/entities/_types.py +0 -0
  129. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/entities/_wrapped.py +0 -0
  130. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/information/__init__.py +0 -0
  131. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/information/_rules.py +0 -0
  132. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/information/_rules_input.py +0 -0
  133. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/information/_validation.py +0 -0
  134. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/mapping/__init__.py +0 -0
  135. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/mapping/_classic2core.py +0 -0
  136. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/models/mapping/_classic2core.yaml +0 -0
  137. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/transformers/__init__.py +0 -0
  138. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/transformers/_base.py +0 -0
  139. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/transformers/_converters.py +0 -0
  140. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/transformers/_mapping.py +0 -0
  141. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_rules/transformers/_verification.py +0 -0
  142. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_session/__init__.py +0 -0
  143. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_session/_base.py +0 -0
  144. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_session/_collector.py +0 -0
  145. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_session/_drop.py +0 -0
  146. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_session/_inspect.py +0 -0
  147. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_session/_mapping.py +0 -0
  148. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_session/_prepare.py +0 -0
  149. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_session/_read.py +0 -0
  150. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_session/_set.py +0 -0
  151. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_session/_show.py +0 -0
  152. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_session/_state.py +0 -0
  153. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_session/_to.py +0 -0
  154. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_session/_wizard.py +0 -0
  155. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_session/engine/__init__.py +0 -0
  156. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_session/engine/_import.py +0 -0
  157. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_session/engine/_interface.py +0 -0
  158. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_session/engine/_load.py +0 -0
  159. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_session/exceptions.py +0 -0
  160. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_shared.py +0 -0
  161. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_store/__init__.py +0 -0
  162. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_store/_graph_store.py +0 -0
  163. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_store/_provenance.py +0 -0
  164. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_store/_rules_store.py +0 -0
  165. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_store/exceptions.py +0 -0
  166. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_utils/__init__.py +0 -0
  167. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_utils/auxiliary.py +0 -0
  168. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_utils/collection_.py +0 -0
  169. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_utils/graph_transformations_report.py +0 -0
  170. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_utils/io_.py +0 -0
  171. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_utils/rdf_.py +0 -0
  172. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_utils/reader/__init__.py +0 -0
  173. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_utils/reader/_base.py +0 -0
  174. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_utils/spreadsheet.py +0 -0
  175. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_utils/text.py +0 -0
  176. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_utils/time_.py +0 -0
  177. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_utils/upload.py +0 -0
  178. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/_utils/xml_.py +0 -0
  179. {cognite_neat-0.105.1 → cognite_neat-0.105.2}/cognite/neat/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: cognite-neat
3
- Version: 0.105.1
3
+ Version: 0.105.2
4
4
  Summary: Knowledge graph transformation
5
5
  Home-page: https://cognite-neat.readthedocs-hosted.com/
6
6
  License: Apache-2.0
@@ -1,4 +1,3 @@
1
- import textwrap
2
1
  import warnings
3
2
  from abc import ABC
4
3
  from collections.abc import Callable, Iterable
@@ -15,6 +14,7 @@ from cognite.neat._utils.collection_ import iterate_progress_bar
15
14
  from cognite.neat._utils.rdf_ import (
16
15
  Triple,
17
16
  add_triples_in_batch,
17
+ get_namespace,
18
18
  remove_instance_ids_in_batch,
19
19
  remove_namespace_from_uri,
20
20
  )
@@ -72,87 +72,161 @@ class AddAssetDepth(BaseTransformerStandardised):
72
72
  return row_output
73
73
 
74
74
 
75
- # TODO: standardise
76
- class BaseAssetConnector(BaseTransformer, ABC):
77
- _asset_type: URIRef = DEFAULT_NAMESPACE.Asset
78
- _item_type: URIRef
79
- _default_attribute: URIRef
80
- _connection_type: URIRef
75
+ class BaseAssetConnector(BaseTransformerStandardised, ABC):
76
+ description: str = "Connects assets to other cognite resources, thus forming bi-directional connection"
77
+ _use_only_once: bool = True
78
+
79
+ def _count_query(self) -> str:
80
+ query = """SELECT (COUNT(?asset) as ?count)
81
+ WHERE {{
82
+ ?resource a <{resource_type}> .
83
+ ?resource <{connection}> ?asset .
84
+ ?asset a <{asset_type}> .
85
+ }}"""
81
86
 
82
- _select_item_ids = "SELECT DISTINCT ?item_id WHERE {{?item_id a <{item_type}>}}"
83
- _select_connected_assets: str = textwrap.dedent("""SELECT ?asset_id WHERE {{
84
- <{item_id}> <{attribute}> ?asset_id .
85
- ?asset_id a <{asset_type}>}}""")
87
+ return query.format(
88
+ asset_type=self.asset_type,
89
+ resource_type=self.resource_type,
90
+ connection=self.resource_to_asset_connection,
91
+ )
86
92
 
87
- def __init__(self, attribute: URIRef | None = None) -> None:
88
- self._attribute = attribute or self._default_attribute
93
+ def _iterate_query(self) -> str:
94
+ query = """SELECT ?asset ?resource
95
+ WHERE {{
96
+ ?resource a <{resource_type}> .
97
+ ?resource <{connection}> ?asset .
98
+ ?asset a <{asset_type}> .
99
+ }}"""
89
100
 
90
- def transform(self, graph: Graph) -> None:
91
- for item_id, *_ in graph.query(self._select_item_ids.format(item_type=self._item_type)): # type: ignore[misc]
92
- triples: list[Triple] = []
93
- for asset_id, *_ in graph.query( # type: ignore[misc]
94
- self._select_connected_assets.format(
95
- item_id=item_id, attribute=self._attribute, asset_type=self._asset_type
96
- )
97
- ):
98
- triples.append((asset_id, self._connection_type, item_id)) # type: ignore[arg-type]
99
- add_triples_in_batch(graph, triples)
101
+ return query.format(
102
+ asset_type=self.asset_type,
103
+ resource_type=self.resource_type,
104
+ connection=self.resource_to_asset_connection,
105
+ )
106
+
107
+ def __init__(
108
+ self,
109
+ resource_to_asset_connection: URIRef,
110
+ resource_type: URIRef,
111
+ asset_to_resource_connection: URIRef | None = None,
112
+ asset_type: URIRef | None = None,
113
+ ) -> None:
114
+ self.asset_type = asset_type or DEFAULT_NAMESPACE.Asset
115
+ self.resource_to_asset_connection = resource_to_asset_connection
116
+ self.resource_type = resource_type
117
+
118
+ if asset_to_resource_connection:
119
+ self.asset_to_resource_connection = asset_to_resource_connection
120
+ else:
121
+ namespace = Namespace(get_namespace(resource_type))
122
+ type_ = remove_namespace_from_uri(resource_type)
123
+ self.asset_to_resource_connection = namespace[type_[0].lower() + type_[1:]]
124
+
125
+ def operation(self, query_result_row: ResultRow) -> RowTransformationOutput:
126
+ row_output = RowTransformationOutput()
127
+ subject, object = query_result_row
128
+
129
+ row_output.add_triples.append(cast(Triple, (subject, self.asset_to_resource_connection, object)))
130
+
131
+ row_output.instances_modified_count += 1
132
+
133
+ return row_output
100
134
 
101
135
 
102
136
  class AssetTimeSeriesConnector(BaseAssetConnector):
103
137
  description: str = "Connects assets to timeseries, thus forming bi-directional connection"
104
- _use_only_once: bool = True
105
138
  _need_changes = frozenset(
106
139
  {
107
140
  str(extractors.AssetsExtractor.__name__),
108
141
  str(extractors.TimeSeriesExtractor.__name__),
109
142
  }
110
143
  )
111
- _item_type = DEFAULT_NAMESPACE.TimeSeries
112
- _default_attribute = DEFAULT_NAMESPACE.assetId
113
- _connection_type = DEFAULT_NAMESPACE.timeSeries
144
+
145
+ def __init__(
146
+ self,
147
+ resource_to_asset_connection: URIRef | None = None,
148
+ resource_type: URIRef | None = None,
149
+ asset_to_resource_connection: URIRef | None = None,
150
+ asset_type: URIRef | None = None,
151
+ ):
152
+ super().__init__(
153
+ resource_to_asset_connection=resource_to_asset_connection or DEFAULT_NAMESPACE.assetId,
154
+ resource_type=resource_type or DEFAULT_NAMESPACE.TimeSeries,
155
+ asset_to_resource_connection=asset_to_resource_connection or DEFAULT_NAMESPACE.timeSeries,
156
+ asset_type=asset_type or DEFAULT_NAMESPACE.Asset,
157
+ )
114
158
 
115
159
 
116
160
  class AssetSequenceConnector(BaseAssetConnector):
117
161
  description: str = "Connects assets to sequences, thus forming bi-directional connection"
118
- _use_only_once: bool = True
119
162
  _need_changes = frozenset(
120
163
  {
121
164
  str(extractors.AssetsExtractor.__name__),
122
165
  str(extractors.SequencesExtractor.__name__),
123
166
  }
124
167
  )
125
- _item_type = DEFAULT_NAMESPACE.Sequence
126
- _default_attribute = DEFAULT_NAMESPACE.assetId
127
- _connection_type = DEFAULT_NAMESPACE.sequence
168
+
169
+ def __init__(
170
+ self,
171
+ resource_to_asset_connection: URIRef | None = None,
172
+ resource_type: URIRef | None = None,
173
+ asset_to_resource_connection: URIRef | None = None,
174
+ asset_type: URIRef | None = None,
175
+ ):
176
+ super().__init__(
177
+ resource_to_asset_connection=resource_to_asset_connection or DEFAULT_NAMESPACE.assetId,
178
+ resource_type=resource_type or DEFAULT_NAMESPACE.Sequence,
179
+ asset_to_resource_connection=asset_to_resource_connection or DEFAULT_NAMESPACE.sequence,
180
+ asset_type=asset_type or DEFAULT_NAMESPACE.Asset,
181
+ )
128
182
 
129
183
 
130
184
  class AssetFileConnector(BaseAssetConnector):
131
185
  description: str = "Connects assets to files, thus forming bi-directional connection"
132
- _use_only_once: bool = True
133
186
  _need_changes = frozenset(
134
187
  {
135
188
  str(extractors.AssetsExtractor.__name__),
136
189
  str(extractors.FilesExtractor.__name__),
137
190
  }
138
191
  )
139
- _item_type = DEFAULT_NAMESPACE.File
140
- _default_attribute = DEFAULT_NAMESPACE.assetIds
141
- _connection_type = DEFAULT_NAMESPACE.file
192
+
193
+ def __init__(
194
+ self,
195
+ resource_to_asset_connection: URIRef | None = None,
196
+ resource_type: URIRef | None = None,
197
+ asset_to_resource_connection: URIRef | None = None,
198
+ asset_type: URIRef | None = None,
199
+ ):
200
+ super().__init__(
201
+ resource_to_asset_connection=resource_to_asset_connection or DEFAULT_NAMESPACE.assetIds,
202
+ resource_type=resource_type or DEFAULT_NAMESPACE.File,
203
+ asset_to_resource_connection=asset_to_resource_connection or DEFAULT_NAMESPACE.file,
204
+ asset_type=asset_type or DEFAULT_NAMESPACE.Asset,
205
+ )
142
206
 
143
207
 
144
208
  class AssetEventConnector(BaseAssetConnector):
145
209
  description: str = "Connects assets to events, thus forming bi-directional connection"
146
- _use_only_once: bool = True
147
210
  _need_changes = frozenset(
148
211
  {
149
212
  str(extractors.AssetsExtractor.__name__),
150
213
  str(extractors.EventsExtractor.__name__),
151
214
  }
152
215
  )
153
- _item_type = DEFAULT_NAMESPACE.Event
154
- _default_attribute = DEFAULT_NAMESPACE.assetIds
155
- _connection_type = DEFAULT_NAMESPACE.event
216
+
217
+ def __init__(
218
+ self,
219
+ resource_to_asset_connection: URIRef | None = None,
220
+ resource_type: URIRef | None = None,
221
+ asset_to_resource_connection: URIRef | None = None,
222
+ asset_type: URIRef | None = None,
223
+ ):
224
+ super().__init__(
225
+ resource_to_asset_connection=resource_to_asset_connection or DEFAULT_NAMESPACE.assetIds,
226
+ resource_type=resource_type or DEFAULT_NAMESPACE.Event,
227
+ asset_to_resource_connection=asset_to_resource_connection or DEFAULT_NAMESPACE.event,
228
+ asset_type=asset_type or DEFAULT_NAMESPACE.Asset,
229
+ )
156
230
 
157
231
 
158
232
  # TODO: standardise
@@ -23,8 +23,9 @@ def get_cognite_client(env_file_name: str) -> CogniteClient:
23
23
  be prompted to enter them.
24
24
 
25
25
  Args:
26
- env_file_name: The name of the .env file to look for in the repository root. If the file is found, the variables
27
- will be loaded from the file. If the file is not found, the user will be prompted to enter the variables.
26
+ env_file_name: The name of the .env file to look for in the repository root / current working directory. If
27
+ the file is found, the variables will be loaded from the file. If the file is not found, the user will
28
+ be prompted to enter the variables and the file will be created.
28
29
 
29
30
  Returns:
30
31
  CogniteClient: A CogniteClient instance.
@@ -40,26 +41,44 @@ def get_cognite_client(env_file_name: str) -> CogniteClient:
40
41
  client = variables.get_client()
41
42
  print(f"Found {env_file_name} file in repository root. Loaded variables from {env_file_name} file.")
42
43
  return client
44
+ elif (Path.cwd() / env_file_name).exists():
45
+ with suppress(KeyError, FileNotFoundError, TypeError):
46
+ variables = _from_dotenv(Path.cwd() / env_file_name)
47
+ client = variables.get_client()
48
+ print(
49
+ f"Found {env_file_name} file in current working directory. Loaded variables from {env_file_name} file."
50
+ )
51
+ return client
43
52
  # Then try to load from environment variables
44
53
  with suppress(KeyError):
45
54
  variables = EnvironmentVariables.create_from_environ()
55
+ print("Loaded variables from environment variables.")
46
56
  return variables.get_client()
47
57
  # If not found, prompt the user
48
58
  variables = _prompt_user()
49
59
  if repo_root and _env_in_gitignore(repo_root, env_file_name):
50
- local_import("rich", "jupyter")
51
- from rich.prompt import Prompt
52
-
53
60
  env_file = repo_root / env_file_name
54
- answer = Prompt.ask(
55
- f"Do you store the variables in an {env_file_name} file in the repository root for easy reuse?",
56
- choices=["y", "n"],
57
- )
58
- if env_file.exists():
59
- answer = Prompt.ask(f"{env_file} already exists. Overwrite?", choices=["y", "n"])
60
- if answer == "y":
61
- env_file.write_text(variables.create_env_file())
62
- print(f"Created {env_file_name} file in repository root.")
61
+ location = "repository root"
62
+ elif repo_root:
63
+ # We do not offer to create the file in the repository root if it is in .gitignore
64
+ # as an inexperienced user might accidentally commit it.
65
+ print("Cannot create .env file in repository root as there is no .env entry in the .gitignore.")
66
+ return variables.get_client()
67
+ else:
68
+ env_file = Path.cwd() / env_file_name
69
+ location = "current working directory"
70
+ local_import("rich", "jupyter")
71
+ from rich.prompt import Prompt
72
+
73
+ answer = Prompt.ask(
74
+ f"Do you store the variables in an {env_file_name} file in the {location} for easy reuse?",
75
+ choices=["y", "n"],
76
+ )
77
+ if env_file.exists():
78
+ answer = Prompt.ask(f"{env_file} already exists. Overwrite?", choices=["y", "n"])
79
+ if answer == "y":
80
+ env_file.write_text(variables.create_env_file())
81
+ print(f"Created {env_file_name} file in {location}.")
63
82
 
64
83
  return variables.get_client()
65
84
 
@@ -320,7 +339,8 @@ def _prompt_cluster_and_project() -> EnvironmentVariables:
320
339
  def _repo_root() -> Path | None:
321
340
  with suppress(Exception):
322
341
  result = subprocess.run("git rev-parse --show-toplevel".split(), stdout=subprocess.PIPE)
323
- return Path(result.stdout.decode().strip())
342
+ if (output := result.stdout.decode().strip()) != "":
343
+ return Path(output)
324
344
  return None
325
345
 
326
346
 
@@ -0,0 +1,2 @@
1
+ __version__ = "0.105.2"
2
+ __engine__ = "^2.0.3"
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "cognite-neat"
3
- version = "0.105.1"
3
+ version = "0.105.2"
4
4
  readme = "README.md"
5
5
  description = "Knowledge graph transformation"
6
6
  authors = [
@@ -1,2 +0,0 @@
1
- __version__ = "0.105.1"
2
- __engine__ = "^2.0.3"
File without changes
File without changes