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
@@ -0,0 +1,476 @@
1
+ .deployment-list {
2
+ background: var(--bg-primary);
3
+ border: 1px solid var(--border-color);
4
+ border-top: none;
5
+ border-radius: 0 0 8px 8px;
6
+ max-height: 700px;
7
+ overflow-y: auto;
8
+ }
9
+
10
+ .change-item {
11
+ padding: 16px 20px;
12
+ border-bottom: 1px solid var(--border-light);
13
+ transition: background 0.2s;
14
+ }
15
+
16
+ .change-item:hover {
17
+ background: var(--hover-bg);
18
+ }
19
+
20
+ .change-header {
21
+ display: flex;
22
+ align-items: start;
23
+ gap: 12px;
24
+ margin-bottom: 8px;
25
+ flex-wrap: wrap;
26
+ }
27
+
28
+ .endpoint-badge {
29
+ padding: 4px 10px;
30
+ border-radius: 4px;
31
+ font-size: 11px;
32
+ font-weight: 600;
33
+ text-transform: uppercase;
34
+ letter-spacing: 0.5px;
35
+ }
36
+
37
+ .endpoint-spaces {
38
+ background: #dbeafe;
39
+ color: #1e40af;
40
+ }
41
+
42
+ .endpoint-containers {
43
+ background: #fce7f3;
44
+ color: #9f1239;
45
+ }
46
+
47
+ .endpoint-views {
48
+ background: #dcfce7;
49
+ color: #166534;
50
+ }
51
+
52
+ .endpoint-datamodels {
53
+ background: #fef3c7;
54
+ color: #92400e;
55
+ }
56
+
57
+ .dark-mode .endpoint-spaces {
58
+ background: #1e3a8a;
59
+ color: #93c5fd;
60
+ }
61
+
62
+ .dark-mode .endpoint-containers {
63
+ background: #831843;
64
+ color: #f9a8d4;
65
+ }
66
+
67
+ .dark-mode .endpoint-views {
68
+ background: #14532d;
69
+ color: #86efac;
70
+ }
71
+
72
+ .dark-mode .endpoint-datamodels {
73
+ background: #78350f;
74
+ color: #fde68a;
75
+ }
76
+
77
+ .change-type-badge {
78
+ padding: 4px 10px;
79
+ border-radius: 4px;
80
+ font-size: 11px;
81
+ font-weight: 600;
82
+ text-transform: uppercase;
83
+ }
84
+
85
+ .change-create {
86
+ background: #d1fae5;
87
+ color: #065f46;
88
+ }
89
+
90
+ .change-update {
91
+ background: #dbeafe;
92
+ color: #1e40af;
93
+ }
94
+
95
+ .change-delete {
96
+ background: #fee2e2;
97
+ color: #991b1b;
98
+ }
99
+
100
+ .change-skip {
101
+ background: #fef3c7;
102
+ color: #92400e;
103
+ }
104
+
105
+ .change-unchanged {
106
+ background: #f3f4f6;
107
+ color: #4b5563;
108
+ }
109
+
110
+ .dark-mode .change-create {
111
+ background: #064e3b;
112
+ color: #6ee7b7;
113
+ }
114
+
115
+ .dark-mode .change-update {
116
+ background: #1e3a8a;
117
+ color: #93c5fd;
118
+ }
119
+
120
+ .dark-mode .change-delete {
121
+ background: #7f1d1d;
122
+ color: #fca5a5;
123
+ }
124
+
125
+ .dark-mode .change-skip {
126
+ background: #78350f;
127
+ color: #fde68a;
128
+ }
129
+
130
+ .dark-mode .change-unchanged {
131
+ background: #374151;
132
+ color: #9ca3af;
133
+ }
134
+
135
+ .change-failed {
136
+ background: #fee2e2;
137
+ color: #991b1b;
138
+ }
139
+
140
+ .dark-mode .change-failed {
141
+ background: #7f1d1d;
142
+ color: #fca5a5;
143
+ }
144
+
145
+ .severity-badge {
146
+ padding: 4px 10px;
147
+ border-radius: 4px;
148
+ font-size: 11px;
149
+ font-weight: 600;
150
+ }
151
+
152
+ .severity-SAFE {
153
+ background: #d1fae5;
154
+ color: #065f46;
155
+ }
156
+
157
+ .severity-WARNING {
158
+ background: #fef3c7;
159
+ color: #92400e;
160
+ }
161
+
162
+ .severity-BREAKING {
163
+ background: #fee2e2;
164
+ color: #991b1b;
165
+ }
166
+
167
+ .dark-mode .severity-SAFE {
168
+ background: #064e3b;
169
+ color: #6ee7b7;
170
+ }
171
+
172
+ .dark-mode .severity-WARNING {
173
+ background: #78350f;
174
+ color: #fde68a;
175
+ }
176
+
177
+ .dark-mode .severity-BREAKING {
178
+ background: #7f1d1d;
179
+ color: #fca5a5;
180
+ }
181
+
182
+ .resource-id {
183
+ color: var(--text-primary);
184
+ font-weight: 600;
185
+ font-family: 'Monaco', 'Courier New', monospace;
186
+ font-size: 13px;
187
+ }
188
+
189
+ .field-changes {
190
+ margin-top: 12px;
191
+ padding-left: 20px;
192
+ }
193
+
194
+ .field-change {
195
+ padding: 8px 12px;
196
+ margin: 4px 0;
197
+ background: var(--bg-secondary);
198
+ border-left: 3px solid var(--fix-border);
199
+ border-radius: 4px;
200
+ font-size: 12px;
201
+ }
202
+
203
+ .field-path {
204
+ font-weight: 600;
205
+ color: var(--fix-border);
206
+ font-family: 'Monaco', 'Courier New', monospace;
207
+ }
208
+
209
+ .field-description {
210
+ color: var(--text-secondary);
211
+ margin-top: 4px;
212
+ }
213
+
214
+ .recovery-notice {
215
+ background: var(--fix-bg);
216
+ border: 1px solid var(--fix-border);
217
+ border-radius: 6px;
218
+ padding: 12px 16px;
219
+ margin-top: 12px;
220
+ font-size: 13px;
221
+ color: var(--fix-text);
222
+ }
223
+
224
+ .status-badge {
225
+ padding: 6px 14px;
226
+ border-radius: 20px;
227
+ font-size: 14px;
228
+ font-weight: 600;
229
+ display: inline-flex;
230
+ align-items: center;
231
+ gap: 6px;
232
+ }
233
+
234
+
235
+ .deployment-controls {
236
+ display: flex;
237
+ flex-direction: column;
238
+ gap: 12px;
239
+ }
240
+
241
+ .filter-group {
242
+ display: flex;
243
+ gap: 8px;
244
+ align-items: center;
245
+ flex-wrap: wrap;
246
+ }
247
+
248
+ .filter-label {
249
+ font-size: 13px;
250
+ font-weight: 600;
251
+ color: var(--text-secondary);
252
+ min-width: 80px;
253
+ }
254
+
255
+ .filter-btn {
256
+ padding: 6px 12px;
257
+ border: 1px solid var(--border-color);
258
+ background: var(--bg-primary);
259
+ color: var(--text-primary);
260
+ border-radius: 6px;
261
+ font-size: 12px;
262
+ cursor: pointer;
263
+ transition: all 0.2s;
264
+ }
265
+
266
+ .filter-btn:hover {
267
+ background: var(--hover-bg);
268
+ border-color: var(--fix-border);
269
+ }
270
+
271
+ .filter-btn.active {
272
+ background: var(--fix-border);
273
+ color: white;
274
+ border-color: var(--fix-border);
275
+ }
276
+
277
+
278
+
279
+ .status-success {
280
+ background: #10b981;
281
+ color: white;
282
+ }
283
+
284
+ .status-failure {
285
+ background: #ff8686;
286
+ color: white;
287
+ }
288
+
289
+ .status-partial {
290
+ background: #f59e0b;
291
+ color: white;
292
+ }
293
+
294
+ .status-pending {
295
+ background: #3b82f6;
296
+ color: white;
297
+ }
298
+
299
+ .status-recovered {
300
+ background: #10b981;
301
+ color: white;
302
+ }
303
+
304
+ .status-recovery_failed {
305
+ background: #dc2626;
306
+ color: white;
307
+ }
308
+
309
+ .dark-mode .status-success {
310
+ background: #059669;
311
+ }
312
+
313
+ .dark-mode .status-failure {
314
+ background: #ff8686;
315
+ }
316
+
317
+ .dark-mode .status-partial {
318
+ background: #d97706;
319
+ }
320
+
321
+ .dark-mode .status-pending {
322
+ background: #2563eb;
323
+ }
324
+
325
+ .dark-mode .status-recovered {
326
+ background: #059669;
327
+ }
328
+
329
+ .dark-mode .status-recovery_failed {
330
+ background: #b91c1c;
331
+ }
332
+
333
+
334
+ /* Error message handling */
335
+
336
+ .error-message-box {
337
+ background: #fee2e2;
338
+ border: 2px solid #dc2626;
339
+ border-left: 6px solid #dc2626;
340
+ border-radius: 8px;
341
+ padding: 16px;
342
+ margin-top: 12px;
343
+ animation: slideIn 0.3s ease-out;
344
+ }
345
+
346
+ .dark-mode .error-message-box {
347
+ background: #7f1d1d;
348
+ border-color: #ef4444;
349
+ }
350
+
351
+ .error-message-header {
352
+ display: flex;
353
+ align-items: center;
354
+ gap: 10px;
355
+ margin-bottom: 8px;
356
+ }
357
+
358
+ .error-icon {
359
+ font-size: 24px;
360
+ }
361
+
362
+ .error-title {
363
+ font-weight: 700;
364
+ font-size: 14px;
365
+ color: #991b1b;
366
+ }
367
+
368
+ .dark-mode .error-title {
369
+ color: #fca5a5;
370
+ }
371
+
372
+ .error-message-content {
373
+ color: #7f1d1d;
374
+ font-size: 13px;
375
+ line-height: 1.6;
376
+ padding-left: 34px;
377
+ font-family: 'Monaco', 'Courier New', monospace;
378
+ }
379
+
380
+ .dark-mode .error-message-content {
381
+ color: #fca5a5;
382
+ }
383
+
384
+ .change-item.failed-change {
385
+ border-left: 4px solid #dc2626;
386
+ background: rgba(254, 226, 226, 0.1);
387
+ }
388
+
389
+ .dark-mode .change-item.failed-change {
390
+ border-left-color: #ef4444;
391
+ background: rgba(127, 29, 29, 0.2);
392
+ }
393
+
394
+ .info-message-box {
395
+ border-radius: 6px;
396
+ padding: 12px 16px;
397
+ margin-top: 12px;
398
+ font-size: 13px;
399
+ line-height: 1.6;
400
+ }
401
+
402
+ .info-message-content {
403
+ color: inherit;
404
+ }
405
+
406
+ .info-message-create {
407
+ background: #d1fae5;
408
+ border-left: 4px solid #065f46;
409
+ color: #065f46;
410
+ }
411
+
412
+ .info-message-update {
413
+ background: #dbeafe;
414
+ border-left: 4px solid #1e40af;
415
+ color: #1e40af;
416
+ }
417
+
418
+ .info-message-delete {
419
+ background: #fee2e2;
420
+ border-left: 4px solid #991b1b;
421
+ color: #991b1b;
422
+ }
423
+
424
+ .info-message-skip {
425
+ background: #fef3c7;
426
+ border-left: 4px solid #92400e;
427
+ color: #92400e;
428
+ }
429
+
430
+ .info-message-unchanged {
431
+ background: #f3f4f6;
432
+ border-left: 4px solid #4b5563;
433
+ color: #4b5563;
434
+ }
435
+
436
+ .dark-mode .info-message-create {
437
+ background: #064e3b;
438
+ border-left-color: #6ee7b7;
439
+ color: #6ee7b7;
440
+ }
441
+
442
+ .dark-mode .info-message-update {
443
+ background: #1e3a8a;
444
+ border-left-color: #93c5fd;
445
+ color: #93c5fd;
446
+ }
447
+
448
+ .dark-mode .info-message-delete {
449
+ background: #7f1d1d;
450
+ border-left-color: #fca5a5;
451
+ color: #fca5a5;
452
+ }
453
+
454
+ .dark-mode .info-message-skip {
455
+ background: #78350f;
456
+ border-left-color: #fde68a;
457
+ color: #fde68a;
458
+ }
459
+
460
+ .dark-mode .info-message-unchanged {
461
+ background: #374151;
462
+ border-left-color: #9ca3af;
463
+ color: #9ca3af;
464
+ }
465
+
466
+
467
+ @keyframes slideIn {
468
+ from {
469
+ opacity: 0;
470
+ transform: translateY(-10px);
471
+ }
472
+ to {
473
+ opacity: 1;
474
+ transform: translateY(0);
475
+ }
476
+ }
@@ -0,0 +1,181 @@
1
+ let currentFilters = {
2
+ changeType: 'all',
3
+ endpoint: 'all',
4
+ severity: 'all',
5
+ };
6
+ let currentSearch = '';
7
+ const storageKey = 'neat-deployment-theme-' + uniqueId;
8
+ let isDarkMode = localStorage.getItem(storageKey) === 'dark';
9
+
10
+ const container = document.getElementById('deploymentContainer-' + uniqueId);
11
+ const themeToggle = document.getElementById('themeToggle-' + uniqueId);
12
+ const themeIcon = document.getElementById('themeIcon-' + uniqueId);
13
+ const themeText = document.getElementById('themeText-' + uniqueId);
14
+
15
+ // Status configuration
16
+ const STATUS_CONFIG = {
17
+ success: { icon: '✅', text: 'Success' },
18
+ failure: { icon: '❌', text: 'Failure' },
19
+ partial: { icon: '⚠️', text: 'Partial Success' },
20
+ pending: { icon: '⏳', text: 'Pending (Dry Run)' },
21
+ recovered: { icon: '🔄', text: 'Recovered' },
22
+ recovery_failed: { icon: '💔', text: 'Recovery Failed' }
23
+ };
24
+
25
+ // Initialize status badge
26
+ function initializeStatus() {
27
+ const statusBadge = document.getElementById('statusBadge-' + uniqueId);
28
+ const statusIcon = document.getElementById('statusIcon-' + uniqueId);
29
+ const statusText = document.getElementById('statusText-' + uniqueId);
30
+
31
+ const statusConfig = STATUS_CONFIG[deploymentStatus] || STATUS_CONFIG.pending;
32
+ statusIcon.textContent = statusConfig.icon;
33
+ statusText.textContent = statusConfig.text;
34
+ }
35
+
36
+ function updateTheme() {
37
+ if (isDarkMode) {
38
+ container.classList.add('dark-mode');
39
+ themeIcon.textContent = '☀️';
40
+ themeText.textContent = 'Light';
41
+ } else {
42
+ container.classList.remove('dark-mode');
43
+ themeIcon.textContent = '🌙';
44
+ themeText.textContent = 'Dark';
45
+ }
46
+ }
47
+
48
+ function renderChangeMessage(change) {
49
+ if (!change.message) return '';
50
+
51
+ // Using textContent to set the message prevents XSS vulnerabilities
52
+ // by automatically escaping HTML characters.
53
+ const messageHolder = document.createElement('div');
54
+ messageHolder.textContent = change.message;
55
+ const escapedMessage = messageHolder.innerHTML;
56
+
57
+ if (change.change_type === 'failed') {
58
+ return `
59
+ <div class="error-message-box">
60
+ <div class="error-message-header">
61
+ <span class="error-icon">❌</span>
62
+ <span class="error-title">Deployment Failed</span>
63
+ </div>
64
+ <div class="error-message-content">${escapedMessage}</div>
65
+ </div>`;
66
+ }
67
+ return `
68
+ <div class="info-message-box info-message-${change.change_type}">
69
+ <div class="info-message-content">${escapedMessage}</div>
70
+ </div>`;
71
+ }
72
+
73
+ updateTheme();
74
+ initializeStatus();
75
+
76
+ themeToggle.addEventListener('click', function() {
77
+ isDarkMode = !isDarkMode;
78
+ localStorage.setItem(storageKey, isDarkMode ? 'dark' : 'light');
79
+ updateTheme();
80
+ });
81
+
82
+ function renderChanges() {
83
+ const listContainer = document.getElementById('deploymentList-' + uniqueId);
84
+ const filtered = changes.filter(change => {
85
+ const matchesChangeType = currentFilters.changeType === 'all' ||
86
+ change.change_type === currentFilters.changeType;
87
+ const matchesEndpoint = currentFilters.endpoint === 'all' ||
88
+ change.endpoint === currentFilters.endpoint;
89
+ const matchesSeverity = currentFilters.severity === 'all' ||
90
+ change.severity === currentFilters.severity;
91
+ const matchesSearch = !currentSearch ||
92
+ change.resource_id.toLowerCase().includes(currentSearch.toLowerCase()) ||
93
+ change.changes.some(fc =>
94
+ fc.field_path.toLowerCase().includes(currentSearch.toLowerCase()) ||
95
+ fc.description.toLowerCase().includes(currentSearch.toLowerCase())
96
+ );
97
+ return matchesChangeType && matchesEndpoint && matchesSeverity && matchesSearch;
98
+ });
99
+
100
+ if (filtered.length === 0) {
101
+ listContainer.innerHTML = '<div class="no-changes">No changes match your filters</div>';
102
+ return;
103
+ }
104
+
105
+ listContainer.innerHTML = filtered.map(change => `
106
+ <div class="change-item ${change.change_type === 'failed' ? 'failed-change' : ''}">
107
+ <div class="change-header">
108
+ <span class="endpoint-badge endpoint-${change.endpoint}">${change.endpoint}</span>
109
+ <span class="change-type-badge change-${change.change_type}">${change.change_type}</span>
110
+ <span class="severity-badge severity-${change.severity}">${change.severity}</span>
111
+ </div>
112
+ <div class="resource-id">${change.resource_id}</div>
113
+
114
+ ${change.changes.length > 0 ? `
115
+ <div class="field-changes">
116
+ ${change.changes.map(fc => `
117
+ <div class="field-change">
118
+ <div class="field-path">${fc.field_path}</div>
119
+ <div class="field-description">${fc.description}</div>
120
+ </div>
121
+ `).join('')}
122
+ </div>
123
+ ` : ''}
124
+
125
+ ${renderChangeMessage(change)}
126
+
127
+ </div>
128
+ `).join('');
129
+ }
130
+
131
+ // Change type filters (stat items)
132
+ document.querySelectorAll('#deploymentContainer-' + uniqueId + ' .stat-item').forEach(item => {
133
+ item.addEventListener('click', function() {
134
+ document.querySelectorAll('#deploymentContainer-' + uniqueId + ' .stat-item').forEach(i => i.classList.remove('active'));
135
+ this.classList.add('active');
136
+ currentFilters.changeType = this.dataset.filter;
137
+ renderChanges();
138
+ });
139
+ });
140
+
141
+ // Other filters
142
+ document.querySelectorAll('#deploymentContainer-' + uniqueId + ' .filter-btn').forEach(btn => {
143
+ btn.addEventListener('click', function() {
144
+ const filterType = this.dataset.filterType;
145
+ document.querySelectorAll('#deploymentContainer-' + uniqueId + ` [data-filter-type="${filterType}"]`).forEach(b =>
146
+ b.classList.remove('active')
147
+ );
148
+ this.classList.add('active');
149
+ currentFilters[filterType] = this.dataset.filter;
150
+ renderChanges();
151
+ });
152
+ });
153
+
154
+ // Search
155
+ document.getElementById('searchInput-' + uniqueId).addEventListener('input', function(e) {
156
+ currentSearch = e.target.value;
157
+ renderChanges();
158
+ });
159
+
160
+ // Export function
161
+ window['exportDeployment_' + uniqueId] = function() {
162
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
163
+ const report = {
164
+ status: deploymentStatus,
165
+ is_dry_run: is_dry_run === 'True',
166
+ timestamp: timestamp,
167
+ statistics: stats,
168
+ changes: changes,
169
+ };
170
+
171
+ const json = JSON.stringify(report, null, 2);
172
+ const blob = new Blob([json], { type: 'application/json' });
173
+ const url = window.URL.createObjectURL(blob);
174
+ const a = document.createElement('a');
175
+ a.href = url;
176
+ a.download = `deployment_report_${timestamp}.json`;
177
+ a.click();
178
+ window.URL.revokeObjectURL(url);
179
+ };
180
+
181
+ renderChanges();