cognite-neat 0.122.1__tar.gz → 0.122.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of cognite-neat might be problematic. Click here for more details.
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/PKG-INFO +1 -1
- cognite_neat-0.122.2/cognite/neat/_version.py +2 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/importers/_dms2data_model.py +2 -2
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/transformers/_converters.py +1 -1
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/transformers/_mapping.py +1 -1
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/transformers/_verification.py +1 -1
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/loaders/__init__.py +2 -1
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/loaders/_base.py +4 -10
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/loaders/_rdf2dms.py +18 -131
- cognite_neat-0.122.2/cognite/neat/core/_instances/loaders/_rdf_to_instance_space.py +249 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/queries/_select.py +12 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/_base.py +2 -2
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/_drop.py +1 -1
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/_fix.py +1 -1
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/_mapping.py +1 -1
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/_prepare.py +3 -3
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/_read.py +10 -10
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/_set.py +1 -1
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/_state.py +2 -2
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/_subset.py +2 -2
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/_template.py +3 -3
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/_to.py +21 -14
- cognite_neat-0.122.2/last_changelog_entry.md +4 -0
- cognite_neat-0.122.2/last_git_message.txt +17 -0
- cognite_neat-0.122.2/last_version.txt +1 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/pyproject.toml +1 -1
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_session/test_data_model_to.py +3 -3
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_session/test_graph_flow.py +10 -5
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_loaders/test_dms_loader.py +8 -4
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_loaders/test_rdf2dms.py +7 -2
- cognite_neat-0.122.2/tests/tests_unit/test_graph/test_loaders/test_rdf_to_instance_space.py +133 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_importers/test_inference_importer.py +4 -2
- cognite_neat-0.122.2/tests/tests_unit/test_store/test_select_queries.py +25 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/uv.lock +1 -1
- cognite_neat-0.122.1/cognite/neat/_version.py +0 -2
- cognite_neat-0.122.1/last_changelog_entry.md +0 -5
- cognite_neat-0.122.1/last_git_message.txt +0 -21
- cognite_neat-0.122.1/last_version.txt +0 -1
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/.coveragerc +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/.github/CODEOWNERS +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/.github/pull_request_template.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/.github/renovate.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/.github/workflows/code-quality.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/.github/workflows/release.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/.gitignore +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/.pre-commit-config.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/.readthedocs.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/CODE_OF_CONDUCT.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/CONTRIBUTING.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/LICENSE +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/README.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cdf.toml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/codecov.yml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_client/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_client/_api/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_client/_api/data_modeling_loaders.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_client/_api/neat_instances.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_client/_api/schema.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_client/_api/statistics.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_client/_api_client.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_client/data_classes/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_client/data_classes/data_modeling.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_client/data_classes/neat_sequence.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_client/data_classes/schema.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_client/data_classes/statistics.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_client/testing.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_config.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_constants.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/_constants.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/_shared.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/analysis/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/analysis/_base.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/catalog/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/catalog/classic_model.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/catalog/conceptual-imf-data-model.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/catalog/hello_world_pump.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/exporters/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/exporters/_base.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/exporters/_data_model2dms.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/exporters/_data_model2excel.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/exporters/_data_model2instance_template.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/exporters/_data_model2ontology.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/exporters/_data_model2yaml.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/importers/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/importers/_base.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/importers/_base_file_reader.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/importers/_dict2data_model.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/importers/_dtdl2data_model/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/importers/_dtdl2data_model/_unit_lookup.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/importers/_dtdl2data_model/dtdl_converter.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/importers/_dtdl2data_model/dtdl_importer.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/importers/_dtdl2data_model/spec.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/importers/_rdf/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/importers/_rdf/_base.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/importers/_rdf/_imf2data_model.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/importers/_rdf/_inference2rdata_model.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/importers/_rdf/_owl2data_model.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/importers/_rdf/_shared.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/importers/_spreadsheet2data_model.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/_base_unverified.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/_base_verified.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/_types.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/conceptual/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/conceptual/_unverified.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/conceptual/_validation.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/conceptual/_verified.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/data_types.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/entities/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/entities/_constants.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/entities/_loaders.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/entities/_multi_value.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/entities/_single_value.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/entities/_types.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/entities/_wrapped.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/mapping/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/mapping/_classic2core.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/mapping/_classic2core.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/physical/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/physical/_exporter.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/physical/_unverified.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/physical/_validation.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/models/physical/_verified.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/transformers/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/transformers/_base.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/_shared.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/_tracking/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/_tracking/base.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/_tracking/log.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/examples/Knowledge-Graph-Nordic44.xml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/examples/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/extractors/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/extractors/_base.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/extractors/_classic_cdf/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/extractors/_classic_cdf/_assets.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/extractors/_classic_cdf/_base.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/extractors/_classic_cdf/_classic.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/extractors/_classic_cdf/_data_sets.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/extractors/_classic_cdf/_events.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/extractors/_classic_cdf/_files.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/extractors/_classic_cdf/_labels.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/extractors/_classic_cdf/_relationships.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/extractors/_classic_cdf/_sequences.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/extractors/_classic_cdf/_timeseries.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/extractors/_dict.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/extractors/_dms.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/extractors/_dms_graph.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/extractors/_mock_graph_generator.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/extractors/_raw.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/extractors/_rdf_file.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/queries/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/queries/_base.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/queries/_queries.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/queries/_update.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/transformers/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/transformers/_base.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/transformers/_classic_cdf.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/transformers/_prune_graph.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/transformers/_rdfpath.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/transformers/_value_type.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_issues/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_issues/_base.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_issues/_contextmanagers.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_issues/_factory.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_issues/errors/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_issues/errors/_external.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_issues/errors/_general.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_issues/errors/_properties.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_issues/errors/_resources.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_issues/errors/_wrapper.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_issues/formatters.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_issues/warnings/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_issues/warnings/_external.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_issues/warnings/_general.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_issues/warnings/_models.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_issues/warnings/_properties.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_issues/warnings/_resources.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_issues/warnings/user_modeling.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_shared.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_store/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_store/_data_model.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_store/_instance.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_store/_provenance.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_store/exceptions.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_utils/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_utils/auth.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_utils/auxiliary.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_utils/collection_.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_utils/graph_transformations_report.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_utils/io_.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_utils/rdf_.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_utils/reader/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_utils/reader/_base.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_utils/spreadsheet.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_utils/text.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_utils/time_.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_utils/upload.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_utils/xml_.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/py.typed +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/_collector.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/_experimental.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/_explore.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/_inspect.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/_show.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/_state/README.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/_wizard.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/engine/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/engine/_import.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/engine/_interface.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/engine/_load.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/session/exceptions.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/dev.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/DataModelCDF.PNG +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/DataModelInstancesCDF.PNG +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/DataModelInstancesVizCDF.PNG +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/aml-dm-cdf.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/aml-dm.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/aml-instances-cdf.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/aml-instances-full.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_dms.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_dms_typed.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_populated.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_populated_with_typed.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/authorship.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/base-components.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/bid_capacity_data_model.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/change_validate_step.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/connecting_metadata_dm.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/connecting_metadata_populated.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/connecting_metadata_published_dm.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/container_spec.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/core_extension.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/core_extension_excel.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/core_extension_no_connection.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/core_extension_with_properties.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/data-exploration.gif +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/data-model-nordic44.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/data-modeling-flow.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/dexpi-dm-cdf.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/dexpi-dm-viz.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/dexpi-graph-viz.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/dexpi-instance-cdf.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/dexpi-transformed-graph-viz.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/dm-classes.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/dm-object-shapes.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/dm-prefixes.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/dm-source-to-solution-mapping.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/dm2cdf-asset.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/dm2cdf-mapping.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/execution-history.gif +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/export_dms_config.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/export_dms_executed.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/export_dms_workflow.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/features.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/graph-etl-flow.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/high-level-io.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/instances-nordic44.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/instances-sheet.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/key-aspects-of-neat.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/knowledge-graph-viz-filtering.gif +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/knowledge-graph-viz.gif +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/life_cycle_analitic_solution_export_dms.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/life_cycle_converter_model_analytic_solution_model.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/life_cycle_download_reference_model_analytic_soluteion_model.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/life_cycle_download_reference_model_analytic_solution_model_export.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/logo.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/metadata-sheet.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/multi-hop.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/neat-high-level.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/neat-two_flows.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/neat_shift_tab.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/neat_tab.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/prefixes-sheet.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/pump_hello_world_published.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/rdf-in-nutshell.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/rdf2cdf-graph-change.jpg +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/rdf2cdf-graph-resurrect.jpg +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/rdf2cdf-graph.jpg +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/rdf2cdf-init-run-step1.jpg +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/rdf2cdf-init-run-step2.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/rdf2cdf-init-run.jpg +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/rdf2cdf-post-init.jpg +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/run_workflow.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/sheet2cdf-asset-hierarchy.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/sheet2cdf-running-workflow.gif +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/sheet2cdf-transformation-rules-ui.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/sheet2cdf-upload-rules.gif +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/sheet2cdf-workflow-steps.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/sheet2cdf-workflow.gif +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/sheet2cdf-workflow.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/step-configurables.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/step-metrics.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/tutorial-notebooks-part-2_graph-capturing-sheet.gif +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/validate_workflow.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/wf-ephemeral-mode.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/wf-overview.gif +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/wf-persistent-blocking-mode.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/wf-persistent-non-blocking.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/wf-start-mode-ui.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/wind_farm_classic_knowledge_graph.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/wind_farm_data_product_instances.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/work-in-progress.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/workflow-context.jpg +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/working_with_metadata_provenance.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/figs/working_with_metadata_published_dm.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/rules/cdf-dms-architect-alice.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/rules/dms-addition-svein-harald.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/rules/dms-analytics-olav.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/rules/dms-architect-rules-raw-filter-example.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/rules/dms-architect-rules-template.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/rules/dms-rebuild-olav.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/rules/domain-expert-rules-template.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/rules/expert-grid-emma.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/rules/expert-wind-energy-jon.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/rules/information-addition-svein-harald.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/rules/information-analytics-olav-ref.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/rules/information-analytics-olav.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/rules/information-architect-david.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/rules/information-architect-rules-template.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/videos/tutorial-1-defining-data-model.mp4 +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/videos/tutorial-1-download-rules-template.mp4 +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/videos/tutorial-1-upload-gql-schema-to-cdf.mp4 +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/videos/tutorial-2-graph-capturing-sheet.mp4 +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/videos/tutorial-3-asset-hierarchy.mp4 +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/videos/tutorial-3-decommissioning.mp4 +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/videos/tutorial-3-relationships.mp4 +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/videos/tutorial-3-resurrection.mp4 +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/artifacts/videos/tutorial-4-asset-hierarchy.mp4 +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/data-modeling-principles.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/excel_data_modeling/conceptual/overview.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/excel_data_modeling/conceptual/reference.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/excel_data_modeling/data_model.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/excel_data_modeling/physical/enum.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/excel_data_modeling/physical/overview.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/excel_data_modeling/physical/properties.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/excel_data_modeling/physical/reference.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/excel_data_modeling/physical/views.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/excel_data_modeling/units.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/gettingstarted/installation.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/gettingstarted/why-neat.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/index.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/reference/NeatSession/base.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/reference/NeatSession/drop.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/reference/NeatSession/fix.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/reference/NeatSession/inspect.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/reference/NeatSession/mapping.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/reference/NeatSession/prepare.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/reference/NeatSession/read.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/reference/NeatSession/set.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/reference/NeatSession/show.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/reference/NeatSession/subset.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/reference/NeatSession/template.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/reference/NeatSession/to.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/reference/issues/base.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/reference/issues/errors.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/reference/issues/user_model_warnings.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/reference/issues/warnings.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/reference/overview.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/tutorials/data-modeling/cold_start.ipynb +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/tutorials/data-modeling/figs/data-modeling-flow.png +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/tutorials/data-modeling/files/wind_farm_prospecting_conceptual_data_model.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/tutorials/data-modeling/files/wind_farm_prospecting_conceptual_data_model_expanded.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/tutorials/data-modeling/files/wind_farm_prospecting_physical_data_model.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/tutorials/data-modeling/from-conceptual-to-physical-via-CDM.ipynb +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_conceptual_wind_energy_WindFarmProspecting_v1.html +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_conceptual_wind_energy_WindFarmProspecting_v1_implements.html +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_physical_neat_playground_NeatHelloWorld_v1.html +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/tutorials/data-modeling/my_first_model.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/tutorials/data-modeling/physical-data-model.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/docs/tutorials/introduction/introduction.ipynb +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/mkdocs.yml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/clean_space.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/core_classic_mapping.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/create_classic_core_mapping_yaml.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/dependency_profiler.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/docs_generate_reference.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/docs_generate_unit.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/generate_steps_md.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/.gitignore +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/README.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/config.dev.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/neat_integration_runner/README.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/neat_integration_runner/auth/neat_cicd_testing.group.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/lift_pumps/classic/lift_pump_stations_root.Asset.csv +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/lift_pumps/data_sets/hierarchies.DataSet.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/lift_pumps/raw/collections_pump.Table.csv +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/lift_pumps/raw/collections_pump.Table.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/classic/Measurement.Asset.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/classic/Measurement.Label.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/classic/MetMast.Asset.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/classic/PowerGeneratingUnit.Label.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/classic/Utsira.Asset.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-01.Asset.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-01_to_MetMast.Relationship.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-02.Asset.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-02_to_MetMast.Relationship.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/classic/WindTurbine.Label.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/classic/metMast.Label.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/classic/planned_WT-01_2022-01-01.Event.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/classic/power_curve_manufacturer1.Sequence.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/data_sets/maintenance.DataSet.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/data_sets/source_ds.DataSet.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/data_sets/usecase_01.DataSet.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/files/WT-01_datasheet.FileMetadata.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/files/WT-01_datasheet.txt +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-01_forecast.TimeSeries.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-01_production.TimeSeries.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-02_forecast.TimeSeries.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-02_production.TimeSeries.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/manual_test_dms_importer.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/migration.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/oxi_remote/README.md +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/oxi_remote/docker-compose.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/test_lookup_table.csv +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/scripts/windfarm_to_toolkit.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/config.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/conftest.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_graph/IMF_TempTransmitterComplete.ttl +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_graph/aml-raw-graph.ttl +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_graph/aml_example.aml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_graph/car.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_graph/dexpi-raw-graph.ttl +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_graph/dexpi_example.xml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_graph/iodd_Piab-piCOMPACT10X-20230509-IODD1.1.xml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_graph/low-quality-graph.ttl +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_instances/asset_centric_cdf/assets.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_instances/asset_centric_cdf/events.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_instances/asset_centric_cdf/files.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_instances/asset_centric_cdf/labels.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_instances/asset_centric_cdf/relationships.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_instances/asset_centric_cdf/sequence_rows.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_instances/asset_centric_cdf/sequences.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_instances/asset_centric_cdf/timeseries.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_instances/classic_windfarm.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/conceptual/broken_concepts.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/conceptual/info-arch-car-rules.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/conceptual/info_with_cdm_ref.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/conceptual/information-unknown-value-type.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/conceptual/only_concepts.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/conversion/single_concept.conceptual.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/conversion/single_concept.physical.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/cognite_core_v1.zip +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/TemperatureController.zip +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/BaseConsumer.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/BasePlant.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/BaseReceiver.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/CityPlant.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/CoalPlant.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/DeliverySubStation.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/DomesticConsumer.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/FarmConsumer.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/Floor.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/GasPlant.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/GeneratorSubStation.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/HydroPlant.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/IndustrialConsumer.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/IndustrialPlant.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/NuclearPlant.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/PowerLine.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/Room.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/SolarPlant.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/Transformer.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/dtdl/energy-grid/WindPlant.json +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/referencing_core/MyDescribable.container.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/referencing_core/MyDescribable.view.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/referencing_core/enterprise.datamodel.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/non_neat/windturbine.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/partial-model/complete.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/partial-model/part1.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/partial-model/part2.ttl +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/partial-model/part3.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical/car_dms_rules.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical/car_dms_rules_deprecated.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical/dm_raw_filter.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical/dm_view_space_different.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical/dms-unknown-value-type.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical/isa_plus_cdm.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical/missing-in-model-value.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical/mixed-up-version.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical/pump_example_duplicated_resources.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical/pump_example_with_missing_cells.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical/pump_example_with_missing_cells_raise_issues.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical_invalid/inconsistent_container_dms_rules.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical_invalid/invalid_metadata.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical_invalid/invalid_property_dms_rules.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical_invalid/missing_view_container_dms_rules.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical_invalid/too_many_containers_per_view.xlsx +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical_yamls/invalid_yaml.expected_issues.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical_yamls/invalid_yaml.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical_yamls/reverse_direct_relation_missing_target.expected_issues.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/data/_schema/physical_yamls/reverse_direct_relation_missing_target.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_end_to_end/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_end_to_end/test_rules_flow/test_cdm_extension_verification.yaml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_end_to_end/test_rules_flow/test_excel_importer_to_yaml.yml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_end_to_end/test_rules_flow/test_ontology_importer_to_yaml.yml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_end_to_end/test_rules_flow/test_to_extension_transformer.yml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_end_to_end/test_rules_flow.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/conftest.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_api/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_api/test_conversion.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_api/test_validate_rules.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_client_available.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_graph/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_graph/test_loaders/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_graph/test_loaders/test_dms_loader.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_neat_client/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_neat_client/test_cdf_loaders.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_neat_client/test_statistics.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_rules/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_rules/test_exporters/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_rules/test_exporters/test_dms_exporters.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_rules/test_importers/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_session/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_session/test_create_enterprise.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_session/test_data_model_prepare_fix/test_prefix_dms_rules_entities.yml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_session/test_data_model_prepare_fix/test_prefix_info_rules_entities.yml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_session/test_data_model_prepare_fix/test_standardize_space_and_version.yml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_session/test_data_model_prepare_fix.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_session/test_data_model_to/test_raw_filter.yml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_session/test_graph_flow/test_aml_to_dms.yml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_session/test_graph_flow/test_create_extension_template.yml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_session/test_graph_flow/test_dexpi_to_dms.yml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_session/test_graph_flow/test_snapshot_workflow_ids_to_python.yml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_session/test_graph_flow/test_snapshot_workflow_to_python.yml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_session/test_graph_flow/test_uplift_workflow_to_python.yml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_session/test_read/test_read_model_referencing_core.yml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_session/test_read.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_utils/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_integration/test_utils/test_reader.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_extractors/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_extractors/test_asset_extractor.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_extractors/test_dms_extractor.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_extractors/test_dms_graph_extractor.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_extractors/test_events_extractor.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_extractors/test_files_extractor.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_extractors/test_labels_extractor.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_extractors/test_raw_extractor.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_extractors/test_relationship_extractor.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_extractors/test_sequences_extractor.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_extractors/test_timeseries_extractor.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_graph_read.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_loaders/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_provenance.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_transformers/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_transformers/test_asset_depth_transformer.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_transformers/test_asset_event_connector_transformer.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_transformers/test_asset_file_connector_transformer.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_transformers/test_asset_relationship_connector_transformer.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_transformers/test_asset_sequence_connector_transformer.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_transformers/test_asset_ts_connector_transformer.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_transformers/test_attach_property_from_target2source.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_transformers/test_connection_to_literal.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_transformers/test_make_connection_on_exact_match.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_transformers/test_prune_graph.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_graph/test_transformers/test_split_multi_value_property_transformer.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_issues/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_issues/test_formatters.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_issues/test_issue_behavior.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_issues/test_issues_metatests.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_neat_client/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_neat_client/test_instances.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_neat_client/test_loaders.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_neat_client/test_schema.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_neat_package_metadata.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_analysis.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_exporters/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_exporters/test_exporters_meta.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_exporters/test_rules2dms.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_exporters/test_rules2excel.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_exporters/test_rules2ontology.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_exporters/test_rules2yaml.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_importers/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_importers/constants.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_importers/test_dms_importer.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_importers/test_dtdl_importer.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_importers/test_excel_importer.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_importers/test_imf_importer.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_importers/test_owl_importer.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_importers/test_subinference_importer.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_models/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_models/test_asset_rules.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_models/test_base_rules.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_models/test_conceptual_model.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_models/test_data_types.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_models/test_dms_schema.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_models/test_entities.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_models/test_input_rules.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_models/test_physical_data_model.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_models/test_wrapped_entities.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_models/utils.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_transformers/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_transformers/test_converters.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_transformers/test_mapping.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_rules/test_transformers/test_transformer_meta.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_session/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_session/test_meta.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_session/test_read.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_session/test_to_yaml.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_store/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_store/tests_rules_store/test_import_export.yml +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_store/tests_rules_store.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_utils/__init__.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_utils/test_auxiliary.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_utils/test_cdf_classes.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_utils/test_rdf.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_utils/test_reader.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_utils/test_text.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/tests_unit/test_utils/test_utils.py +0 -0
- {cognite_neat-0.122.1 → cognite_neat-0.122.2}/tests/utils.py +0 -0
|
@@ -269,14 +269,14 @@ class DMSImporter(BaseImporter[UnverifiedPhysicalDataModel]):
|
|
|
269
269
|
|
|
270
270
|
model = self.schema.data_model
|
|
271
271
|
|
|
272
|
-
user_data_model = self.
|
|
272
|
+
user_data_model = self._create_data_model_components(model, self.schema, self.metadata)
|
|
273
273
|
|
|
274
274
|
self.issue_list.trigger_warnings()
|
|
275
275
|
if self.issue_list.has_errors:
|
|
276
276
|
raise MultiValueError(self.issue_list.errors)
|
|
277
277
|
return ImportedDataModel(user_data_model, {})
|
|
278
278
|
|
|
279
|
-
def
|
|
279
|
+
def _create_data_model_components(
|
|
280
280
|
self,
|
|
281
281
|
data_model: dm.DataModelApply,
|
|
282
282
|
schema: DMSSchema,
|
|
@@ -2346,7 +2346,7 @@ class AddCogniteProperties(
|
|
|
2346
2346
|
) -> ImportedDataModel[UnverifiedConceptualDataModel]:
|
|
2347
2347
|
input_ = data_model.unverified_data_model
|
|
2348
2348
|
if input_ is None:
|
|
2349
|
-
raise NeatValueError("
|
|
2349
|
+
raise NeatValueError("Data model read failed. Cannot add cognite properties to None data_model.")
|
|
2350
2350
|
|
|
2351
2351
|
default_space = input_.metadata.space
|
|
2352
2352
|
default_version = input_.metadata.version
|
{cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_data_model/transformers/_mapping.py
RENAMED
|
@@ -29,7 +29,7 @@ from ._base import VerifiedDataModelTransformer
|
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
class MapOntoTransformers(VerifiedDataModelTransformer[PhysicalDataModel, PhysicalDataModel], ABC):
|
|
32
|
-
"""Base class for transformers that map one
|
|
32
|
+
"""Base class for transformers that map one data model onto another."""
|
|
33
33
|
|
|
34
34
|
...
|
|
35
35
|
|
|
@@ -54,7 +54,7 @@ class VerificationTransformer(DataModelTransformer[T_ImportedUnverifiedDataModel
|
|
|
54
54
|
elif issubclass(validation_cls, ConceptualValidation):
|
|
55
55
|
validation_issues = ConceptualValidation(verified_data_model, data_model.context).validate() # type: ignore[arg-type]
|
|
56
56
|
else:
|
|
57
|
-
raise NeatValueError("Unsupported
|
|
57
|
+
raise NeatValueError("Unsupported data model type")
|
|
58
58
|
issues.extend(validation_issues)
|
|
59
59
|
|
|
60
60
|
# Raise issues which is expected to be handled outside of this method
|
{cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/loaders/__init__.py
RENAMED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
from ._base import BaseLoader, CDFLoader
|
|
2
2
|
from ._rdf2dms import DMSLoader
|
|
3
|
+
from ._rdf_to_instance_space import InstanceSpaceLoader
|
|
3
4
|
|
|
4
|
-
__all__ = ["BaseLoader", "CDFLoader", "DMSLoader"]
|
|
5
|
+
__all__ = ["BaseLoader", "CDFLoader", "DMSLoader", "InstanceSpaceLoader"]
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
def _repr_html_() -> str:
|
|
@@ -3,12 +3,11 @@ from collections.abc import Hashable, Iterable
|
|
|
3
3
|
from pathlib import Path
|
|
4
4
|
from typing import ClassVar, Generic, TypeVar
|
|
5
5
|
|
|
6
|
-
from cognite.client import CogniteClient
|
|
7
6
|
from cognite.client.data_classes.capabilities import Capability
|
|
8
7
|
|
|
8
|
+
from cognite.neat.core._client import NeatClient
|
|
9
9
|
from cognite.neat.core._issues import IssueList, NeatIssue
|
|
10
10
|
from cognite.neat.core._issues.errors import AuthorizationError
|
|
11
|
-
from cognite.neat.core._store import NeatInstanceStore
|
|
12
11
|
from cognite.neat.core._utils.auxiliary import class_html_doc
|
|
13
12
|
from cognite.neat.core._utils.upload import UploadResult, UploadResultList
|
|
14
13
|
|
|
@@ -29,9 +28,6 @@ class BaseLoader(ABC, Generic[T_Output]):
|
|
|
29
28
|
_new_line = "\n"
|
|
30
29
|
_encoding = "utf-8"
|
|
31
30
|
|
|
32
|
-
def __init__(self, instance_store: NeatInstanceStore):
|
|
33
|
-
self.instance_store = instance_store
|
|
34
|
-
|
|
35
31
|
@abstractmethod
|
|
36
32
|
def write_to_file(self, filepath: Path) -> None:
|
|
37
33
|
raise NotImplementedError
|
|
@@ -59,9 +55,7 @@ class BaseLoader(ABC, Generic[T_Output]):
|
|
|
59
55
|
class CDFLoader(BaseLoader[T_Output]):
|
|
60
56
|
_UPLOAD_BATCH_SIZE: ClassVar[int] = 1000
|
|
61
57
|
|
|
62
|
-
def load_into_cdf(
|
|
63
|
-
self, client: CogniteClient, dry_run: bool = False, check_client: bool = True
|
|
64
|
-
) -> UploadResultList:
|
|
58
|
+
def load_into_cdf(self, client: NeatClient, dry_run: bool = False, check_client: bool = True) -> UploadResultList:
|
|
65
59
|
upload_result_by_name: dict[str, UploadResult] = {}
|
|
66
60
|
for upload_result in self.load_into_cdf_iterable(client, dry_run, check_client):
|
|
67
61
|
if last_result := upload_result_by_name.get(upload_result.name):
|
|
@@ -72,7 +66,7 @@ class CDFLoader(BaseLoader[T_Output]):
|
|
|
72
66
|
return UploadResultList(upload_result_by_name.values())
|
|
73
67
|
|
|
74
68
|
def load_into_cdf_iterable(
|
|
75
|
-
self, client:
|
|
69
|
+
self, client: NeatClient, dry_run: bool = False, check_client: bool = True
|
|
76
70
|
) -> Iterable[UploadResult]:
|
|
77
71
|
if check_client:
|
|
78
72
|
missing_capabilities = client.iam.verify_capabilities(self._get_required_capabilities())
|
|
@@ -113,7 +107,7 @@ class CDFLoader(BaseLoader[T_Output]):
|
|
|
113
107
|
@abstractmethod
|
|
114
108
|
def _upload_to_cdf(
|
|
115
109
|
self,
|
|
116
|
-
client:
|
|
110
|
+
client: NeatClient,
|
|
117
111
|
items: list[T_Output],
|
|
118
112
|
dry_run: bool,
|
|
119
113
|
read_issues: IssueList,
|
{cognite_neat-0.122.1 → cognite_neat-0.122.2}/cognite/neat/core/_instances/loaders/_rdf2dms.py
RENAMED
|
@@ -6,7 +6,7 @@ from collections import defaultdict
|
|
|
6
6
|
from collections.abc import Iterable, Sequence
|
|
7
7
|
from dataclasses import dataclass
|
|
8
8
|
from pathlib import Path
|
|
9
|
-
from typing import Any, Literal, cast, get_args
|
|
9
|
+
from typing import Any, Literal, cast, get_args
|
|
10
10
|
|
|
11
11
|
import yaml
|
|
12
12
|
from cognite.client import CogniteClient
|
|
@@ -39,13 +39,11 @@ from cognite.neat.core._data_model.models.data_types import (
|
|
|
39
39
|
)
|
|
40
40
|
from cognite.neat.core._issues import IssueList, NeatError, NeatIssue, catch_issues
|
|
41
41
|
from cognite.neat.core._issues.errors import (
|
|
42
|
-
AuthorizationError,
|
|
43
42
|
ResourceCreationError,
|
|
44
43
|
ResourceDuplicatedError,
|
|
45
44
|
ResourceNotFoundError,
|
|
46
45
|
)
|
|
47
46
|
from cognite.neat.core._issues.warnings import (
|
|
48
|
-
NeatValueWarning,
|
|
49
47
|
PropertyDirectRelationLimitWarning,
|
|
50
48
|
PropertyMultipleValueWarning,
|
|
51
49
|
PropertyTypeNotSupportedWarning,
|
|
@@ -58,11 +56,8 @@ from cognite.neat.core._utils.collection_ import (
|
|
|
58
56
|
iterate_progress_bar_if_above_config_threshold,
|
|
59
57
|
)
|
|
60
58
|
from cognite.neat.core._utils.rdf_ import (
|
|
61
|
-
namespace_as_space,
|
|
62
59
|
remove_namespace_from_uri,
|
|
63
|
-
split_uri,
|
|
64
60
|
)
|
|
65
|
-
from cognite.neat.core._utils.text import NamingStandardization
|
|
66
61
|
from cognite.neat.core._utils.upload import UploadResult
|
|
67
62
|
|
|
68
63
|
from ._base import _END_OF_CLASS, _START_OF_CLASS, CDFLoader
|
|
@@ -104,14 +99,10 @@ class DMSLoader(CDFLoader[dm.InstanceApply]):
|
|
|
104
99
|
conceptual_data_model (ConceptualDataModel): Conceptual data model,
|
|
105
100
|
used to look+up the instances in the store.
|
|
106
101
|
instance_store (NeatInstanceStore): The instance store to load the instances from.
|
|
107
|
-
instance_space (str): The instance space to load the data into.
|
|
108
102
|
create_issues (Sequence[NeatIssue] | None): A list of issues that occurred during reading. Defaults to None.
|
|
109
103
|
client (NeatClient | None): This is used to lookup containers such that the loader
|
|
110
104
|
creates instances in accordance with required constraints. Defaults to None.
|
|
111
105
|
unquote_external_ids (bool): If True, the loader will unquote external ids before creating the instances.
|
|
112
|
-
neat_prefix_by_predicate_uri (dict[URIRef, str] | None): A dictionary that maps a predicate URIRef to a
|
|
113
|
-
prefix that Neat added to the object upon extraction. This is used to remove the prefix from the
|
|
114
|
-
object before creating the instance.
|
|
115
106
|
"""
|
|
116
107
|
|
|
117
108
|
def __init__(
|
|
@@ -119,24 +110,17 @@ class DMSLoader(CDFLoader[dm.InstanceApply]):
|
|
|
119
110
|
physical_data_model: PhysicalDataModel,
|
|
120
111
|
conceptual_data_model: ConceptualDataModel,
|
|
121
112
|
instance_store: NeatInstanceStore,
|
|
122
|
-
|
|
123
|
-
space_property: str | None = None,
|
|
124
|
-
use_source_space: bool = False,
|
|
113
|
+
space_by_instance_uri: dict[URIRef, str],
|
|
125
114
|
client: NeatClient | None = None,
|
|
126
115
|
create_issues: Sequence[NeatIssue] | None = None,
|
|
127
116
|
unquote_external_ids: bool = False,
|
|
128
|
-
neat_prefix_by_predicate_uri: dict[URIRef, str] | None = None,
|
|
129
117
|
neat_prefix_by_type_uri: dict[URIRef, str] | None = None,
|
|
130
118
|
):
|
|
131
|
-
|
|
119
|
+
self.instance_store = instance_store
|
|
132
120
|
self.physical_data_model = physical_data_model
|
|
133
121
|
self.conceptual_data_model = conceptual_data_model
|
|
134
|
-
self.neat_prefix_by_predicate_uri = neat_prefix_by_predicate_uri or {}
|
|
135
122
|
self.neat_prefix_by_type_uri = neat_prefix_by_type_uri or {}
|
|
136
|
-
self.
|
|
137
|
-
self._space_property = space_property
|
|
138
|
-
self._use_source_space = use_source_space
|
|
139
|
-
self._space_by_instance_uri: dict[URIRef, str] = defaultdict(lambda: instance_space)
|
|
123
|
+
self._space_by_instance_uri = space_by_instance_uri
|
|
140
124
|
self._external_id_by_uri: dict[URIRef, str] = {}
|
|
141
125
|
self._issues = IssueList(create_issues or [])
|
|
142
126
|
self._client = client
|
|
@@ -172,16 +156,6 @@ class DMSLoader(CDFLoader[dm.InstanceApply]):
|
|
|
172
156
|
return
|
|
173
157
|
view_iterations, issues = self._create_view_iterations()
|
|
174
158
|
yield from issues
|
|
175
|
-
if self._space_property:
|
|
176
|
-
yield from self._lookup_space_by_uri(view_iterations, stop_on_exception)
|
|
177
|
-
|
|
178
|
-
if self._client:
|
|
179
|
-
space_creation = self._create_instance_space_if_not_exists()
|
|
180
|
-
yield from space_creation.warnings
|
|
181
|
-
if space_creation.has_errors and stop_on_exception:
|
|
182
|
-
raise space_creation.as_exception()
|
|
183
|
-
yield from space_creation.errors
|
|
184
|
-
|
|
185
159
|
if self.neat_prefix_by_type_uri:
|
|
186
160
|
self._lookup_identifier_by_uri()
|
|
187
161
|
|
|
@@ -280,46 +254,6 @@ class DMSLoader(CDFLoader[dm.InstanceApply]):
|
|
|
280
254
|
view_iterations[view_id] = _ViewIterator(view_id, count, query)
|
|
281
255
|
return view_iterations
|
|
282
256
|
|
|
283
|
-
def _lookup_space_by_uri(self, view_iterations: list[_ViewIterator], stop_on_exception: bool = False) -> IssueList:
|
|
284
|
-
issues = IssueList()
|
|
285
|
-
if self._space_property is None:
|
|
286
|
-
return issues
|
|
287
|
-
total = sum(it.instance_count for it in view_iterations)
|
|
288
|
-
properties_by_uriref = self.instance_store.queries.select.properties()
|
|
289
|
-
space_property_uri = next((k for k, v in properties_by_uriref.items() if v == self._space_property), None)
|
|
290
|
-
if space_property_uri is None:
|
|
291
|
-
error: ResourceNotFoundError[str, str] = ResourceNotFoundError(
|
|
292
|
-
self._space_property,
|
|
293
|
-
"property",
|
|
294
|
-
more=f"Could not find the {self._space_property} in the graph.",
|
|
295
|
-
)
|
|
296
|
-
if stop_on_exception:
|
|
297
|
-
raise error
|
|
298
|
-
issues.append(error)
|
|
299
|
-
return issues
|
|
300
|
-
|
|
301
|
-
instance_iterable = self.instance_store.queries.select.list_instances_ids_by_space(space_property_uri)
|
|
302
|
-
instance_iterable = iterate_progress_bar_if_above_config_threshold(
|
|
303
|
-
instance_iterable, total, f"Looking up spaces for {total} instances..."
|
|
304
|
-
)
|
|
305
|
-
neat_prefix = self.neat_prefix_by_predicate_uri.get(space_property_uri)
|
|
306
|
-
warned_spaces: set[str] = set()
|
|
307
|
-
for instance, space in instance_iterable:
|
|
308
|
-
if neat_prefix:
|
|
309
|
-
space = space.removeprefix(neat_prefix)
|
|
310
|
-
|
|
311
|
-
clean_space = NamingStandardization.standardize_space_str(space)
|
|
312
|
-
if clean_space != space and space not in warned_spaces:
|
|
313
|
-
issues.append(
|
|
314
|
-
NeatValueWarning(
|
|
315
|
-
f"Invalid space in property {self._space_property}: {space}. Fixed to {clean_space}"
|
|
316
|
-
)
|
|
317
|
-
)
|
|
318
|
-
warned_spaces.add(space)
|
|
319
|
-
|
|
320
|
-
self._space_by_instance_uri[instance] = clean_space
|
|
321
|
-
return issues
|
|
322
|
-
|
|
323
257
|
def _lookup_identifier_by_uri(self) -> None:
|
|
324
258
|
if not self.neat_prefix_by_type_uri:
|
|
325
259
|
return
|
|
@@ -343,20 +277,6 @@ class DMSLoader(CDFLoader[dm.InstanceApply]):
|
|
|
343
277
|
if len(uris) == 1:
|
|
344
278
|
self._external_id_by_uri[uris[0]] = identifier
|
|
345
279
|
|
|
346
|
-
def _create_instance_space_if_not_exists(self) -> IssueList:
|
|
347
|
-
issues = IssueList()
|
|
348
|
-
if not self._client:
|
|
349
|
-
return issues
|
|
350
|
-
|
|
351
|
-
instance_spaces = set(self._space_by_instance_uri.values()) - {self._instance_space}
|
|
352
|
-
existing_spaces = {space.space for space in self._client.data_modeling.spaces.retrieve(list(instance_spaces))}
|
|
353
|
-
if missing_spaces := (instance_spaces - existing_spaces):
|
|
354
|
-
try:
|
|
355
|
-
self._client.data_modeling.spaces.apply([dm.SpaceApply(space=space) for space in missing_spaces])
|
|
356
|
-
except CogniteAPIError as e:
|
|
357
|
-
issues.append(AuthorizationError(f"Creating {len(missing_spaces)} instance spaces.", str(e)))
|
|
358
|
-
return issues
|
|
359
|
-
|
|
360
280
|
def _create_projection(self, view: dm.View) -> tuple[_Projection, IssueList]:
|
|
361
281
|
issues = IssueList()
|
|
362
282
|
field_definitions: dict[str, tuple[type, Any]] = {}
|
|
@@ -473,12 +393,10 @@ class DMSLoader(CDFLoader[dm.InstanceApply]):
|
|
|
473
393
|
)
|
|
474
394
|
value = value[:limit]
|
|
475
395
|
|
|
476
|
-
ids = (self._create_instance_id(v
|
|
396
|
+
ids = (self._create_instance_id(v) for v in value)
|
|
477
397
|
return [id_.dump(camel_case=True, include_instance_type=False) for id_ in ids]
|
|
478
398
|
elif value:
|
|
479
|
-
return self._create_instance_id(value[0],
|
|
480
|
-
camel_case=True, include_instance_type=False
|
|
481
|
-
)
|
|
399
|
+
return self._create_instance_id(value[0]).dump(camel_case=True, include_instance_type=False)
|
|
482
400
|
return {}
|
|
483
401
|
|
|
484
402
|
validators["parse_direct_relation"] = field_validator(*direct_relation_by_property.keys(), mode="before")( # type: ignore[assignment]
|
|
@@ -518,7 +436,7 @@ class DMSLoader(CDFLoader[dm.InstanceApply]):
|
|
|
518
436
|
projection: _Projection,
|
|
519
437
|
stop_on_exception: Literal[True, False] = False,
|
|
520
438
|
) -> Iterable[dm.InstanceApply | NeatIssue]:
|
|
521
|
-
instance_id = self._create_instance_id(instance_uri
|
|
439
|
+
instance_id = self._create_instance_id(instance_uri)
|
|
522
440
|
if not isinstance(instance_id, InstanceId):
|
|
523
441
|
yield instance_id
|
|
524
442
|
return
|
|
@@ -567,8 +485,8 @@ class DMSLoader(CDFLoader[dm.InstanceApply]):
|
|
|
567
485
|
return
|
|
568
486
|
|
|
569
487
|
if start_node and end_node:
|
|
570
|
-
start = self._create_instance_id(start_node
|
|
571
|
-
end = self._create_instance_id(end_node
|
|
488
|
+
start = self._create_instance_id(start_node)
|
|
489
|
+
end = self._create_instance_id(end_node)
|
|
572
490
|
if isinstance(start, NeatError):
|
|
573
491
|
yield start
|
|
574
492
|
if isinstance(end, NeatError):
|
|
@@ -594,7 +512,7 @@ class DMSLoader(CDFLoader[dm.InstanceApply]):
|
|
|
594
512
|
),
|
|
595
513
|
sources=sources,
|
|
596
514
|
)
|
|
597
|
-
yield from self._create_edges_without_properties(space, external_id, properties, projection
|
|
515
|
+
yield from self._create_edges_without_properties(space, external_id, properties, projection)
|
|
598
516
|
|
|
599
517
|
def _create_edges_without_properties(
|
|
600
518
|
self,
|
|
@@ -602,7 +520,6 @@ class DMSLoader(CDFLoader[dm.InstanceApply]):
|
|
|
602
520
|
identifier: str,
|
|
603
521
|
properties: dict[str | InstanceType, list[str] | list[URIRef]],
|
|
604
522
|
projection: _Projection,
|
|
605
|
-
stop_on_exception: Literal[True, False],
|
|
606
523
|
) -> Iterable[dm.EdgeApply | NeatIssue]:
|
|
607
524
|
for predicate, values in properties.items():
|
|
608
525
|
if predicate in projection.edge_by_type:
|
|
@@ -620,10 +537,7 @@ class DMSLoader(CDFLoader[dm.InstanceApply]):
|
|
|
620
537
|
yield error
|
|
621
538
|
continue
|
|
622
539
|
for target in values:
|
|
623
|
-
target_id = self._create_instance_id(
|
|
624
|
-
if not isinstance(target_id, InstanceId):
|
|
625
|
-
yield target_id
|
|
626
|
-
continue
|
|
540
|
+
target_id = self._create_instance_id(cast(URIRef, target))
|
|
627
541
|
if isinstance(target, URIRef):
|
|
628
542
|
target = remove_namespace_from_uri(target)
|
|
629
543
|
external_id = f"{identifier}.{prop_id}.{target}"
|
|
@@ -656,43 +570,16 @@ class DMSLoader(CDFLoader[dm.InstanceApply]):
|
|
|
656
570
|
return start_node, end_node # type: ignore[return-value]
|
|
657
571
|
return None, None
|
|
658
572
|
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
@overload
|
|
665
|
-
def _create_instance_id(
|
|
666
|
-
self, uri: URIRef, instance_type: str, stop_on_exception: Literal[True] = True
|
|
667
|
-
) -> InstanceId: ...
|
|
668
|
-
|
|
669
|
-
def _create_instance_id(
|
|
670
|
-
self, uri: URIRef, instance_type: str, stop_on_exception: bool = False
|
|
671
|
-
) -> InstanceId | NeatError:
|
|
672
|
-
space: str | None = None
|
|
673
|
-
external_id: str | None = None
|
|
674
|
-
error: NeatError | None = None
|
|
675
|
-
if self._use_source_space:
|
|
676
|
-
namespace, external_id = split_uri(uri)
|
|
677
|
-
space = namespace_as_space(namespace)
|
|
678
|
-
if space is None:
|
|
679
|
-
error = ResourceCreationError(uri, instance_type, f"Could not find space for {uri!s}.")
|
|
573
|
+
def _create_instance_id(self, uri: URIRef) -> InstanceId:
|
|
574
|
+
space = self._space_by_instance_uri[uri]
|
|
575
|
+
if uri in self._external_id_by_uri:
|
|
576
|
+
external_id = self._external_id_by_uri[uri]
|
|
680
577
|
else:
|
|
681
|
-
|
|
682
|
-
if uri in self._external_id_by_uri:
|
|
683
|
-
external_id = self._external_id_by_uri[uri]
|
|
684
|
-
else:
|
|
685
|
-
external_id = remove_namespace_from_uri(uri)
|
|
578
|
+
external_id = remove_namespace_from_uri(uri)
|
|
686
579
|
|
|
687
580
|
if external_id and self._unquote_external_ids:
|
|
688
581
|
external_id = urllib.parse.unquote(external_id)
|
|
689
|
-
|
|
690
|
-
return InstanceId(space, external_id)
|
|
691
|
-
if error is None:
|
|
692
|
-
raise ValueError(f"Bug in neat. Failed to create instance ID and determine error for {uri!r}")
|
|
693
|
-
if stop_on_exception:
|
|
694
|
-
raise error
|
|
695
|
-
return error
|
|
582
|
+
return InstanceId(space, external_id)
|
|
696
583
|
|
|
697
584
|
def _get_required_capabilities(self) -> list[Capability]:
|
|
698
585
|
return [
|
|
@@ -702,7 +589,7 @@ class DMSLoader(CDFLoader[dm.InstanceApply]):
|
|
|
702
589
|
DataModelInstancesAcl.Action.Write_Properties,
|
|
703
590
|
DataModelInstancesAcl.Action.Read,
|
|
704
591
|
],
|
|
705
|
-
scope=DataModelInstancesAcl.Scope.SpaceID(
|
|
592
|
+
scope=DataModelInstancesAcl.Scope.SpaceID(sorted(set(self._space_by_instance_uri.values()))),
|
|
706
593
|
)
|
|
707
594
|
]
|
|
708
595
|
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import itertools
|
|
2
|
+
import json
|
|
3
|
+
from collections import defaultdict
|
|
4
|
+
from collections.abc import Iterable
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
from typing import cast
|
|
7
|
+
|
|
8
|
+
import yaml
|
|
9
|
+
from cognite.client import data_modeling as dm
|
|
10
|
+
from cognite.client.data_classes.capabilities import Capability, DataModelsAcl
|
|
11
|
+
from rdflib import URIRef
|
|
12
|
+
|
|
13
|
+
from cognite.neat.core._client import NeatClient
|
|
14
|
+
from cognite.neat.core._client._api.data_modeling_loaders import MultiCogniteAPIError
|
|
15
|
+
from cognite.neat.core._constants import COGNITE_SPACES
|
|
16
|
+
from cognite.neat.core._issues import IssueList, NeatIssue
|
|
17
|
+
from cognite.neat.core._issues.errors import ResourceCreationError, ResourceNotFoundError
|
|
18
|
+
from cognite.neat.core._issues.warnings import NeatValueWarning
|
|
19
|
+
from cognite.neat.core._store import NeatInstanceStore
|
|
20
|
+
from cognite.neat.core._utils.collection_ import iterate_progress_bar_if_above_config_threshold
|
|
21
|
+
from cognite.neat.core._utils.rdf_ import namespace_as_space, split_uri
|
|
22
|
+
from cognite.neat.core._utils.text import NamingStandardization
|
|
23
|
+
from cognite.neat.core._utils.upload import UploadResult
|
|
24
|
+
|
|
25
|
+
from ._base import _END_OF_CLASS, _START_OF_CLASS, CDFLoader
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class InstanceSpaceLoader(CDFLoader[dm.SpaceApply]):
|
|
29
|
+
"""Loads Instance Space into Cognite Data Fusion (CDF).
|
|
30
|
+
|
|
31
|
+
There are three ways to determine the space for each instance:
|
|
32
|
+
1. If `instance_space` is provided, all instances will be assigned to that space, i.e., the space
|
|
33
|
+
is constant for all instances.
|
|
34
|
+
(If not it is set based on the triples (subject, predicate, object) in the graph store.)
|
|
35
|
+
2. If `space_property` is provided, this is the predicate and the space is set to the object. The `instance_space`
|
|
36
|
+
is used as a fallback if the object is not a valid space.
|
|
37
|
+
3. If `use_source_space` is set to True, the instances are assumed to be extracted from CDF and the space is part
|
|
38
|
+
of the subject.
|
|
39
|
+
|
|
40
|
+
This class exposes the `space_by_instance_uri` property used by the DMSLoader to lookup space for each instance URI.
|
|
41
|
+
|
|
42
|
+
Args:
|
|
43
|
+
graph_store (NeatInstanceStore): The graph store to load the data from.
|
|
44
|
+
instance_space (str): The instance space to load the data into.
|
|
45
|
+
space_property (str): The property to use to determine the space for each instance.
|
|
46
|
+
use_source_space (bool): If True, use the source space of the instances when extracted from CDF.
|
|
47
|
+
neat_prefix_by_predicate_uri (dict[URIRef, str] | None): A dictionary that maps a predicate URIRef to a
|
|
48
|
+
prefix that Neat added to the object upon extraction. This is used to remove the prefix from the
|
|
49
|
+
object before creating the instance.
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
def __init__(
|
|
53
|
+
self,
|
|
54
|
+
graph_store: NeatInstanceStore | None = None,
|
|
55
|
+
instance_space: str | None = None,
|
|
56
|
+
space_property: str | None = None,
|
|
57
|
+
use_source_space: bool = False,
|
|
58
|
+
neat_prefix_by_predicate_uri: dict[URIRef, str] | None = None,
|
|
59
|
+
) -> None:
|
|
60
|
+
self.graph_store = graph_store
|
|
61
|
+
self.instance_space = instance_space
|
|
62
|
+
self.space_property = space_property
|
|
63
|
+
self.use_source_space = use_source_space
|
|
64
|
+
self.neat_prefix_by_predicate_uri = neat_prefix_by_predicate_uri or {}
|
|
65
|
+
|
|
66
|
+
self._lookup_issues = IssueList()
|
|
67
|
+
|
|
68
|
+
self._has_looked_up = False
|
|
69
|
+
# This is a dictionary mapping instance URIs to their respective spaces
|
|
70
|
+
# This is exposed through the property space_by_instance_uri. If the instance_space or space_property is
|
|
71
|
+
# set (1. and 2.) this is changed to a defaultdict with the instance_space as the default value.
|
|
72
|
+
self._space_by_instance_uri: dict[URIRef, str] = {}
|
|
73
|
+
|
|
74
|
+
@property
|
|
75
|
+
def space_by_instance_uri(self) -> dict[URIRef, str]:
|
|
76
|
+
"""Returns a dictionary mapping instance URIs to their respective spaces."""
|
|
77
|
+
if not self._has_looked_up:
|
|
78
|
+
self._lookup_spaces()
|
|
79
|
+
self._has_looked_up = True
|
|
80
|
+
return self._space_by_instance_uri
|
|
81
|
+
|
|
82
|
+
def _get_required_capabilities(self) -> list[Capability]:
|
|
83
|
+
return [
|
|
84
|
+
DataModelsAcl(
|
|
85
|
+
actions=[
|
|
86
|
+
DataModelsAcl.Action.Write,
|
|
87
|
+
DataModelsAcl.Action.Read,
|
|
88
|
+
],
|
|
89
|
+
scope=DataModelsAcl.Scope.All(),
|
|
90
|
+
)
|
|
91
|
+
]
|
|
92
|
+
|
|
93
|
+
def _upload_to_cdf(
|
|
94
|
+
self,
|
|
95
|
+
client: NeatClient,
|
|
96
|
+
spaces: list[dm.SpaceApply],
|
|
97
|
+
dry_run: bool,
|
|
98
|
+
read_issues: IssueList,
|
|
99
|
+
class_name: str | None = None,
|
|
100
|
+
) -> Iterable[UploadResult]:
|
|
101
|
+
cdf_spaces = client.data_modeling.spaces.retrieve([space.space for space in spaces])
|
|
102
|
+
cdf_space_by_id = {item.space: item for item in cdf_spaces}
|
|
103
|
+
|
|
104
|
+
to_create = dm.SpaceApplyList([])
|
|
105
|
+
to_update = dm.SpaceApplyList([])
|
|
106
|
+
unchanged = dm.SpaceApplyList([])
|
|
107
|
+
|
|
108
|
+
for local_space in spaces:
|
|
109
|
+
cdf_space = cdf_space_by_id.get(local_space.space)
|
|
110
|
+
if cdf_space is None:
|
|
111
|
+
to_create.append(local_space)
|
|
112
|
+
elif cdf_space != local_space.as_write():
|
|
113
|
+
to_update.append(local_space)
|
|
114
|
+
else:
|
|
115
|
+
unchanged.append(local_space)
|
|
116
|
+
loader = client.loaders.spaces
|
|
117
|
+
results: UploadResult[str] = UploadResult("instance spaces")
|
|
118
|
+
results.unchanged.update(unchanged.as_ids())
|
|
119
|
+
if dry_run:
|
|
120
|
+
results.created.update(to_create.as_ids())
|
|
121
|
+
results.changed.update(to_update.as_ids())
|
|
122
|
+
yield results
|
|
123
|
+
if to_create:
|
|
124
|
+
try:
|
|
125
|
+
client.loaders.spaces.create(to_create)
|
|
126
|
+
except MultiCogniteAPIError as e:
|
|
127
|
+
results.failed_created.update(to_create.as_ids())
|
|
128
|
+
for error in e.errors:
|
|
129
|
+
results.error_messages.append(f"Failed to create {loader.resource_name}: {error!s}")
|
|
130
|
+
else:
|
|
131
|
+
results.created.update(to_create.as_ids())
|
|
132
|
+
|
|
133
|
+
if to_update:
|
|
134
|
+
try:
|
|
135
|
+
client.loaders.spaces.update(to_update)
|
|
136
|
+
except MultiCogniteAPIError as e:
|
|
137
|
+
results.failed_changed.update(to_update.as_ids())
|
|
138
|
+
for error in e.errors:
|
|
139
|
+
results.error_messages.append(f"Failed to update {loader.resource_name}: {error!s}")
|
|
140
|
+
else:
|
|
141
|
+
results.changed.update(to_update.as_ids())
|
|
142
|
+
|
|
143
|
+
yield results
|
|
144
|
+
|
|
145
|
+
def write_to_file(self, filepath: Path) -> None:
|
|
146
|
+
"""Dumps the instance spaces to file."""
|
|
147
|
+
if filepath.suffix not in [".json", ".yaml", ".yml"]:
|
|
148
|
+
raise ValueError(f"File format {filepath.suffix} is not supported")
|
|
149
|
+
dumped: dict[str, list] = {"spaces": [], "issues": []}
|
|
150
|
+
for item in self.load(stop_on_exception=False):
|
|
151
|
+
key = {
|
|
152
|
+
dm.SpaceApply: "spaces",
|
|
153
|
+
NeatIssue: "issues",
|
|
154
|
+
}.get(type(item))
|
|
155
|
+
if key is None:
|
|
156
|
+
# This should never happen, and is a bug in neat
|
|
157
|
+
raise ValueError(f"Item {item} is not supported. This is a bug in neat please report it.")
|
|
158
|
+
dumped[key].append(item.dump())
|
|
159
|
+
with filepath.open("w", encoding=self._encoding, newline=self._new_line) as f:
|
|
160
|
+
if filepath.suffix == ".json":
|
|
161
|
+
json.dump(dumped, f, indent=2)
|
|
162
|
+
else:
|
|
163
|
+
yaml.safe_dump(dumped, f, sort_keys=False)
|
|
164
|
+
|
|
165
|
+
def _load(
|
|
166
|
+
self, stop_on_exception: bool = False
|
|
167
|
+
) -> Iterable[dm.SpaceApply | NeatIssue | type[_END_OF_CLASS] | _START_OF_CLASS]:
|
|
168
|
+
self._lookup_spaces()
|
|
169
|
+
if self._lookup_issues.has_errors and stop_on_exception:
|
|
170
|
+
raise self._lookup_issues.as_errors()
|
|
171
|
+
yield from self._lookup_issues
|
|
172
|
+
seen: set[str] = set()
|
|
173
|
+
for space_str in set(self.space_by_instance_uri.values()):
|
|
174
|
+
if space_str in seen or space_str in COGNITE_SPACES:
|
|
175
|
+
continue
|
|
176
|
+
yield dm.SpaceApply(space=space_str)
|
|
177
|
+
seen.add(space_str)
|
|
178
|
+
|
|
179
|
+
def _lookup_spaces(self) -> None:
|
|
180
|
+
# Case 1: Same instance space for all instances:
|
|
181
|
+
if isinstance(self.instance_space, str) and self.space_property is None and self.use_source_space is False:
|
|
182
|
+
self._space_by_instance_uri = defaultdict(lambda: cast(str, self.instance_space))
|
|
183
|
+
# Adding a dummy entry to ensure that the instance space is included
|
|
184
|
+
self._space_by_instance_uri[URIRef(self.instance_space)] = self.instance_space
|
|
185
|
+
return
|
|
186
|
+
if self.graph_store is None:
|
|
187
|
+
raise ValueError("Graph store must be provided to lookup spaces")
|
|
188
|
+
# Case 3: Use the source space, i.e., the space of the instances when extracted from CDF
|
|
189
|
+
if self.use_source_space and self.instance_space is None and self.space_property is None:
|
|
190
|
+
self._lookup_space_via_instance_uris(self.graph_store)
|
|
191
|
+
# Case 2: Use a property on each instance to determine the space.
|
|
192
|
+
elif self.space_property is not None and self.use_source_space is False:
|
|
193
|
+
if self.instance_space is None:
|
|
194
|
+
raise ValueError(
|
|
195
|
+
"Missing fallback instance space. This is required when "
|
|
196
|
+
f"using space_property='{self.space_property}'"
|
|
197
|
+
)
|
|
198
|
+
self._space_by_instance_uri = defaultdict(lambda: cast(str, self.instance_space))
|
|
199
|
+
self._lookup_space_via_property(self.graph_store, self.space_property)
|
|
200
|
+
else:
|
|
201
|
+
raise ValueError("Either 'instance_space', 'space_property', or 'use_source_space' must be provided.")
|
|
202
|
+
|
|
203
|
+
def _lookup_space_via_instance_uris(self, graph_store: NeatInstanceStore) -> None:
|
|
204
|
+
instance_iterable = itertools.chain(
|
|
205
|
+
(res[0] for res in graph_store.queries.select.list_instances_ids()),
|
|
206
|
+
graph_store.queries.select.list_instance_object_ids(),
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
for instance_uri in instance_iterable:
|
|
210
|
+
namespace, external_id = split_uri(instance_uri)
|
|
211
|
+
space = namespace_as_space(namespace)
|
|
212
|
+
if space is None:
|
|
213
|
+
error = ResourceCreationError(instance_uri, "instance", "This instance was not extracted from CDF.")
|
|
214
|
+
self._lookup_issues.append(error)
|
|
215
|
+
else:
|
|
216
|
+
self._space_by_instance_uri[instance_uri] = space
|
|
217
|
+
|
|
218
|
+
def _lookup_space_via_property(self, graph_store: NeatInstanceStore, space_property: str) -> None:
|
|
219
|
+
properties_by_uriref = graph_store.queries.select.properties()
|
|
220
|
+
space_property_uri = next((k for k, v in properties_by_uriref.items() if v == space_property), None)
|
|
221
|
+
if space_property_uri is None:
|
|
222
|
+
error: ResourceNotFoundError[str, str] = ResourceNotFoundError(
|
|
223
|
+
self.space_property,
|
|
224
|
+
"property",
|
|
225
|
+
more=f"Could not find the {space_property} in the graph.",
|
|
226
|
+
)
|
|
227
|
+
self._lookup_issues.append(error)
|
|
228
|
+
return
|
|
229
|
+
|
|
230
|
+
class_with_total_pair = graph_store.queries.select.summarize_instances()
|
|
231
|
+
total = sum([count for _, count in class_with_total_pair])
|
|
232
|
+
instance_iterable = graph_store.queries.select.list_instances_ids_by_space(space_property_uri)
|
|
233
|
+
instance_iterable = iterate_progress_bar_if_above_config_threshold(
|
|
234
|
+
instance_iterable, total, f"Looking up spaces for {total} instances..."
|
|
235
|
+
)
|
|
236
|
+
neat_prefix = self.neat_prefix_by_predicate_uri.get(space_property_uri)
|
|
237
|
+
warned_spaces: set[str] = set()
|
|
238
|
+
for instance, space in instance_iterable:
|
|
239
|
+
if neat_prefix:
|
|
240
|
+
space = space.removeprefix(neat_prefix)
|
|
241
|
+
|
|
242
|
+
clean_space = NamingStandardization.standardize_space_str(space)
|
|
243
|
+
if clean_space != space and space not in warned_spaces:
|
|
244
|
+
self._lookup_issues.append(
|
|
245
|
+
NeatValueWarning(f"Invalid space in property {space_property}: {space}. Fixed to {clean_space}")
|
|
246
|
+
)
|
|
247
|
+
warned_spaces.add(space)
|
|
248
|
+
|
|
249
|
+
self._space_by_instance_uri[instance] = clean_space
|