cognite-neat 0.123.26__py3-none-any.whl → 1.0.22__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. cognite/neat/__init__.py +4 -3
  2. cognite/neat/_client/__init__.py +5 -0
  3. cognite/neat/_client/api.py +8 -0
  4. cognite/neat/_client/client.py +21 -0
  5. cognite/neat/_client/config.py +40 -0
  6. cognite/neat/_client/containers_api.py +138 -0
  7. cognite/neat/_client/data_classes.py +44 -0
  8. cognite/neat/_client/data_model_api.py +115 -0
  9. cognite/neat/_client/init/credentials.py +70 -0
  10. cognite/neat/_client/init/env_vars.py +131 -0
  11. cognite/neat/_client/init/main.py +51 -0
  12. cognite/neat/_client/spaces_api.py +115 -0
  13. cognite/neat/_client/statistics_api.py +24 -0
  14. cognite/neat/_client/views_api.py +144 -0
  15. cognite/neat/_config.py +266 -0
  16. cognite/neat/_data_model/_analysis.py +571 -0
  17. cognite/neat/_data_model/_constants.py +74 -0
  18. cognite/neat/_data_model/_identifiers.py +61 -0
  19. cognite/neat/_data_model/_shared.py +41 -0
  20. cognite/neat/_data_model/_snapshot.py +134 -0
  21. cognite/neat/_data_model/deployer/_differ.py +140 -0
  22. cognite/neat/_data_model/deployer/_differ_container.py +360 -0
  23. cognite/neat/_data_model/deployer/_differ_data_model.py +54 -0
  24. cognite/neat/_data_model/deployer/_differ_space.py +9 -0
  25. cognite/neat/_data_model/deployer/_differ_view.py +299 -0
  26. cognite/neat/_data_model/deployer/data_classes.py +644 -0
  27. cognite/neat/_data_model/deployer/deployer.py +431 -0
  28. cognite/neat/_data_model/exporters/__init__.py +15 -0
  29. cognite/neat/_data_model/exporters/_api_exporter.py +37 -0
  30. cognite/neat/_data_model/exporters/_base.py +24 -0
  31. cognite/neat/_data_model/exporters/_table_exporter/exporter.py +128 -0
  32. cognite/neat/_data_model/exporters/_table_exporter/workbook.py +409 -0
  33. cognite/neat/_data_model/exporters/_table_exporter/writer.py +480 -0
  34. cognite/neat/_data_model/importers/__init__.py +5 -0
  35. cognite/neat/_data_model/importers/_api_importer.py +166 -0
  36. cognite/neat/_data_model/importers/_base.py +16 -0
  37. cognite/neat/_data_model/importers/_table_importer/data_classes.py +344 -0
  38. cognite/neat/_data_model/importers/_table_importer/importer.py +192 -0
  39. cognite/neat/_data_model/importers/_table_importer/reader.py +1102 -0
  40. cognite/neat/_data_model/importers/_table_importer/source.py +94 -0
  41. cognite/neat/_data_model/models/conceptual/_base.py +18 -0
  42. cognite/neat/_data_model/models/conceptual/_concept.py +67 -0
  43. cognite/neat/_data_model/models/conceptual/_data_model.py +51 -0
  44. cognite/neat/_data_model/models/conceptual/_properties.py +104 -0
  45. cognite/neat/_data_model/models/conceptual/_property.py +105 -0
  46. cognite/neat/_data_model/models/dms/__init__.py +206 -0
  47. cognite/neat/_data_model/models/dms/_base.py +31 -0
  48. cognite/neat/_data_model/models/dms/_constants.py +48 -0
  49. cognite/neat/_data_model/models/dms/_constraints.py +42 -0
  50. cognite/neat/_data_model/models/dms/_container.py +159 -0
  51. cognite/neat/_data_model/models/dms/_data_model.py +95 -0
  52. cognite/neat/_data_model/models/dms/_data_types.py +195 -0
  53. cognite/neat/_data_model/models/dms/_http.py +28 -0
  54. cognite/neat/_data_model/models/dms/_indexes.py +30 -0
  55. cognite/neat/_data_model/models/dms/_limits.py +96 -0
  56. cognite/neat/_data_model/models/dms/_references.py +141 -0
  57. cognite/neat/_data_model/models/dms/_schema.py +18 -0
  58. cognite/neat/_data_model/models/dms/_space.py +48 -0
  59. cognite/neat/_data_model/models/dms/_types.py +17 -0
  60. cognite/neat/_data_model/models/dms/_view_filter.py +310 -0
  61. cognite/neat/_data_model/models/dms/_view_property.py +235 -0
  62. cognite/neat/_data_model/models/dms/_views.py +216 -0
  63. cognite/neat/_data_model/models/entities/__init__.py +50 -0
  64. cognite/neat/_data_model/models/entities/_base.py +101 -0
  65. cognite/neat/_data_model/models/entities/_constants.py +22 -0
  66. cognite/neat/_data_model/models/entities/_data_types.py +144 -0
  67. cognite/neat/_data_model/models/entities/_identifiers.py +61 -0
  68. cognite/neat/_data_model/models/entities/_parser.py +226 -0
  69. cognite/neat/_data_model/validation/dms/__init__.py +75 -0
  70. cognite/neat/_data_model/validation/dms/_ai_readiness.py +381 -0
  71. cognite/neat/_data_model/validation/dms/_base.py +25 -0
  72. cognite/neat/_data_model/validation/dms/_connections.py +681 -0
  73. cognite/neat/_data_model/validation/dms/_consistency.py +58 -0
  74. cognite/neat/_data_model/validation/dms/_containers.py +199 -0
  75. cognite/neat/_data_model/validation/dms/_limits.py +368 -0
  76. cognite/neat/_data_model/validation/dms/_orchestrator.py +70 -0
  77. cognite/neat/_data_model/validation/dms/_views.py +164 -0
  78. cognite/neat/_exceptions.py +68 -0
  79. cognite/neat/_issues.py +68 -0
  80. cognite/neat/_session/__init__.py +3 -0
  81. cognite/neat/_session/_html/_render.py +30 -0
  82. cognite/neat/_session/_html/static/__init__.py +8 -0
  83. cognite/neat/_session/_html/static/deployment.css +476 -0
  84. cognite/neat/_session/_html/static/deployment.js +181 -0
  85. cognite/neat/_session/_html/static/issues.css +211 -0
  86. cognite/neat/_session/_html/static/issues.js +168 -0
  87. cognite/neat/_session/_html/static/shared.css +186 -0
  88. cognite/neat/_session/_html/templates/__init__.py +4 -0
  89. cognite/neat/_session/_html/templates/deployment.html +80 -0
  90. cognite/neat/_session/_html/templates/issues.html +45 -0
  91. cognite/neat/_session/_issues.py +81 -0
  92. cognite/neat/_session/_physical.py +294 -0
  93. cognite/neat/_session/_result/__init__.py +3 -0
  94. cognite/neat/_session/_result/_deployment/__init__.py +0 -0
  95. cognite/neat/_session/_result/_deployment/_physical/__init__.py +0 -0
  96. cognite/neat/_session/_result/_deployment/_physical/_changes.py +196 -0
  97. cognite/neat/_session/_result/_deployment/_physical/_statistics.py +180 -0
  98. cognite/neat/_session/_result/_deployment/_physical/serializer.py +35 -0
  99. cognite/neat/_session/_result/_result.py +31 -0
  100. cognite/neat/_session/_session.py +81 -0
  101. cognite/neat/_session/_usage_analytics/__init__.py +0 -0
  102. cognite/neat/_session/_usage_analytics/_collector.py +131 -0
  103. cognite/neat/_session/_usage_analytics/_constants.py +23 -0
  104. cognite/neat/_session/_usage_analytics/_storage.py +240 -0
  105. cognite/neat/_session/_wrappers.py +101 -0
  106. cognite/neat/_state_machine/__init__.py +10 -0
  107. cognite/neat/_state_machine/_base.py +37 -0
  108. cognite/neat/_state_machine/_states.py +52 -0
  109. cognite/neat/_store/__init__.py +3 -0
  110. cognite/neat/_store/_provenance.py +88 -0
  111. cognite/neat/_store/_store.py +220 -0
  112. cognite/neat/_utils/__init__.py +0 -0
  113. cognite/neat/_utils/_reader.py +194 -0
  114. cognite/neat/_utils/auxiliary.py +49 -0
  115. cognite/neat/_utils/collection.py +11 -0
  116. cognite/neat/_utils/http_client/__init__.py +39 -0
  117. cognite/neat/_utils/http_client/_client.py +245 -0
  118. cognite/neat/_utils/http_client/_config.py +19 -0
  119. cognite/neat/_utils/http_client/_data_classes.py +294 -0
  120. cognite/neat/_utils/http_client/_tracker.py +31 -0
  121. cognite/neat/_utils/repo.py +19 -0
  122. cognite/neat/_utils/text.py +71 -0
  123. cognite/neat/_utils/useful_types.py +37 -0
  124. cognite/neat/_utils/validation.py +154 -0
  125. cognite/neat/_v0/__init__.py +0 -0
  126. cognite/neat/_v0/core/__init__.py +0 -0
  127. cognite/neat/_v0/core/_client/_api/__init__.py +0 -0
  128. cognite/neat/{core → _v0/core}/_client/_api/data_modeling_loaders.py +8 -7
  129. cognite/neat/{core → _v0/core}/_client/_api/neat_instances.py +5 -5
  130. cognite/neat/{core → _v0/core}/_client/_api/schema.py +5 -5
  131. cognite/neat/{core → _v0/core}/_client/_api/statistics.py +3 -3
  132. cognite/neat/{core → _v0/core}/_client/_api_client.py +1 -1
  133. cognite/neat/_v0/core/_client/data_classes/__init__.py +0 -0
  134. cognite/neat/{core → _v0/core}/_client/data_classes/schema.py +4 -4
  135. cognite/neat/{core → _v0/core}/_client/testing.py +1 -1
  136. cognite/neat/{core → _v0/core}/_constants.py +5 -3
  137. cognite/neat/_v0/core/_data_model/__init__.py +0 -0
  138. cognite/neat/{core → _v0/core}/_data_model/_constants.py +7 -0
  139. cognite/neat/{core → _v0/core}/_data_model/_shared.py +4 -4
  140. cognite/neat/{core → _v0/core}/_data_model/analysis/_base.py +8 -8
  141. cognite/neat/{core → _v0/core}/_data_model/exporters/__init__.py +1 -2
  142. cognite/neat/{core → _v0/core}/_data_model/exporters/_base.py +7 -7
  143. cognite/neat/{core → _v0/core}/_data_model/exporters/_data_model2dms.py +9 -9
  144. cognite/neat/{core → _v0/core}/_data_model/exporters/_data_model2excel.py +12 -12
  145. cognite/neat/{core → _v0/core}/_data_model/exporters/_data_model2instance_template.py +4 -4
  146. cognite/neat/{core/_data_model/exporters/_data_model2ontology.py → _v0/core/_data_model/exporters/_data_model2semantic_model.py} +126 -116
  147. cognite/neat/{core → _v0/core}/_data_model/exporters/_data_model2yaml.py +1 -1
  148. cognite/neat/{core → _v0/core}/_data_model/importers/_base.py +5 -5
  149. cognite/neat/{core → _v0/core}/_data_model/importers/_base_file_reader.py +2 -2
  150. cognite/neat/{core → _v0/core}/_data_model/importers/_dict2data_model.py +5 -5
  151. cognite/neat/{core → _v0/core}/_data_model/importers/_dms2data_model.py +18 -15
  152. cognite/neat/{core → _v0/core}/_data_model/importers/_graph2data_model.py +12 -12
  153. cognite/neat/{core → _v0/core}/_data_model/importers/_rdf/_base.py +12 -12
  154. cognite/neat/{core → _v0/core}/_data_model/importers/_rdf/_inference2rdata_model.py +14 -14
  155. cognite/neat/{core → _v0/core}/_data_model/importers/_rdf/_owl2data_model.py +41 -21
  156. cognite/neat/{core → _v0/core}/_data_model/importers/_rdf/_shared.py +9 -9
  157. cognite/neat/{core → _v0/core}/_data_model/importers/_spreadsheet2data_model.py +92 -12
  158. cognite/neat/{core → _v0/core}/_data_model/models/__init__.py +3 -3
  159. cognite/neat/{core → _v0/core}/_data_model/models/_base_verified.py +5 -5
  160. cognite/neat/{core → _v0/core}/_data_model/models/_import_contexts.py +1 -1
  161. cognite/neat/{core → _v0/core}/_data_model/models/_types.py +5 -5
  162. cognite/neat/{core → _v0/core}/_data_model/models/conceptual/_unverified.py +16 -10
  163. cognite/neat/{core → _v0/core}/_data_model/models/conceptual/_validation.py +12 -12
  164. cognite/neat/{core → _v0/core}/_data_model/models/conceptual/_verified.py +9 -9
  165. cognite/neat/{core → _v0/core}/_data_model/models/data_types.py +14 -4
  166. cognite/neat/{core → _v0/core}/_data_model/models/entities/__init__.py +6 -0
  167. cognite/neat/_v0/core/_data_model/models/entities/_loaders.py +155 -0
  168. cognite/neat/{core → _v0/core}/_data_model/models/entities/_multi_value.py +2 -2
  169. cognite/neat/_v0/core/_data_model/models/entities/_restrictions.py +230 -0
  170. cognite/neat/{core → _v0/core}/_data_model/models/entities/_single_value.py +121 -16
  171. cognite/neat/{core → _v0/core}/_data_model/models/entities/_types.py +10 -0
  172. cognite/neat/{core → _v0/core}/_data_model/models/mapping/_classic2core.py +5 -5
  173. cognite/neat/{core → _v0/core}/_data_model/models/physical/__init__.py +1 -1
  174. cognite/neat/{core → _v0/core}/_data_model/models/physical/_exporter.py +26 -19
  175. cognite/neat/{core → _v0/core}/_data_model/models/physical/_unverified.py +133 -37
  176. cognite/neat/{core → _v0/core}/_data_model/models/physical/_validation.py +24 -20
  177. cognite/neat/{core → _v0/core}/_data_model/models/physical/_verified.py +95 -24
  178. cognite/neat/{core → _v0/core}/_data_model/transformers/_base.py +4 -4
  179. cognite/neat/{core → _v0/core}/_data_model/transformers/_converters.py +35 -28
  180. cognite/neat/{core → _v0/core}/_data_model/transformers/_mapping.py +7 -7
  181. cognite/neat/{core → _v0/core}/_data_model/transformers/_union_conceptual.py +5 -5
  182. cognite/neat/{core → _v0/core}/_data_model/transformers/_verification.py +7 -7
  183. cognite/neat/_v0/core/_instances/__init__.py +0 -0
  184. cognite/neat/{core → _v0/core}/_instances/_tracking/base.py +1 -1
  185. cognite/neat/{core → _v0/core}/_instances/_tracking/log.py +1 -1
  186. cognite/neat/{core → _v0/core}/_instances/extractors/__init__.py +3 -2
  187. cognite/neat/{core → _v0/core}/_instances/extractors/_base.py +6 -6
  188. cognite/neat/_v0/core/_instances/extractors/_classic_cdf/__init__.py +0 -0
  189. cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_base.py +7 -7
  190. cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_classic.py +12 -12
  191. cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_relationships.py +3 -3
  192. cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_sequences.py +2 -2
  193. cognite/neat/{core → _v0/core}/_instances/extractors/_dict.py +6 -3
  194. cognite/neat/{core → _v0/core}/_instances/extractors/_dms.py +6 -6
  195. cognite/neat/{core → _v0/core}/_instances/extractors/_dms_graph.py +11 -11
  196. cognite/neat/{core → _v0/core}/_instances/extractors/_mock_graph_generator.py +10 -10
  197. cognite/neat/{core → _v0/core}/_instances/extractors/_raw.py +3 -3
  198. cognite/neat/{core → _v0/core}/_instances/extractors/_rdf_file.py +7 -7
  199. cognite/neat/{core → _v0/core}/_instances/loaders/_base.py +5 -5
  200. cognite/neat/{core → _v0/core}/_instances/loaders/_rdf2dms.py +17 -17
  201. cognite/neat/{core → _v0/core}/_instances/loaders/_rdf_to_instance_space.py +11 -11
  202. cognite/neat/{core → _v0/core}/_instances/queries/_select.py +29 -3
  203. cognite/neat/{core → _v0/core}/_instances/queries/_update.py +1 -1
  204. cognite/neat/{core → _v0/core}/_instances/transformers/_base.py +4 -4
  205. cognite/neat/{core → _v0/core}/_instances/transformers/_classic_cdf.py +6 -6
  206. cognite/neat/{core → _v0/core}/_instances/transformers/_prune_graph.py +4 -4
  207. cognite/neat/{core → _v0/core}/_instances/transformers/_rdfpath.py +1 -1
  208. cognite/neat/{core → _v0/core}/_instances/transformers/_value_type.py +4 -4
  209. cognite/neat/{core → _v0/core}/_issues/_base.py +5 -5
  210. cognite/neat/{core → _v0/core}/_issues/_contextmanagers.py +1 -1
  211. cognite/neat/{core → _v0/core}/_issues/_factory.py +3 -3
  212. cognite/neat/{core → _v0/core}/_issues/errors/__init__.py +1 -1
  213. cognite/neat/{core → _v0/core}/_issues/errors/_external.py +1 -1
  214. cognite/neat/{core → _v0/core}/_issues/errors/_general.py +1 -1
  215. cognite/neat/{core → _v0/core}/_issues/errors/_properties.py +1 -1
  216. cognite/neat/{core → _v0/core}/_issues/errors/_resources.py +2 -2
  217. cognite/neat/{core → _v0/core}/_issues/errors/_wrapper.py +7 -3
  218. cognite/neat/{core → _v0/core}/_issues/warnings/__init__.py +1 -1
  219. cognite/neat/{core → _v0/core}/_issues/warnings/_external.py +1 -1
  220. cognite/neat/{core → _v0/core}/_issues/warnings/_general.py +1 -1
  221. cognite/neat/{core → _v0/core}/_issues/warnings/_models.py +2 -2
  222. cognite/neat/{core → _v0/core}/_issues/warnings/_properties.py +2 -2
  223. cognite/neat/{core → _v0/core}/_issues/warnings/_resources.py +1 -1
  224. cognite/neat/{core → _v0/core}/_issues/warnings/user_modeling.py +1 -1
  225. cognite/neat/{core → _v0/core}/_store/_data_model.py +12 -12
  226. cognite/neat/{core → _v0/core}/_store/_instance.py +43 -10
  227. cognite/neat/{core → _v0/core}/_store/_provenance.py +3 -3
  228. cognite/neat/{core → _v0/core}/_store/exceptions.py +4 -4
  229. cognite/neat/_v0/core/_utils/__init__.py +0 -0
  230. cognite/neat/{core → _v0/core}/_utils/auth.py +22 -12
  231. cognite/neat/{core → _v0/core}/_utils/auxiliary.py +1 -1
  232. cognite/neat/{core → _v0/core}/_utils/collection_.py +2 -2
  233. cognite/neat/{core → _v0/core}/_utils/graph_transformations_report.py +1 -1
  234. cognite/neat/{core → _v0/core}/_utils/rdf_.py +1 -1
  235. cognite/neat/{core → _v0/core}/_utils/reader/_base.py +1 -1
  236. cognite/neat/{core → _v0/core}/_utils/spreadsheet.py +18 -4
  237. cognite/neat/{core → _v0/core}/_utils/text.py +1 -1
  238. cognite/neat/{core → _v0/core}/_utils/upload.py +3 -3
  239. cognite/neat/{session → _v0}/engine/_load.py +1 -1
  240. cognite/neat/_v0/plugins/__init__.py +4 -0
  241. cognite/neat/_v0/plugins/_base.py +9 -0
  242. cognite/neat/_v0/plugins/_data_model.py +48 -0
  243. cognite/neat/{plugins → _v0/plugins}/_issues.py +1 -1
  244. cognite/neat/{plugins → _v0/plugins}/_manager.py +7 -16
  245. cognite/neat/{session → _v0/session}/_base.py +13 -15
  246. cognite/neat/{session → _v0/session}/_collector.py +1 -1
  247. cognite/neat/_v0/session/_diff.py +51 -0
  248. cognite/neat/{session → _v0/session}/_drop.py +3 -3
  249. cognite/neat/{session → _v0/session}/_explore.py +2 -2
  250. cognite/neat/{session → _v0/session}/_fix.py +2 -2
  251. cognite/neat/{session → _v0/session}/_inspect.py +3 -3
  252. cognite/neat/{session → _v0/session}/_mapping.py +3 -3
  253. cognite/neat/{session → _v0/session}/_plugin.py +4 -5
  254. cognite/neat/{session → _v0/session}/_prepare.py +8 -8
  255. cognite/neat/{session → _v0/session}/_read.py +34 -21
  256. cognite/neat/{session → _v0/session}/_set.py +8 -8
  257. cognite/neat/{session → _v0/session}/_show.py +5 -5
  258. cognite/neat/{session → _v0/session}/_state.py +10 -10
  259. cognite/neat/{session → _v0/session}/_subset.py +4 -4
  260. cognite/neat/{session → _v0/session}/_template.py +11 -11
  261. cognite/neat/{session → _v0/session}/_to.py +12 -12
  262. cognite/neat/{session → _v0/session}/_wizard.py +1 -1
  263. cognite/neat/{session → _v0/session}/exceptions.py +5 -5
  264. cognite/neat/_version.py +1 -1
  265. cognite/neat/legacy.py +6 -0
  266. cognite_neat-1.0.22.dist-info/METADATA +123 -0
  267. cognite_neat-1.0.22.dist-info/RECORD +329 -0
  268. cognite_neat-1.0.22.dist-info/WHEEL +4 -0
  269. cognite/neat/core/_data_model/models/entities/_loaders.py +0 -75
  270. cognite/neat/plugins/__init__.py +0 -3
  271. cognite/neat/plugins/data_model/importers/__init__.py +0 -5
  272. cognite/neat/plugins/data_model/importers/_base.py +0 -28
  273. cognite/neat/session/_session/_data_model/__init__.py +0 -3
  274. cognite/neat/session/_session/_data_model/_read.py +0 -193
  275. cognite/neat/session/_session/_data_model/_routes.py +0 -45
  276. cognite/neat/session/_session/_data_model/_show.py +0 -147
  277. cognite/neat/session/_session/_data_model/_write.py +0 -335
  278. cognite_neat-0.123.26.dist-info/METADATA +0 -144
  279. cognite_neat-0.123.26.dist-info/RECORD +0 -201
  280. cognite_neat-0.123.26.dist-info/WHEEL +0 -4
  281. cognite_neat-0.123.26.dist-info/licenses/LICENSE +0 -201
  282. /cognite/neat/{core → _client/init}/__init__.py +0 -0
  283. /cognite/neat/{core/_client/_api → _data_model}/__init__.py +0 -0
  284. /cognite/neat/{core/_client/data_classes → _data_model/deployer}/__init__.py +0 -0
  285. /cognite/neat/{core/_data_model → _data_model/exporters/_table_exporter}/__init__.py +0 -0
  286. /cognite/neat/{core/_instances → _data_model/importers/_table_importer}/__init__.py +0 -0
  287. /cognite/neat/{core/_instances/extractors/_classic_cdf → _data_model/models}/__init__.py +0 -0
  288. /cognite/neat/{core/_utils → _data_model/models/conceptual}/__init__.py +0 -0
  289. /cognite/neat/{plugins/data_model → _data_model/validation}/__init__.py +0 -0
  290. /cognite/neat/{session/_session → _session/_html}/__init__.py +0 -0
  291. /cognite/neat/{core → _v0/core}/_client/__init__.py +0 -0
  292. /cognite/neat/{core → _v0/core}/_client/data_classes/data_modeling.py +0 -0
  293. /cognite/neat/{core → _v0/core}/_client/data_classes/neat_sequence.py +0 -0
  294. /cognite/neat/{core → _v0/core}/_client/data_classes/statistics.py +0 -0
  295. /cognite/neat/{core → _v0/core}/_config.py +0 -0
  296. /cognite/neat/{core → _v0/core}/_data_model/analysis/__init__.py +0 -0
  297. /cognite/neat/{core → _v0/core}/_data_model/catalog/__init__.py +0 -0
  298. /cognite/neat/{core → _v0/core}/_data_model/catalog/classic_model.xlsx +0 -0
  299. /cognite/neat/{core → _v0/core}/_data_model/catalog/conceptual-imf-data-model.xlsx +0 -0
  300. /cognite/neat/{core → _v0/core}/_data_model/catalog/hello_world_pump.xlsx +0 -0
  301. /cognite/neat/{core → _v0/core}/_data_model/importers/__init__.py +0 -0
  302. /cognite/neat/{core → _v0/core}/_data_model/importers/_rdf/__init__.py +0 -0
  303. /cognite/neat/{core → _v0/core}/_data_model/models/_base_unverified.py +0 -0
  304. /cognite/neat/{core → _v0/core}/_data_model/models/conceptual/__init__.py +0 -0
  305. /cognite/neat/{core → _v0/core}/_data_model/models/entities/_constants.py +0 -0
  306. /cognite/neat/{core → _v0/core}/_data_model/models/entities/_wrapped.py +0 -0
  307. /cognite/neat/{core → _v0/core}/_data_model/models/mapping/__init__.py +0 -0
  308. /cognite/neat/{core → _v0/core}/_data_model/models/mapping/_classic2core.yaml +0 -0
  309. /cognite/neat/{core → _v0/core}/_data_model/transformers/__init__.py +0 -0
  310. /cognite/neat/{core → _v0/core}/_instances/_shared.py +0 -0
  311. /cognite/neat/{core → _v0/core}/_instances/_tracking/__init__.py +0 -0
  312. /cognite/neat/{core → _v0/core}/_instances/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
  313. /cognite/neat/{core → _v0/core}/_instances/examples/Knowledge-Graph-Nordic44.xml +0 -0
  314. /cognite/neat/{core → _v0/core}/_instances/examples/__init__.py +0 -0
  315. /cognite/neat/{core → _v0/core}/_instances/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
  316. /cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_assets.py +0 -0
  317. /cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_data_sets.py +0 -0
  318. /cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_events.py +0 -0
  319. /cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_files.py +0 -0
  320. /cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_labels.py +0 -0
  321. /cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_timeseries.py +0 -0
  322. /cognite/neat/{core → _v0/core}/_instances/loaders/__init__.py +0 -0
  323. /cognite/neat/{core → _v0/core}/_instances/queries/__init__.py +0 -0
  324. /cognite/neat/{core → _v0/core}/_instances/queries/_base.py +0 -0
  325. /cognite/neat/{core → _v0/core}/_instances/queries/_queries.py +0 -0
  326. /cognite/neat/{core → _v0/core}/_instances/transformers/__init__.py +0 -0
  327. /cognite/neat/{core → _v0/core}/_issues/__init__.py +0 -0
  328. /cognite/neat/{core → _v0/core}/_issues/formatters.py +0 -0
  329. /cognite/neat/{core → _v0/core}/_shared.py +0 -0
  330. /cognite/neat/{core → _v0/core}/_store/__init__.py +0 -0
  331. /cognite/neat/{core → _v0/core}/_utils/io_.py +0 -0
  332. /cognite/neat/{core → _v0/core}/_utils/reader/__init__.py +0 -0
  333. /cognite/neat/{core → _v0/core}/_utils/tarjan.py +0 -0
  334. /cognite/neat/{core → _v0/core}/_utils/time_.py +0 -0
  335. /cognite/neat/{core → _v0/core}/_utils/xml_.py +0 -0
  336. /cognite/neat/{session → _v0}/engine/__init__.py +0 -0
  337. /cognite/neat/{session → _v0}/engine/_import.py +0 -0
  338. /cognite/neat/{session → _v0}/engine/_interface.py +0 -0
  339. /cognite/neat/{session → _v0/session}/__init__.py +0 -0
  340. /cognite/neat/{session → _v0/session}/_experimental.py +0 -0
  341. /cognite/neat/{session → _v0/session}/_state/README.md +0 -0
@@ -1,193 +0,0 @@
1
- from typing import Any, Literal, cast
2
- from zipfile import Path
3
-
4
- from cognite.client.data_classes.data_modeling import DataModelId, DataModelIdentifier
5
-
6
- from cognite.neat.core._client._api_client import NeatClient
7
- from cognite.neat.core._data_model import importers
8
- from cognite.neat.core._data_model.importers._base import BaseImporter
9
- from cognite.neat.core._issues._base import IssueList
10
- from cognite.neat.core._issues.errors._general import NeatValueError
11
- from cognite.neat.core._issues.warnings._general import MissingCogniteClientWarning
12
- from cognite.neat.core._utils.reader._base import NeatReader
13
- from cognite.neat.plugins._manager import get_plugin_manager
14
- from cognite.neat.plugins.data_model.importers._base import DataModelImporterPlugin
15
- from cognite.neat.session._state import SessionState
16
- from cognite.neat.session.exceptions import NeatSessionError, session_class_wrapper
17
-
18
- InternalReaderName = Literal["excel", "cdf", "ontology", "yaml"]
19
-
20
-
21
- @session_class_wrapper
22
- class ReadAPI:
23
- def __init__(self, state: SessionState) -> None:
24
- self._state = state
25
-
26
- def __call__(self, name: str, io: str | Path | DataModelIdentifier, **kwargs: Any) -> IssueList:
27
- """Provides access to internal data model readers and external data model
28
- reader plugins.
29
-
30
- Args:
31
- name (str): The name of format (e.g. Excel) reader is handling.
32
- io (str | Path | | DataModelIdentifier | None): The input/output interface for the reader.
33
- **kwargs (Any): Additional keyword arguments for the reader.
34
-
35
- !!! note "io"
36
- The `io` parameter can be a file path, sting, or a DataModelIdentifier
37
- depending on the reader's requirements.
38
-
39
- !!! note "kwargs"
40
- Users must consult the documentation of the reader to understand
41
- what keyword arguments are supported.
42
- """
43
-
44
- # Clean the input name once before matching.
45
- clean_name: InternalReaderName | str = name.strip().lower()
46
-
47
- # The match statement cleanly handles each case.
48
- match clean_name:
49
- case "excel":
50
- return self.excel(cast(str | Path, io), **kwargs)
51
-
52
- case "cdf":
53
- return self.cdf(cast(DataModelIdentifier, io))
54
-
55
- case "ontology":
56
- return self.ontology(cast(str | Path, io))
57
-
58
- case "yaml":
59
- return self.yaml(cast(str | Path, io), **kwargs)
60
-
61
- case _: # The wildcard '_' acts as the default 'else' case.
62
- return self._plugin(name, cast(str | Path, io), **kwargs)
63
-
64
- def _plugin(self, name: str, io: str | Path, **kwargs: Any) -> IssueList:
65
- """Provides access to the external plugins for data model importing.
66
-
67
- Args:
68
- name (str): The name of format (e.g. Excel) plugin is handling.
69
- io (str | Path | None): The input/output interface for the plugin.
70
- **kwargs (Any): Additional keyword arguments for the plugin.
71
-
72
- !!! note "kwargs"
73
- Users must consult the documentation of the plugin to understand
74
- what keyword arguments are supported.
75
- """
76
-
77
- # Some plugins may not support the io argument
78
- reader = NeatReader.create(io)
79
- path = reader.materialize_path()
80
-
81
- self._state._raise_exception_if_condition_not_met(
82
- "Data Model Read",
83
- empty_data_model_store_required=True,
84
- )
85
-
86
- plugin_manager = get_plugin_manager()
87
- plugin = plugin_manager.get(name, DataModelImporterPlugin)
88
-
89
- print(
90
- f"You are using an external plugin {plugin.__name__}, which is not developed by the NEAT team."
91
- "\nUse it at your own risk."
92
- )
93
-
94
- return self._state.data_model_import(plugin().configure(io=path, **kwargs))
95
-
96
- def cdf(self, io: DataModelIdentifier) -> IssueList:
97
- """Reads a Data Model from CDF to the knowledge graph.
98
-
99
- Args:
100
- io: Tuple of strings with the id of a CDF Data Model.
101
- Notation as follows (<name_of_space>, <name_of_data_model>, <data_model_version>)
102
-
103
- Example:
104
- ```python
105
- neat.read.cdf.data_model(("example_data_model_space", "EXAMPLE_DATA_MODEL", "v1"))
106
- ```
107
- """
108
-
109
- data_model_id = DataModelId.load(io)
110
-
111
- if not data_model_id.version:
112
- raise NeatSessionError("Data model version is required to read a data model.")
113
-
114
- self._state._raise_exception_if_condition_not_met(
115
- "Read data model from CDF",
116
- empty_data_model_store_required=True,
117
- client_required=True,
118
- )
119
-
120
- return self._state.data_model_import(
121
- importers.DMSImporter.from_data_model_id(cast(NeatClient, self._state.client), data_model_id)
122
- )
123
-
124
- def excel(self, io: str | Path, *, enable_manual_edit: bool = False) -> IssueList:
125
- """Reads a Neat Excel Data Model to the data model store.
126
- The data model spreadsheets may contain conceptual or physical data model definitions.
127
-
128
- Args:
129
- io: file path to the Excel sheet
130
- enable_manual_edit: If True, the user will be able to re-import data model
131
- which where edit outside of NeatSession
132
- """
133
- reader = NeatReader.create(io)
134
- path = reader.materialize_path()
135
-
136
- self._state._raise_exception_if_condition_not_met(
137
- "Read Excel Data Model",
138
- empty_data_model_store_required=not enable_manual_edit,
139
- )
140
-
141
- return self._state.data_model_import(importers.ExcelImporter(path), enable_manual_edit)
142
-
143
- def ontology(self, io: str | Path) -> IssueList:
144
- """Reads an OWL ontology source into NeatSession.
145
-
146
- Args:
147
- io: file path or url to the OWL file
148
- """
149
-
150
- self._state._raise_exception_if_condition_not_met(
151
- "Read Ontology",
152
- empty_data_model_store_required=True,
153
- )
154
-
155
- reader = NeatReader.create(io)
156
- importer = importers.OWLImporter.from_file(reader.materialize_path(), source_name=f"file {reader!s}")
157
- return self._state.data_model_import(importer)
158
-
159
- def yaml(self, io: str | Path, *, format: Literal["neat", "toolkit"] = "neat") -> IssueList:
160
- """Reads a yaml with either neat data mode, or several toolkit yaml files to
161
- import Data Model(s) into NeatSession.
162
-
163
- Args:
164
- io: File path to the Yaml file in the case of "neat" yaml, or path to a zip folder or directory with several
165
- Yaml files in the case of "toolkit".
166
- format: The format of the yaml file(s). Can be either "neat" or "toolkit".
167
-
168
- Example:
169
- ```python
170
- neat.read.yaml("path_to_toolkit_yamls")
171
- ```
172
- """
173
- self._state._raise_exception_if_condition_not_met(
174
- "Read YAML data model",
175
- empty_data_model_store_required=True,
176
- )
177
- reader = NeatReader.create(io)
178
- path = reader.materialize_path()
179
- importer: BaseImporter
180
- if format == "neat":
181
- importer = importers.DictImporter.from_yaml_file(path, source_name=f"{reader!s}")
182
- elif format == "toolkit":
183
- dms_importer = importers.DMSImporter.from_path(path, self._state.client)
184
- if dms_importer.issue_list.has_warning_type(MissingCogniteClientWarning):
185
- raise NeatSessionError(
186
- "No client provided. You are referencing Cognite containers in your data model, "
187
- "NEAT needs a client to lookup the container definitions. "
188
- "Please set the client in the session, NeatSession(client=client)."
189
- )
190
- importer = dms_importer
191
- else:
192
- raise NeatValueError(f"Unsupported YAML format: {format}")
193
- return self._state.data_model_import(importer)
@@ -1,45 +0,0 @@
1
- from cognite.neat.core._data_model.models.conceptual._verified import ConceptualDataModel
2
- from cognite.neat.core._data_model.models.physical._verified import PhysicalDataModel
3
- from cognite.neat.session._session._data_model._read import ReadAPI
4
- from cognite.neat.session._session._data_model._show import ShowAPI
5
- from cognite.neat.session._session._data_model._write import WriteAPI
6
- from cognite.neat.session._state import SessionState
7
- from cognite.neat.session.exceptions import session_class_wrapper
8
-
9
-
10
- @session_class_wrapper
11
- class DataModelAPI:
12
- """API for managing data models in NEAT session."""
13
-
14
- def __init__(self, state: SessionState) -> None:
15
- self._state = state
16
- self.read = ReadAPI(state)
17
- self.write = WriteAPI(state)
18
- self.show = ShowAPI(state)
19
-
20
- @property
21
- def physical(self) -> PhysicalDataModel | None:
22
- """Access to the physical data model level."""
23
- return self._state.data_model_store.try_get_last_physical_data_model
24
-
25
- @property
26
- def conceptual(self) -> ConceptualDataModel | None:
27
- """Access to the conceptual data model level."""
28
- return self._state.data_model_store.try_get_last_conceptual_data_model
29
-
30
- def _repr_html_(self) -> str:
31
- if self._state.data_model_store.empty:
32
- return (
33
- "<strong>No data model</strong>. Get started by reading data model with the <em>.read</em> attribute."
34
- )
35
-
36
- output = []
37
-
38
- if self._state.data_model_store.provenance:
39
- if self.physical:
40
- html = self.physical._repr_html_()
41
- if self.conceptual:
42
- html = self.conceptual._repr_html_()
43
- output.append(f"<H2>Data Model</H2><br />{html}")
44
-
45
- return "<br />".join(output)
@@ -1,147 +0,0 @@
1
- from typing import Any
2
-
3
- import networkx as nx
4
- from IPython.display import HTML, display
5
- from pyvis.network import Network as PyVisNetwork # type: ignore
6
-
7
- from cognite.neat.core._constants import IN_NOTEBOOK, IN_PYODIDE
8
- from cognite.neat.core._data_model.analysis._base import DataModelAnalysis
9
- from cognite.neat.core._utils.io_ import to_directory_compatible
10
- from cognite.neat.core._utils.rdf_ import uri_display_name
11
- from cognite.neat.session._show import _generate_hex_color_per_type
12
- from cognite.neat.session._state import SessionState
13
- from cognite.neat.session.exceptions import NeatSessionError, session_class_wrapper
14
-
15
-
16
- @session_class_wrapper
17
- class ShowAPI:
18
- def __init__(self, state: SessionState) -> None:
19
- self._state = state
20
-
21
- def __call__(self) -> Any:
22
- """Generates a visualization of the data model without implements."""
23
- if self._state.data_model_store.empty:
24
- raise NeatSessionError("No data model available. Try using [bold].read[/bold] to read a data model.")
25
-
26
- last_target = self._state.data_model_store.provenance[-1].target_entity
27
- data_model = last_target.physical or last_target.conceptual
28
- analysis = DataModelAnalysis(physical=last_target.physical, conceptual=last_target.conceptual)
29
-
30
- if last_target.physical is not None:
31
- di_graph = analysis._physical_di_graph(format="data-model")
32
- else:
33
- di_graph = analysis._conceptual_di_graph(format="data-model")
34
-
35
- identifier = to_directory_compatible(str(data_model.metadata.identifier))
36
- name = f"{identifier}.html"
37
- return self._generate_visualization(di_graph, name)
38
-
39
- def implements(self) -> Any:
40
- """Generates a visualization of implements of the data model concepts, showing
41
- the inheritance between the concepts in the data model."""
42
- if self._state.data_model_store.empty:
43
- raise NeatSessionError("No data model available. Try using [bold].read[/bold] to read a data model.")
44
-
45
- last_target = self._state.data_model_store.provenance[-1].target_entity
46
- data_model = last_target.physical or last_target.conceptual
47
- analysis = DataModelAnalysis(physical=last_target.physical, conceptual=last_target.conceptual)
48
-
49
- if last_target.physical is not None:
50
- di_graph = analysis._physical_di_graph(format="implements")
51
- else:
52
- di_graph = analysis._conceptual_di_graph(format="implements")
53
- identifier = to_directory_compatible(str(data_model.metadata.identifier))
54
- name = f"{identifier}_implements.html"
55
- return self._generate_visualization(di_graph, name)
56
-
57
- def provenance(self) -> Any:
58
- if not self._state.data_model_store.provenance:
59
- raise NeatSessionError("No data model available. Try using [bold].read[/bold] to load data model.")
60
-
61
- di_graph = self._generate_provenance_di_graph()
62
- unique_hash = self._state.data_model_store.calculate_provenance_hash(shorten=True)
63
- return self._generate_visualization(di_graph, name=f"data_model_provenance_{unique_hash}.html")
64
-
65
- def _generate_visualization(self, di_graph: nx.DiGraph, name: str) -> Any:
66
- if not IN_NOTEBOOK:
67
- raise NeatSessionError("Visualization is only available in Jupyter notebooks!")
68
-
69
- net = PyVisNetwork(
70
- notebook=IN_NOTEBOOK,
71
- cdn_resources="remote",
72
- directed=True,
73
- height="750px",
74
- width="100%",
75
- select_menu=IN_NOTEBOOK,
76
- )
77
-
78
- # Change the plotting layout
79
- net.repulsion(
80
- node_distance=100,
81
- central_gravity=0.3,
82
- spring_length=200,
83
- spring_strength=0.05,
84
- damping=0.09,
85
- )
86
-
87
- net.from_nx(di_graph)
88
- if IN_PYODIDE:
89
- net.write_html(name)
90
- return display(HTML(name))
91
-
92
- else:
93
- return net.show(name)
94
-
95
- def _generate_provenance_di_graph(self) -> nx.DiGraph:
96
- di_graph = nx.DiGraph()
97
- hex_colored_types = _generate_hex_color_per_type(["Agent", "Entity", "Activity", "Export", "Pruned"])
98
-
99
- for change in self._state.data_model_store.provenance:
100
- source = uri_display_name(change.source_entity.id_)
101
- target = uri_display_name(change.target_entity.id_)
102
- agent = uri_display_name(change.agent.id_)
103
-
104
- di_graph.add_node(
105
- source,
106
- label=source,
107
- type="Entity",
108
- title="Entity",
109
- color=hex_colored_types["Entity"],
110
- )
111
-
112
- di_graph.add_node(
113
- target,
114
- label=target,
115
- type="Entity",
116
- title="Entity",
117
- color=hex_colored_types["Entity"],
118
- )
119
-
120
- di_graph.add_node(
121
- agent,
122
- label=agent,
123
- type="Agent",
124
- title="Agent",
125
- color=hex_colored_types["Agent"],
126
- )
127
-
128
- di_graph.add_edge(source, agent, label="used", color="grey")
129
- di_graph.add_edge(agent, target, label="generated", color="grey")
130
-
131
- for (
132
- source_id,
133
- exports,
134
- ) in self._state.data_model_store.exports_by_source_entity_id.items():
135
- source_shorten = uri_display_name(source_id)
136
- for export in exports:
137
- export_id = uri_display_name(export.target_entity.id_)
138
- di_graph.add_node(
139
- export_id,
140
- label=export_id,
141
- type="Export",
142
- title="Export",
143
- color=hex_colored_types["Export"],
144
- )
145
- di_graph.add_edge(source_shorten, export_id, label="exported", color="grey")
146
-
147
- return di_graph