cognite-neat 0.87.6__tar.gz → 0.88.1__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.
Files changed (330) hide show
  1. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/PKG-INFO +2 -6
  2. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/README.md +1 -5
  3. cognite_neat-0.88.1/cognite/neat/_version.py +1 -0
  4. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/api/data_classes/rest.py +0 -19
  5. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/api/explorer.py +6 -4
  6. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/api/routers/configuration.py +1 -1
  7. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/api/routers/crud.py +11 -21
  8. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/api/routers/workflows.py +24 -94
  9. cognite_neat-0.88.1/cognite/neat/app/ui/neat-app/build/asset-manifest.json +14 -0
  10. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/ui/neat-app/build/index.html +1 -1
  11. cognite_neat-0.87.6/cognite/neat/app/ui/neat-app/build/static/css/main.38a62222.css → cognite_neat-0.88.1/cognite/neat/app/ui/neat-app/build/static/css/main.72e3d92e.css +2 -2
  12. cognite_neat-0.88.1/cognite/neat/app/ui/neat-app/build/static/css/main.72e3d92e.css.map +1 -0
  13. cognite_neat-0.88.1/cognite/neat/app/ui/neat-app/build/static/js/main.5a52cf09.js +3 -0
  14. cognite_neat-0.87.6/cognite/neat/app/ui/neat-app/build/static/js/main.ec7f72e2.js.LICENSE.txt → cognite_neat-0.88.1/cognite/neat/app/ui/neat-app/build/static/js/main.5a52cf09.js.LICENSE.txt +0 -9
  15. cognite_neat-0.88.1/cognite/neat/app/ui/neat-app/build/static/js/main.5a52cf09.js.map +1 -0
  16. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/config.py +44 -27
  17. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/exceptions.py +6 -0
  18. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/extractors/_classic_cdf/_assets.py +21 -73
  19. cognite_neat-0.88.1/cognite/neat/graph/extractors/_classic_cdf/_base.py +102 -0
  20. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/extractors/_classic_cdf/_events.py +46 -42
  21. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/extractors/_classic_cdf/_files.py +41 -45
  22. cognite_neat-0.88.1/cognite/neat/graph/extractors/_classic_cdf/_labels.py +114 -0
  23. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/extractors/_classic_cdf/_relationships.py +49 -27
  24. cognite_neat-0.88.1/cognite/neat/graph/extractors/_classic_cdf/_sequences.py +137 -0
  25. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/extractors/_classic_cdf/_timeseries.py +47 -49
  26. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/queries/_base.py +22 -29
  27. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/queries/_shared.py +1 -1
  28. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/stores/_base.py +24 -11
  29. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/transformers/_rdfpath.py +3 -2
  30. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/issues.py +8 -0
  31. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/exporters/_rules2ontology.py +28 -20
  32. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/exporters/_validation.py +15 -21
  33. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/importers/_inference2rules.py +31 -35
  34. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/importers/_owl2rules/_owl2metadata.py +3 -7
  35. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/importers/_spreadsheet2rules.py +30 -27
  36. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/issues/dms.py +20 -0
  37. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/issues/importing.py +15 -0
  38. cognite_neat-0.88.1/cognite/neat/rules/issues/ontology.py +298 -0
  39. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/issues/spreadsheet.py +48 -0
  40. cognite_neat-0.88.1/cognite/neat/rules/issues/tables.py +72 -0
  41. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/_rdfpath.py +4 -4
  42. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/_types/_field.py +9 -19
  43. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/information/_rules.py +5 -4
  44. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/utils/rdf_.py +17 -9
  45. cognite_neat-0.88.1/cognite/neat/utils/regex_patterns.py +52 -0
  46. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/steps/data_contracts.py +17 -43
  47. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/steps/lib/current/graph_extractor.py +28 -24
  48. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/steps/lib/current/graph_loader.py +4 -21
  49. cognite_neat-0.88.1/cognite/neat/workflows/steps/lib/current/graph_store.py +48 -0
  50. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/steps_registry.py +5 -7
  51. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/pyproject.toml +1 -1
  52. cognite_neat-0.87.6/cognite/neat/_version.py +0 -1
  53. cognite_neat-0.87.6/cognite/neat/app/api/routers/core.py +0 -91
  54. cognite_neat-0.87.6/cognite/neat/app/api/routers/data_exploration.py +0 -336
  55. cognite_neat-0.87.6/cognite/neat/app/api/routers/rules.py +0 -203
  56. cognite_neat-0.87.6/cognite/neat/app/ui/neat-app/build/asset-manifest.json +0 -14
  57. cognite_neat-0.87.6/cognite/neat/app/ui/neat-app/build/static/css/main.38a62222.css.map +0 -1
  58. cognite_neat-0.87.6/cognite/neat/app/ui/neat-app/build/static/js/main.ec7f72e2.js +0 -3
  59. cognite_neat-0.87.6/cognite/neat/app/ui/neat-app/build/static/js/main.ec7f72e2.js.map +0 -1
  60. cognite_neat-0.87.6/cognite/neat/graph/extractors/_classic_cdf/_labels.py +0 -91
  61. cognite_neat-0.87.6/cognite/neat/graph/extractors/_classic_cdf/_sequences.py +0 -140
  62. cognite_neat-0.87.6/cognite/neat/graph/stores/_oxrdflib.py +0 -247
  63. cognite_neat-0.87.6/cognite/neat/legacy/graph/__init__.py +0 -3
  64. cognite_neat-0.87.6/cognite/neat/legacy/graph/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -20182
  65. cognite_neat-0.87.6/cognite/neat/legacy/graph/examples/Knowledge-Graph-Nordic44.xml +0 -20163
  66. cognite_neat-0.87.6/cognite/neat/legacy/graph/examples/__init__.py +0 -10
  67. cognite_neat-0.87.6/cognite/neat/legacy/graph/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
  68. cognite_neat-0.87.6/cognite/neat/legacy/graph/exceptions.py +0 -90
  69. cognite_neat-0.87.6/cognite/neat/legacy/graph/extractors/__init__.py +0 -6
  70. cognite_neat-0.87.6/cognite/neat/legacy/graph/extractors/_base.py +0 -14
  71. cognite_neat-0.87.6/cognite/neat/legacy/graph/extractors/_dexpi.py +0 -44
  72. cognite_neat-0.87.6/cognite/neat/legacy/graph/extractors/_graph_capturing_sheet.py +0 -403
  73. cognite_neat-0.87.6/cognite/neat/legacy/graph/extractors/_mock_graph_generator.py +0 -361
  74. cognite_neat-0.87.6/cognite/neat/legacy/graph/loaders/__init__.py +0 -23
  75. cognite_neat-0.87.6/cognite/neat/legacy/graph/loaders/_asset_loader.py +0 -511
  76. cognite_neat-0.87.6/cognite/neat/legacy/graph/loaders/_base.py +0 -67
  77. cognite_neat-0.87.6/cognite/neat/legacy/graph/loaders/_exceptions.py +0 -85
  78. cognite_neat-0.87.6/cognite/neat/legacy/graph/loaders/core/labels.py +0 -58
  79. cognite_neat-0.87.6/cognite/neat/legacy/graph/loaders/core/models.py +0 -136
  80. cognite_neat-0.87.6/cognite/neat/legacy/graph/loaders/core/rdf_to_assets.py +0 -1046
  81. cognite_neat-0.87.6/cognite/neat/legacy/graph/loaders/core/rdf_to_relationships.py +0 -559
  82. cognite_neat-0.87.6/cognite/neat/legacy/graph/loaders/rdf_to_dms.py +0 -309
  83. cognite_neat-0.87.6/cognite/neat/legacy/graph/loaders/validator.py +0 -87
  84. cognite_neat-0.87.6/cognite/neat/legacy/graph/models.py +0 -6
  85. cognite_neat-0.87.6/cognite/neat/legacy/graph/stores/__init__.py +0 -13
  86. cognite_neat-0.87.6/cognite/neat/legacy/graph/stores/_base.py +0 -400
  87. cognite_neat-0.87.6/cognite/neat/legacy/graph/stores/_graphdb_store.py +0 -52
  88. cognite_neat-0.87.6/cognite/neat/legacy/graph/stores/_memory_store.py +0 -43
  89. cognite_neat-0.87.6/cognite/neat/legacy/graph/stores/_oxigraph_store.py +0 -151
  90. cognite_neat-0.87.6/cognite/neat/legacy/graph/stores/_oxrdflib.py +0 -247
  91. cognite_neat-0.87.6/cognite/neat/legacy/graph/stores/_rdf_to_graph.py +0 -42
  92. cognite_neat-0.87.6/cognite/neat/legacy/graph/transformations/entity_matcher.py +0 -101
  93. cognite_neat-0.87.6/cognite/neat/legacy/graph/transformations/query_generator/__init__.py +0 -3
  94. cognite_neat-0.87.6/cognite/neat/legacy/graph/transformations/query_generator/sparql.py +0 -575
  95. cognite_neat-0.87.6/cognite/neat/legacy/graph/transformations/transformer.py +0 -322
  96. cognite_neat-0.87.6/cognite/neat/legacy/rules/analysis.py +0 -231
  97. cognite_neat-0.87.6/cognite/neat/legacy/rules/examples/Rules-Nordic44-to-graphql.xlsx +0 -0
  98. cognite_neat-0.87.6/cognite/neat/legacy/rules/examples/Rules-Nordic44.xlsx +0 -0
  99. cognite_neat-0.87.6/cognite/neat/legacy/rules/examples/__init__.py +0 -18
  100. cognite_neat-0.87.6/cognite/neat/legacy/rules/examples/power-grid-containers.yaml +0 -124
  101. cognite_neat-0.87.6/cognite/neat/legacy/rules/examples/power-grid-example.xlsx +0 -0
  102. cognite_neat-0.87.6/cognite/neat/legacy/rules/examples/power-grid-model.yaml +0 -224
  103. cognite_neat-0.87.6/cognite/neat/legacy/rules/examples/rules-template.xlsx +0 -0
  104. cognite_neat-0.87.6/cognite/neat/legacy/rules/examples/sheet2cdf-transformation-rules.xlsx +0 -0
  105. cognite_neat-0.87.6/cognite/neat/legacy/rules/examples/skos-rules.xlsx +0 -0
  106. cognite_neat-0.87.6/cognite/neat/legacy/rules/examples/source-to-solution-mapping-rules.xlsx +0 -0
  107. cognite_neat-0.87.6/cognite/neat/legacy/rules/exceptions.py +0 -2972
  108. cognite_neat-0.87.6/cognite/neat/legacy/rules/exporters/__init__.py +0 -20
  109. cognite_neat-0.87.6/cognite/neat/legacy/rules/exporters/_base.py +0 -45
  110. cognite_neat-0.87.6/cognite/neat/legacy/rules/exporters/_core/__init__.py +0 -5
  111. cognite_neat-0.87.6/cognite/neat/legacy/rules/exporters/_core/rules2labels.py +0 -24
  112. cognite_neat-0.87.6/cognite/neat/legacy/rules/exporters/_rules2dms.py +0 -885
  113. cognite_neat-0.87.6/cognite/neat/legacy/rules/exporters/_rules2excel.py +0 -213
  114. cognite_neat-0.87.6/cognite/neat/legacy/rules/exporters/_rules2graphql.py +0 -183
  115. cognite_neat-0.87.6/cognite/neat/legacy/rules/exporters/_rules2ontology.py +0 -524
  116. cognite_neat-0.87.6/cognite/neat/legacy/rules/exporters/_rules2pydantic_models.py +0 -748
  117. cognite_neat-0.87.6/cognite/neat/legacy/rules/exporters/_rules2rules.py +0 -105
  118. cognite_neat-0.87.6/cognite/neat/legacy/rules/exporters/_rules2triples.py +0 -38
  119. cognite_neat-0.87.6/cognite/neat/legacy/rules/exporters/_validation.py +0 -146
  120. cognite_neat-0.87.6/cognite/neat/legacy/rules/importers/__init__.py +0 -22
  121. cognite_neat-0.87.6/cognite/neat/legacy/rules/importers/_base.py +0 -66
  122. cognite_neat-0.87.6/cognite/neat/legacy/rules/importers/_dict2rules.py +0 -158
  123. cognite_neat-0.87.6/cognite/neat/legacy/rules/importers/_dms2rules.py +0 -194
  124. cognite_neat-0.87.6/cognite/neat/legacy/rules/importers/_graph2rules.py +0 -308
  125. cognite_neat-0.87.6/cognite/neat/legacy/rules/importers/_json2rules.py +0 -39
  126. cognite_neat-0.87.6/cognite/neat/legacy/rules/importers/_owl2rules/_owl2classes.py +0 -239
  127. cognite_neat-0.87.6/cognite/neat/legacy/rules/importers/_owl2rules/_owl2metadata.py +0 -260
  128. cognite_neat-0.87.6/cognite/neat/legacy/rules/importers/_owl2rules/_owl2properties.py +0 -217
  129. cognite_neat-0.87.6/cognite/neat/legacy/rules/importers/_owl2rules/_owl2rules.py +0 -290
  130. cognite_neat-0.87.6/cognite/neat/legacy/rules/importers/_spreadsheet2rules.py +0 -45
  131. cognite_neat-0.87.6/cognite/neat/legacy/rules/importers/_xsd2rules.py +0 -20
  132. cognite_neat-0.87.6/cognite/neat/legacy/rules/importers/_yaml2rules.py +0 -39
  133. cognite_neat-0.87.6/cognite/neat/legacy/rules/models/__init__.py +0 -5
  134. cognite_neat-0.87.6/cognite/neat/legacy/rules/models/_base.py +0 -151
  135. cognite_neat-0.87.6/cognite/neat/legacy/rules/models/raw_rules.py +0 -316
  136. cognite_neat-0.87.6/cognite/neat/legacy/rules/models/rdfpath.py +0 -237
  137. cognite_neat-0.87.6/cognite/neat/legacy/rules/models/rules.py +0 -1289
  138. cognite_neat-0.87.6/cognite/neat/legacy/rules/models/tables.py +0 -9
  139. cognite_neat-0.87.6/cognite/neat/legacy/rules/models/value_types.py +0 -118
  140. cognite_neat-0.87.6/cognite/neat/legacy/workflows/examples/Export_DMS/workflow.yaml +0 -89
  141. cognite_neat-0.87.6/cognite/neat/legacy/workflows/examples/Export_Rules_to_Ontology/workflow.yaml +0 -152
  142. cognite_neat-0.87.6/cognite/neat/legacy/workflows/examples/Extract_DEXPI_Graph_and_Export_Rules/workflow.yaml +0 -139
  143. cognite_neat-0.87.6/cognite/neat/legacy/workflows/examples/Extract_RDF_Graph_and_Generate_Assets/workflow.yaml +0 -270
  144. cognite_neat-0.87.6/cognite/neat/legacy/workflows/examples/Ontology_to_Data_Model/workflow.yaml +0 -116
  145. cognite_neat-0.87.6/cognite/neat/rules/examples/wind-energy.owl +0 -1511
  146. cognite_neat-0.87.6/cognite/neat/rules/exceptions.py +0 -2972
  147. cognite_neat-0.87.6/cognite/neat/rules/importers/_owl2rules/__init__.py +0 -3
  148. cognite_neat-0.87.6/cognite/neat/rules/models/_types/_base.py +0 -16
  149. cognite_neat-0.87.6/cognite/neat/utils/__init__.py +0 -0
  150. cognite_neat-0.87.6/cognite/neat/utils/cdf/__init__.py +0 -0
  151. cognite_neat-0.87.6/cognite/neat/workflows/examples/Export_Rules_to_Ontology/workflow.yaml +0 -152
  152. cognite_neat-0.87.6/cognite/neat/workflows/examples/Extract_DEXPI_Graph_and_Export_Rules/workflow.yaml +0 -139
  153. cognite_neat-0.87.6/cognite/neat/workflows/examples/Extract_RDF_Graph_and_Generate_Assets/workflow.yaml +0 -270
  154. cognite_neat-0.87.6/cognite/neat/workflows/examples/Import_DMS/workflow.yaml +0 -65
  155. cognite_neat-0.87.6/cognite/neat/workflows/examples/Ontology_to_Data_Model/workflow.yaml +0 -116
  156. cognite_neat-0.87.6/cognite/neat/workflows/examples/Validate_Rules/workflow.yaml +0 -67
  157. cognite_neat-0.87.6/cognite/neat/workflows/examples/Validate_Solution_Model/workflow.yaml +0 -64
  158. cognite_neat-0.87.6/cognite/neat/workflows/examples/Visualize_Data_Model_Using_Mock_Graph/workflow.yaml +0 -95
  159. cognite_neat-0.87.6/cognite/neat/workflows/examples/Visualize_Semantic_Data_Model/workflow.yaml +0 -111
  160. cognite_neat-0.87.6/cognite/neat/workflows/migration/__init__.py +0 -0
  161. cognite_neat-0.87.6/cognite/neat/workflows/migration/steps.py +0 -91
  162. cognite_neat-0.87.6/cognite/neat/workflows/migration/wf_manifests.py +0 -33
  163. cognite_neat-0.87.6/cognite/neat/workflows/steps/__init__.py +0 -0
  164. cognite_neat-0.87.6/cognite/neat/workflows/steps/lib/__init__.py +0 -0
  165. cognite_neat-0.87.6/cognite/neat/workflows/steps/lib/current/graph_store.py +0 -164
  166. cognite_neat-0.87.6/cognite/neat/workflows/steps/lib/legacy/__init__.py +0 -7
  167. cognite_neat-0.87.6/cognite/neat/workflows/steps/lib/legacy/graph_contextualization.py +0 -82
  168. cognite_neat-0.87.6/cognite/neat/workflows/steps/lib/legacy/graph_extractor.py +0 -746
  169. cognite_neat-0.87.6/cognite/neat/workflows/steps/lib/legacy/graph_loader.py +0 -606
  170. cognite_neat-0.87.6/cognite/neat/workflows/steps/lib/legacy/graph_store.py +0 -307
  171. cognite_neat-0.87.6/cognite/neat/workflows/steps/lib/legacy/graph_transformer.py +0 -58
  172. cognite_neat-0.87.6/cognite/neat/workflows/steps/lib/legacy/rules_exporter.py +0 -511
  173. cognite_neat-0.87.6/cognite/neat/workflows/steps/lib/legacy/rules_importer.py +0 -612
  174. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/LICENSE +0 -0
  175. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/__init__.py +0 -0
  176. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/_shared.py +0 -0
  177. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/api/__init__.py +0 -0
  178. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/api/asgi/metrics.py +0 -0
  179. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/api/configuration.py +0 -0
  180. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/api/context_manager/__init__.py +0 -0
  181. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/api/context_manager/manager.py +0 -0
  182. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/api/data_classes/__init__.py +0 -0
  183. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/api/routers/metrics.py +0 -0
  184. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/api/utils/__init__.py +0 -0
  185. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/api/utils/data_mapping.py +0 -0
  186. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/api/utils/logging.py +0 -0
  187. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/api/utils/query_templates.py +0 -0
  188. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/main.py +0 -0
  189. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/monitoring/__init__.py +0 -0
  190. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/monitoring/metrics.py +0 -0
  191. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/ui/index.html +0 -0
  192. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/ui/neat-app/.gitignore +0 -0
  193. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/ui/neat-app/README.md +0 -0
  194. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/ui/neat-app/build/favicon.ico +0 -0
  195. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/ui/neat-app/build/img/architect-icon.svg +0 -0
  196. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/ui/neat-app/build/img/developer-icon.svg +0 -0
  197. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/ui/neat-app/build/img/sme-icon.svg +0 -0
  198. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/ui/neat-app/build/logo192.png +0 -0
  199. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/ui/neat-app/build/manifest.json +0 -0
  200. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/ui/neat-app/build/robots.txt +0 -0
  201. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/app/ui/neat-app/build/static/media/logo.8093b84df9ed36a174c629d6fe0b730d.svg +0 -0
  202. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/constants.py +0 -0
  203. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/__init__.py +0 -0
  204. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/_shared.py +0 -0
  205. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/_tracking/__init__.py +0 -0
  206. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/_tracking/base.py +0 -0
  207. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/_tracking/log.py +0 -0
  208. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
  209. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/examples/Knowledge-Graph-Nordic44.xml +0 -0
  210. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/examples/__init__.py +0 -0
  211. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
  212. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/exceptions.py +0 -0
  213. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/extractors/__init__.py +0 -0
  214. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/extractors/_base.py +0 -0
  215. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/extractors/_classic_cdf/__init__.py +0 -0
  216. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/extractors/_dexpi.py +0 -0
  217. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/extractors/_mock_graph_generator.py +0 -0
  218. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/extractors/_rdf_file.py +0 -0
  219. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/issues/__init__.py +0 -0
  220. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/issues/loader.py +0 -0
  221. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/loaders/__init__.py +0 -0
  222. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/loaders/_base.py +0 -0
  223. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/loaders/_rdf2asset.py +0 -0
  224. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/loaders/_rdf2dms.py +0 -0
  225. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/models.py +0 -0
  226. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/queries/__init__.py +0 -0
  227. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/queries/_construct.py +0 -0
  228. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/stores/__init__.py +0 -0
  229. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/stores/_provenance.py +0 -0
  230. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/transformers/__init__.py +0 -0
  231. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/transformers/_base.py +0 -0
  232. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/graph/transformers/_classic_cdf.py +0 -0
  233. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/py.typed +0 -0
  234. {cognite_neat-0.87.6/cognite/neat/legacy → cognite_neat-0.88.1/cognite/neat/rules}/__init__.py +0 -0
  235. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/_shared.py +0 -0
  236. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/analysis/__init__.py +0 -0
  237. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/analysis/_asset.py +0 -0
  238. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/analysis/_base.py +0 -0
  239. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/analysis/_information.py +0 -0
  240. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/examples/__init__.py +0 -0
  241. {cognite_neat-0.87.6/cognite/neat/legacy → cognite_neat-0.88.1/cognite/neat}/rules/examples/wind-energy.owl +0 -0
  242. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/exporters/__init__.py +0 -0
  243. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/exporters/_base.py +0 -0
  244. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/exporters/_rules2dms.py +0 -0
  245. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/exporters/_rules2excel.py +0 -0
  246. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/exporters/_rules2yaml.py +0 -0
  247. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/importers/__init__.py +0 -0
  248. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/importers/_base.py +0 -0
  249. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/importers/_dms2rules.py +0 -0
  250. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/importers/_dtdl2rules/__init__.py +0 -0
  251. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/importers/_dtdl2rules/_unit_lookup.py +0 -0
  252. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/importers/_dtdl2rules/dtdl_converter.py +0 -0
  253. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/importers/_dtdl2rules/dtdl_importer.py +0 -0
  254. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/importers/_dtdl2rules/spec.py +0 -0
  255. {cognite_neat-0.87.6/cognite/neat/legacy → cognite_neat-0.88.1/cognite/neat}/rules/importers/_owl2rules/__init__.py +0 -0
  256. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/importers/_owl2rules/_owl2classes.py +0 -0
  257. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/importers/_owl2rules/_owl2properties.py +0 -0
  258. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/importers/_owl2rules/_owl2rules.py +0 -0
  259. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/importers/_yaml2rules.py +0 -0
  260. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/issues/__init__.py +0 -0
  261. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/issues/base.py +0 -0
  262. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/issues/fileread.py +0 -0
  263. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/issues/formatters.py +0 -0
  264. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/issues/spreadsheet_file.py +0 -0
  265. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/__init__.py +0 -0
  266. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/_base.py +0 -0
  267. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/_constants.py +0 -0
  268. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/_types/__init__.py +0 -0
  269. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/asset/__init__.py +0 -0
  270. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/asset/_converter.py +0 -0
  271. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/asset/_rules.py +0 -0
  272. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/asset/_rules_input.py +0 -0
  273. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/asset/_serializer.py +0 -0
  274. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/asset/_validation.py +0 -0
  275. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/data_types.py +0 -0
  276. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/dms/__init__.py +0 -0
  277. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/dms/_converter.py +0 -0
  278. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/dms/_exporter.py +0 -0
  279. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/dms/_rules.py +0 -0
  280. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/dms/_rules_input.py +0 -0
  281. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/dms/_schema.py +0 -0
  282. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/dms/_serializer.py +0 -0
  283. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/dms/_validation.py +0 -0
  284. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/domain.py +0 -0
  285. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/entities.py +0 -0
  286. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/information/__init__.py +0 -0
  287. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/information/_converter.py +0 -0
  288. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/information/_rules_input.py +0 -0
  289. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/information/_serializer.py +0 -0
  290. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/information/_validation.py +0 -0
  291. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/rules/models/wrapped_entities.py +0 -0
  292. {cognite_neat-0.87.6/cognite/neat/legacy/graph/loaders/core → cognite_neat-0.88.1/cognite/neat/utils}/__init__.py +0 -0
  293. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/utils/auth.py +0 -0
  294. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/utils/auxiliary.py +0 -0
  295. {cognite_neat-0.87.6/cognite/neat/legacy/graph/transformations → cognite_neat-0.88.1/cognite/neat/utils/cdf}/__init__.py +0 -0
  296. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/utils/cdf/data_classes.py +0 -0
  297. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/utils/cdf/loaders/__init__.py +0 -0
  298. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/utils/cdf/loaders/_base.py +0 -0
  299. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/utils/cdf/loaders/_data_modeling.py +0 -0
  300. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/utils/cdf/loaders/_ingestion.py +0 -0
  301. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/utils/collection_.py +0 -0
  302. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/utils/spreadsheet.py +0 -0
  303. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/utils/text.py +0 -0
  304. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/utils/time_.py +0 -0
  305. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/utils/upload.py +0 -0
  306. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/utils/xml_.py +0 -0
  307. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/__init__.py +0 -0
  308. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/_exceptions.py +0 -0
  309. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/base.py +0 -0
  310. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/cdf_store.py +0 -0
  311. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/examples/Export_DMS/workflow.yaml +0 -0
  312. {cognite_neat-0.87.6/cognite/neat/legacy → cognite_neat-0.88.1/cognite/neat}/workflows/examples/Import_DMS/workflow.yaml +0 -0
  313. {cognite_neat-0.87.6/cognite/neat/legacy → cognite_neat-0.88.1/cognite/neat}/workflows/examples/Validate_Rules/workflow.yaml +0 -0
  314. {cognite_neat-0.87.6/cognite/neat/legacy → cognite_neat-0.88.1/cognite/neat}/workflows/examples/Validate_Solution_Model/workflow.yaml +0 -0
  315. {cognite_neat-0.87.6/cognite/neat/legacy → cognite_neat-0.88.1/cognite/neat}/workflows/examples/Visualize_Data_Model_Using_Mock_Graph/workflow.yaml +0 -0
  316. {cognite_neat-0.87.6/cognite/neat/legacy → cognite_neat-0.88.1/cognite/neat}/workflows/examples/Visualize_Semantic_Data_Model/workflow.yaml +0 -0
  317. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/manager.py +0 -0
  318. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/model.py +0 -0
  319. {cognite_neat-0.87.6/cognite/neat/legacy/rules → cognite_neat-0.88.1/cognite/neat/workflows/steps}/__init__.py +0 -0
  320. {cognite_neat-0.87.6/cognite/neat/rules → cognite_neat-0.88.1/cognite/neat/workflows/steps/lib}/__init__.py +0 -0
  321. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/steps/lib/current/__init__.py +0 -0
  322. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/steps/lib/current/rules_exporter.py +0 -0
  323. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/steps/lib/current/rules_importer.py +0 -0
  324. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/steps/lib/current/rules_validator.py +0 -0
  325. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/steps/lib/io/__init__.py +0 -0
  326. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/steps/lib/io/io_steps.py +0 -0
  327. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/steps/step_model.py +0 -0
  328. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/tasks.py +0 -0
  329. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/triggers.py +0 -0
  330. {cognite_neat-0.87.6 → cognite_neat-0.88.1}/cognite/neat/workflows/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cognite-neat
3
- Version: 0.87.6
3
+ Version: 0.88.1
4
4
  Summary: Knowledge graph transformation
5
5
  Home-page: https://cognite-neat.readthedocs-hosted.com/
6
6
  License: Apache-2.0
@@ -146,9 +146,6 @@ Open API docs :
146
146
 
147
147
  `http://localhost:8000/docs`
148
148
 
149
- Prom metrics :
150
-
151
- `http://localhost:8000/metrics`
152
149
 
153
150
  ## Workflows and configurations
154
151
 
@@ -194,8 +191,7 @@ cdf_client:
194
191
  client_id: "623c2450-cfc2-43d6-9036-10e14dad8ccf"
195
192
  client_secret: "my-super-secret"
196
193
  base_url: https://az-power-no-northeurope.cognitedata.com
197
- scopes:
198
- - https://az-power-no-northeurope.cognitedata.com/.default
194
+ scopes: [https://az-power-no-northeurope.cognitedata.com/.default]
199
195
  token_url: https://login.microsoftonline.com/e55e1701-82f8-4c52-af10-28e4d942c589/oauth2/v2.0/token
200
196
 
201
197
  cdf_default_dataset_id: 2626756768281823
@@ -87,9 +87,6 @@ Open API docs :
87
87
 
88
88
  `http://localhost:8000/docs`
89
89
 
90
- Prom metrics :
91
-
92
- `http://localhost:8000/metrics`
93
90
 
94
91
  ## Workflows and configurations
95
92
 
@@ -135,8 +132,7 @@ cdf_client:
135
132
  client_id: "623c2450-cfc2-43d6-9036-10e14dad8ccf"
136
133
  client_secret: "my-super-secret"
137
134
  base_url: https://az-power-no-northeurope.cognitedata.com
138
- scopes:
139
- - https://az-power-no-northeurope.cognitedata.com/.default
135
+ scopes: [https://az-power-no-northeurope.cognitedata.com/.default]
140
136
  token_url: https://login.microsoftonline.com/e55e1701-82f8-4c52-af10-28e4d942c589/oauth2/v2.0/token
141
137
 
142
138
  cdf_default_dataset_id: 2626756768281823
@@ -0,0 +1 @@
1
+ __version__ = "0.88.1"
@@ -16,25 +16,6 @@ class RuleRequest(BaseModel):
16
16
  rule: str
17
17
 
18
18
 
19
- class UploadToCdfRequest(BaseModel):
20
- file_name: str = ""
21
- file_type: str = "workflow"
22
- comments: str = ""
23
- author: str = ""
24
- tag: str = ""
25
-
26
-
27
- class DownloadFromCdfRequest(BaseModel):
28
- file_name: str = ""
29
- file_type: str = "workflow"
30
- version: str = ""
31
-
32
-
33
- class LoadGraphRequest(BaseModel):
34
- graph_source_template_name: str
35
- source_location: str
36
-
37
-
38
19
  class RunWorkflowRequest(BaseModel):
39
20
  name: str
40
21
  config: dict
@@ -10,7 +10,12 @@ from cognite import neat
10
10
  from cognite.neat.app.api.asgi.metrics import prometheus_app
11
11
  from cognite.neat.app.api.configuration import NEAT_APP, UI_PATH
12
12
  from cognite.neat.app.api.context_manager import lifespan
13
- from cognite.neat.app.api.routers import configuration, core, crud, data_exploration, metrics, rules, workflows
13
+ from cognite.neat.app.api.routers import (
14
+ configuration,
15
+ crud,
16
+ metrics,
17
+ workflows,
18
+ )
14
19
  from cognite.neat.app.api.utils.logging import EndpointFilter
15
20
 
16
21
  app = FastAPI(title="Neat", lifespan=lifespan)
@@ -45,10 +50,7 @@ app.mount("/data", StaticFiles(directory=NEAT_APP.config.data_store_path), name=
45
50
  app.include_router(configuration.router)
46
51
  app.include_router(metrics.router)
47
52
  app.include_router(workflows.router)
48
- app.include_router(rules.router)
49
53
  app.include_router(crud.router)
50
- app.include_router(data_exploration.router)
51
- app.include_router(core.router)
52
54
 
53
55
 
54
56
  # General routes
@@ -12,7 +12,7 @@ router = APIRouter()
12
12
 
13
13
  @router.get("/api/configs/global")
14
14
  def get_configs():
15
- return NEAT_APP.config.dict()
15
+ return NEAT_APP.config.as_legacy_config()
16
16
 
17
17
 
18
18
  @router.post("/api/configs/global")
@@ -14,28 +14,13 @@ from cognite.neat.workflows.utils import get_file_hash
14
14
  router = APIRouter()
15
15
 
16
16
 
17
- @router.get("/api/cdf/neat-resources")
18
- def get_neat_resources(resource_type: str | None = None):
19
- if NEAT_APP.cdf_store is None:
20
- return {"error": "NeatApp is not initialized"}
21
- if resource_type is None:
22
- return {"error": "Resource type is not specified"}
23
- result = NEAT_APP.cdf_store.get_list_of_resources_from_cdf(resource_type=resource_type)
24
- logging.debug(f"Got {len(result)} resources")
25
- return {"result": result}
26
-
27
-
28
- @router.post("/api/cdf/init-neat-resources")
29
- def init_neat_cdf_resources(resource_type: str | None = None):
30
- if NEAT_APP.cdf_store is None:
31
- return {"error": "NeatApp is not initialized"}
32
- NEAT_APP.cdf_store.init_cdf_resources(resource_type=resource_type)
33
- return {"result": "ok"}
34
-
35
-
36
17
  @router.post("/api/file/upload/{workflow_name}/{file_type}/{step_id}/{action}")
37
18
  async def file_upload_handler(
38
- files: list[UploadFile], workflow_name: str, file_type: str, step_id: str, action: str
19
+ files: list[UploadFile],
20
+ workflow_name: str,
21
+ file_type: str,
22
+ step_id: str,
23
+ action: str,
39
24
  ) -> dict[str, str]:
40
25
  if NEAT_APP.cdf_store is None or NEAT_APP.workflow_manager is None:
41
26
  return {"error": "NeatApp is not initialized"}
@@ -91,7 +76,12 @@ async def file_upload_handler(
91
76
  if workflow is None:
92
77
  return {"error": f"Workflow {workflow_name} not found"}
93
78
  flow_msg = FlowMessage(
94
- payload={"file_name": file_name, "hash": file_version, "full_path": full_path, "file_type": file_type}
79
+ payload={
80
+ "file_name": file_name,
81
+ "hash": file_version,
82
+ "full_path": full_path,
83
+ "file_type": file_type,
84
+ }
95
85
  )
96
86
  start_step_id = None if step_id == "none" else step_id
97
87
 
@@ -1,20 +1,19 @@
1
1
  import logging
2
2
  import shutil
3
- from pathlib import Path
4
3
  from typing import cast
5
4
 
6
5
  from fastapi import APIRouter, Depends, HTTPException, Request, UploadFile
7
6
  from fastapi.responses import FileResponse, JSONResponse
8
7
 
9
8
  from cognite.neat.app.api.configuration import NEAT_APP
10
- from cognite.neat.app.api.data_classes.rest import DownloadFromCdfRequest, RunWorkflowRequest, UploadToCdfRequest
9
+ from cognite.neat.app.api.data_classes.rest import (
10
+ RunWorkflowRequest,
11
+ )
11
12
  from cognite.neat.workflows import WorkflowFullStateReport
12
13
  from cognite.neat.workflows.base import WorkflowDefinition
13
- from cognite.neat.workflows.migration.wf_manifests import migrate_wf_manifest
14
14
  from cognite.neat.workflows.model import FlowMessage
15
- from cognite.neat.workflows.steps.data_contracts import SolutionGraph, SourceGraph
15
+ from cognite.neat.workflows.steps.data_contracts import NeatGraph
16
16
  from cognite.neat.workflows.steps.step_model import DataContract
17
- from cognite.neat.workflows.utils import get_file_hash
18
17
 
19
18
  router = APIRouter()
20
19
 
@@ -27,7 +26,11 @@ def start_workflow(request: RunWorkflowRequest):
27
26
  start_status = NEAT_APP.workflow_manager.start_workflow_instance(
28
27
  request.name, sync=request.sync, flow_msg=FlowMessage()
29
28
  )
30
- result = {"workflow_instance": None, "is_success": start_status.is_success, "status_text": start_status.status_text}
29
+ result = {
30
+ "workflow_instance": None,
31
+ "is_success": start_status.is_success,
32
+ "status_text": start_status.status_text,
33
+ }
31
34
  return {"result": result}
32
35
 
33
36
 
@@ -58,25 +61,6 @@ def get_workflow_files(workflow_name: str):
58
61
  return {"files": workflow.get_list_of_workflow_artifacts()}
59
62
 
60
63
 
61
- @router.post("/api/workflow/package/{workflow_name}")
62
- def package_workflow(workflow_name: str):
63
- if NEAT_APP.cdf_store is None:
64
- return {"error": "NeatApp is not initialized"}
65
- package_file = NEAT_APP.cdf_store.package_workflow(workflow_name)
66
- hash_ = get_file_hash(NEAT_APP.config.workflows_store_path / package_file)
67
- return {"package": package_file, "hash": hash_}
68
-
69
-
70
- @router.post("/api/workflow/context-cleanup/{workflow_name}")
71
- def cleanup_workflow_data(workflow_name: str):
72
- if NEAT_APP.cdf_store is None:
73
- return {"error": "NeatApp is not initialized"}
74
- workflow = NEAT_APP.workflow_manager.get_workflow(workflow_name)
75
- if workflow is not None:
76
- workflow.cleanup_workflow_context()
77
- return {"result": "ok"}
78
-
79
-
80
64
  @router.post("/api/workflow/create")
81
65
  def create_new_workflow(request: WorkflowDefinition):
82
66
  if NEAT_APP.workflow_manager is None:
@@ -95,30 +79,24 @@ def delete_workflow(workflow_name: str):
95
79
  return {"result": "ok"}
96
80
 
97
81
 
98
- @router.get("/api/workflow/executions")
99
- def get_list_of_workflow_executions():
100
- return {"executions": NEAT_APP.cdf_store.get_list_of_workflow_executions_from_cdf()}
101
-
102
-
103
- @router.get("/api/workflow/detailed-execution-report/{execution_id}")
104
- def get_detailed_execution(execution_id: str):
105
- if NEAT_APP.cdf_store is None:
106
- return {"error": "NeatApp is not initialized"}
107
- return {"report": NEAT_APP.cdf_store.get_detailed_workflow_execution_report_from_cdf(execution_id)}
108
-
109
-
110
82
  @router.post("/api/workflow/reload-workflows")
111
83
  def reload_workflows():
112
84
  NEAT_APP.workflow_manager.load_workflows_from_storage()
113
85
  NEAT_APP.triggers_manager.reload_all_triggers()
114
- return {"result": "ok", "workflows": NEAT_APP.workflow_manager.get_list_of_workflows()}
86
+ return {
87
+ "result": "ok",
88
+ "workflows": NEAT_APP.workflow_manager.get_list_of_workflows(),
89
+ }
115
90
 
116
91
 
117
92
  @router.post("/api/workflow/reload-single-workflow/{workflow_name}")
118
93
  def reload_single_workflows(workflow_name: str):
119
94
  NEAT_APP.workflow_manager.load_single_workflow_from_storage(workflow_name)
120
95
  NEAT_APP.triggers_manager.reload_all_triggers()
121
- return {"result": "ok", "workflows": NEAT_APP.workflow_manager.get_list_of_workflows()}
96
+ return {
97
+ "result": "ok",
98
+ "workflows": NEAT_APP.workflow_manager.get_list_of_workflows(),
99
+ }
122
100
 
123
101
 
124
102
  @router.get("/api/workflow/workflow-definition/{workflow_name}")
@@ -152,58 +130,6 @@ def update_workflow_definition(workflow_name: str, request: WorkflowDefinition):
152
130
  return {"result": "ok"}
153
131
 
154
132
 
155
- @router.post("/api/workflow/upload-wf-to-cdf/{workflow_name}")
156
- def upload_workflow_to_cdf(workflow_name: str, request: UploadToCdfRequest):
157
- if NEAT_APP.cdf_store is None:
158
- return {"error": "NeatApp is not initialized"}
159
- NEAT_APP.cdf_store.save_workflow_to_cdf(
160
- workflow_name, changed_by=request.author, comments=request.comments, tag=request.tag
161
- )
162
- return {"result": "ok"}
163
-
164
-
165
- @router.post("/api/workflow/upload-rules-cdf/{workflow_name}")
166
- def upload_rules_to_cdf(workflow_name: str, request: UploadToCdfRequest):
167
- if NEAT_APP.cdf_store is None:
168
- return {"error": "NeatApp is not initialized"}
169
- file_path = Path(NEAT_APP.config.rules_store_path, request.file_name)
170
- NEAT_APP.cdf_store.save_resource_to_cdf(
171
- workflow_name, "neat-wf-rules", file_path, changed_by=request.author, comments=request.comments
172
- )
173
- return {"result": "ok"}
174
-
175
-
176
- @router.post("/api/workflow/download-wf-from-cdf")
177
- def download_wf_from_cdf(request: DownloadFromCdfRequest):
178
- if NEAT_APP.cdf_store is None:
179
- return {"error": "NeatApp is not initialized"}
180
- NEAT_APP.cdf_store.load_workflows_from_cdf(request.file_name, request.version)
181
- return {"result": "ok"}
182
-
183
-
184
- @router.post("/api/workflow/download-rules-from-cdf")
185
- def download_rules_to_cdf(request: DownloadFromCdfRequest):
186
- if NEAT_APP.cdf_store is None:
187
- return {"error": "NeatApp is not initialized"}
188
- NEAT_APP.cdf_store.load_rules_file_from_cdf(request.file_name, request.version)
189
- return {"file_name": request.file_name, "hash": request.version}
190
-
191
-
192
- @router.post("/api/workflow/migrate-workflow")
193
- def migrate_workflow():
194
- return migrate_wf_manifest(NEAT_APP.config.data_store_path)
195
-
196
-
197
- @router.get("/api/workflow/pre-cdf-assets/{workflow_name}")
198
- def get_pre_cdf_assets(workflow_name: str):
199
- if NEAT_APP.workflow_manager is None:
200
- return {"error": "Workflow Manager is not initialized"}
201
- workflow = NEAT_APP.workflow_manager.get_workflow(workflow_name)
202
- if workflow is None:
203
- return {"assets": []}
204
- return {"assets": workflow.data["CategorizedAssets"]}
205
-
206
-
207
133
  @router.get("/api/workflow/context/{workflow_name}")
208
134
  def get_context(workflow_name: str):
209
135
  if NEAT_APP.workflow_manager is None:
@@ -228,8 +154,8 @@ def get_context_object(workflow_name: str, object_name: str):
228
154
  if object_name not in context:
229
155
  return {"error": f"Item {object_name} is not found in workflow context"}
230
156
 
231
- if object_name == "SourceGraph" or object_name == "SolutionGraph":
232
- return {"object": cast(SourceGraph | SolutionGraph, context[object_name]).graph.diagnostic_report()}
157
+ if object_name == "NeatGraph":
158
+ return {"object": cast(NeatGraph, context[object_name]).graph.type_}
233
159
 
234
160
  cobject = context[object_name]
235
161
  if isinstance(cobject, DataContract):
@@ -285,7 +211,11 @@ def http_trigger_start_workflow(workflow_name: str, step_id: str, request: Reque
285
211
 
286
212
  @router.post("/api/workflow/{workflow_name}/resume/{step_id}/{instance_id}")
287
213
  def http_trigger_resume_workflow(
288
- workflow_name: str, step_id: str, instance_id: str, request: Request, body: bytes = fast_api_depends
214
+ workflow_name: str,
215
+ step_id: str,
216
+ instance_id: str,
217
+ request: Request,
218
+ body: bytes = fast_api_depends,
289
219
  ):
290
220
  if NEAT_APP.triggers_manager is None:
291
221
  return JSONResponse(content={"error": "Triggers Manager is not initialized"}, status_code=400)
@@ -0,0 +1,14 @@
1
+ {
2
+ "files": {
3
+ "main.css": "./static/css/main.72e3d92e.css",
4
+ "main.js": "./static/js/main.5a52cf09.js",
5
+ "static/media/logo.svg": "./static/media/logo.8093b84df9ed36a174c629d6fe0b730d.svg",
6
+ "index.html": "./index.html",
7
+ "main.72e3d92e.css.map": "./static/css/main.72e3d92e.css.map",
8
+ "main.5a52cf09.js.map": "./static/js/main.5a52cf09.js.map"
9
+ },
10
+ "entrypoints": [
11
+ "static/css/main.72e3d92e.css",
12
+ "static/js/main.5a52cf09.js"
13
+ ]
14
+ }
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./logo192.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="NEAT controll panel"/><link rel="apple-touch-icon" href="./logo192.png"/><link rel="manifest" href="./manifest.json"/><title>NEAT App</title><script defer="defer" src="./static/js/main.ec7f72e2.js"></script><link href="./static/css/main.38a62222.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./logo192.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="NEAT controll panel"/><link rel="apple-touch-icon" href="./logo192.png"/><link rel="manifest" href="./manifest.json"/><title>NEAT App</title><script defer="defer" src="./static/js/main.5a52cf09.js"></script><link href="./static/css/main.72e3d92e.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
@@ -1,2 +1,2 @@
1
- body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.react-flow__container{height:100%;left:0;position:absolute;top:0;width:100%}.react-flow__pane{cursor:grab;z-index:1}.react-flow__pane.dragging{cursor:grabbing}.react-flow__viewport{pointer-events:none;-webkit-transform-origin:0 0;transform-origin:0 0;z-index:2}.react-flow__renderer{z-index:4}.react-flow__selectionpane{z-index:5}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{overflow:visible;pointer-events:none}.react-flow__connection-path,.react-flow__edge-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{cursor:pointer;pointer-events:visibleStroke}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection.animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none}.react-flow__node,.react-flow__nodes{-webkit-transform-origin:0 0;transform-origin:0 0}.react-flow__node{box-sizing:border-box;cursor:grab;pointer-events:all;position:absolute;-webkit-user-select:none;user-select:none}.react-flow__node.dragging{cursor:grabbing}.react-flow__nodesselection{pointer-events:none;-webkit-transform-origin:left top;transform-origin:left top;z-index:3}.react-flow__nodesselection-rect{cursor:grab;pointer-events:all;position:absolute}.react-flow__handle{background:#1a192b;border:1px solid #fff;border-radius:100%;height:6px;min-height:5px;min-width:5px;pointer-events:none;position:absolute;width:6px}.react-flow__handle.connectable{cursor:crosshair;pointer-events:all}.react-flow__handle-bottom{bottom:-4px;top:auto}.react-flow__handle-bottom,.react-flow__handle-top{left:50%;-webkit-transform:translate(-50%);transform:translate(-50%)}.react-flow__handle-top{top:-4px}.react-flow__handle-left{left:-4px}.react-flow__handle-left,.react-flow__handle-right{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.react-flow__handle-right{right:-4px}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{margin:15px;position:absolute;z-index:5}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.react-flow__attribution{background:hsla(0,0%,100%,.5);font-size:10px;margin:0;padding:2px 3px}.react-flow__attribution a{color:#999;text-decoration:none}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{height:100%;pointer-events:none;position:absolute;width:100%}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{background-color:#fff;border:1px solid #1a192b;border-radius:3px;color:#222;font-size:12px;padding:10px;text-align:center;width:150px}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px rgba(0,0,0,.08)}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b;outline:none}.react-flow__node-group{background-color:hsla(0,0%,94%,.25)}.react-flow__nodesselection-rect,.react-flow__selection{background:rgba(0,89,220,.08);border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px rgba(0,0,0,.08)}.react-flow__controls-button{align-items:center;background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:initial;cursor:pointer;display:flex;height:16px;justify-content:center;padding:5px;-webkit-user-select:none;user-select:none;width:16px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{max-height:12px;max-width:12px;width:100%}.react-flow__minimap{background-color:#fff}:root{--sigma-background-color:#fff;--sigma-controls-background-color:#fff;--sigma-controls-background-color-hover:rgba(0,0,0,.2);--sigma-controls-border-color:rgba(0,0,0,.2);--sigma-controls-color:#000;--sigma-controls-zindex:100;--sigma-controls-margin:5px;--sigma-controls-size:30px}div.react-sigma{background:#fff;background:var(--sigma-background-color);position:relative}div.react-sigma,div.sigma-container{height:100%;width:100%}.react-sigma-controls{background-color:#fff;background-color:var(--sigma-controls-background-color);border:2px solid rgba(0,0,0,.2);border:2px solid var(--sigma-controls-border-color);border-radius:4px;color:#000;color:var(--sigma-controls-color);position:absolute;z-index:100;z-index:var(--sigma-controls-zindex)}.react-sigma-controls.bottom-right{bottom:5px;bottom:var(--sigma-controls-margin);right:5px;right:var(--sigma-controls-margin)}.react-sigma-controls.bottom-left{bottom:5px;bottom:var(--sigma-controls-margin);left:5px;left:var(--sigma-controls-margin)}.react-sigma-controls.top-right{right:5px;right:var(--sigma-controls-margin);top:5px;top:var(--sigma-controls-margin)}.react-sigma-controls.top-left{left:5px;left:var(--sigma-controls-margin);top:5px;top:var(--sigma-controls-margin)}.react-sigma-controls:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.react-sigma-controls:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.react-sigma-control{background-color:#fff;background-color:var(--sigma-controls-background-color);border-bottom:1px solid rgba(0,0,0,.2);border-bottom:1px solid var(--sigma-controls-border-color);height:30px;height:var(--sigma-controls-size);line-height:30px;line-height:var(--sigma-controls-size);width:30px;width:var(--sigma-controls-size)}.react-sigma-control:last-child{border-bottom:none}.react-sigma-control>*{box-sizing:border-box}.react-sigma-control>button{clip:rect(0,0,0,0);background-color:#fff;background-color:var(--sigma-controls-background-color);background-position:50%;background-repeat:no-repeat;background-size:50%;border:none;display:block;height:30px;height:var(--sigma-controls-size);line-height:30px;line-height:var(--sigma-controls-size);margin:0;padding:0;width:30px;width:var(--sigma-controls-size)}.react-sigma-control>button:hover{background-color:rgba(0,0,0,.2);background-color:var(--sigma-controls-background-color-hover)}.react-sigma-search{background-color:#fff;background-color:var(--sigma-controls-background-color)}.react-sigma-search label{visibility:hidden}.react-sigma-search input{background-color:#fff;background-color:var(--sigma-controls-background-color);border:none;box-sizing:border-box;color:#000;color:var(--sigma-controls-color);font-size:1em;margin:0;padding:5px;padding:var(--sigma-controls-margin);width:100%}
2
- /*# sourceMappingURL=main.38a62222.css.map*/
1
+ body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.react-flow__container{height:100%;left:0;position:absolute;top:0;width:100%}.react-flow__pane{cursor:grab;z-index:1}.react-flow__pane.dragging{cursor:grabbing}.react-flow__viewport{pointer-events:none;-webkit-transform-origin:0 0;transform-origin:0 0;z-index:2}.react-flow__renderer{z-index:4}.react-flow__selectionpane{z-index:5}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{overflow:visible;pointer-events:none}.react-flow__connection-path,.react-flow__edge-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{cursor:pointer;pointer-events:visibleStroke}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection.animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none}.react-flow__node,.react-flow__nodes{-webkit-transform-origin:0 0;transform-origin:0 0}.react-flow__node{box-sizing:border-box;cursor:grab;pointer-events:all;position:absolute;-webkit-user-select:none;user-select:none}.react-flow__node.dragging{cursor:grabbing}.react-flow__nodesselection{pointer-events:none;-webkit-transform-origin:left top;transform-origin:left top;z-index:3}.react-flow__nodesselection-rect{cursor:grab;pointer-events:all;position:absolute}.react-flow__handle{background:#1a192b;border:1px solid #fff;border-radius:100%;height:6px;min-height:5px;min-width:5px;pointer-events:none;position:absolute;width:6px}.react-flow__handle.connectable{cursor:crosshair;pointer-events:all}.react-flow__handle-bottom{bottom:-4px;top:auto}.react-flow__handle-bottom,.react-flow__handle-top{left:50%;-webkit-transform:translate(-50%);transform:translate(-50%)}.react-flow__handle-top{top:-4px}.react-flow__handle-left{left:-4px}.react-flow__handle-left,.react-flow__handle-right{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.react-flow__handle-right{right:-4px}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{margin:15px;position:absolute;z-index:5}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.react-flow__attribution{background:hsla(0,0%,100%,.5);font-size:10px;margin:0;padding:2px 3px}.react-flow__attribution a{color:#999;text-decoration:none}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{height:100%;pointer-events:none;position:absolute;width:100%}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{background-color:#fff;border:1px solid #1a192b;border-radius:3px;color:#222;font-size:12px;padding:10px;text-align:center;width:150px}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px rgba(0,0,0,.08)}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b;outline:none}.react-flow__node-group{background-color:hsla(0,0%,94%,.25)}.react-flow__nodesselection-rect,.react-flow__selection{background:rgba(0,89,220,.08);border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px rgba(0,0,0,.08)}.react-flow__controls-button{align-items:center;background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:initial;cursor:pointer;display:flex;height:16px;justify-content:center;padding:5px;-webkit-user-select:none;user-select:none;width:16px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{max-height:12px;max-width:12px;width:100%}.react-flow__minimap{background-color:#fff}
2
+ /*# sourceMappingURL=main.72e3d92e.css.map*/
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/css/main.72e3d92e.css","mappings":"AAAA,KAKE,kCAAmC,CACnC,iCAAkC,CAJlC,mIAEY,CAHZ,QAMF,CAEA,KACE,uEAEF,CCVA,uBAGE,WAAY,CAEZ,MAAO,CAJP,iBAAkB,CAGlB,KAAM,CAFN,UAIF,CACA,kBAGE,WAAY,CAFZ,SAGF,CACA,2BAEI,eACF,CACF,sBAGE,mBAAoB,CAFpB,4BAAqB,CAArB,oBAAqB,CACrB,SAEF,CACA,sBACE,SACF,CACA,2BACE,SACF,CACA,sFAEE,YACF,CACA,+BAEE,gBAAiB,CADjB,mBAEF,CACA,oDAEE,cAAe,CACf,cAAe,CACf,SACF,CACA,kBAEE,cAAe,CADf,4BAEF,CACA,gCACI,kBAAmB,CACnB,8CAAgD,CACxC,sCACV,CACF,6DACI,qBAAsB,CACtB,sBAAuB,CACf,cACV,CACF,2BACI,mBACF,CACF,mFAGI,YACF,CACF,wJAGI,WACF,CACF,8BACI,kBACF,CACF,yBACI,SACF,CACF,yCACI,mBAAoB,CACpB,wBAAyB,CAEjB,gBACV,CACF,wBACE,mBACF,CACA,iCACI,kBAAmB,CACnB,8CAAgD,CACxC,sCACV,CACF,4BACE,YACF,CACA,mBACE,mBAEF,CACA,qCAFE,4BAAqB,CAArB,oBAYF,CAVA,kBAOE,qBAAsB,CAEtB,WAAY,CAJZ,kBAAmB,CAJnB,iBAAkB,CAClB,wBAAyB,CAEjB,gBAMV,CACA,2BAEI,eACF,CACF,4BAGE,mBAAoB,CADpB,iCAA0B,CAA1B,yBAA0B,CAD1B,SAGF,CACA,iCAII,WAAY,CAFZ,kBAAmB,CADnB,iBAIF,CACF,oBAOE,kBAAmB,CACnB,qBAAuB,CACvB,kBAAmB,CAHnB,UAAW,CAFX,cAAe,CADf,aAAc,CADd,mBAAoB,CADpB,iBAAkB,CAIlB,SAKF,CACA,gCAEI,gBAAiB,CADjB,kBAEF,CACF,2BAGI,WAAY,CAFZ,QAIF,CACF,mDAJI,QAAS,CAET,iCAA6B,CAA7B,yBAMF,CAJF,wBAEI,QAEF,CACF,yBAEI,SAEF,CACF,mDAJI,OAAQ,CAER,kCAA6B,CAA7B,0BAMF,CAJF,0BACI,UAGF,CACF,yBACE,WAAY,CACZ,kBACF,CACA,mBAGE,WAAY,CAFZ,iBAAkB,CAClB,SAEF,CACA,uBACI,KACF,CACF,0BACI,QACF,CACF,wBACI,MACF,CACF,yBACI,OACF,CACF,0BACI,QAAS,CACT,kCAA2B,CAA3B,0BACF,CACF,yBAEE,6BAAoC,CADpC,cAAe,CAGf,QAAS,CADT,eAEF,CACA,2BAEI,UAAW,CADX,oBAEF,CACF,4BACE,GACE,oBACF,CACF,CACA,oBACE,GACE,oBACF,CACF,CACA,gCAGE,WAAY,CACZ,mBAAoB,CAHpB,iBAAkB,CAClB,UAGF,CACA,kDACM,WACF,CACJ,uBACI,cACF,CACF,mGAaE,qBAAuB,CADvB,wBAAqB,CAPrB,iBAAkB,CAGlB,UAAW,CADX,cAAe,CAHf,YAAa,CAKb,iBAAkB,CAHlB,WAQF,CACA,uKACM,wCACF,CACJ,iiBAYM,6BAA+B,CAC/B,YACF,CACJ,wBACE,mCACF,CACA,wDAEE,6BAAkC,CAClC,mCACF,CACA,wJAII,YACF,CACF,sBACE,sCACF,CACA,6BAOI,kBAAmB,CALnB,kBAAmB,CACnB,WAA6B,CAA7B,4BAA6B,CAC7B,kBAAuB,CAMvB,cAAe,CALf,YAAa,CAIb,WAAY,CAHZ,sBAAuB,CAQvB,WAAY,CAHZ,wBAAyB,CAEjB,gBAAiB,CALzB,UAOF,CACF,mCACM,kBACF,CACJ,iCAGM,eAAgB,CADhB,cAAe,CADf,UAGF,CACJ,qBACE,qBACF","sources":["index.css","../node_modules/reactflow/dist/style.css"],"sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n","/* this gets exported as style.css and can be used for the default theming */\n/* these are the necessary styles for React Flow, they get used by base.css and style.css */\n.react-flow__container {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n}\n.react-flow__pane {\n z-index: 1;\n cursor: -webkit-grab;\n cursor: grab;\n}\n.react-flow__pane.dragging {\n cursor: -webkit-grabbing;\n cursor: grabbing;\n }\n.react-flow__viewport {\n transform-origin: 0 0;\n z-index: 2;\n pointer-events: none;\n}\n.react-flow__renderer {\n z-index: 4;\n}\n.react-flow__selectionpane {\n z-index: 5;\n}\n.react-flow__nodesselection-rect:focus,\n.react-flow__nodesselection-rect:focus-visible {\n outline: none;\n}\n.react-flow .react-flow__edges {\n pointer-events: none;\n overflow: visible;\n}\n.react-flow__edge-path,\n.react-flow__connection-path {\n stroke: #b1b1b7;\n stroke-width: 1;\n fill: none;\n}\n.react-flow__edge {\n pointer-events: visibleStroke;\n cursor: pointer;\n}\n.react-flow__edge.animated path {\n stroke-dasharray: 5;\n -webkit-animation: dashdraw 0.5s linear infinite;\n animation: dashdraw 0.5s linear infinite;\n }\n.react-flow__edge.animated path.react-flow__edge-interaction {\n stroke-dasharray: none;\n -webkit-animation: none;\n animation: none;\n }\n.react-flow__edge.inactive {\n pointer-events: none;\n }\n.react-flow__edge.selected,\n .react-flow__edge:focus,\n .react-flow__edge:focus-visible {\n outline: none;\n }\n.react-flow__edge.selected .react-flow__edge-path,\n .react-flow__edge:focus .react-flow__edge-path,\n .react-flow__edge:focus-visible .react-flow__edge-path {\n stroke: #555;\n }\n.react-flow__edge-textwrapper {\n pointer-events: all;\n }\n.react-flow__edge-textbg {\n fill: white;\n }\n.react-flow__edge .react-flow__edge-text {\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n }\n.react-flow__connection {\n pointer-events: none;\n}\n.react-flow__connection.animated {\n stroke-dasharray: 5;\n -webkit-animation: dashdraw 0.5s linear infinite;\n animation: dashdraw 0.5s linear infinite;\n }\n.react-flow__connectionline {\n z-index: 1001;\n}\n.react-flow__nodes {\n pointer-events: none;\n transform-origin: 0 0;\n}\n.react-flow__node {\n position: absolute;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n pointer-events: all;\n transform-origin: 0 0;\n box-sizing: border-box;\n cursor: -webkit-grab;\n cursor: grab;\n}\n.react-flow__node.dragging {\n cursor: -webkit-grabbing;\n cursor: grabbing;\n }\n.react-flow__nodesselection {\n z-index: 3;\n transform-origin: left top;\n pointer-events: none;\n}\n.react-flow__nodesselection-rect {\n position: absolute;\n pointer-events: all;\n cursor: -webkit-grab;\n cursor: grab;\n }\n.react-flow__handle {\n position: absolute;\n pointer-events: none;\n min-width: 5px;\n min-height: 5px;\n width: 6px;\n height: 6px;\n background: #1a192b;\n border: 1px solid white;\n border-radius: 100%;\n}\n.react-flow__handle.connectable {\n pointer-events: all;\n cursor: crosshair;\n }\n.react-flow__handle-bottom {\n top: auto;\n left: 50%;\n bottom: -4px;\n transform: translate(-50%, 0);\n }\n.react-flow__handle-top {\n left: 50%;\n top: -4px;\n transform: translate(-50%, 0);\n }\n.react-flow__handle-left {\n top: 50%;\n left: -4px;\n transform: translate(0, -50%);\n }\n.react-flow__handle-right {\n right: -4px;\n top: 50%;\n transform: translate(0, -50%);\n }\n.react-flow__edgeupdater {\n cursor: move;\n pointer-events: all;\n}\n.react-flow__panel {\n position: absolute;\n z-index: 5;\n margin: 15px;\n}\n.react-flow__panel.top {\n top: 0;\n }\n.react-flow__panel.bottom {\n bottom: 0;\n }\n.react-flow__panel.left {\n left: 0;\n }\n.react-flow__panel.right {\n right: 0;\n }\n.react-flow__panel.center {\n left: 50%;\n transform: translateX(-50%);\n }\n.react-flow__attribution {\n font-size: 10px;\n background: rgba(255, 255, 255, 0.5);\n padding: 2px 3px;\n margin: 0;\n}\n.react-flow__attribution a {\n text-decoration: none;\n color: #999;\n }\n@-webkit-keyframes dashdraw {\n from {\n stroke-dashoffset: 10;\n }\n}\n@keyframes dashdraw {\n from {\n stroke-dashoffset: 10;\n }\n}\n.react-flow__edgelabel-renderer {\n position: absolute;\n width: 100%;\n height: 100%;\n pointer-events: none;\n}\n.react-flow__edge.updating .react-flow__edge-path {\n stroke: #777;\n }\n.react-flow__edge-text {\n font-size: 10px;\n }\n.react-flow__node-default,\n.react-flow__node-input,\n.react-flow__node-output,\n.react-flow__node-group {\n padding: 10px;\n border-radius: 3px;\n width: 150px;\n font-size: 12px;\n color: #222;\n text-align: center;\n border-width: 1px;\n border-style: solid;\n border-color: #1a192b;\n background-color: white;\n}\n.react-flow__node-default.selectable:hover, .react-flow__node-input.selectable:hover, .react-flow__node-output.selectable:hover, .react-flow__node-group.selectable:hover {\n box-shadow: 0 1px 4px 1px rgba(0, 0, 0, 0.08);\n }\n.react-flow__node-default.selectable.selected,\n .react-flow__node-default.selectable:focus,\n .react-flow__node-default.selectable:focus-visible,\n .react-flow__node-input.selectable.selected,\n .react-flow__node-input.selectable:focus,\n .react-flow__node-input.selectable:focus-visible,\n .react-flow__node-output.selectable.selected,\n .react-flow__node-output.selectable:focus,\n .react-flow__node-output.selectable:focus-visible,\n .react-flow__node-group.selectable.selected,\n .react-flow__node-group.selectable:focus,\n .react-flow__node-group.selectable:focus-visible {\n box-shadow: 0 0 0 0.5px #1a192b;\n outline: none;\n }\n.react-flow__node-group {\n background-color: rgba(240, 240, 240, 0.25);\n}\n.react-flow__nodesselection-rect,\n.react-flow__selection {\n background: rgba(0, 89, 220, 0.08);\n border: 1px dotted rgba(0, 89, 220, 0.8);\n}\n.react-flow__nodesselection-rect:focus,\n .react-flow__nodesselection-rect:focus-visible,\n .react-flow__selection:focus,\n .react-flow__selection:focus-visible {\n outline: none;\n }\n.react-flow__controls {\n box-shadow: 0 0 2px 1px rgba(0, 0, 0, 0.08);\n}\n.react-flow__controls-button {\n border: none;\n background: #fefefe;\n border-bottom: 1px solid #eee;\n box-sizing: content-box;\n display: flex;\n justify-content: center;\n align-items: center;\n width: 16px;\n height: 16px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n padding: 5px;\n }\n.react-flow__controls-button:hover {\n background: #f4f4f4;\n }\n.react-flow__controls-button svg {\n width: 100%;\n max-width: 12px;\n max-height: 12px;\n }\n.react-flow__minimap {\n background-color: #fff;\n}\n"],"names":[],"sourceRoot":""}