cognite-neat 0.122.3__tar.gz → 0.123.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of cognite-neat might be problematic. Click here for more details.
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/PKG-INFO +1 -1
- cognite_neat-0.123.1/cognite/neat/_version.py +2 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_client/_api/neat_instances.py +30 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_constants.py +10 -1
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/_constants.py +1 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/importers/_dms2data_model.py +16 -5
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/entities/__init__.py +2 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/entities/_single_value.py +24 -4
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/entities/_types.py +11 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/physical/_exporter.py +18 -5
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/physical/_unverified.py +22 -1
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/physical/_validation.py +3 -1
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/physical/_verified.py +2 -2
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/loaders/_rdf2dms.py +8 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_issues/errors/__init__.py +2 -1
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_issues/errors/_general.py +14 -0
- cognite_neat-0.123.1/cognite/neat/plugins/__init__.py +3 -0
- cognite_neat-0.123.1/cognite/neat/plugins/_issues.py +25 -0
- cognite_neat-0.123.1/cognite/neat/plugins/_manager.py +99 -0
- cognite_neat-0.123.1/cognite/neat/plugins/data_model/importers/__init__.py +5 -0
- cognite_neat-0.123.1/cognite/neat/plugins/data_model/importers/_base.py +27 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/exceptions.py +2 -1
- cognite_neat-0.123.1/docs/artifacts/rules/cdf-dms-architect-alice.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/excel_data_modeling/physical/properties.md +35 -2
- cognite_neat-0.123.1/last_changelog_entry.md +6 -0
- cognite_neat-0.123.1/last_git_message.txt +23 -0
- cognite_neat-0.123.1/last_version.txt +1 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/pyproject.toml +1 -1
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_session/test_graph_flow/test_snapshot_workflow_to_python.yml +19 -19
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_session/test_read/test_read_model_referencing_core.yml +1 -1
- cognite_neat-0.123.1/tests/tests_unit/test_graph/test_loaders/test_rdf2dms.py +107 -0
- cognite_neat-0.123.1/tests/tests_unit/test_plugins.py +110 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_models/test_entities.py +44 -1
- cognite_neat-0.123.1/tests/tests_unit/test_session/test_flows.py +73 -0
- cognite_neat-0.123.1/tests/tests_unit/test_utils/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/uv.lock +1 -1
- cognite_neat-0.122.3/cognite/neat/_version.py +0 -2
- cognite_neat-0.122.3/docs/artifacts/rules/cdf-dms-architect-alice.xlsx +0 -0
- cognite_neat-0.122.3/last_changelog_entry.md +0 -4
- cognite_neat-0.122.3/last_git_message.txt +0 -22
- cognite_neat-0.122.3/last_version.txt +0 -1
- cognite_neat-0.122.3/tests/tests_unit/test_graph/test_loaders/test_rdf2dms.py +0 -57
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/.coveragerc +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/.github/CODEOWNERS +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/.github/pull_request_template.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/.github/renovate.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/.github/workflows/code-quality.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/.github/workflows/release.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/.gitignore +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/.pre-commit-config.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/.readthedocs.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/CODE_OF_CONDUCT.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/CONTRIBUTING.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/LICENSE +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/README.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cdf.toml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/codecov.yml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_client/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_client/_api/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_client/_api/data_modeling_loaders.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_client/_api/schema.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_client/_api/statistics.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_client/_api_client.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_client/data_classes/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_client/data_classes/data_modeling.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_client/data_classes/neat_sequence.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_client/data_classes/schema.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_client/data_classes/statistics.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_client/testing.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_config.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/_shared.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/analysis/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/analysis/_base.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/catalog/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/catalog/classic_model.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/catalog/conceptual-imf-data-model.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/catalog/hello_world_pump.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/exporters/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/exporters/_base.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/exporters/_data_model2dms.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/exporters/_data_model2excel.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/exporters/_data_model2instance_template.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/exporters/_data_model2ontology.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/exporters/_data_model2yaml.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/importers/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/importers/_base.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/importers/_base_file_reader.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/importers/_dict2data_model.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/importers/_dtdl2data_model/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/importers/_dtdl2data_model/_unit_lookup.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/importers/_dtdl2data_model/dtdl_converter.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/importers/_dtdl2data_model/dtdl_importer.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/importers/_dtdl2data_model/spec.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/importers/_rdf/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/importers/_rdf/_base.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/importers/_rdf/_imf2data_model.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/importers/_rdf/_inference2rdata_model.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/importers/_rdf/_owl2data_model.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/importers/_rdf/_shared.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/importers/_spreadsheet2data_model.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/_base_unverified.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/_base_verified.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/_types.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/conceptual/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/conceptual/_unverified.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/conceptual/_validation.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/conceptual/_verified.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/data_types.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/entities/_constants.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/entities/_loaders.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/entities/_multi_value.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/entities/_wrapped.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/mapping/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/mapping/_classic2core.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/mapping/_classic2core.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/models/physical/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/transformers/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/transformers/_base.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/transformers/_converters.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/transformers/_mapping.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_data_model/transformers/_verification.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/_shared.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/_tracking/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/_tracking/base.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/_tracking/log.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/examples/Knowledge-Graph-Nordic44.xml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/examples/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/extractors/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/extractors/_base.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/extractors/_classic_cdf/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_assets.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_base.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_classic.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_data_sets.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_events.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_files.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_labels.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_relationships.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_sequences.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_timeseries.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/extractors/_dict.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/extractors/_dms.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/extractors/_dms_graph.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/extractors/_mock_graph_generator.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/extractors/_raw.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/extractors/_rdf_file.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/loaders/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/loaders/_base.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/loaders/_rdf_to_instance_space.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/queries/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/queries/_base.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/queries/_queries.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/queries/_select.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/queries/_update.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/transformers/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/transformers/_base.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/transformers/_classic_cdf.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/transformers/_prune_graph.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/transformers/_rdfpath.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/transformers/_value_type.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_issues/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_issues/_base.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_issues/_contextmanagers.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_issues/_factory.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_issues/errors/_external.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_issues/errors/_properties.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_issues/errors/_resources.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_issues/errors/_wrapper.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_issues/formatters.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_issues/warnings/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_issues/warnings/_external.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_issues/warnings/_general.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_issues/warnings/_models.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_issues/warnings/_properties.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_issues/warnings/_resources.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_issues/warnings/user_modeling.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_shared.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_store/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_store/_data_model.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_store/_instance.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_store/_provenance.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_store/exceptions.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_utils/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_utils/auth.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_utils/auxiliary.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_utils/collection_.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_utils/graph_transformations_report.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_utils/io_.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_utils/rdf_.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_utils/reader/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_utils/reader/_base.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_utils/spreadsheet.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_utils/text.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_utils/time_.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_utils/upload.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_utils/xml_.py +0 -0
- {cognite_neat-0.122.3/tests → cognite_neat-0.123.1/cognite/neat/plugins/data_model}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/py.typed +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/_base.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/_collector.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/_drop.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/_experimental.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/_explore.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/_fix.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/_inspect.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/_mapping.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/_prepare.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/_read.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/_set.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/_show.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/_state/README.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/_state.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/_subset.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/_template.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/_to.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/_wizard.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/engine/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/engine/_import.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/engine/_interface.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/session/engine/_load.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/dev.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/DataModelCDF.PNG +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/DataModelInstancesCDF.PNG +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/DataModelInstancesVizCDF.PNG +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/aml-dm-cdf.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/aml-dm.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/aml-instances-cdf.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/aml-instances-full.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_dms.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_dms_typed.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_populated.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_populated_with_typed.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/authorship.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/base-components.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/bid_capacity_data_model.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/change_validate_step.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/connecting_metadata_dm.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/connecting_metadata_populated.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/connecting_metadata_published_dm.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/container_spec.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/core_extension.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/core_extension_excel.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/core_extension_no_connection.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/core_extension_with_properties.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/data-exploration.gif +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/data-model-nordic44.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/data-modeling-flow.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/dexpi-dm-cdf.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/dexpi-dm-viz.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/dexpi-graph-viz.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/dexpi-instance-cdf.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/dexpi-transformed-graph-viz.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/dm-classes.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/dm-object-shapes.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/dm-prefixes.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/dm-source-to-solution-mapping.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/dm2cdf-asset.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/dm2cdf-mapping.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/execution-history.gif +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/export_dms_config.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/export_dms_executed.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/export_dms_workflow.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/features.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/graph-etl-flow.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/high-level-io.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/instances-nordic44.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/instances-sheet.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/key-aspects-of-neat.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/knowledge-graph-viz-filtering.gif +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/knowledge-graph-viz.gif +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/life_cycle_analitic_solution_export_dms.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/life_cycle_converter_model_analytic_solution_model.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/life_cycle_download_reference_model_analytic_soluteion_model.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/life_cycle_download_reference_model_analytic_solution_model_export.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/logo.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/metadata-sheet.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/multi-hop.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/neat-high-level.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/neat-two_flows.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/neat_shift_tab.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/neat_tab.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/prefixes-sheet.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/pump_hello_world_published.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/rdf-in-nutshell.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/rdf2cdf-graph-change.jpg +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/rdf2cdf-graph-resurrect.jpg +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/rdf2cdf-graph.jpg +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/rdf2cdf-init-run-step1.jpg +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/rdf2cdf-init-run-step2.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/rdf2cdf-init-run.jpg +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/rdf2cdf-post-init.jpg +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/run_workflow.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/sheet2cdf-asset-hierarchy.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/sheet2cdf-running-workflow.gif +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/sheet2cdf-transformation-rules-ui.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/sheet2cdf-upload-rules.gif +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/sheet2cdf-workflow-steps.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/sheet2cdf-workflow.gif +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/sheet2cdf-workflow.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/step-configurables.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/step-metrics.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/tutorial-notebooks-part-2_graph-capturing-sheet.gif +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/validate_workflow.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/wf-ephemeral-mode.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/wf-overview.gif +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/wf-persistent-blocking-mode.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/wf-persistent-non-blocking.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/wf-start-mode-ui.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/wind_farm_classic_knowledge_graph.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/wind_farm_data_product_instances.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/work-in-progress.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/workflow-context.jpg +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/working_with_metadata_provenance.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/figs/working_with_metadata_published_dm.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/rules/dms-addition-svein-harald.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/rules/dms-analytics-olav.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/rules/dms-architect-rules-raw-filter-example.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/rules/dms-architect-rules-template.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/rules/dms-rebuild-olav.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/rules/domain-expert-rules-template.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/rules/expert-grid-emma.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/rules/expert-wind-energy-jon.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/rules/information-addition-svein-harald.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/rules/information-analytics-olav-ref.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/rules/information-analytics-olav.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/rules/information-architect-david.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/rules/information-architect-rules-template.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/videos/tutorial-1-defining-data-model.mp4 +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/videos/tutorial-1-download-rules-template.mp4 +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/videos/tutorial-1-upload-gql-schema-to-cdf.mp4 +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/videos/tutorial-2-graph-capturing-sheet.mp4 +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/videos/tutorial-3-asset-hierarchy.mp4 +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/videos/tutorial-3-decommissioning.mp4 +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/videos/tutorial-3-relationships.mp4 +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/videos/tutorial-3-resurrection.mp4 +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/artifacts/videos/tutorial-4-asset-hierarchy.mp4 +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/data-modeling-principles.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/excel_data_modeling/conceptual/overview.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/excel_data_modeling/conceptual/reference.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/excel_data_modeling/data_model.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/excel_data_modeling/physical/enum.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/excel_data_modeling/physical/overview.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/excel_data_modeling/physical/reference.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/excel_data_modeling/physical/views.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/excel_data_modeling/units.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/gettingstarted/installation.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/gettingstarted/why-neat.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/index.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/reference/NeatSession/base.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/reference/NeatSession/drop.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/reference/NeatSession/fix.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/reference/NeatSession/inspect.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/reference/NeatSession/mapping.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/reference/NeatSession/prepare.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/reference/NeatSession/read.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/reference/NeatSession/set.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/reference/NeatSession/show.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/reference/NeatSession/subset.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/reference/NeatSession/template.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/reference/NeatSession/to.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/reference/issues/base.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/reference/issues/errors.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/reference/issues/user_model_warnings.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/reference/issues/warnings.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/reference/overview.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/tutorials/data-modeling/cold_start.ipynb +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/tutorials/data-modeling/figs/data-modeling-flow.png +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/tutorials/data-modeling/files/wind_farm_prospecting_conceptual_data_model.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/tutorials/data-modeling/files/wind_farm_prospecting_conceptual_data_model_expanded.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/tutorials/data-modeling/files/wind_farm_prospecting_physical_data_model.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/tutorials/data-modeling/from-conceptual-to-physical-via-CDM.ipynb +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_conceptual_wind_energy_WindFarmProspecting_v1.html +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/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.3 → cognite_neat-0.123.1}/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_physical_neat_playground_NeatHelloWorld_v1.html +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/tutorials/data-modeling/my_first_model.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/tutorials/data-modeling/physical-data-model.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/docs/tutorials/introduction/introduction.ipynb +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/mkdocs.yml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/clean_space.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/core_classic_mapping.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/create_classic_core_mapping_yaml.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/dependency_profiler.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/docs_generate_reference.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/docs_generate_unit.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/generate_steps_md.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/.gitignore +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/README.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/config.dev.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/neat_integration_runner/README.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/neat_integration_runner/auth/neat_cicd_testing.group.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/lift_pumps/classic/lift_pump_stations_root.Asset.csv +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/lift_pumps/data_sets/hierarchies.DataSet.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/lift_pumps/raw/collections_pump.Table.csv +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/lift_pumps/raw/collections_pump.Table.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/classic/Measurement.Asset.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/classic/Measurement.Label.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/classic/MetMast.Asset.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/classic/PowerGeneratingUnit.Label.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/classic/Utsira.Asset.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-01.Asset.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-01_to_MetMast.Relationship.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-02.Asset.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-02_to_MetMast.Relationship.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/classic/WindTurbine.Label.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/classic/metMast.Label.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/classic/planned_WT-01_2022-01-01.Event.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/classic/power_curve_manufacturer1.Sequence.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/data_sets/maintenance.DataSet.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/data_sets/source_ds.DataSet.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/data_sets/usecase_01.DataSet.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/files/WT-01_datasheet.FileMetadata.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/files/WT-01_datasheet.txt +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-01_forecast.TimeSeries.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-01_production.TimeSeries.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-02_forecast.TimeSeries.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-02_production.TimeSeries.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/manual_test_dms_importer.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/migration.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/oxi_remote/README.md +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/oxi_remote/docker-compose.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/test_lookup_table.csv +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/scripts/windfarm_to_toolkit.py +0 -0
- {cognite_neat-0.122.3/tests/tests_end_to_end → cognite_neat-0.123.1/tests}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/config.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/conftest.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_graph/IMF_TempTransmitterComplete.ttl +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_graph/aml-raw-graph.ttl +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_graph/aml_example.aml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_graph/car.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_graph/dexpi-raw-graph.ttl +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_graph/dexpi_example.xml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_graph/iodd_Piab-piCOMPACT10X-20230509-IODD1.1.xml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_graph/low-quality-graph.ttl +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_instances/asset_centric_cdf/assets.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_instances/asset_centric_cdf/events.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_instances/asset_centric_cdf/files.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_instances/asset_centric_cdf/labels.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_instances/asset_centric_cdf/relationships.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_instances/asset_centric_cdf/sequence_rows.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_instances/asset_centric_cdf/sequences.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_instances/asset_centric_cdf/timeseries.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_instances/classic_windfarm.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/conceptual/broken_concepts.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/conceptual/info-arch-car-rules.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/conceptual/info_with_cdm_ref.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/conceptual/information-unknown-value-type.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/conceptual/only_concepts.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/conversion/single_concept.conceptual.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/conversion/single_concept.physical.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/cognite_core_v1.zip +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/TemperatureController.zip +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/BaseConsumer.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/BasePlant.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/BaseReceiver.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/CityPlant.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/CoalPlant.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/DeliverySubStation.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/DomesticConsumer.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/FarmConsumer.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/Floor.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/GasPlant.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/GeneratorSubStation.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/HydroPlant.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/IndustrialConsumer.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/IndustrialPlant.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/NuclearPlant.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/PowerLine.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/Room.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/SolarPlant.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/Transformer.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/dtdl/energy-grid/WindPlant.json +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/referencing_core/MyDescribable.container.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/referencing_core/MyDescribable.view.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/referencing_core/enterprise.datamodel.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/non_neat/windturbine.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/partial-model/complete.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/partial-model/part1.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/partial-model/part2.ttl +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/partial-model/part3.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical/car_dms_rules.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical/car_dms_rules_deprecated.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical/dm_raw_filter.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical/dm_view_space_different.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical/dms-unknown-value-type.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical/isa_plus_cdm.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical/missing-in-model-value.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical/mixed-up-version.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical/pump_example_duplicated_resources.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical/pump_example_with_missing_cells.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical/pump_example_with_missing_cells_raise_issues.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical_invalid/inconsistent_container_dms_rules.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical_invalid/invalid_metadata.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical_invalid/invalid_property_dms_rules.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical_invalid/missing_view_container_dms_rules.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical_invalid/too_many_containers_per_view.xlsx +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical_yamls/invalid_yaml.expected_issues.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical_yamls/invalid_yaml.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical_yamls/reverse_direct_relation_missing_target.expected_issues.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/data/_schema/physical_yamls/reverse_direct_relation_missing_target.yaml +0 -0
- {cognite_neat-0.122.3/tests/tests_integration → cognite_neat-0.123.1/tests/tests_end_to_end}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_end_to_end/test_rules_flow/test_cdm_extension_verification.yaml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_end_to_end/test_rules_flow/test_excel_importer_to_yaml.yml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_end_to_end/test_rules_flow/test_ontology_importer_to_yaml.yml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_end_to_end/test_rules_flow/test_to_extension_transformer.yml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_end_to_end/test_rules_flow.py +0 -0
- {cognite_neat-0.122.3/tests/tests_integration/test_api → cognite_neat-0.123.1/tests/tests_integration}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/conftest.py +0 -0
- {cognite_neat-0.122.3/tests/tests_integration/test_graph → cognite_neat-0.123.1/tests/tests_integration/test_api}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_api/test_conversion.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_api/test_validate_rules.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_client_available.py +0 -0
- {cognite_neat-0.122.3/tests/tests_integration/test_graph/test_loaders → cognite_neat-0.123.1/tests/tests_integration/test_graph}/__init__.py +0 -0
- {cognite_neat-0.122.3/tests/tests_integration/test_neat_client → cognite_neat-0.123.1/tests/tests_integration/test_graph/test_loaders}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_graph/test_loaders/test_dms_loader.py +0 -0
- {cognite_neat-0.122.3/tests/tests_integration/test_rules → cognite_neat-0.123.1/tests/tests_integration/test_neat_client}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_neat_client/test_cdf_loaders.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_neat_client/test_statistics.py +0 -0
- {cognite_neat-0.122.3/tests/tests_integration/test_rules/test_exporters → cognite_neat-0.123.1/tests/tests_integration/test_rules}/__init__.py +0 -0
- {cognite_neat-0.122.3/tests/tests_integration/test_rules/test_importers → cognite_neat-0.123.1/tests/tests_integration/test_rules/test_exporters}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_rules/test_exporters/test_dms_exporters.py +0 -0
- {cognite_neat-0.122.3/tests/tests_integration/test_session → cognite_neat-0.123.1/tests/tests_integration/test_rules/test_importers}/__init__.py +0 -0
- {cognite_neat-0.122.3/tests/tests_integration/test_utils → cognite_neat-0.123.1/tests/tests_integration/test_session}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_session/test_create_enterprise.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_session/test_data_model_prepare_fix/test_prefix_dms_rules_entities.yml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_session/test_data_model_prepare_fix/test_prefix_info_rules_entities.yml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_session/test_data_model_prepare_fix/test_standardize_space_and_version.yml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_session/test_data_model_prepare_fix.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_session/test_data_model_to/test_raw_filter.yml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_session/test_data_model_to.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_session/test_graph_flow/test_aml_to_dms.yml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_session/test_graph_flow/test_create_extension_template.yml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_session/test_graph_flow/test_dexpi_to_dms.yml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_session/test_graph_flow/test_snapshot_workflow_ids_to_python.yml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_session/test_graph_flow/test_uplift_workflow_to_python.yml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_session/test_graph_flow.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_session/test_read.py +0 -0
- {cognite_neat-0.122.3/tests/tests_unit → cognite_neat-0.123.1/tests/tests_integration/test_utils}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_integration/test_utils/test_reader.py +0 -0
- {cognite_neat-0.122.3/tests/tests_unit/test_graph → cognite_neat-0.123.1/tests/tests_unit}/__init__.py +0 -0
- {cognite_neat-0.122.3/tests/tests_unit/test_graph/test_extractors → cognite_neat-0.123.1/tests/tests_unit/test_graph}/__init__.py +0 -0
- {cognite_neat-0.122.3/tests/tests_unit/test_graph/test_loaders → cognite_neat-0.123.1/tests/tests_unit/test_graph/test_extractors}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_extractors/test_asset_extractor.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_extractors/test_dms_extractor.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_extractors/test_dms_graph_extractor.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_extractors/test_events_extractor.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_extractors/test_files_extractor.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_extractors/test_labels_extractor.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_extractors/test_raw_extractor.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_extractors/test_relationship_extractor.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_extractors/test_sequences_extractor.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_extractors/test_timeseries_extractor.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_graph_read.py +0 -0
- {cognite_neat-0.122.3/tests/tests_unit/test_graph/test_transformers → cognite_neat-0.123.1/tests/tests_unit/test_graph/test_loaders}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_loaders/test_dms_loader.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_loaders/test_rdf_to_instance_space.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_provenance.py +0 -0
- {cognite_neat-0.122.3/tests/tests_unit/test_issues → cognite_neat-0.123.1/tests/tests_unit/test_graph/test_transformers}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_transformers/test_asset_depth_transformer.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_transformers/test_asset_event_connector_transformer.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_transformers/test_asset_file_connector_transformer.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_transformers/test_asset_relationship_connector_transformer.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_transformers/test_asset_sequence_connector_transformer.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_transformers/test_asset_ts_connector_transformer.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_transformers/test_attach_property_from_target2source.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_transformers/test_connection_to_literal.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_transformers/test_make_connection_on_exact_match.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_transformers/test_prune_graph.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_graph/test_transformers/test_split_multi_value_property_transformer.py +0 -0
- {cognite_neat-0.122.3/tests/tests_unit/test_neat_client → cognite_neat-0.123.1/tests/tests_unit/test_issues}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_issues/test_formatters.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_issues/test_issue_behavior.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_issues/test_issues_metatests.py +0 -0
- {cognite_neat-0.122.3/tests/tests_unit/test_rules → cognite_neat-0.123.1/tests/tests_unit/test_neat_client}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_neat_client/test_instances.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_neat_client/test_loaders.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_neat_client/test_schema.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_neat_package_metadata.py +0 -0
- {cognite_neat-0.122.3/tests/tests_unit/test_rules/test_exporters → cognite_neat-0.123.1/tests/tests_unit/test_rules}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_analysis.py +0 -0
- {cognite_neat-0.122.3/tests/tests_unit/test_rules/test_importers → cognite_neat-0.123.1/tests/tests_unit/test_rules/test_exporters}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_exporters/test_exporters_meta.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_exporters/test_rules2dms.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_exporters/test_rules2excel.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_exporters/test_rules2ontology.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_exporters/test_rules2yaml.py +0 -0
- {cognite_neat-0.122.3/tests/tests_unit/test_rules/test_models → cognite_neat-0.123.1/tests/tests_unit/test_rules/test_importers}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_importers/constants.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_importers/test_dms_importer.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_importers/test_dtdl_importer.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_importers/test_excel_importer.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_importers/test_imf_importer.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_importers/test_inference_importer.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_importers/test_owl_importer.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_importers/test_subinference_importer.py +0 -0
- {cognite_neat-0.122.3/tests/tests_unit/test_rules/test_transformers → cognite_neat-0.123.1/tests/tests_unit/test_rules/test_models}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_models/test_asset_rules.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_models/test_base_rules.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_models/test_conceptual_model.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_models/test_data_types.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_models/test_dms_schema.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_models/test_input_rules.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_models/test_physical_data_model.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_models/test_wrapped_entities.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_models/utils.py +0 -0
- {cognite_neat-0.122.3/tests/tests_unit/test_session → cognite_neat-0.123.1/tests/tests_unit/test_rules/test_transformers}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_transformers/test_converters.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_transformers/test_mapping.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_rules/test_transformers/test_transformer_meta.py +0 -0
- {cognite_neat-0.122.3/tests/tests_unit/test_store → cognite_neat-0.123.1/tests/tests_unit/test_session}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_session/test_meta.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_session/test_read.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_session/test_to_yaml.py +0 -0
- {cognite_neat-0.122.3/tests/tests_unit/test_utils → cognite_neat-0.123.1/tests/tests_unit/test_store}/__init__.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_store/test_select_queries.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_store/tests_rules_store/test_import_export.yml +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_store/tests_rules_store.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_utils/test_auxiliary.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_utils/test_cdf_classes.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_utils/test_rdf.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_utils/test_reader.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_utils/test_text.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/tests_unit/test_utils/test_utils.py +0 -0
- {cognite_neat-0.122.3 → cognite_neat-0.123.1}/tests/utils.py +0 -0
{cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_client/_api/neat_instances.py
RENAMED
|
@@ -7,6 +7,11 @@ from cognite.client.data_classes.filters import Filter
|
|
|
7
7
|
from cognite.client.exceptions import CogniteAPIError
|
|
8
8
|
from cognite.client.utils.useful_types import SequenceNotStr
|
|
9
9
|
|
|
10
|
+
from cognite.neat.core._constants import DMS_INSTANCE_LIMIT_MARGIN
|
|
11
|
+
from cognite.neat.core._issues import NeatIssue
|
|
12
|
+
from cognite.neat.core._issues.errors import WillExceedLimitError
|
|
13
|
+
from cognite.neat.core._issues.warnings import NeatValueWarning
|
|
14
|
+
|
|
10
15
|
if TYPE_CHECKING:
|
|
11
16
|
from cognite.neat.core._client._api_client import NeatClient
|
|
12
17
|
|
|
@@ -69,3 +74,28 @@ class NeatInstancesAPI:
|
|
|
69
74
|
if (time.perf_counter() - last_limit_change) > 30.0 and body["limit"] < 1_000:
|
|
70
75
|
body["limit"] = min(int(body["limit"] * 1.5), 1_000)
|
|
71
76
|
last_limit_change = time.perf_counter()
|
|
77
|
+
|
|
78
|
+
def validate_cdf_project_capacity(self, total_instances: int) -> NeatIssue | None:
|
|
79
|
+
"""Validates if the current project instance capacity can accommodate the given number of instances.
|
|
80
|
+
|
|
81
|
+
Args:
|
|
82
|
+
total_instances (int): The total number of instances to check against the project's capacity.
|
|
83
|
+
|
|
84
|
+
Returns:
|
|
85
|
+
NeatIssue | None: Returns a warning if the capacity is exceeded, otherwise None.
|
|
86
|
+
|
|
87
|
+
Raises:
|
|
88
|
+
WillExceedLimitError: If the total instances exceed the project's instance capacity.
|
|
89
|
+
|
|
90
|
+
"""
|
|
91
|
+
try:
|
|
92
|
+
stats = self._client.instance_statistics.project()
|
|
93
|
+
except CogniteAPIError as e:
|
|
94
|
+
# This endpoint is not yet in alpha, it may change or not be available.
|
|
95
|
+
return NeatValueWarning(f"Cannot check project instance capacity. Endpoint not available: {e}")
|
|
96
|
+
instance_capacity = stats.instances.instances_limit - stats.instances.instances
|
|
97
|
+
if total_instances + DMS_INSTANCE_LIMIT_MARGIN > instance_capacity:
|
|
98
|
+
raise WillExceedLimitError(
|
|
99
|
+
"instances", total_instances, stats.project, instance_capacity, DMS_INSTANCE_LIMIT_MARGIN
|
|
100
|
+
)
|
|
101
|
+
return None
|
|
@@ -9,7 +9,6 @@ from rdflib import DC, DCTERMS, FOAF, OWL, RDF, RDFS, SH, SKOS, XSD, Namespace,
|
|
|
9
9
|
from rdflib.namespace import DefinedNamespace
|
|
10
10
|
|
|
11
11
|
from cognite import neat
|
|
12
|
-
from cognite.neat.core._issues.errors._general import NeatValueError
|
|
13
12
|
|
|
14
13
|
if TYPE_CHECKING:
|
|
15
14
|
from cognite.neat.core._data_model.models.physical import PhysicalProperty
|
|
@@ -161,6 +160,14 @@ DMS_DIRECT_RELATION_LIST_DEFAULT_LIMIT = 100
|
|
|
161
160
|
DMS_PRIMITIVE_LIST_DEFAULT_LIMIT = 1000
|
|
162
161
|
DMS_CONTAINER_LIST_MAX_LIMIT = 2000
|
|
163
162
|
|
|
163
|
+
# The number of instances that should be left as a margin when Neat writes to CDF through the DMS API.
|
|
164
|
+
# This is currently set conservatively to 1 million. The reasoning for this is that there are CDF
|
|
165
|
+
# applications such as Infield and Industrial Canvas that can write to the DMS API, as well as likely third-party
|
|
166
|
+
# applications that can write to the DMS API. If Neat fills up the entire capacity, these type of data gathering
|
|
167
|
+
# applications will experience data loss. The limit of 1 million is chosen such that it will trigger alarms in the
|
|
168
|
+
# CDF projects, such that admins can take action to increase or clean up the capacity before it is too late.
|
|
169
|
+
DMS_INSTANCE_LIMIT_MARGIN = 1_000_000
|
|
170
|
+
|
|
164
171
|
_ASSET_ROOT_PROPERTY = {
|
|
165
172
|
"connection": "direct",
|
|
166
173
|
"container": "cdf_cdm:CogniteAsset",
|
|
@@ -211,6 +218,8 @@ def get_base_concepts(
|
|
|
211
218
|
base_model: The base model to get the concepts for.
|
|
212
219
|
total_concepts: The number of concepts to get. If None, all concepts are returned.
|
|
213
220
|
"""
|
|
221
|
+
# Local import to avoid circular dependency issues
|
|
222
|
+
from cognite.neat.core._issues.errors._general import NeatValueError
|
|
214
223
|
|
|
215
224
|
if base_model == "CogniteCore":
|
|
216
225
|
return [f"cdf_cdm:{concept}(version=v1)" for concept in COGNITE_CONCEPTS][:total_concepts]
|
|
@@ -47,6 +47,7 @@ from cognite.neat.core._data_model.models.data_types import DataType, Enum, Stri
|
|
|
47
47
|
from cognite.neat.core._data_model.models.entities import (
|
|
48
48
|
ConceptEntity,
|
|
49
49
|
ContainerEntity,
|
|
50
|
+
ContainerIndexEntity,
|
|
50
51
|
DMSNodeEntity,
|
|
51
52
|
EdgeEntity,
|
|
52
53
|
PhysicalUnknownEntity,
|
|
@@ -385,7 +386,9 @@ class DMSImporter(BaseImporter[UnverifiedPhysicalDataModel]):
|
|
|
385
386
|
),
|
|
386
387
|
view=str(view_entity),
|
|
387
388
|
view_property=prop_id,
|
|
388
|
-
|
|
389
|
+
# MyPy fails to understand that list[ContainerIndexEntity] | None is valid even though
|
|
390
|
+
# the index expects str | list[ContainerIndexEntity | str] | None.
|
|
391
|
+
index=self._get_index(prop, prop_id), # type: ignore[arg-type]
|
|
389
392
|
constraint=self._get_constraint(prop, prop_id),
|
|
390
393
|
)
|
|
391
394
|
|
|
@@ -548,14 +551,22 @@ class DMSImporter(BaseImporter[UnverifiedPhysicalDataModel]):
|
|
|
548
551
|
return str(default)
|
|
549
552
|
return None
|
|
550
553
|
|
|
551
|
-
def _get_index(self, prop: ViewPropertyApply, prop_id: str) -> list[
|
|
554
|
+
def _get_index(self, prop: ViewPropertyApply, prop_id: str) -> list[ContainerIndexEntity] | None:
|
|
552
555
|
if not isinstance(prop, dm.MappedPropertyApply):
|
|
553
556
|
return None
|
|
554
557
|
container = self._all_containers_by_id[prop.container]
|
|
555
|
-
index: list[
|
|
558
|
+
index: list[ContainerIndexEntity] = []
|
|
556
559
|
for index_name, index_obj in (container.indexes or {}).items():
|
|
557
|
-
if isinstance(index_obj, BTreeIndex
|
|
558
|
-
index
|
|
560
|
+
if isinstance(index_obj, BTreeIndex) and prop_id in index_obj.properties:
|
|
561
|
+
order = None if len(index_obj.properties) == 1 else index_obj.properties.index(prop_id)
|
|
562
|
+
index.append(
|
|
563
|
+
ContainerIndexEntity(
|
|
564
|
+
prefix="btree", suffix=index_name, cursorable=index_obj.cursorable, order=order
|
|
565
|
+
)
|
|
566
|
+
)
|
|
567
|
+
elif isinstance(index_obj, InvertedIndex) and prop_id in index_obj.properties:
|
|
568
|
+
order = None if len(index_obj.properties) == 1 else index_obj.properties.index(prop_id)
|
|
569
|
+
index.append(ContainerIndexEntity(prefix="inverted", suffix=index_name, order=order))
|
|
559
570
|
return index or None
|
|
560
571
|
|
|
561
572
|
def _get_constraint(self, prop: ViewPropertyApply, prop_id: str) -> list[str] | None:
|
|
@@ -7,6 +7,7 @@ from ._single_value import (
|
|
|
7
7
|
ConceptEntity,
|
|
8
8
|
ConceptualEntity,
|
|
9
9
|
ContainerEntity,
|
|
10
|
+
ContainerIndexEntity,
|
|
10
11
|
DataModelEntity,
|
|
11
12
|
DMSNodeEntity,
|
|
12
13
|
DMSVersionedEntity,
|
|
@@ -33,6 +34,7 @@ __all__ = [
|
|
|
33
34
|
"ConceptualEntity",
|
|
34
35
|
"ContainerEntity",
|
|
35
36
|
"ContainerEntityList",
|
|
37
|
+
"ContainerIndexEntity",
|
|
36
38
|
"DMSFilter",
|
|
37
39
|
"DMSNodeEntity",
|
|
38
40
|
"DMSVersionedEntity",
|
|
@@ -172,8 +172,8 @@ class ConceptualEntity(BaseModel, extra="ignore"):
|
|
|
172
172
|
extra: tuple[str, ...] = tuple(
|
|
173
173
|
[
|
|
174
174
|
str(v or "")
|
|
175
|
-
for field_name in self.model_fields
|
|
176
|
-
if
|
|
175
|
+
for field_name in self.model_fields.keys()
|
|
176
|
+
if (v := getattr(self, field_name)) and field_name not in {"prefix", "suffix"}
|
|
177
177
|
]
|
|
178
178
|
)
|
|
179
179
|
if isinstance(self.prefix, _UndefinedType):
|
|
@@ -225,8 +225,8 @@ class ConceptualEntity(BaseModel, extra="ignore"):
|
|
|
225
225
|
continue
|
|
226
226
|
if model_dump[key] == value:
|
|
227
227
|
to_delete.append(key)
|
|
228
|
-
elif isinstance(self, EdgeEntity):
|
|
229
|
-
# Exception is edge
|
|
228
|
+
elif isinstance(self, EdgeEntity | ContainerIndexEntity):
|
|
229
|
+
# Exception is edge and container index entities, then we remove all the defaults we can.
|
|
230
230
|
continue
|
|
231
231
|
else:
|
|
232
232
|
# Not all fields are default. We should not remove any of them.
|
|
@@ -549,3 +549,23 @@ class ReferenceEntity(ConceptEntity):
|
|
|
549
549
|
|
|
550
550
|
def as_concept_entity(self) -> ConceptEntity:
|
|
551
551
|
return ConceptEntity(prefix=self.prefix, suffix=self.suffix, version=self.version)
|
|
552
|
+
|
|
553
|
+
|
|
554
|
+
class ContainerIndexEntity(PhysicalEntity[None]):
|
|
555
|
+
type_: ClassVar[EntityTypes] = EntityTypes.container_index
|
|
556
|
+
prefix: _UndefinedType | Literal["btree", "inverted"] = Undefined # type: ignore[assignment]
|
|
557
|
+
suffix: str
|
|
558
|
+
order: int | None = Field(None, description="The order of the index. None indicates the value is not set.")
|
|
559
|
+
cursorable: bool | None = Field(
|
|
560
|
+
None, description="Whether the index is cursorable. None indicates the value is not set."
|
|
561
|
+
)
|
|
562
|
+
by_space: bool | None = Field(
|
|
563
|
+
None, alias="bySpace", description="Whether the index is by space. None indicates the value is not set."
|
|
564
|
+
)
|
|
565
|
+
|
|
566
|
+
def as_id(self) -> None:
|
|
567
|
+
return None
|
|
568
|
+
|
|
569
|
+
@classmethod
|
|
570
|
+
def from_id(cls, id: None) -> Self:
|
|
571
|
+
return cls(suffix="dummy")
|
|
@@ -10,6 +10,7 @@ from ._single_value import (
|
|
|
10
10
|
AssetEntity,
|
|
11
11
|
ConceptEntity,
|
|
12
12
|
ContainerEntity,
|
|
13
|
+
ContainerIndexEntity,
|
|
13
14
|
RelationshipEntity,
|
|
14
15
|
ViewEntity,
|
|
15
16
|
)
|
|
@@ -66,6 +67,16 @@ ContainerEntityList = Annotated[
|
|
|
66
67
|
BeforeValidator(_split_str),
|
|
67
68
|
]
|
|
68
69
|
|
|
70
|
+
ContainerIndexListType = Annotated[
|
|
71
|
+
list[ContainerIndexEntity],
|
|
72
|
+
BeforeValidator(_split_str),
|
|
73
|
+
PlainSerializer(
|
|
74
|
+
_join_str,
|
|
75
|
+
return_type=str,
|
|
76
|
+
when_used="unless-none",
|
|
77
|
+
),
|
|
78
|
+
]
|
|
79
|
+
|
|
69
80
|
ViewEntityList = Annotated[
|
|
70
81
|
list[ViewEntity],
|
|
71
82
|
BeforeValidator(_split_str),
|
|
@@ -4,7 +4,7 @@ from collections.abc import Collection, Hashable, Sequence
|
|
|
4
4
|
from typing import Any, cast
|
|
5
5
|
|
|
6
6
|
from cognite.client.data_classes import data_modeling as dm
|
|
7
|
-
from cognite.client.data_classes.data_modeling.containers import BTreeIndex
|
|
7
|
+
from cognite.client.data_classes.data_modeling.containers import BTreeIndex, InvertedIndex
|
|
8
8
|
from cognite.client.data_classes.data_modeling.data_types import EnumValue as DMSEnumValue
|
|
9
9
|
from cognite.client.data_classes.data_modeling.data_types import ListablePropertyType
|
|
10
10
|
from cognite.client.data_classes.data_modeling.views import (
|
|
@@ -29,6 +29,7 @@ from cognite.neat.core._data_model.models.data_types import DataType, Double, En
|
|
|
29
29
|
from cognite.neat.core._data_model.models.entities import (
|
|
30
30
|
ConceptEntity,
|
|
31
31
|
ContainerEntity,
|
|
32
|
+
ContainerIndexEntity,
|
|
32
33
|
DMSFilter,
|
|
33
34
|
DMSNodeEntity,
|
|
34
35
|
EdgeEntity,
|
|
@@ -36,6 +37,7 @@ from cognite.neat.core._data_model.models.entities import (
|
|
|
36
37
|
NodeTypeFilter,
|
|
37
38
|
PhysicalUnknownEntity,
|
|
38
39
|
ReverseConnectionEntity,
|
|
40
|
+
Undefined,
|
|
39
41
|
UnitEntity,
|
|
40
42
|
ViewEntity,
|
|
41
43
|
)
|
|
@@ -380,14 +382,25 @@ class _DMSExporter:
|
|
|
380
382
|
container.constraints = container.constraints or {}
|
|
381
383
|
container.constraints[constraint_name] = dm.UniquenessConstraint(properties=list(properties))
|
|
382
384
|
|
|
383
|
-
index_properties: dict[str,
|
|
385
|
+
index_properties: dict[tuple[str, bool], list[tuple[str, ContainerIndexEntity]]] = defaultdict(list)
|
|
384
386
|
for prop in container_properties:
|
|
385
387
|
if prop.container_property is not None:
|
|
386
388
|
for index in prop.index or []:
|
|
387
|
-
index_properties[index].
|
|
388
|
-
for index_name, properties in index_properties.items():
|
|
389
|
+
index_properties[(index.suffix, prop.is_list or False)].append((prop.container_property, index))
|
|
390
|
+
for (index_name, is_list), properties in index_properties.items():
|
|
389
391
|
container.indexes = container.indexes or {}
|
|
390
|
-
|
|
392
|
+
index_property_list = [prop_id for prop_id, _ in sorted(properties, key=lambda x: x[1].order or 0)]
|
|
393
|
+
index_entity = properties[0][1]
|
|
394
|
+
if index_entity.prefix == "inverted" or (index_entity.prefix is Undefined and is_list):
|
|
395
|
+
container.indexes[index_name] = InvertedIndex(properties=index_property_list)
|
|
396
|
+
elif index_entity.prefix == "btree" or (index_entity.prefix is Undefined and not is_list):
|
|
397
|
+
container.indexes[index_name] = BTreeIndex(
|
|
398
|
+
properties=index_property_list, cursorable=index_entity.cursorable or False
|
|
399
|
+
)
|
|
400
|
+
else:
|
|
401
|
+
raise NeatValueError(
|
|
402
|
+
f"Invalid index prefix {index_entity.prefix!r} in {container_id}.{index_entity.suffix!r}"
|
|
403
|
+
)
|
|
391
404
|
|
|
392
405
|
# We might drop containers we convert direct relations of list into multi-edge connections
|
|
393
406
|
# which do not have a container.
|
|
@@ -21,6 +21,7 @@ from cognite.neat.core._data_model.models._base_unverified import (
|
|
|
21
21
|
from cognite.neat.core._data_model.models.data_types import DataType
|
|
22
22
|
from cognite.neat.core._data_model.models.entities import (
|
|
23
23
|
ContainerEntity,
|
|
24
|
+
ContainerIndexEntity,
|
|
24
25
|
DMSNodeEntity,
|
|
25
26
|
EdgeEntity,
|
|
26
27
|
PhysicalUnknownEntity,
|
|
@@ -135,7 +136,7 @@ class UnverifiedPhysicalProperty(UnverifiedComponent[PhysicalProperty]):
|
|
|
135
136
|
default: str | int | float | bool | dict | None = None
|
|
136
137
|
container: str | None = None
|
|
137
138
|
container_property: str | None = None
|
|
138
|
-
index: str | list[str] | None = None
|
|
139
|
+
index: str | list[str | ContainerIndexEntity] | ContainerIndexEntity | None = None
|
|
139
140
|
constraint: str | list[str] | None = None
|
|
140
141
|
neatId: str | URIRef | None = None
|
|
141
142
|
conceptual: str | URIRef | None = None
|
|
@@ -167,6 +168,26 @@ class UnverifiedPhysicalProperty(UnverifiedComponent[PhysicalProperty]):
|
|
|
167
168
|
if self.container
|
|
168
169
|
else None
|
|
169
170
|
)
|
|
171
|
+
if isinstance(self.index, ContainerIndexEntity) or (isinstance(self.index, str) and "," not in self.index):
|
|
172
|
+
output["Index"] = [ContainerIndexEntity.load(self.index)]
|
|
173
|
+
elif isinstance(self.index, str) and "," in self.index:
|
|
174
|
+
output["Index"] = [
|
|
175
|
+
ContainerIndexEntity.load(index.strip()) for index in self.index.split(",") if index.strip()
|
|
176
|
+
]
|
|
177
|
+
elif isinstance(self.index, list):
|
|
178
|
+
index_list: list[ContainerIndexEntity | PhysicalUnknownEntity] = []
|
|
179
|
+
for index in self.index:
|
|
180
|
+
if isinstance(index, ContainerIndexEntity):
|
|
181
|
+
index_list.append(index)
|
|
182
|
+
elif isinstance(index, str) and "," in index:
|
|
183
|
+
index_list.extend(
|
|
184
|
+
[ContainerIndexEntity.load(idx.strip()) for idx in index.split(",") if idx.strip()]
|
|
185
|
+
)
|
|
186
|
+
elif isinstance(index, str):
|
|
187
|
+
index_list.append(ContainerIndexEntity.load(index.strip()))
|
|
188
|
+
else:
|
|
189
|
+
raise TypeError(f"Unexpected type for index: {type(index)}")
|
|
190
|
+
output["Index"] = index_list
|
|
170
191
|
return output
|
|
171
192
|
|
|
172
193
|
def referenced_view(self, default_space: str, default_version: str) -> ViewEntity:
|
|
@@ -391,7 +391,9 @@ class PhysicalValidation:
|
|
|
391
391
|
"rows",
|
|
392
392
|
)
|
|
393
393
|
)
|
|
394
|
-
index_definitions = {
|
|
394
|
+
index_definitions = {
|
|
395
|
+
",".join([index.suffix for index in prop.index]) for _, prop in properties if prop.index is not None
|
|
396
|
+
}
|
|
395
397
|
if len(index_definitions) > 1:
|
|
396
398
|
errors.append(
|
|
397
399
|
PropertyDefinitionDuplicatedError[dm.ContainerId](
|
|
@@ -32,7 +32,6 @@ from cognite.neat.core._data_model.models._types import (
|
|
|
32
32
|
from cognite.neat.core._data_model.models.data_types import DataType
|
|
33
33
|
from cognite.neat.core._data_model.models.entities import (
|
|
34
34
|
ConceptualEntity,
|
|
35
|
-
ContainerEntityList,
|
|
36
35
|
DMSNodeEntity,
|
|
37
36
|
EdgeEntity,
|
|
38
37
|
HasDataFilter,
|
|
@@ -44,6 +43,7 @@ from cognite.neat.core._data_model.models.entities import (
|
|
|
44
43
|
ViewEntity,
|
|
45
44
|
ViewEntityList,
|
|
46
45
|
)
|
|
46
|
+
from cognite.neat.core._data_model.models.entities._types import ContainerEntityList, ContainerIndexListType
|
|
47
47
|
from cognite.neat.core._issues.errors import NeatValueError
|
|
48
48
|
from cognite.neat.core._issues.warnings._general import NeatValueWarning
|
|
49
49
|
|
|
@@ -142,7 +142,7 @@ class PhysicalProperty(SheetRow):
|
|
|
142
142
|
alias="Container Property",
|
|
143
143
|
description="Specifies property in the container where the property is stored. Only applies to primitive type.",
|
|
144
144
|
)
|
|
145
|
-
index:
|
|
145
|
+
index: ContainerIndexListType | None = Field(
|
|
146
146
|
None,
|
|
147
147
|
alias="Index",
|
|
148
148
|
description="The names of the indexes (comma separated) that should be created for the property.",
|
{cognite_neat-0.122.3 → cognite_neat-0.123.1}/cognite/neat/core/_instances/loaders/_rdf2dms.py
RENAMED
|
@@ -159,6 +159,14 @@ class DMSLoader(CDFLoader[dm.InstanceApply]):
|
|
|
159
159
|
if self.neat_prefix_by_type_uri:
|
|
160
160
|
self._lookup_identifier_by_uri()
|
|
161
161
|
|
|
162
|
+
if self._client:
|
|
163
|
+
validate_issue = self._client.instances.validate_cdf_project_capacity(
|
|
164
|
+
sum(it.instance_count for it in view_iterations)
|
|
165
|
+
)
|
|
166
|
+
if validate_issue:
|
|
167
|
+
yield validate_issue
|
|
168
|
+
return
|
|
169
|
+
|
|
162
170
|
for it in view_iterations:
|
|
163
171
|
view = it.view
|
|
164
172
|
if view is None:
|
|
@@ -12,7 +12,7 @@ from ._external import (
|
|
|
12
12
|
NeatYamlError,
|
|
13
13
|
OxigraphStorageLockedError,
|
|
14
14
|
)
|
|
15
|
-
from ._general import NeatImportError, NeatTypeError, NeatValueError, RegexViolationError
|
|
15
|
+
from ._general import NeatImportError, NeatTypeError, NeatValueError, RegexViolationError, WillExceedLimitError
|
|
16
16
|
from ._properties import (
|
|
17
17
|
PropertyDefinitionDuplicatedError,
|
|
18
18
|
PropertyDefinitionError,
|
|
@@ -82,6 +82,7 @@ __all__ = [
|
|
|
82
82
|
"ReversedConnectionNotFeasibleError",
|
|
83
83
|
"SpreadsheetError",
|
|
84
84
|
"ViewValueError",
|
|
85
|
+
"WillExceedLimitError",
|
|
85
86
|
]
|
|
86
87
|
|
|
87
88
|
_NEAT_ERRORS_BY_NAME = {error.__name__: error for error in _get_subclasses(NeatError, include_base=True)}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from dataclasses import dataclass
|
|
2
|
+
from typing import Literal
|
|
2
3
|
|
|
3
4
|
from cognite.neat.core._issues import NeatError
|
|
4
5
|
|
|
@@ -35,3 +36,16 @@ class NeatImportError(NeatError, ImportError):
|
|
|
35
36
|
|
|
36
37
|
module: str
|
|
37
38
|
neat_extra: str
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
@dataclass(unsafe_hash=True)
|
|
42
|
+
class WillExceedLimitError(NeatError, RuntimeError):
|
|
43
|
+
"""Cannot write {resource_count} {resource_type} to project {project} as the current available capacity
|
|
44
|
+
is {available_capacity} {resource_type}. Neat requires a capacity of at least {margin} {resource_type} are
|
|
45
|
+
left for future writes, {available_capacity}-{resource_count} < {margin}."""
|
|
46
|
+
|
|
47
|
+
resource_type: Literal["instances"]
|
|
48
|
+
resource_count: int
|
|
49
|
+
project: str
|
|
50
|
+
available_capacity: int
|
|
51
|
+
margin: int
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from dataclasses import dataclass
|
|
2
|
+
|
|
3
|
+
from cognite.neat.core._issues._base import NeatError
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@dataclass(unsafe_hash=True)
|
|
7
|
+
class PluginError(NeatError, ImportError):
|
|
8
|
+
"""No plugin of type '{plugin_type}' registered under name '{plugin_name}'"""
|
|
9
|
+
|
|
10
|
+
plugin_name: str
|
|
11
|
+
plugin_type: str
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@dataclass(unsafe_hash=True)
|
|
15
|
+
class PluginLoadingError(PluginError):
|
|
16
|
+
"""Unable to load plugin of type '{plugin_type}' registered under name '{plugin_name}' due to: {exception}"""
|
|
17
|
+
|
|
18
|
+
exception: str
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@dataclass(unsafe_hash=True)
|
|
22
|
+
class PluginDuplicateError(PluginError):
|
|
23
|
+
"""Plugin of type '{plugin_type}' registered for under name '{plugin_name}' already exists"""
|
|
24
|
+
|
|
25
|
+
...
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"""Plugin manager for external plugins."""
|
|
2
|
+
|
|
3
|
+
from importlib import metadata
|
|
4
|
+
from typing import Any, ClassVar, TypeAlias
|
|
5
|
+
|
|
6
|
+
from ._issues import PluginDuplicateError, PluginError, PluginLoadingError
|
|
7
|
+
from .data_model.importers import DataModelImporterPlugin
|
|
8
|
+
|
|
9
|
+
# Here we configure entry points where external plugins are going to be registered.
|
|
10
|
+
plugins_entry_points = {
|
|
11
|
+
"cognite.neat.plugins.data_model.importers": DataModelImporterPlugin,
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
#: Type alias for all supported plugin types
|
|
15
|
+
NeatPlugin: TypeAlias = DataModelImporterPlugin
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class Plugin:
|
|
19
|
+
"""Plugin class for registering plugins registered via entry points (i.e. external plugins).
|
|
20
|
+
|
|
21
|
+
Args:
|
|
22
|
+
name (str): The name of format (e.g. Excel) or action (e.g. merge) plugin is handling.
|
|
23
|
+
type_ (type): The type of the plugin.
|
|
24
|
+
entry_point (EntryPoint): The entry point for the plugin.
|
|
25
|
+
|
|
26
|
+
!!! note "name uniqueness"
|
|
27
|
+
The name of the plugin must be lower case and unique across all plugins of the same kind.
|
|
28
|
+
If two plugins have the same name, the exception will be raised.
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
def __init__(self, name: str, type_: type[NeatPlugin], entry_point: metadata.EntryPoint):
|
|
32
|
+
self.name = name
|
|
33
|
+
self.type_ = type_
|
|
34
|
+
self.entry_point = entry_point
|
|
35
|
+
|
|
36
|
+
def load(self) -> Any:
|
|
37
|
+
try:
|
|
38
|
+
return self.entry_point.load()
|
|
39
|
+
except Exception as e:
|
|
40
|
+
raise PluginLoadingError(self.name, self.type_.__name__, str(e)) from e
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class PluginManager:
|
|
44
|
+
"""Plugin manager for external plugins."""
|
|
45
|
+
|
|
46
|
+
_plugins_entry_points: ClassVar[dict[str, type[NeatPlugin]]] = {
|
|
47
|
+
"cognite.neat.plugins.data_model.importers": DataModelImporterPlugin,
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
def __init__(self, plugins: dict[tuple[str, type[NeatPlugin]], Any]) -> None:
|
|
51
|
+
self._plugins = plugins
|
|
52
|
+
|
|
53
|
+
def get(self, name: str, type_: type[NeatPlugin]) -> Any:
|
|
54
|
+
"""
|
|
55
|
+
Returns desired plugin
|
|
56
|
+
|
|
57
|
+
Args:
|
|
58
|
+
name (str): The name of format (e.g. Excel) or action (e.g. merge) plugin is handling.
|
|
59
|
+
type_ (type): The type of the plugin.
|
|
60
|
+
"""
|
|
61
|
+
try:
|
|
62
|
+
return self._plugins[(name, type_)]
|
|
63
|
+
except KeyError:
|
|
64
|
+
raise PluginError(plugin_name=name, plugin_type=type_.__name__) from None
|
|
65
|
+
|
|
66
|
+
@classmethod
|
|
67
|
+
def load_plugins(cls, entry_points: metadata.EntryPoints | None = None) -> "PluginManager":
|
|
68
|
+
"""Load plugins from entry points and register them to the manager.
|
|
69
|
+
This method scans the provided entry points for plugins defined in the
|
|
70
|
+
`_plugins_entry_points` dictionary and registers them.
|
|
71
|
+
|
|
72
|
+
Args:
|
|
73
|
+
entry_points: Entry points to load plugins from. If None, uses the default entry points.
|
|
74
|
+
"""
|
|
75
|
+
_plugins: dict[tuple[str, type[NeatPlugin]], Any] = {}
|
|
76
|
+
|
|
77
|
+
entry_points = entry_points or metadata.entry_points()
|
|
78
|
+
if hasattr(entry_points, "select"):
|
|
79
|
+
for group, type_ in cls._plugins_entry_points.items():
|
|
80
|
+
for entry_point in entry_points.select(group=group):
|
|
81
|
+
# Check for duplicate plugins
|
|
82
|
+
if (entry_point.name, type_) in _plugins:
|
|
83
|
+
raise PluginDuplicateError(plugin_name=entry_point.name, plugin_type=type_.__name__)
|
|
84
|
+
|
|
85
|
+
# Register the plugin
|
|
86
|
+
_plugins[(entry_point.name, type_)] = Plugin(entry_point.name, type_, entry_point).load()
|
|
87
|
+
|
|
88
|
+
return cls(_plugins)
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
_manager_instance: PluginManager | None = None
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
def get_plugin_manager(force_reload: bool = False) -> PluginManager:
|
|
95
|
+
"""Get or create a singleton PluginManager instance."""
|
|
96
|
+
global _manager_instance
|
|
97
|
+
if force_reload or _manager_instance is None:
|
|
98
|
+
_manager_instance = PluginManager.load_plugins()
|
|
99
|
+
return _manager_instance
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from typing import Any
|
|
2
|
+
|
|
3
|
+
from cognite.neat.core._data_model.importers._base import BaseImporter
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class DataModelImporterPlugin:
|
|
7
|
+
"""This class is used an interface for data model import plugins.
|
|
8
|
+
Any plugin that is used for importing data models should inherit from this class.
|
|
9
|
+
It is expected to implement the `configure` method which returns a configured importer.
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
def configure(self, io: Any, **kwargs: Any) -> BaseImporter:
|
|
13
|
+
"""Return a configure plugin for data model import.
|
|
14
|
+
|
|
15
|
+
Args:
|
|
16
|
+
io (Any): The input/output interface for the plugin.
|
|
17
|
+
**kwargs (Any): Additional keyword arguments for configuration.
|
|
18
|
+
|
|
19
|
+
Returns:
|
|
20
|
+
BaseImporter: A configured instance of the BaseImporter.
|
|
21
|
+
|
|
22
|
+
!!! note "Returns"
|
|
23
|
+
The method must return an instance of `BaseImporter` or its subclasses
|
|
24
|
+
meaning it must implement the `BaseImporter` interface.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
raise NotImplementedError()
|
|
@@ -5,7 +5,7 @@ from typing import Any, TypeVar
|
|
|
5
5
|
|
|
6
6
|
from cognite.neat.core._issues.errors import CDFMissingClientError, NeatImportError
|
|
7
7
|
from cognite.neat.core._issues.errors._external import OxigraphStorageLockedError
|
|
8
|
-
from cognite.neat.core._issues.errors._general import NeatValueError
|
|
8
|
+
from cognite.neat.core._issues.errors._general import NeatValueError, WillExceedLimitError
|
|
9
9
|
from cognite.neat.session._experimental import ExperimentalFeatureWarning
|
|
10
10
|
|
|
11
11
|
from ._collector import _COLLECTOR
|
|
@@ -50,6 +50,7 @@ def _session_method_wrapper(func: Callable, cls_name: str) -> Any:
|
|
|
50
50
|
NeatImportError,
|
|
51
51
|
NeatValueError,
|
|
52
52
|
OxigraphStorageLockedError,
|
|
53
|
+
WillExceedLimitError,
|
|
53
54
|
) as e:
|
|
54
55
|
print(f"{_ERROR_PREFIX} {escape(e.as_message())}")
|
|
55
56
|
except ModuleNotFoundError as e:
|
|
Binary file
|