cognite-neat 0.123.26__py3-none-any.whl → 1.0.22__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cognite/neat/__init__.py +4 -3
- cognite/neat/_client/__init__.py +5 -0
- cognite/neat/_client/api.py +8 -0
- cognite/neat/_client/client.py +21 -0
- cognite/neat/_client/config.py +40 -0
- cognite/neat/_client/containers_api.py +138 -0
- cognite/neat/_client/data_classes.py +44 -0
- cognite/neat/_client/data_model_api.py +115 -0
- cognite/neat/_client/init/credentials.py +70 -0
- cognite/neat/_client/init/env_vars.py +131 -0
- cognite/neat/_client/init/main.py +51 -0
- cognite/neat/_client/spaces_api.py +115 -0
- cognite/neat/_client/statistics_api.py +24 -0
- cognite/neat/_client/views_api.py +144 -0
- cognite/neat/_config.py +266 -0
- cognite/neat/_data_model/_analysis.py +571 -0
- cognite/neat/_data_model/_constants.py +74 -0
- cognite/neat/_data_model/_identifiers.py +61 -0
- cognite/neat/_data_model/_shared.py +41 -0
- cognite/neat/_data_model/_snapshot.py +134 -0
- cognite/neat/_data_model/deployer/_differ.py +140 -0
- cognite/neat/_data_model/deployer/_differ_container.py +360 -0
- cognite/neat/_data_model/deployer/_differ_data_model.py +54 -0
- cognite/neat/_data_model/deployer/_differ_space.py +9 -0
- cognite/neat/_data_model/deployer/_differ_view.py +299 -0
- cognite/neat/_data_model/deployer/data_classes.py +644 -0
- cognite/neat/_data_model/deployer/deployer.py +431 -0
- cognite/neat/_data_model/exporters/__init__.py +15 -0
- cognite/neat/_data_model/exporters/_api_exporter.py +37 -0
- cognite/neat/_data_model/exporters/_base.py +24 -0
- cognite/neat/_data_model/exporters/_table_exporter/exporter.py +128 -0
- cognite/neat/_data_model/exporters/_table_exporter/workbook.py +409 -0
- cognite/neat/_data_model/exporters/_table_exporter/writer.py +480 -0
- cognite/neat/_data_model/importers/__init__.py +5 -0
- cognite/neat/_data_model/importers/_api_importer.py +166 -0
- cognite/neat/_data_model/importers/_base.py +16 -0
- cognite/neat/_data_model/importers/_table_importer/data_classes.py +344 -0
- cognite/neat/_data_model/importers/_table_importer/importer.py +192 -0
- cognite/neat/_data_model/importers/_table_importer/reader.py +1102 -0
- cognite/neat/_data_model/importers/_table_importer/source.py +94 -0
- cognite/neat/_data_model/models/conceptual/_base.py +18 -0
- cognite/neat/_data_model/models/conceptual/_concept.py +67 -0
- cognite/neat/_data_model/models/conceptual/_data_model.py +51 -0
- cognite/neat/_data_model/models/conceptual/_properties.py +104 -0
- cognite/neat/_data_model/models/conceptual/_property.py +105 -0
- cognite/neat/_data_model/models/dms/__init__.py +206 -0
- cognite/neat/_data_model/models/dms/_base.py +31 -0
- cognite/neat/_data_model/models/dms/_constants.py +48 -0
- cognite/neat/_data_model/models/dms/_constraints.py +42 -0
- cognite/neat/_data_model/models/dms/_container.py +159 -0
- cognite/neat/_data_model/models/dms/_data_model.py +95 -0
- cognite/neat/_data_model/models/dms/_data_types.py +195 -0
- cognite/neat/_data_model/models/dms/_http.py +28 -0
- cognite/neat/_data_model/models/dms/_indexes.py +30 -0
- cognite/neat/_data_model/models/dms/_limits.py +96 -0
- cognite/neat/_data_model/models/dms/_references.py +141 -0
- cognite/neat/_data_model/models/dms/_schema.py +18 -0
- cognite/neat/_data_model/models/dms/_space.py +48 -0
- cognite/neat/_data_model/models/dms/_types.py +17 -0
- cognite/neat/_data_model/models/dms/_view_filter.py +310 -0
- cognite/neat/_data_model/models/dms/_view_property.py +235 -0
- cognite/neat/_data_model/models/dms/_views.py +216 -0
- cognite/neat/_data_model/models/entities/__init__.py +50 -0
- cognite/neat/_data_model/models/entities/_base.py +101 -0
- cognite/neat/_data_model/models/entities/_constants.py +22 -0
- cognite/neat/_data_model/models/entities/_data_types.py +144 -0
- cognite/neat/_data_model/models/entities/_identifiers.py +61 -0
- cognite/neat/_data_model/models/entities/_parser.py +226 -0
- cognite/neat/_data_model/validation/dms/__init__.py +75 -0
- cognite/neat/_data_model/validation/dms/_ai_readiness.py +381 -0
- cognite/neat/_data_model/validation/dms/_base.py +25 -0
- cognite/neat/_data_model/validation/dms/_connections.py +681 -0
- cognite/neat/_data_model/validation/dms/_consistency.py +58 -0
- cognite/neat/_data_model/validation/dms/_containers.py +199 -0
- cognite/neat/_data_model/validation/dms/_limits.py +368 -0
- cognite/neat/_data_model/validation/dms/_orchestrator.py +70 -0
- cognite/neat/_data_model/validation/dms/_views.py +164 -0
- cognite/neat/_exceptions.py +68 -0
- cognite/neat/_issues.py +68 -0
- cognite/neat/_session/__init__.py +3 -0
- cognite/neat/_session/_html/_render.py +30 -0
- cognite/neat/_session/_html/static/__init__.py +8 -0
- cognite/neat/_session/_html/static/deployment.css +476 -0
- cognite/neat/_session/_html/static/deployment.js +181 -0
- cognite/neat/_session/_html/static/issues.css +211 -0
- cognite/neat/_session/_html/static/issues.js +168 -0
- cognite/neat/_session/_html/static/shared.css +186 -0
- cognite/neat/_session/_html/templates/__init__.py +4 -0
- cognite/neat/_session/_html/templates/deployment.html +80 -0
- cognite/neat/_session/_html/templates/issues.html +45 -0
- cognite/neat/_session/_issues.py +81 -0
- cognite/neat/_session/_physical.py +294 -0
- cognite/neat/_session/_result/__init__.py +3 -0
- cognite/neat/_session/_result/_deployment/__init__.py +0 -0
- cognite/neat/_session/_result/_deployment/_physical/__init__.py +0 -0
- cognite/neat/_session/_result/_deployment/_physical/_changes.py +196 -0
- cognite/neat/_session/_result/_deployment/_physical/_statistics.py +180 -0
- cognite/neat/_session/_result/_deployment/_physical/serializer.py +35 -0
- cognite/neat/_session/_result/_result.py +31 -0
- cognite/neat/_session/_session.py +81 -0
- cognite/neat/_session/_usage_analytics/__init__.py +0 -0
- cognite/neat/_session/_usage_analytics/_collector.py +131 -0
- cognite/neat/_session/_usage_analytics/_constants.py +23 -0
- cognite/neat/_session/_usage_analytics/_storage.py +240 -0
- cognite/neat/_session/_wrappers.py +101 -0
- cognite/neat/_state_machine/__init__.py +10 -0
- cognite/neat/_state_machine/_base.py +37 -0
- cognite/neat/_state_machine/_states.py +52 -0
- cognite/neat/_store/__init__.py +3 -0
- cognite/neat/_store/_provenance.py +88 -0
- cognite/neat/_store/_store.py +220 -0
- cognite/neat/_utils/__init__.py +0 -0
- cognite/neat/_utils/_reader.py +194 -0
- cognite/neat/_utils/auxiliary.py +49 -0
- cognite/neat/_utils/collection.py +11 -0
- cognite/neat/_utils/http_client/__init__.py +39 -0
- cognite/neat/_utils/http_client/_client.py +245 -0
- cognite/neat/_utils/http_client/_config.py +19 -0
- cognite/neat/_utils/http_client/_data_classes.py +294 -0
- cognite/neat/_utils/http_client/_tracker.py +31 -0
- cognite/neat/_utils/repo.py +19 -0
- cognite/neat/_utils/text.py +71 -0
- cognite/neat/_utils/useful_types.py +37 -0
- cognite/neat/_utils/validation.py +154 -0
- cognite/neat/_v0/__init__.py +0 -0
- cognite/neat/_v0/core/__init__.py +0 -0
- cognite/neat/_v0/core/_client/_api/__init__.py +0 -0
- cognite/neat/{core → _v0/core}/_client/_api/data_modeling_loaders.py +8 -7
- cognite/neat/{core → _v0/core}/_client/_api/neat_instances.py +5 -5
- cognite/neat/{core → _v0/core}/_client/_api/schema.py +5 -5
- cognite/neat/{core → _v0/core}/_client/_api/statistics.py +3 -3
- cognite/neat/{core → _v0/core}/_client/_api_client.py +1 -1
- cognite/neat/_v0/core/_client/data_classes/__init__.py +0 -0
- cognite/neat/{core → _v0/core}/_client/data_classes/schema.py +4 -4
- cognite/neat/{core → _v0/core}/_client/testing.py +1 -1
- cognite/neat/{core → _v0/core}/_constants.py +5 -3
- cognite/neat/_v0/core/_data_model/__init__.py +0 -0
- cognite/neat/{core → _v0/core}/_data_model/_constants.py +7 -0
- cognite/neat/{core → _v0/core}/_data_model/_shared.py +4 -4
- cognite/neat/{core → _v0/core}/_data_model/analysis/_base.py +8 -8
- cognite/neat/{core → _v0/core}/_data_model/exporters/__init__.py +1 -2
- cognite/neat/{core → _v0/core}/_data_model/exporters/_base.py +7 -7
- cognite/neat/{core → _v0/core}/_data_model/exporters/_data_model2dms.py +9 -9
- cognite/neat/{core → _v0/core}/_data_model/exporters/_data_model2excel.py +12 -12
- cognite/neat/{core → _v0/core}/_data_model/exporters/_data_model2instance_template.py +4 -4
- cognite/neat/{core/_data_model/exporters/_data_model2ontology.py → _v0/core/_data_model/exporters/_data_model2semantic_model.py} +126 -116
- cognite/neat/{core → _v0/core}/_data_model/exporters/_data_model2yaml.py +1 -1
- cognite/neat/{core → _v0/core}/_data_model/importers/_base.py +5 -5
- cognite/neat/{core → _v0/core}/_data_model/importers/_base_file_reader.py +2 -2
- cognite/neat/{core → _v0/core}/_data_model/importers/_dict2data_model.py +5 -5
- cognite/neat/{core → _v0/core}/_data_model/importers/_dms2data_model.py +18 -15
- cognite/neat/{core → _v0/core}/_data_model/importers/_graph2data_model.py +12 -12
- cognite/neat/{core → _v0/core}/_data_model/importers/_rdf/_base.py +12 -12
- cognite/neat/{core → _v0/core}/_data_model/importers/_rdf/_inference2rdata_model.py +14 -14
- cognite/neat/{core → _v0/core}/_data_model/importers/_rdf/_owl2data_model.py +41 -21
- cognite/neat/{core → _v0/core}/_data_model/importers/_rdf/_shared.py +9 -9
- cognite/neat/{core → _v0/core}/_data_model/importers/_spreadsheet2data_model.py +92 -12
- cognite/neat/{core → _v0/core}/_data_model/models/__init__.py +3 -3
- cognite/neat/{core → _v0/core}/_data_model/models/_base_verified.py +5 -5
- cognite/neat/{core → _v0/core}/_data_model/models/_import_contexts.py +1 -1
- cognite/neat/{core → _v0/core}/_data_model/models/_types.py +5 -5
- cognite/neat/{core → _v0/core}/_data_model/models/conceptual/_unverified.py +16 -10
- cognite/neat/{core → _v0/core}/_data_model/models/conceptual/_validation.py +12 -12
- cognite/neat/{core → _v0/core}/_data_model/models/conceptual/_verified.py +9 -9
- cognite/neat/{core → _v0/core}/_data_model/models/data_types.py +14 -4
- cognite/neat/{core → _v0/core}/_data_model/models/entities/__init__.py +6 -0
- cognite/neat/_v0/core/_data_model/models/entities/_loaders.py +155 -0
- cognite/neat/{core → _v0/core}/_data_model/models/entities/_multi_value.py +2 -2
- cognite/neat/_v0/core/_data_model/models/entities/_restrictions.py +230 -0
- cognite/neat/{core → _v0/core}/_data_model/models/entities/_single_value.py +121 -16
- cognite/neat/{core → _v0/core}/_data_model/models/entities/_types.py +10 -0
- cognite/neat/{core → _v0/core}/_data_model/models/mapping/_classic2core.py +5 -5
- cognite/neat/{core → _v0/core}/_data_model/models/physical/__init__.py +1 -1
- cognite/neat/{core → _v0/core}/_data_model/models/physical/_exporter.py +26 -19
- cognite/neat/{core → _v0/core}/_data_model/models/physical/_unverified.py +133 -37
- cognite/neat/{core → _v0/core}/_data_model/models/physical/_validation.py +24 -20
- cognite/neat/{core → _v0/core}/_data_model/models/physical/_verified.py +95 -24
- cognite/neat/{core → _v0/core}/_data_model/transformers/_base.py +4 -4
- cognite/neat/{core → _v0/core}/_data_model/transformers/_converters.py +35 -28
- cognite/neat/{core → _v0/core}/_data_model/transformers/_mapping.py +7 -7
- cognite/neat/{core → _v0/core}/_data_model/transformers/_union_conceptual.py +5 -5
- cognite/neat/{core → _v0/core}/_data_model/transformers/_verification.py +7 -7
- cognite/neat/_v0/core/_instances/__init__.py +0 -0
- cognite/neat/{core → _v0/core}/_instances/_tracking/base.py +1 -1
- cognite/neat/{core → _v0/core}/_instances/_tracking/log.py +1 -1
- cognite/neat/{core → _v0/core}/_instances/extractors/__init__.py +3 -2
- cognite/neat/{core → _v0/core}/_instances/extractors/_base.py +6 -6
- cognite/neat/_v0/core/_instances/extractors/_classic_cdf/__init__.py +0 -0
- cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_base.py +7 -7
- cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_classic.py +12 -12
- cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_relationships.py +3 -3
- cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_sequences.py +2 -2
- cognite/neat/{core → _v0/core}/_instances/extractors/_dict.py +6 -3
- cognite/neat/{core → _v0/core}/_instances/extractors/_dms.py +6 -6
- cognite/neat/{core → _v0/core}/_instances/extractors/_dms_graph.py +11 -11
- cognite/neat/{core → _v0/core}/_instances/extractors/_mock_graph_generator.py +10 -10
- cognite/neat/{core → _v0/core}/_instances/extractors/_raw.py +3 -3
- cognite/neat/{core → _v0/core}/_instances/extractors/_rdf_file.py +7 -7
- cognite/neat/{core → _v0/core}/_instances/loaders/_base.py +5 -5
- cognite/neat/{core → _v0/core}/_instances/loaders/_rdf2dms.py +17 -17
- cognite/neat/{core → _v0/core}/_instances/loaders/_rdf_to_instance_space.py +11 -11
- cognite/neat/{core → _v0/core}/_instances/queries/_select.py +29 -3
- cognite/neat/{core → _v0/core}/_instances/queries/_update.py +1 -1
- cognite/neat/{core → _v0/core}/_instances/transformers/_base.py +4 -4
- cognite/neat/{core → _v0/core}/_instances/transformers/_classic_cdf.py +6 -6
- cognite/neat/{core → _v0/core}/_instances/transformers/_prune_graph.py +4 -4
- cognite/neat/{core → _v0/core}/_instances/transformers/_rdfpath.py +1 -1
- cognite/neat/{core → _v0/core}/_instances/transformers/_value_type.py +4 -4
- cognite/neat/{core → _v0/core}/_issues/_base.py +5 -5
- cognite/neat/{core → _v0/core}/_issues/_contextmanagers.py +1 -1
- cognite/neat/{core → _v0/core}/_issues/_factory.py +3 -3
- cognite/neat/{core → _v0/core}/_issues/errors/__init__.py +1 -1
- cognite/neat/{core → _v0/core}/_issues/errors/_external.py +1 -1
- cognite/neat/{core → _v0/core}/_issues/errors/_general.py +1 -1
- cognite/neat/{core → _v0/core}/_issues/errors/_properties.py +1 -1
- cognite/neat/{core → _v0/core}/_issues/errors/_resources.py +2 -2
- cognite/neat/{core → _v0/core}/_issues/errors/_wrapper.py +7 -3
- cognite/neat/{core → _v0/core}/_issues/warnings/__init__.py +1 -1
- cognite/neat/{core → _v0/core}/_issues/warnings/_external.py +1 -1
- cognite/neat/{core → _v0/core}/_issues/warnings/_general.py +1 -1
- cognite/neat/{core → _v0/core}/_issues/warnings/_models.py +2 -2
- cognite/neat/{core → _v0/core}/_issues/warnings/_properties.py +2 -2
- cognite/neat/{core → _v0/core}/_issues/warnings/_resources.py +1 -1
- cognite/neat/{core → _v0/core}/_issues/warnings/user_modeling.py +1 -1
- cognite/neat/{core → _v0/core}/_store/_data_model.py +12 -12
- cognite/neat/{core → _v0/core}/_store/_instance.py +43 -10
- cognite/neat/{core → _v0/core}/_store/_provenance.py +3 -3
- cognite/neat/{core → _v0/core}/_store/exceptions.py +4 -4
- cognite/neat/_v0/core/_utils/__init__.py +0 -0
- cognite/neat/{core → _v0/core}/_utils/auth.py +22 -12
- cognite/neat/{core → _v0/core}/_utils/auxiliary.py +1 -1
- cognite/neat/{core → _v0/core}/_utils/collection_.py +2 -2
- cognite/neat/{core → _v0/core}/_utils/graph_transformations_report.py +1 -1
- cognite/neat/{core → _v0/core}/_utils/rdf_.py +1 -1
- cognite/neat/{core → _v0/core}/_utils/reader/_base.py +1 -1
- cognite/neat/{core → _v0/core}/_utils/spreadsheet.py +18 -4
- cognite/neat/{core → _v0/core}/_utils/text.py +1 -1
- cognite/neat/{core → _v0/core}/_utils/upload.py +3 -3
- cognite/neat/{session → _v0}/engine/_load.py +1 -1
- cognite/neat/_v0/plugins/__init__.py +4 -0
- cognite/neat/_v0/plugins/_base.py +9 -0
- cognite/neat/_v0/plugins/_data_model.py +48 -0
- cognite/neat/{plugins → _v0/plugins}/_issues.py +1 -1
- cognite/neat/{plugins → _v0/plugins}/_manager.py +7 -16
- cognite/neat/{session → _v0/session}/_base.py +13 -15
- cognite/neat/{session → _v0/session}/_collector.py +1 -1
- cognite/neat/_v0/session/_diff.py +51 -0
- cognite/neat/{session → _v0/session}/_drop.py +3 -3
- cognite/neat/{session → _v0/session}/_explore.py +2 -2
- cognite/neat/{session → _v0/session}/_fix.py +2 -2
- cognite/neat/{session → _v0/session}/_inspect.py +3 -3
- cognite/neat/{session → _v0/session}/_mapping.py +3 -3
- cognite/neat/{session → _v0/session}/_plugin.py +4 -5
- cognite/neat/{session → _v0/session}/_prepare.py +8 -8
- cognite/neat/{session → _v0/session}/_read.py +34 -21
- cognite/neat/{session → _v0/session}/_set.py +8 -8
- cognite/neat/{session → _v0/session}/_show.py +5 -5
- cognite/neat/{session → _v0/session}/_state.py +10 -10
- cognite/neat/{session → _v0/session}/_subset.py +4 -4
- cognite/neat/{session → _v0/session}/_template.py +11 -11
- cognite/neat/{session → _v0/session}/_to.py +12 -12
- cognite/neat/{session → _v0/session}/_wizard.py +1 -1
- cognite/neat/{session → _v0/session}/exceptions.py +5 -5
- cognite/neat/_version.py +1 -1
- cognite/neat/legacy.py +6 -0
- cognite_neat-1.0.22.dist-info/METADATA +123 -0
- cognite_neat-1.0.22.dist-info/RECORD +329 -0
- cognite_neat-1.0.22.dist-info/WHEEL +4 -0
- cognite/neat/core/_data_model/models/entities/_loaders.py +0 -75
- cognite/neat/plugins/__init__.py +0 -3
- cognite/neat/plugins/data_model/importers/__init__.py +0 -5
- cognite/neat/plugins/data_model/importers/_base.py +0 -28
- cognite/neat/session/_session/_data_model/__init__.py +0 -3
- cognite/neat/session/_session/_data_model/_read.py +0 -193
- cognite/neat/session/_session/_data_model/_routes.py +0 -45
- cognite/neat/session/_session/_data_model/_show.py +0 -147
- cognite/neat/session/_session/_data_model/_write.py +0 -335
- cognite_neat-0.123.26.dist-info/METADATA +0 -144
- cognite_neat-0.123.26.dist-info/RECORD +0 -201
- cognite_neat-0.123.26.dist-info/WHEEL +0 -4
- cognite_neat-0.123.26.dist-info/licenses/LICENSE +0 -201
- /cognite/neat/{core → _client/init}/__init__.py +0 -0
- /cognite/neat/{core/_client/_api → _data_model}/__init__.py +0 -0
- /cognite/neat/{core/_client/data_classes → _data_model/deployer}/__init__.py +0 -0
- /cognite/neat/{core/_data_model → _data_model/exporters/_table_exporter}/__init__.py +0 -0
- /cognite/neat/{core/_instances → _data_model/importers/_table_importer}/__init__.py +0 -0
- /cognite/neat/{core/_instances/extractors/_classic_cdf → _data_model/models}/__init__.py +0 -0
- /cognite/neat/{core/_utils → _data_model/models/conceptual}/__init__.py +0 -0
- /cognite/neat/{plugins/data_model → _data_model/validation}/__init__.py +0 -0
- /cognite/neat/{session/_session → _session/_html}/__init__.py +0 -0
- /cognite/neat/{core → _v0/core}/_client/__init__.py +0 -0
- /cognite/neat/{core → _v0/core}/_client/data_classes/data_modeling.py +0 -0
- /cognite/neat/{core → _v0/core}/_client/data_classes/neat_sequence.py +0 -0
- /cognite/neat/{core → _v0/core}/_client/data_classes/statistics.py +0 -0
- /cognite/neat/{core → _v0/core}/_config.py +0 -0
- /cognite/neat/{core → _v0/core}/_data_model/analysis/__init__.py +0 -0
- /cognite/neat/{core → _v0/core}/_data_model/catalog/__init__.py +0 -0
- /cognite/neat/{core → _v0/core}/_data_model/catalog/classic_model.xlsx +0 -0
- /cognite/neat/{core → _v0/core}/_data_model/catalog/conceptual-imf-data-model.xlsx +0 -0
- /cognite/neat/{core → _v0/core}/_data_model/catalog/hello_world_pump.xlsx +0 -0
- /cognite/neat/{core → _v0/core}/_data_model/importers/__init__.py +0 -0
- /cognite/neat/{core → _v0/core}/_data_model/importers/_rdf/__init__.py +0 -0
- /cognite/neat/{core → _v0/core}/_data_model/models/_base_unverified.py +0 -0
- /cognite/neat/{core → _v0/core}/_data_model/models/conceptual/__init__.py +0 -0
- /cognite/neat/{core → _v0/core}/_data_model/models/entities/_constants.py +0 -0
- /cognite/neat/{core → _v0/core}/_data_model/models/entities/_wrapped.py +0 -0
- /cognite/neat/{core → _v0/core}/_data_model/models/mapping/__init__.py +0 -0
- /cognite/neat/{core → _v0/core}/_data_model/models/mapping/_classic2core.yaml +0 -0
- /cognite/neat/{core → _v0/core}/_data_model/transformers/__init__.py +0 -0
- /cognite/neat/{core → _v0/core}/_instances/_shared.py +0 -0
- /cognite/neat/{core → _v0/core}/_instances/_tracking/__init__.py +0 -0
- /cognite/neat/{core → _v0/core}/_instances/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
- /cognite/neat/{core → _v0/core}/_instances/examples/Knowledge-Graph-Nordic44.xml +0 -0
- /cognite/neat/{core → _v0/core}/_instances/examples/__init__.py +0 -0
- /cognite/neat/{core → _v0/core}/_instances/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
- /cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_assets.py +0 -0
- /cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_data_sets.py +0 -0
- /cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_events.py +0 -0
- /cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_files.py +0 -0
- /cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_labels.py +0 -0
- /cognite/neat/{core → _v0/core}/_instances/extractors/_classic_cdf/_timeseries.py +0 -0
- /cognite/neat/{core → _v0/core}/_instances/loaders/__init__.py +0 -0
- /cognite/neat/{core → _v0/core}/_instances/queries/__init__.py +0 -0
- /cognite/neat/{core → _v0/core}/_instances/queries/_base.py +0 -0
- /cognite/neat/{core → _v0/core}/_instances/queries/_queries.py +0 -0
- /cognite/neat/{core → _v0/core}/_instances/transformers/__init__.py +0 -0
- /cognite/neat/{core → _v0/core}/_issues/__init__.py +0 -0
- /cognite/neat/{core → _v0/core}/_issues/formatters.py +0 -0
- /cognite/neat/{core → _v0/core}/_shared.py +0 -0
- /cognite/neat/{core → _v0/core}/_store/__init__.py +0 -0
- /cognite/neat/{core → _v0/core}/_utils/io_.py +0 -0
- /cognite/neat/{core → _v0/core}/_utils/reader/__init__.py +0 -0
- /cognite/neat/{core → _v0/core}/_utils/tarjan.py +0 -0
- /cognite/neat/{core → _v0/core}/_utils/time_.py +0 -0
- /cognite/neat/{core → _v0/core}/_utils/xml_.py +0 -0
- /cognite/neat/{session → _v0}/engine/__init__.py +0 -0
- /cognite/neat/{session → _v0}/engine/_import.py +0 -0
- /cognite/neat/{session → _v0}/engine/_interface.py +0 -0
- /cognite/neat/{session → _v0/session}/__init__.py +0 -0
- /cognite/neat/{session → _v0/session}/_experimental.py +0 -0
- /cognite/neat/{session → _v0/session}/_state/README.md +0 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
from datetime import date, datetime
|
|
2
|
+
|
|
3
|
+
from pydantic import Field
|
|
4
|
+
|
|
5
|
+
from cognite.neat._data_model._constants import XML_SCHEMA_NAMESPACE
|
|
6
|
+
from cognite.neat._data_model._identifiers import URI
|
|
7
|
+
|
|
8
|
+
from ._base import Entity
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class UnitEntity(Entity): ...
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class EnumCollectionEntity(Entity): ...
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class DataType(Entity):
|
|
18
|
+
prefix: str = Field("xsd", frozen=True)
|
|
19
|
+
|
|
20
|
+
@property
|
|
21
|
+
def python(self) -> type:
|
|
22
|
+
raise NotImplementedError()
|
|
23
|
+
|
|
24
|
+
@property
|
|
25
|
+
def xsd(self) -> URI:
|
|
26
|
+
return XML_SCHEMA_NAMESPACE[self.suffix]
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class Boolean(DataType):
|
|
30
|
+
suffix: str = Field("boolean", frozen=True)
|
|
31
|
+
|
|
32
|
+
@property
|
|
33
|
+
def python(self) -> type:
|
|
34
|
+
return bool
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class Float(DataType):
|
|
38
|
+
suffix: str = Field("float", frozen=True)
|
|
39
|
+
unit: UnitEntity | None = None
|
|
40
|
+
|
|
41
|
+
@property
|
|
42
|
+
def python(self) -> type:
|
|
43
|
+
return float
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class Double(DataType):
|
|
47
|
+
suffix: str = Field("double", frozen=True)
|
|
48
|
+
unit: UnitEntity | None = None
|
|
49
|
+
|
|
50
|
+
@property
|
|
51
|
+
def python(self) -> type:
|
|
52
|
+
return float
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class Integer(DataType):
|
|
56
|
+
suffix: str = Field("integer", frozen=True)
|
|
57
|
+
unit: UnitEntity | None = None
|
|
58
|
+
|
|
59
|
+
@property
|
|
60
|
+
def python(self) -> type:
|
|
61
|
+
return int
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class Long(DataType):
|
|
65
|
+
suffix: str = Field("long", frozen=True)
|
|
66
|
+
unit: UnitEntity | None = None
|
|
67
|
+
|
|
68
|
+
@property
|
|
69
|
+
def python(self) -> type:
|
|
70
|
+
return int
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
class String(DataType):
|
|
74
|
+
suffix: str = Field("string", frozen=True)
|
|
75
|
+
max_text_size: int | None = Field(
|
|
76
|
+
None,
|
|
77
|
+
alias="maxTextSize",
|
|
78
|
+
description="Specifies the maximum size in bytes of the text property, when encoded with utf-8.",
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
@property
|
|
82
|
+
def python(self) -> type:
|
|
83
|
+
return str
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
class AnyURI(DataType):
|
|
87
|
+
suffix: str = Field("anyURI", frozen=True)
|
|
88
|
+
|
|
89
|
+
@property
|
|
90
|
+
def python(self) -> type:
|
|
91
|
+
return str
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
class Date(DataType):
|
|
95
|
+
suffix: str = Field("date", frozen=True)
|
|
96
|
+
|
|
97
|
+
@property
|
|
98
|
+
def python(self) -> type:
|
|
99
|
+
return date
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
class DateTime(DataType):
|
|
103
|
+
suffix: str = Field("dateTime", frozen=True)
|
|
104
|
+
|
|
105
|
+
@property
|
|
106
|
+
def python(self) -> type:
|
|
107
|
+
return datetime
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
class DateTimeStamp(DataType):
|
|
111
|
+
suffix: str = Field("dateTimeStamp", frozen=True)
|
|
112
|
+
|
|
113
|
+
@property
|
|
114
|
+
def python(self) -> type:
|
|
115
|
+
return datetime
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
# CDF Specific extensions of XSD types
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
class Timeseries(DataType):
|
|
122
|
+
suffix: str = Field("timeseries", frozen=True)
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
class File(DataType):
|
|
126
|
+
suffix: str = Field("string", frozen=True)
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
class Sequence(DataType):
|
|
130
|
+
suffix: str = Field("sequence", frozen=True)
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
class Json(DataType):
|
|
134
|
+
suffix: str = Field("json", frozen=True)
|
|
135
|
+
|
|
136
|
+
@property
|
|
137
|
+
def python(self) -> type:
|
|
138
|
+
return dict
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
class Enum(DataType):
|
|
142
|
+
suffix: str = Field("enum", frozen=True)
|
|
143
|
+
collection: EnumCollectionEntity
|
|
144
|
+
unknown_value: str | None = Field(None, alias="unknownValue")
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
from pydantic import HttpUrl, RootModel, ValidationError
|
|
2
|
+
|
|
3
|
+
from cognite.neat._utils.auxiliary import local_import
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class URI(RootModel[str]):
|
|
7
|
+
def __init__(self, value: str):
|
|
8
|
+
try:
|
|
9
|
+
# Use Pydantic's HttpUrl to validate the URI
|
|
10
|
+
_ = HttpUrl(value)
|
|
11
|
+
except ValidationError as e:
|
|
12
|
+
raise ValueError(f"Invalid URI: {value}") from e
|
|
13
|
+
super().__init__(value)
|
|
14
|
+
|
|
15
|
+
def __str__(self) -> str:
|
|
16
|
+
return self.root
|
|
17
|
+
|
|
18
|
+
def __repr__(self) -> str:
|
|
19
|
+
return f"URI({self.root!r})"
|
|
20
|
+
|
|
21
|
+
def as_rdflib_uriref(self): # type: ignore[no-untyped-def]
|
|
22
|
+
# rdflib is an optional dependency, so import here
|
|
23
|
+
local_import("rdflib", "rdflib")
|
|
24
|
+
from rdflib import URIRef
|
|
25
|
+
|
|
26
|
+
return URIRef(self.root)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class NameSpace(RootModel[str]):
|
|
30
|
+
def __init__(self, value: str):
|
|
31
|
+
try:
|
|
32
|
+
# Use Pydantic's HttpUrl to validate the URI
|
|
33
|
+
_ = HttpUrl(value)
|
|
34
|
+
except ValidationError as e:
|
|
35
|
+
raise ValueError(f"Invalid Namespace: {value}") from e
|
|
36
|
+
super().__init__(value)
|
|
37
|
+
|
|
38
|
+
def __str__(self) -> str:
|
|
39
|
+
return self.root
|
|
40
|
+
|
|
41
|
+
def __repr__(self) -> str:
|
|
42
|
+
return f"NameSpace({self.root!r})"
|
|
43
|
+
|
|
44
|
+
def term(self, name: str) -> URI:
|
|
45
|
+
# need to handle slices explicitly because of __getitem__ override
|
|
46
|
+
return URI(self.root + (name if isinstance(name, str) else ""))
|
|
47
|
+
|
|
48
|
+
def __getitem__(self, key: str) -> URI: # type: ignore[override]
|
|
49
|
+
return self.term(key)
|
|
50
|
+
|
|
51
|
+
def __getattr__(self, name: str) -> URI:
|
|
52
|
+
if name.startswith("__"): # ignore any special Python names!
|
|
53
|
+
raise AttributeError
|
|
54
|
+
return self.term(name)
|
|
55
|
+
|
|
56
|
+
def as_rdflib_namespace(self): # type: ignore[no-untyped-def]
|
|
57
|
+
# rdflib is an optional dependency, so import here
|
|
58
|
+
local_import("rdflib", "rdflib")
|
|
59
|
+
from rdflib import Namespace
|
|
60
|
+
|
|
61
|
+
return Namespace(self.root)
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import re
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
from typing import Literal
|
|
4
|
+
|
|
5
|
+
SPECIAL_CHARACTERS = ":()=,"
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@dataclass
|
|
9
|
+
class ParsedEntity:
|
|
10
|
+
"""Represents a parsed entity string."""
|
|
11
|
+
|
|
12
|
+
prefix: str
|
|
13
|
+
suffix: str
|
|
14
|
+
properties: dict[str, str]
|
|
15
|
+
|
|
16
|
+
def __str__(self) -> str:
|
|
17
|
+
props_str = ""
|
|
18
|
+
if self.properties:
|
|
19
|
+
joined = ",".join(f"{k}={v}" for k, v in sorted(self.properties.items(), key=lambda x: x[0]))
|
|
20
|
+
props_str = f"({joined})"
|
|
21
|
+
if self.prefix:
|
|
22
|
+
return f"{self.prefix}:{self.suffix}{props_str}"
|
|
23
|
+
return f"{self.suffix}{props_str}"
|
|
24
|
+
|
|
25
|
+
def __hash__(self) -> int:
|
|
26
|
+
return hash(str(self))
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class _EntityParser:
|
|
30
|
+
"""A parser for entity strings in the format 'prefix:suffix(prop1=val1,prop2=val2)'."""
|
|
31
|
+
|
|
32
|
+
def __init__(self, entity_string: str):
|
|
33
|
+
"""Initialize the parser with the entity string to parse.
|
|
34
|
+
|
|
35
|
+
Args:
|
|
36
|
+
entity_string: The entity string to parse.
|
|
37
|
+
"""
|
|
38
|
+
self.entity_string = entity_string.strip() if entity_string else ""
|
|
39
|
+
self.pos = 0
|
|
40
|
+
self.length = len(self.entity_string)
|
|
41
|
+
|
|
42
|
+
def peek(self) -> str:
|
|
43
|
+
"""Peek at current character without advancing position."""
|
|
44
|
+
if self.pos >= self.length:
|
|
45
|
+
return ""
|
|
46
|
+
return self.entity_string[self.pos]
|
|
47
|
+
|
|
48
|
+
def advance(self) -> str:
|
|
49
|
+
"""Get current character and advance position."""
|
|
50
|
+
if self.pos >= self.length:
|
|
51
|
+
return ""
|
|
52
|
+
char = self.entity_string[self.pos]
|
|
53
|
+
self.pos += 1
|
|
54
|
+
return char
|
|
55
|
+
|
|
56
|
+
def skip_whitespace(self) -> None:
|
|
57
|
+
"""Skip whitespace characters."""
|
|
58
|
+
while self.pos < self.length and self.entity_string[self.pos].isspace():
|
|
59
|
+
self.pos += 1
|
|
60
|
+
|
|
61
|
+
def parse_identifier(self) -> str:
|
|
62
|
+
"""Parse an identifier (letters, numbers, underscores, etc.)."""
|
|
63
|
+
start = self.pos
|
|
64
|
+
while self.pos < self.length and self.entity_string[self.pos] not in SPECIAL_CHARACTERS:
|
|
65
|
+
self.pos += 1
|
|
66
|
+
return self.entity_string[start : self.pos].strip()
|
|
67
|
+
|
|
68
|
+
def parse_property_value(self) -> str:
|
|
69
|
+
"""Parse a property value, handling nested parentheses."""
|
|
70
|
+
start = self.pos
|
|
71
|
+
paren_depth = 0
|
|
72
|
+
|
|
73
|
+
while self.pos < self.length:
|
|
74
|
+
char = self.entity_string[self.pos]
|
|
75
|
+
if char == "(":
|
|
76
|
+
paren_depth += 1
|
|
77
|
+
elif char == ")":
|
|
78
|
+
if paren_depth == 0:
|
|
79
|
+
# This is the closing paren of the properties section
|
|
80
|
+
break
|
|
81
|
+
paren_depth -= 1
|
|
82
|
+
elif char == "," and paren_depth == 0:
|
|
83
|
+
# This is a property separator, not part of the value
|
|
84
|
+
break
|
|
85
|
+
self.pos += 1
|
|
86
|
+
|
|
87
|
+
return self.entity_string[start : self.pos].strip()
|
|
88
|
+
|
|
89
|
+
def parse_properties(self) -> dict[str, str]:
|
|
90
|
+
"""Parse properties within parentheses."""
|
|
91
|
+
properties = {}
|
|
92
|
+
|
|
93
|
+
# Skip opening parenthesis
|
|
94
|
+
if self.peek() == "(":
|
|
95
|
+
self.advance()
|
|
96
|
+
else:
|
|
97
|
+
raise ValueError("expected `(`")
|
|
98
|
+
|
|
99
|
+
self.skip_whitespace()
|
|
100
|
+
|
|
101
|
+
while self.pos < self.length and self.peek() != ")":
|
|
102
|
+
# Parse property name
|
|
103
|
+
self.skip_whitespace()
|
|
104
|
+
if self.peek() == ")":
|
|
105
|
+
break
|
|
106
|
+
|
|
107
|
+
prop_name = self.parse_identifier()
|
|
108
|
+
if not prop_name:
|
|
109
|
+
raise ValueError(f"Expected property name at position {self.pos}. Got {self.peek()!r}")
|
|
110
|
+
self.skip_whitespace()
|
|
111
|
+
|
|
112
|
+
# Expect '='
|
|
113
|
+
if self.peek() != "=":
|
|
114
|
+
raise ValueError(
|
|
115
|
+
f"Expected '=' after property name '{prop_name}' at position {self.pos}. Got {self.peek()!r}"
|
|
116
|
+
)
|
|
117
|
+
self.advance() # consume '='
|
|
118
|
+
|
|
119
|
+
self.skip_whitespace()
|
|
120
|
+
|
|
121
|
+
# Parse property value (handles complex values)
|
|
122
|
+
prop_value = self.parse_property_value()
|
|
123
|
+
|
|
124
|
+
properties[prop_name] = prop_value
|
|
125
|
+
|
|
126
|
+
self.skip_whitespace()
|
|
127
|
+
|
|
128
|
+
# Check for comma or end
|
|
129
|
+
if self.peek() == ",":
|
|
130
|
+
self.advance() # consume ','
|
|
131
|
+
|
|
132
|
+
# Check if we reached the end without finding a closing parenthesis
|
|
133
|
+
if self.pos >= self.length:
|
|
134
|
+
raise ValueError(f"Expected ')' to close properties at position {self.length}")
|
|
135
|
+
|
|
136
|
+
# Skip closing parenthesis
|
|
137
|
+
if self.peek() == ")":
|
|
138
|
+
self.advance()
|
|
139
|
+
|
|
140
|
+
return properties
|
|
141
|
+
|
|
142
|
+
def parse(self) -> ParsedEntity:
|
|
143
|
+
"""Parse the entity string and return prefix, suffix, and properties.
|
|
144
|
+
|
|
145
|
+
Returns:
|
|
146
|
+
A `ParsedEntity` object containing the parsed components of the entity string.
|
|
147
|
+
"""
|
|
148
|
+
if not self.entity_string:
|
|
149
|
+
return ParsedEntity(prefix="", suffix="", properties={})
|
|
150
|
+
if self.entity_string.strip() == ":":
|
|
151
|
+
raise ValueError("Expected identifier at position 0")
|
|
152
|
+
|
|
153
|
+
# Parse the main identifier (could be prefix:suffix or just suffix)
|
|
154
|
+
main_id = self.parse_identifier()
|
|
155
|
+
|
|
156
|
+
# Check if there's a colon (indicating prefix:suffix)
|
|
157
|
+
prefix = ""
|
|
158
|
+
suffix = ""
|
|
159
|
+
|
|
160
|
+
if self.peek() == ":":
|
|
161
|
+
self.advance() # consume ':'
|
|
162
|
+
prefix = main_id
|
|
163
|
+
suffix = self.parse_identifier()
|
|
164
|
+
if not suffix:
|
|
165
|
+
raise ValueError(f"Expected identifier after ':' at position {self.pos}")
|
|
166
|
+
else:
|
|
167
|
+
suffix = main_id
|
|
168
|
+
|
|
169
|
+
# Check if there are properties
|
|
170
|
+
self.skip_whitespace()
|
|
171
|
+
properties = {}
|
|
172
|
+
if self.peek() == "(":
|
|
173
|
+
properties = self.parse_properties()
|
|
174
|
+
|
|
175
|
+
# Check for unexpected trailing characters
|
|
176
|
+
self.skip_whitespace()
|
|
177
|
+
if self.pos < self.length:
|
|
178
|
+
raise ValueError(f"Unexpected characters after properties at position {self.pos}. Got {self.peek()!r}")
|
|
179
|
+
|
|
180
|
+
return ParsedEntity(prefix, suffix, properties)
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
def parse_entity(entity_string: str) -> ParsedEntity:
|
|
184
|
+
"""Parse an entity string into its prefix, suffix, and properties.
|
|
185
|
+
|
|
186
|
+
Args:
|
|
187
|
+
entity_string (str): The entity string to parse. It can be in the format "prefix:suffix(prop1=val1,prop2=val2)"
|
|
188
|
+
or "suffix(prop1=val1,prop2=val2)" or just "suffix".
|
|
189
|
+
|
|
190
|
+
Returns:
|
|
191
|
+
A `ParsedEntity` object containing the parsed components of the entity string.
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
Raises:
|
|
195
|
+
ValueError: If the entity string is malformed.
|
|
196
|
+
|
|
197
|
+
This parser allows arbitrary characters in property values, including nested parentheses.
|
|
198
|
+
Reserved characters like '=', ',', '(', and ')' are used for parsing structure and cannot appear
|
|
199
|
+
unescaped in property names.
|
|
200
|
+
|
|
201
|
+
For example, it can parse:
|
|
202
|
+
- "asset:vehicle(type=car,details=(color=red,size=large))"
|
|
203
|
+
- "device(sensor(model=X100,features=(wifi,bluetooth)))"
|
|
204
|
+
- "location(city=New York,state=NY)"
|
|
205
|
+
|
|
206
|
+
"""
|
|
207
|
+
parser = _EntityParser(entity_string)
|
|
208
|
+
return parser.parse()
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
def parse_entities(entities_str: str, separator: Literal[","] = ",") -> list[ParsedEntity] | None:
|
|
212
|
+
"""Parse a comma-separated string of entities.
|
|
213
|
+
|
|
214
|
+
Args:
|
|
215
|
+
entities_str: A comma-separated string of entities.
|
|
216
|
+
separator: The separator used to split entities.
|
|
217
|
+
A list of `ParsedEntity` objects or None if the input string is empty.
|
|
218
|
+
"""
|
|
219
|
+
if not entities_str.strip():
|
|
220
|
+
return None
|
|
221
|
+
if separator != ",":
|
|
222
|
+
raise ValueError("Only ',' is supported as a separator currently.")
|
|
223
|
+
# Regex to split on the separator but ignore separators within parentheses
|
|
224
|
+
pattern = rf"{separator}(?![^()]*\))"
|
|
225
|
+
parts = re.split(pattern, entities_str)
|
|
226
|
+
return [parse_entity(part.strip()) for part in parts if part.strip()]
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
from ._ai_readiness import (
|
|
2
|
+
DataModelMissingDescription,
|
|
3
|
+
DataModelMissingName,
|
|
4
|
+
EnumerationMissingDescription,
|
|
5
|
+
EnumerationMissingName,
|
|
6
|
+
ViewMissingDescription,
|
|
7
|
+
ViewMissingName,
|
|
8
|
+
ViewPropertyMissingDescription,
|
|
9
|
+
ViewPropertyMissingName,
|
|
10
|
+
)
|
|
11
|
+
from ._connections import (
|
|
12
|
+
ConnectionValueTypeUndefined,
|
|
13
|
+
ConnectionValueTypeUnexisting,
|
|
14
|
+
ReverseConnectionContainerMissing,
|
|
15
|
+
ReverseConnectionContainerPropertyMissing,
|
|
16
|
+
ReverseConnectionContainerPropertyWrongType,
|
|
17
|
+
ReverseConnectionPointsToAncestor,
|
|
18
|
+
ReverseConnectionSourcePropertyMissing,
|
|
19
|
+
ReverseConnectionSourcePropertyWrongType,
|
|
20
|
+
ReverseConnectionSourceViewMissing,
|
|
21
|
+
ReverseConnectionTargetMismatch,
|
|
22
|
+
ReverseConnectionTargetMissing,
|
|
23
|
+
)
|
|
24
|
+
from ._consistency import ViewSpaceVersionInconsistentWithDataModel
|
|
25
|
+
from ._containers import (
|
|
26
|
+
ExternalContainerDoesNotExist,
|
|
27
|
+
ExternalContainerPropertyDoesNotExist,
|
|
28
|
+
RequiredContainerDoesNotExist,
|
|
29
|
+
)
|
|
30
|
+
from ._limits import (
|
|
31
|
+
ContainerPropertyCountIsOutOfLimits,
|
|
32
|
+
ContainerPropertyListSizeIsOutOfLimits,
|
|
33
|
+
DataModelViewCountIsOutOfLimits,
|
|
34
|
+
ViewContainerCountIsOutOfLimits,
|
|
35
|
+
ViewImplementsCountIsOutOfLimits,
|
|
36
|
+
ViewPropertyCountIsOutOfLimits,
|
|
37
|
+
)
|
|
38
|
+
from ._orchestrator import DmsDataModelValidation
|
|
39
|
+
from ._views import ImplementedViewNotExisting, ViewToContainerMappingNotPossible
|
|
40
|
+
|
|
41
|
+
__all__ = [
|
|
42
|
+
"ConnectionValueTypeUndefined",
|
|
43
|
+
"ConnectionValueTypeUnexisting",
|
|
44
|
+
"ContainerPropertyCountIsOutOfLimits",
|
|
45
|
+
"ContainerPropertyListSizeIsOutOfLimits",
|
|
46
|
+
"ContainerPropertyListSizeIsOutOfLimits",
|
|
47
|
+
"DataModelMissingDescription",
|
|
48
|
+
"DataModelMissingName",
|
|
49
|
+
"DataModelViewCountIsOutOfLimits",
|
|
50
|
+
"DmsDataModelValidation",
|
|
51
|
+
"EnumerationMissingDescription",
|
|
52
|
+
"EnumerationMissingName",
|
|
53
|
+
"ExternalContainerDoesNotExist",
|
|
54
|
+
"ExternalContainerPropertyDoesNotExist",
|
|
55
|
+
"ImplementedViewNotExisting",
|
|
56
|
+
"RequiredContainerDoesNotExist",
|
|
57
|
+
"ReverseConnectionContainerMissing",
|
|
58
|
+
"ReverseConnectionContainerPropertyMissing",
|
|
59
|
+
"ReverseConnectionContainerPropertyWrongType",
|
|
60
|
+
"ReverseConnectionPointsToAncestor",
|
|
61
|
+
"ReverseConnectionSourcePropertyMissing",
|
|
62
|
+
"ReverseConnectionSourcePropertyWrongType",
|
|
63
|
+
"ReverseConnectionSourceViewMissing",
|
|
64
|
+
"ReverseConnectionTargetMismatch",
|
|
65
|
+
"ReverseConnectionTargetMissing",
|
|
66
|
+
"ViewContainerCountIsOutOfLimits",
|
|
67
|
+
"ViewImplementsCountIsOutOfLimits",
|
|
68
|
+
"ViewMissingDescription",
|
|
69
|
+
"ViewMissingName",
|
|
70
|
+
"ViewPropertyCountIsOutOfLimits",
|
|
71
|
+
"ViewPropertyMissingDescription",
|
|
72
|
+
"ViewPropertyMissingName",
|
|
73
|
+
"ViewSpaceVersionInconsistentWithDataModel",
|
|
74
|
+
"ViewToContainerMappingNotPossible",
|
|
75
|
+
]
|