cognite-neat 0.94.0__tar.gz → 0.96.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of cognite-neat might be problematic. Click here for more details.

Files changed (280) hide show
  1. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/PKG-INFO +3 -5
  2. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_constants.py +16 -0
  3. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_issues/_base.py +24 -8
  4. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_issues/errors/_resources.py +2 -2
  5. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_issues/warnings/_models.py +20 -2
  6. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/exporters/_rules2excel.py +8 -2
  7. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/dms/_rules.py +16 -0
  8. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/dms/_rules_input.py +16 -0
  9. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/information/_rules.py +14 -0
  10. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/information/_rules_input.py +14 -0
  11. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/transformers/__init__.py +2 -0
  12. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/transformers/_converters.py +206 -37
  13. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_session/_base.py +14 -7
  14. cognite_neat-0.96.0/cognite/neat/_session/_inspect.py +89 -0
  15. cognite_neat-0.96.0/cognite/neat/_session/_prepare.py +118 -0
  16. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_session/_read.py +33 -4
  17. cognite_neat-0.96.0/cognite/neat/_session/_set.py +23 -0
  18. cognite_neat-0.96.0/cognite/neat/_session/_show.py +228 -0
  19. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_session/_state.py +24 -4
  20. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_session/_to.py +3 -0
  21. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_session/exceptions.py +9 -6
  22. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_store/_base.py +11 -8
  23. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_utils/collection_.py +4 -0
  24. cognite_neat-0.96.0/cognite/neat/_version.py +1 -0
  25. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/pyproject.toml +3 -6
  26. cognite_neat-0.94.0/cognite/neat/_session/_prepare.py +0 -61
  27. cognite_neat-0.94.0/cognite/neat/_session/_show.py +0 -274
  28. cognite_neat-0.94.0/cognite/neat/_version.py +0 -1
  29. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/LICENSE +0 -0
  30. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/README.md +0 -0
  31. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/__init__.py +0 -0
  32. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/api/__init__.py +0 -0
  33. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/api/asgi/metrics.py +0 -0
  34. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/api/configuration.py +0 -0
  35. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/api/context_manager/__init__.py +0 -0
  36. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/api/context_manager/manager.py +0 -0
  37. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/api/data_classes/__init__.py +0 -0
  38. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/api/data_classes/rest.py +0 -0
  39. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/api/explorer.py +0 -0
  40. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/api/routers/configuration.py +0 -0
  41. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/api/routers/crud.py +0 -0
  42. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/api/routers/metrics.py +0 -0
  43. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/api/routers/workflows.py +0 -0
  44. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/api/utils/__init__.py +0 -0
  45. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/api/utils/data_mapping.py +0 -0
  46. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/api/utils/logging.py +0 -0
  47. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/api/utils/query_templates.py +0 -0
  48. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/main.py +0 -0
  49. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/monitoring/__init__.py +0 -0
  50. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/monitoring/metrics.py +0 -0
  51. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/index.html +0 -0
  52. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/.gitignore +0 -0
  53. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/README.md +0 -0
  54. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/build/asset-manifest.json +0 -0
  55. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/build/favicon.ico +0 -0
  56. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/build/img/architect-icon.svg +0 -0
  57. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/build/img/developer-icon.svg +0 -0
  58. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/build/img/sme-icon.svg +0 -0
  59. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/build/index.html +0 -0
  60. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/build/logo192.png +0 -0
  61. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/build/manifest.json +0 -0
  62. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/build/robots.txt +0 -0
  63. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/build/static/css/main.72e3d92e.css +0 -0
  64. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/build/static/css/main.72e3d92e.css.map +0 -0
  65. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/build/static/js/main.5a52cf09.js +0 -0
  66. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/build/static/js/main.5a52cf09.js.LICENSE.txt +0 -0
  67. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/build/static/js/main.5a52cf09.js.map +0 -0
  68. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/build/static/media/logo.8093b84df9ed36a174c629d6fe0b730d.svg +0 -0
  69. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/package-lock.json +0 -0
  70. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/package.json +0 -0
  71. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/public/favicon.ico +0 -0
  72. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/public/img/architect-icon.svg +0 -0
  73. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/public/img/developer-icon.svg +0 -0
  74. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/public/img/sme-icon.svg +0 -0
  75. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/public/index.html +0 -0
  76. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/public/logo192.png +0 -0
  77. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/public/manifest.json +0 -0
  78. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/public/robots.txt +0 -0
  79. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/App.css +0 -0
  80. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/App.js +0 -0
  81. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/App.test.js +0 -0
  82. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/MainContainer.tsx +0 -0
  83. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/components/JsonViewer.tsx +0 -0
  84. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/components/LocalUploader.tsx +0 -0
  85. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/components/OverviewComponentEditorDialog.tsx +0 -0
  86. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/components/StepEditorDialog.tsx +0 -0
  87. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/components/TabPanel.tsx +0 -0
  88. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/components/Utils.tsx +0 -0
  89. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/components/WorkflowDeleteDialog.tsx +0 -0
  90. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/components/WorkflowExecutionReport.tsx +0 -0
  91. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/components/WorkflowImportExportDialog.tsx +0 -0
  92. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/components/WorkflowMetadataDialog.tsx +0 -0
  93. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/index.css +0 -0
  94. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/index.js +0 -0
  95. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/logo.svg +0 -0
  96. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/reportWebVitals.js +0 -0
  97. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/setupTests.js +0 -0
  98. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/types/WorkflowTypes.ts +0 -0
  99. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/views/AboutView.tsx +0 -0
  100. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/views/ConfigView.tsx +0 -0
  101. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/views/GlobalConfigView.tsx +0 -0
  102. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/src/views/WorkflowView.tsx +0 -0
  103. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_app/ui/neat-app/tsconfig.json +0 -0
  104. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_config.py +0 -0
  105. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/__init__.py +0 -0
  106. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/_shared.py +0 -0
  107. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/_tracking/__init__.py +0 -0
  108. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/_tracking/base.py +0 -0
  109. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/_tracking/log.py +0 -0
  110. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
  111. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/examples/Knowledge-Graph-Nordic44.xml +0 -0
  112. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/examples/__init__.py +0 -0
  113. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
  114. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/extractors/__init__.py +0 -0
  115. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/extractors/_base.py +0 -0
  116. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/extractors/_classic_cdf/__init__.py +0 -0
  117. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/extractors/_classic_cdf/_assets.py +0 -0
  118. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/extractors/_classic_cdf/_base.py +0 -0
  119. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/extractors/_classic_cdf/_classic.py +0 -0
  120. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/extractors/_classic_cdf/_data_sets.py +0 -0
  121. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/extractors/_classic_cdf/_events.py +0 -0
  122. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/extractors/_classic_cdf/_files.py +0 -0
  123. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/extractors/_classic_cdf/_labels.py +0 -0
  124. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/extractors/_classic_cdf/_relationships.py +0 -0
  125. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/extractors/_classic_cdf/_sequences.py +0 -0
  126. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/extractors/_classic_cdf/_timeseries.py +0 -0
  127. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/extractors/_dexpi.py +0 -0
  128. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/extractors/_dms.py +0 -0
  129. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/extractors/_iodd.py +0 -0
  130. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/extractors/_mock_graph_generator.py +0 -0
  131. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/extractors/_rdf_file.py +0 -0
  132. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/loaders/__init__.py +0 -0
  133. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/loaders/_base.py +0 -0
  134. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/loaders/_rdf2asset.py +0 -0
  135. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/loaders/_rdf2dms.py +0 -0
  136. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/models.py +0 -0
  137. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/queries/__init__.py +0 -0
  138. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/queries/_base.py +0 -0
  139. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/queries/_construct.py +0 -0
  140. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/queries/_shared.py +0 -0
  141. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/transformers/__init__.py +0 -0
  142. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/transformers/_base.py +0 -0
  143. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/transformers/_classic_cdf.py +0 -0
  144. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/transformers/_iodd.py +0 -0
  145. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/transformers/_prune_graph.py +0 -0
  146. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/transformers/_rdfpath.py +0 -0
  147. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_graph/transformers/_value_type.py +0 -0
  148. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_issues/__init__.py +0 -0
  149. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_issues/errors/__init__.py +0 -0
  150. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_issues/errors/_external.py +0 -0
  151. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_issues/errors/_general.py +0 -0
  152. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_issues/errors/_properties.py +0 -0
  153. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_issues/errors/_workflow.py +0 -0
  154. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_issues/formatters.py +0 -0
  155. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_issues/warnings/__init__.py +0 -0
  156. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_issues/warnings/_external.py +0 -0
  157. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_issues/warnings/_general.py +0 -0
  158. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_issues/warnings/_properties.py +0 -0
  159. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_issues/warnings/_resources.py +0 -0
  160. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_issues/warnings/user_modeling.py +0 -0
  161. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/__init__.py +0 -0
  162. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/_constants.py +0 -0
  163. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/_shared.py +0 -0
  164. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/analysis/__init__.py +0 -0
  165. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/analysis/_asset.py +0 -0
  166. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/analysis/_base.py +0 -0
  167. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/analysis/_dms.py +0 -0
  168. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/analysis/_information.py +0 -0
  169. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/catalog/__init__.py +0 -0
  170. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/catalog/info-rules-imf.xlsx +0 -0
  171. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/exporters/__init__.py +0 -0
  172. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/exporters/_base.py +0 -0
  173. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/exporters/_rules2dms.py +0 -0
  174. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/exporters/_rules2instance_template.py +0 -0
  175. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/exporters/_rules2ontology.py +0 -0
  176. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/exporters/_rules2yaml.py +0 -0
  177. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/exporters/_validation.py +0 -0
  178. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/__init__.py +0 -0
  179. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_base.py +0 -0
  180. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_dms2rules.py +0 -0
  181. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_dtdl2rules/__init__.py +0 -0
  182. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_dtdl2rules/_unit_lookup.py +0 -0
  183. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_dtdl2rules/dtdl_converter.py +0 -0
  184. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_dtdl2rules/dtdl_importer.py +0 -0
  185. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_dtdl2rules/spec.py +0 -0
  186. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_rdf/__init__.py +0 -0
  187. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_rdf/_base.py +0 -0
  188. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_rdf/_imf2rules/__init__.py +0 -0
  189. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_rdf/_imf2rules/_imf2classes.py +0 -0
  190. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_rdf/_imf2rules/_imf2metadata.py +0 -0
  191. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_rdf/_imf2rules/_imf2properties.py +0 -0
  192. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_rdf/_imf2rules/_imf2rules.py +0 -0
  193. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_rdf/_inference2rules.py +0 -0
  194. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_rdf/_owl2rules/__init__.py +0 -0
  195. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_rdf/_owl2rules/_owl2classes.py +0 -0
  196. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_rdf/_owl2rules/_owl2metadata.py +0 -0
  197. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_rdf/_owl2rules/_owl2properties.py +0 -0
  198. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_rdf/_owl2rules/_owl2rules.py +0 -0
  199. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_rdf/_shared.py +0 -0
  200. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_spreadsheet2rules.py +0 -0
  201. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/importers/_yaml2rules.py +0 -0
  202. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/__init__.py +0 -0
  203. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/_base_input.py +0 -0
  204. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/_base_rules.py +0 -0
  205. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/_rdfpath.py +0 -0
  206. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/_types.py +0 -0
  207. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/asset/__init__.py +0 -0
  208. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/asset/_rules.py +0 -0
  209. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/asset/_rules_input.py +0 -0
  210. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/asset/_validation.py +0 -0
  211. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/data_types.py +0 -0
  212. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/dms/__init__.py +0 -0
  213. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/dms/_exporter.py +0 -0
  214. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/dms/_schema.py +0 -0
  215. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/dms/_validation.py +0 -0
  216. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/domain.py +0 -0
  217. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/entities/__init__.py +0 -0
  218. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/entities/_constants.py +0 -0
  219. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/entities/_loaders.py +0 -0
  220. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/entities/_multi_value.py +0 -0
  221. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/entities/_single_value.py +0 -0
  222. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/entities/_types.py +0 -0
  223. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/entities/_wrapped.py +0 -0
  224. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/information/__init__.py +0 -0
  225. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/information/_validation.py +0 -0
  226. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/mapping/__init__.py +0 -0
  227. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/mapping/_base.py +0 -0
  228. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/models/mapping/_classic2core.py +0 -0
  229. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/transformers/_base.py +0 -0
  230. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/transformers/_mapping.py +0 -0
  231. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/transformers/_pipelines.py +0 -0
  232. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_rules/transformers/_verification.py +0 -0
  233. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_session/__init__.py +0 -0
  234. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_session/_wizard.py +0 -0
  235. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_shared.py +0 -0
  236. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_store/__init__.py +0 -0
  237. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_store/_provenance.py +0 -0
  238. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_utils/__init__.py +0 -0
  239. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_utils/auth.py +0 -0
  240. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_utils/auxiliary.py +0 -0
  241. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_utils/cdf/__init__.py +0 -0
  242. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_utils/cdf/data_classes.py +0 -0
  243. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_utils/cdf/loaders/__init__.py +0 -0
  244. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_utils/cdf/loaders/_base.py +0 -0
  245. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_utils/cdf/loaders/_data_modeling.py +0 -0
  246. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_utils/cdf/loaders/_ingestion.py +0 -0
  247. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_utils/rdf_.py +0 -0
  248. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_utils/spreadsheet.py +0 -0
  249. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_utils/text.py +0 -0
  250. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_utils/time_.py +0 -0
  251. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_utils/upload.py +0 -0
  252. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_utils/xml_.py +0 -0
  253. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/__init__.py +0 -0
  254. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/base.py +0 -0
  255. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/cdf_store.py +0 -0
  256. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/examples/Export_DMS/workflow.yaml +0 -0
  257. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/examples/Export_Semantic_Data_Model/workflow.yaml +0 -0
  258. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/examples/Import_DMS/workflow.yaml +0 -0
  259. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/examples/Validate_Rules/workflow.yaml +0 -0
  260. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/examples/Validate_Solution_Model/workflow.yaml +0 -0
  261. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/manager.py +0 -0
  262. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/model.py +0 -0
  263. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/steps/__init__.py +0 -0
  264. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/steps/data_contracts.py +0 -0
  265. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/steps/lib/__init__.py +0 -0
  266. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/steps/lib/current/__init__.py +0 -0
  267. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/steps/lib/current/graph_extractor.py +0 -0
  268. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/steps/lib/current/graph_loader.py +0 -0
  269. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/steps/lib/current/graph_store.py +0 -0
  270. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/steps/lib/current/rules_exporter.py +0 -0
  271. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/steps/lib/current/rules_importer.py +0 -0
  272. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/steps/lib/current/rules_validator.py +0 -0
  273. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/steps/lib/io/__init__.py +0 -0
  274. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/steps/lib/io/io_steps.py +0 -0
  275. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/steps/step_model.py +0 -0
  276. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/steps_registry.py +0 -0
  277. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/tasks.py +0 -0
  278. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/triggers.py +0 -0
  279. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/_workflows/utils.py +0 -0
  280. {cognite_neat-0.94.0 → cognite_neat-0.96.0}/cognite/neat/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cognite-neat
3
- Version: 0.94.0
3
+ Version: 0.96.0
4
4
  Summary: Knowledge graph transformation
5
5
  Home-page: https://cognite-neat.readthedocs-hosted.com/
6
6
  License: Apache-2.0
@@ -17,7 +17,6 @@ Provides-Extra: all
17
17
  Provides-Extra: docs
18
18
  Provides-Extra: google
19
19
  Provides-Extra: graphql
20
- Provides-Extra: jupyter
21
20
  Provides-Extra: oxi
22
21
  Provides-Extra: service
23
22
  Requires-Dist: PyYAML
@@ -28,9 +27,7 @@ Requires-Dist: fastapi (>=0,<1) ; extra == "service" or extra == "all"
28
27
  Requires-Dist: google-api-python-client ; extra == "google"
29
28
  Requires-Dist: google-auth-oauthlib ; extra == "google"
30
29
  Requires-Dist: gspread ; extra == "google"
31
- Requires-Dist: ipycytoscape (>=1.3.3,<2.0.0)
32
30
  Requires-Dist: jinja2 (>=3.1.2,<4.0.0) ; extra == "graphql" or extra == "all"
33
- Requires-Dist: matplotlib (>=3.9.2,<4.0.0)
34
31
  Requires-Dist: mkdocs ; extra == "docs"
35
32
  Requires-Dist: mkdocs-autorefs (>=0.5.0,<0.6.0) ; extra == "docs"
36
33
  Requires-Dist: mkdocs-git-authors-plugin ; extra == "docs"
@@ -49,9 +46,10 @@ Requires-Dist: pydantic (>=2,<3)
49
46
  Requires-Dist: pymdown-extensions ; extra == "docs"
50
47
  Requires-Dist: pyoxigraph (==0.3.19) ; extra == "oxi" or extra == "all"
51
48
  Requires-Dist: python-multipart (==0.0.9) ; extra == "service" or extra == "all"
49
+ Requires-Dist: pyvis (>=0.3.2,<0.4.0)
52
50
  Requires-Dist: rdflib
53
51
  Requires-Dist: requests
54
- Requires-Dist: rich[jupyter] (>=13.7.1,<14.0.0) ; extra == "jupyter"
52
+ Requires-Dist: rich[jupyter] (>=13.7.1,<14.0.0)
55
53
  Requires-Dist: schedule (>=1,<2) ; extra == "service" or extra == "all"
56
54
  Requires-Dist: tomli (>=2.0.1,<3.0.0) ; python_version < "3.11"
57
55
  Requires-Dist: typing_extensions (>=4.8,<5.0) ; python_version < "3.11"
@@ -5,6 +5,22 @@ from rdflib import DCTERMS, OWL, RDF, RDFS, SKOS, XSD, Namespace, URIRef
5
5
 
6
6
  from cognite import neat
7
7
 
8
+
9
+ def _is_in_notebook() -> bool:
10
+ try:
11
+ from IPython import get_ipython
12
+
13
+ if "IPKernelApp" not in get_ipython().config: # pragma: no cover
14
+ return False
15
+ except ImportError:
16
+ return False
17
+ except AttributeError:
18
+ return False
19
+ return True
20
+
21
+
22
+ IN_NOTEBOOK = _is_in_notebook()
23
+
8
24
  PACKAGE_DIRECTORY = Path(neat.__file__).parent
9
25
  COGNITE_MODELS = (
10
26
  DataModelId("cdf_cdm", "CogniteCore", "v1"),
@@ -11,7 +11,12 @@ from typing import Any, ClassVar, Literal, TypeAlias, TypeVar, get_args, get_ori
11
11
  from warnings import WarningMessage
12
12
 
13
13
  import pandas as pd
14
- from cognite.client.data_classes.data_modeling import ContainerId, PropertyId, ViewId
14
+ from cognite.client.data_classes.data_modeling import (
15
+ ContainerId,
16
+ DataModelId,
17
+ PropertyId,
18
+ ViewId,
19
+ )
15
20
  from pydantic_core import ErrorDetails
16
21
 
17
22
  from cognite.neat._utils.spreadsheet import SpreadsheetRead
@@ -67,7 +72,7 @@ class NeatIssue:
67
72
  extra: ClassVar[str | None] = None
68
73
  fix: ClassVar[str | None] = None
69
74
 
70
- def as_message(self) -> str:
75
+ def as_message(self, include_type: bool = True) -> str:
71
76
  """Return a human-readable message for the issue."""
72
77
  template = self.__doc__
73
78
  if not template:
@@ -79,8 +84,10 @@ class NeatIssue:
79
84
  msg += "\n" + self.extra.format(**variables)
80
85
  if self.fix:
81
86
  msg += f"\nFix: {self.fix.format(**variables)}"
82
- name = type(self).__name__
83
- return f"{name}: {msg}"
87
+ if include_type:
88
+ name = type(self).__name__
89
+ msg = f"{name}: {msg}"
90
+ return msg
84
91
 
85
92
  def _get_variables(self) -> tuple[dict[str, str], bool]:
86
93
  variables: dict[str, str] = {}
@@ -123,6 +130,8 @@ class NeatIssue:
123
130
  return value.dump()
124
131
  elif isinstance(value, PropertyId):
125
132
  return value.dump(camel_case=True)
133
+ elif isinstance(value, DataModelId):
134
+ return value.dump(camel_case=True, include_type=False)
126
135
  raise ValueError(f"Unsupported type: {type(value)}")
127
136
 
128
137
  @classmethod
@@ -169,6 +178,8 @@ class NeatIssue:
169
178
  return tuple(cls._load_value(subtype, item) for item in value)
170
179
  elif type_ is ViewId:
171
180
  return ViewId.load(value)
181
+ elif type_ is DataModelId:
182
+ return DataModelId.load(value)
172
183
  elif type_ is PropertyId:
173
184
  return PropertyId.load(value)
174
185
  elif type_ is ContainerId:
@@ -266,7 +277,7 @@ class DefaultPydanticError(NeatError, ValueError):
266
277
  msg=error["msg"],
267
278
  )
268
279
 
269
- def as_message(self) -> str:
280
+ def as_message(self, include_type: bool = True) -> str:
270
281
  if self.loc and len(self.loc) == 1:
271
282
  return f"{self.loc[0]} sheet: {self.msg}"
272
283
  elif self.loc and len(self.loc) == 2:
@@ -307,7 +318,7 @@ class RowError(NeatError, ValueError):
307
318
  url=str(url) if (url := error.get("url")) else None,
308
319
  )
309
320
 
310
- def as_message(self) -> str:
321
+ def as_message(self, include_type: bool = True) -> str:
311
322
  input_str = str(self.input) if self.input is not None else ""
312
323
  input_str = input_str[:50] + "..." if len(input_str) > 50 else input_str
313
324
  output = (
@@ -350,7 +361,7 @@ class DefaultWarning(NeatWarning):
350
361
  source=warning.source,
351
362
  )
352
363
 
353
- def as_message(self) -> str:
364
+ def as_message(self, include_type: bool = True) -> str:
354
365
  return str(self.warning)
355
366
 
356
367
 
@@ -421,7 +432,12 @@ class IssueList(NeatIssueList[NeatIssue]):
421
432
  def _repr_html_(self) -> str | None:
422
433
  if not self:
423
434
  return "<p>'No issues found'</p>"
424
- return super()._repr_html_()
435
+ df = self.to_pandas()
436
+ agg_df = df["NeatIssue"].value_counts().to_frame()
437
+ if len(agg_df) < 10:
438
+ return agg_df._repr_html_() # type: ignore[operator]
439
+ else:
440
+ return agg_df.head()._repr_html_() # type: ignore[operator]
425
441
 
426
442
 
427
443
  T_Cls = TypeVar("T_Cls")
@@ -40,7 +40,7 @@ class ResourceNotFoundError(ResourceError, Generic[T_Identifier, T_ReferenceIden
40
40
  referred_type: ResourceType | None = None
41
41
  more: str | None = None
42
42
 
43
- def as_message(self) -> str:
43
+ def as_message(self, include_type: bool = True) -> str:
44
44
  msg = (self.__doc__ or "").format(resource_type=self.resource_type, identifier=self.identifier)
45
45
  if self.referred_by and self.referred_type:
46
46
  msg += self.extra.format(referred_type=self.referred_type, referred_by=self.referred_by)
@@ -99,7 +99,7 @@ class ResourceChangedError(ResourceError[T_Identifier]):
99
99
  changed_properties: frozenset[str]
100
100
  changed_attributes: frozenset[str]
101
101
 
102
- def as_message(self) -> str:
102
+ def as_message(self, include_type: bool = True) -> str:
103
103
  if self.changed_properties:
104
104
  changed = f" properties {humanize_collection(self.changed_properties)}."
105
105
  elif self.changed_attributes:
@@ -2,7 +2,7 @@ from abc import ABC
2
2
  from dataclasses import dataclass
3
3
  from typing import ClassVar
4
4
 
5
- from cognite.client.data_classes.data_modeling import ViewId
5
+ from cognite.client.data_classes.data_modeling import DataModelId, ViewId
6
6
 
7
7
  from cognite.neat._constants import DMS_VIEW_CONTAINER_SIZE_LIMIT
8
8
  from cognite.neat._issues import NeatWarning
@@ -18,7 +18,7 @@ class BreakingModelingPrincipleWarning(NeatWarning, ABC):
18
18
  url: ClassVar[str]
19
19
  specific: str
20
20
 
21
- def as_message(self) -> str:
21
+ def as_message(self, include_type: bool = True) -> str:
22
22
  principle = type(self).__name__.removesuffix("Warning")
23
23
  url = f"{_BASE_URL}#{self.url}"
24
24
  return (self.__doc__ or "").format(
@@ -90,3 +90,21 @@ class NotSupportedHasDataFilterLimitWarning(CDFNotSupportedWarning):
90
90
  view_id: ViewId
91
91
  count: int
92
92
  limit: int = DMS_VIEW_CONTAINER_SIZE_LIMIT
93
+
94
+
95
+ @dataclass(unsafe_hash=True)
96
+ class EnterpriseModelNotBuildOnTopOfCDMWarning(UserModelingWarning):
97
+ """Enterprise data model being build on top {reference_model_id}. This is not recommended."""
98
+
99
+ fix = "Always build Enterprise Data Model on top of Cognite Data Model such as Core Data Model."
100
+
101
+ reference_model_id: DataModelId
102
+
103
+
104
+ @dataclass(unsafe_hash=True)
105
+ class SolutionModelBuildOnTopOfCDMWarning(UserModelingWarning):
106
+ """Solution data model being build on top Cognite Data Model {reference_model_id}. This is not recommended."""
107
+
108
+ fix = "Always build solution data model on top of enterprise data model."
109
+
110
+ reference_model_id: DataModelId
@@ -13,6 +13,7 @@ from openpyxl.styles import Alignment, Border, Font, PatternFill, Side
13
13
  from openpyxl.worksheet.worksheet import Worksheet
14
14
  from rdflib import Namespace
15
15
 
16
+ from cognite.neat._constants import COGNITE_MODELS
16
17
  from cognite.neat._rules._shared import VerifiedRules
17
18
  from cognite.neat._rules.models import (
18
19
  DataModelType,
@@ -21,6 +22,7 @@ from cognite.neat._rules.models import (
21
22
  SheetRow,
22
23
  )
23
24
  from cognite.neat._rules.models.dms import DMSMetadata
25
+ from cognite.neat._rules.models.dms._rules import DMSRules
24
26
  from cognite.neat._rules.models.domain import DomainMetadata
25
27
  from cognite.neat._rules.models.information import InformationMetadata
26
28
  from cognite.neat._rules.models.information._rules import InformationRules
@@ -134,8 +136,12 @@ class ExcelExporter(BaseExporter[VerifiedRules, Workbook]):
134
136
  self._write_metadata_sheet(workbook, dumped_last_rules["Metadata"], sheet_prefix="Last")
135
137
 
136
138
  if dumped_reference_rules:
137
- self._write_sheets(workbook, dumped_reference_rules, rules, sheet_prefix="Ref")
138
- self._write_metadata_sheet(workbook, dumped_reference_rules["Metadata"], sheet_prefix="Ref")
139
+ if isinstance(rules.reference, DMSRules):
140
+ sheet_prefix = "CDM" if rules.reference.metadata.as_data_model_id() in COGNITE_MODELS else "Ref"
141
+ else:
142
+ sheet_prefix = "Ref"
143
+ self._write_sheets(workbook, dumped_reference_rules, rules, sheet_prefix=sheet_prefix)
144
+ self._write_metadata_sheet(workbook, dumped_reference_rules["Metadata"], sheet_prefix=sheet_prefix)
139
145
 
140
146
  if isinstance(rules, InformationRules) and rules.prefixes:
141
147
  self._write_prefixes_sheet(workbook, rules.prefixes)
@@ -5,6 +5,7 @@ from collections.abc import Hashable
5
5
  from datetime import datetime
6
6
  from typing import TYPE_CHECKING, Any, ClassVar, Literal
7
7
 
8
+ import pandas as pd
8
9
  from cognite.client import data_modeling as dm
9
10
  from pydantic import Field, field_serializer, field_validator, model_validator
10
11
  from pydantic_core.core_schema import SerializationInfo, ValidationInfo
@@ -451,3 +452,18 @@ class DMSRules(BaseRules):
451
452
  from ._exporter import _DMSExporter
452
453
 
453
454
  return _DMSExporter(self, include_pipeline, instance_space).to_schema()
455
+
456
+ def _repr_html_(self) -> str:
457
+ summary = {
458
+ "type": "Physical Data Model",
459
+ "intended for": "DMS Architect",
460
+ "name": self.metadata.name,
461
+ "space": self.metadata.space,
462
+ "external_id": self.metadata.external_id,
463
+ "version": self.metadata.version,
464
+ "views": len(self.views),
465
+ "containers": len(self.containers) if self.containers else 0,
466
+ "properties": len(self.properties),
467
+ }
468
+
469
+ return pd.DataFrame([summary]).T.rename(columns={0: ""})._repr_html_() # type: ignore
@@ -3,6 +3,7 @@ from dataclasses import dataclass
3
3
  from datetime import datetime
4
4
  from typing import Any, Literal
5
5
 
6
+ import pandas as pd
6
7
  from cognite.client import data_modeling as dm
7
8
 
8
9
  from cognite.neat._rules.models._base_input import InputComponent, InputRules
@@ -291,3 +292,18 @@ class DMSInputRules(InputRules[DMSRules]):
291
292
  "Last": last,
292
293
  "Reference": reference,
293
294
  }
295
+
296
+ def _repr_html_(self) -> str:
297
+ summary = {
298
+ "type": "Physical Data Model",
299
+ "intended for": "DMS Architect",
300
+ "name": self.metadata.name,
301
+ "space": self.metadata.space,
302
+ "external_id": self.metadata.external_id,
303
+ "version": self.metadata.version,
304
+ "views": len(self.views),
305
+ "containers": len(self.containers) if self.containers else 0,
306
+ "properties": len(self.properties),
307
+ }
308
+
309
+ return pd.DataFrame([summary]).T.rename(columns={0: ""})._repr_html_() # type: ignore
@@ -4,6 +4,7 @@ from collections.abc import Hashable
4
4
  from datetime import datetime
5
5
  from typing import TYPE_CHECKING, Any, ClassVar
6
6
 
7
+ import pandas as pd
7
8
  from pydantic import Field, field_serializer, field_validator, model_validator
8
9
  from pydantic_core.core_schema import SerializationInfo
9
10
  from rdflib import Namespace
@@ -380,3 +381,16 @@ class InformationRules(BaseRules):
380
381
  from cognite.neat._rules.transformers._converters import _InformationRulesConverter
381
382
 
382
383
  return _InformationRulesConverter(self).as_dms_rules()
384
+
385
+ def _repr_html_(self) -> str:
386
+ summary = {
387
+ "type": "Logical Data Model",
388
+ "intended for": "Information Architect",
389
+ "name": self.metadata.name,
390
+ "external_id": self.metadata.prefix,
391
+ "version": self.metadata.version,
392
+ "classes": len(self.classes),
393
+ "properties": len(self.properties),
394
+ }
395
+
396
+ return pd.DataFrame([summary]).T.rename(columns={0: ""})._repr_html_() # type: ignore
@@ -2,6 +2,7 @@ from dataclasses import dataclass, field
2
2
  from datetime import datetime
3
3
  from typing import Any, Literal
4
4
 
5
+ import pandas as pd
5
6
  from rdflib import Namespace
6
7
 
7
8
  from cognite.neat._rules.models._base_input import InputComponent, InputRules
@@ -144,3 +145,16 @@ class InformationInputRules(InputRules[InformationRules]):
144
145
  Last=last,
145
146
  Reference=reference,
146
147
  )
148
+
149
+ def _repr_html_(self) -> str:
150
+ summary = {
151
+ "type": "Logical Data Model",
152
+ "intended for": "Information Architect",
153
+ "name": self.metadata.name,
154
+ "external_id": self.metadata.prefix,
155
+ "version": self.metadata.version,
156
+ "classes": len(self.classes),
157
+ "properties": len(self.properties),
158
+ }
159
+
160
+ return pd.DataFrame([summary]).T.rename(columns={0: ""})._repr_html_() # type: ignore
@@ -6,6 +6,7 @@ from ._converters import (
6
6
  InformationToAsset,
7
7
  InformationToDMS,
8
8
  ReduceCogniteModel,
9
+ SetIDDMSModel,
9
10
  ToCompliantEntities,
10
11
  ToExtension,
11
12
  )
@@ -31,4 +32,5 @@ __all__ = [
31
32
  "RuleMapper",
32
33
  "ToExtension",
33
34
  "ReduceCogniteModel",
35
+ "SetIDDMSModel",
34
36
  ]