cognite-neat 0.123.26__tar.gz → 0.123.28__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.123.26 → cognite_neat-0.123.28}/PKG-INFO +2 -2
- cognite_neat-0.123.28/cognite/neat/_version.py +2 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/_constants.py +4 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/conceptual/_unverified.py +11 -5
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/entities/__init__.py +4 -0
- cognite_neat-0.123.28/cognite/neat/core/_data_model/models/entities/_loaders.py +155 -0
- cognite_neat-0.123.28/cognite/neat/core/_data_model/models/entities/_restrictions.py +230 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/entities/_single_value.py +97 -13
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/physical/_unverified.py +68 -21
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_issues/errors/_wrapper.py +5 -1
- cognite_neat-0.123.28/last_changelog_entry.md +6 -0
- cognite_neat-0.123.28/last_git_message.txt +27 -0
- cognite_neat-0.123.28/last_version.txt +1 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/pyproject.toml +2 -2
- cognite_neat-0.123.28/tests/data/_schema/physical_invalid/invalid_metadata.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_importers/test_excel_importer.py +2 -2
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_models/test_entities.py +36 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_models/test_physical_data_model.py +28 -2
- cognite_neat-0.123.28/tests/tests_unit/test_rules/test_models/test_restrictions.py +217 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/uv.lock +2 -2
- cognite_neat-0.123.26/cognite/neat/_version.py +0 -2
- cognite_neat-0.123.26/cognite/neat/core/_data_model/models/entities/_loaders.py +0 -75
- cognite_neat-0.123.26/last_changelog_entry.md +0 -4
- cognite_neat-0.123.26/last_git_message.txt +0 -26
- cognite_neat-0.123.26/last_version.txt +0 -1
- cognite_neat-0.123.26/tests/data/_schema/physical_invalid/invalid_metadata.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/.coveragerc +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/.gemini/styleguide.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/.github/CODEOWNERS +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/.github/pull_request_template.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/.github/renovate.json +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/.github/workflows/code-quality.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/.github/workflows/release.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/.gitignore +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/.pre-commit-config.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/.readthedocs.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/CODE_OF_CONDUCT.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/CONTRIBUTING.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/LICENSE +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/README.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cdf.toml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/codecov.yml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_client/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_client/_api/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_client/_api/data_modeling_loaders.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_client/_api/neat_instances.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_client/_api/schema.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_client/_api/statistics.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_client/_api_client.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_client/data_classes/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_client/data_classes/data_modeling.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_client/data_classes/neat_sequence.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_client/data_classes/schema.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_client/data_classes/statistics.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_client/testing.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_config.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_constants.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/_shared.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/analysis/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/analysis/_base.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/catalog/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/catalog/classic_model.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/catalog/conceptual-imf-data-model.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/catalog/hello_world_pump.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/exporters/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/exporters/_base.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/exporters/_data_model2dms.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/exporters/_data_model2excel.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/exporters/_data_model2instance_template.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/exporters/_data_model2ontology.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/exporters/_data_model2yaml.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/importers/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/importers/_base.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/importers/_base_file_reader.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/importers/_dict2data_model.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/importers/_dms2data_model.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/importers/_graph2data_model.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/importers/_rdf/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/importers/_rdf/_base.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/importers/_rdf/_inference2rdata_model.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/importers/_rdf/_owl2data_model.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/importers/_rdf/_shared.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/importers/_spreadsheet2data_model.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/_base_unverified.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/_base_verified.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/_import_contexts.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/_types.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/conceptual/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/conceptual/_validation.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/conceptual/_verified.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/data_types.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/entities/_constants.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/entities/_multi_value.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/entities/_types.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/entities/_wrapped.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/mapping/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/mapping/_classic2core.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/mapping/_classic2core.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/physical/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/physical/_exporter.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/physical/_validation.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/models/physical/_verified.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/transformers/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/transformers/_base.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/transformers/_converters.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/transformers/_mapping.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/transformers/_union_conceptual.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_data_model/transformers/_verification.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/_shared.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/_tracking/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/_tracking/base.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/_tracking/log.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/examples/Knowledge-Graph-Nordic44.xml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/examples/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/extractors/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/extractors/_base.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/extractors/_classic_cdf/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/extractors/_classic_cdf/_assets.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/extractors/_classic_cdf/_base.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/extractors/_classic_cdf/_classic.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/extractors/_classic_cdf/_data_sets.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/extractors/_classic_cdf/_events.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/extractors/_classic_cdf/_files.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/extractors/_classic_cdf/_labels.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/extractors/_classic_cdf/_relationships.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/extractors/_classic_cdf/_sequences.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/extractors/_classic_cdf/_timeseries.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/extractors/_dict.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/extractors/_dms.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/extractors/_dms_graph.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/extractors/_mock_graph_generator.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/extractors/_raw.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/extractors/_rdf_file.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/loaders/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/loaders/_base.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/loaders/_rdf2dms.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/loaders/_rdf_to_instance_space.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/queries/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/queries/_base.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/queries/_queries.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/queries/_select.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/queries/_update.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/transformers/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/transformers/_base.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/transformers/_classic_cdf.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/transformers/_prune_graph.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/transformers/_rdfpath.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_instances/transformers/_value_type.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_issues/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_issues/_base.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_issues/_contextmanagers.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_issues/_factory.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_issues/errors/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_issues/errors/_external.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_issues/errors/_general.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_issues/errors/_properties.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_issues/errors/_resources.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_issues/formatters.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_issues/warnings/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_issues/warnings/_external.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_issues/warnings/_general.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_issues/warnings/_models.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_issues/warnings/_properties.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_issues/warnings/_resources.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_issues/warnings/user_modeling.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_shared.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_store/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_store/_data_model.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_store/_instance.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_store/_provenance.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_store/exceptions.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_utils/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_utils/auth.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_utils/auxiliary.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_utils/collection_.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_utils/graph_transformations_report.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_utils/io_.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_utils/rdf_.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_utils/reader/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_utils/reader/_base.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_utils/spreadsheet.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_utils/tarjan.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_utils/text.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_utils/time_.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_utils/upload.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/core/_utils/xml_.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/plugins/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/plugins/_issues.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/plugins/_manager.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/plugins/data_model/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/plugins/data_model/importers/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/plugins/data_model/importers/_base.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/py.typed +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_base.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_collector.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_drop.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_experimental.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_explore.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_fix.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_inspect.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_mapping.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_plugin.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_prepare.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_read.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_session/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_session/_data_model/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_session/_data_model/_read.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_session/_data_model/_routes.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_session/_data_model/_show.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_session/_data_model/_write.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_set.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_show.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_state/README.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_state.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_subset.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_template.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_to.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/_wizard.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/engine/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/engine/_import.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/engine/_interface.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/engine/_load.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/cognite/neat/session/exceptions.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/dev.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/DataModelCDF.PNG +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/DataModelInstancesCDF.PNG +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/DataModelInstancesVizCDF.PNG +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/aml-dm-cdf.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/aml-dm.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/aml-instances-cdf.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/aml-instances-full.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_dms.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_dms_typed.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_populated.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_populated_with_typed.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/authorship.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/base-components.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/bid_capacity_data_model.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/change_validate_step.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/connecting_metadata_dm.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/connecting_metadata_populated.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/connecting_metadata_published_dm.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/container_spec.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/core_extension.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/core_extension_excel.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/core_extension_no_connection.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/core_extension_with_properties.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/data-exploration.gif +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/data-model-nordic44.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/data-modeling-flow.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/dexpi-dm-cdf.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/dexpi-dm-viz.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/dexpi-graph-viz.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/dexpi-instance-cdf.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/dexpi-transformed-graph-viz.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/dm-classes.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/dm-object-shapes.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/dm-prefixes.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/dm-source-to-solution-mapping.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/dm2cdf-asset.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/dm2cdf-mapping.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/execution-history.gif +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/export_dms_config.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/export_dms_executed.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/export_dms_workflow.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/features.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/graph-etl-flow.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/high-level-io.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/instances-nordic44.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/instances-sheet.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/key-aspects-of-neat.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/knowledge-graph-viz-filtering.gif +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/knowledge-graph-viz.gif +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/life_cycle_analitic_solution_export_dms.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/life_cycle_converter_model_analytic_solution_model.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/life_cycle_download_reference_model_analytic_soluteion_model.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/life_cycle_download_reference_model_analytic_solution_model_export.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/logo.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/metadata-sheet.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/multi-hop.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/neat-high-level.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/neat-two_flows.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/neat_shift_tab.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/neat_tab.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/prefixes-sheet.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/pump_hello_world_published.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/rdf-in-nutshell.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/rdf2cdf-graph-change.jpg +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/rdf2cdf-graph-resurrect.jpg +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/rdf2cdf-graph.jpg +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/rdf2cdf-init-run-step1.jpg +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/rdf2cdf-init-run-step2.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/rdf2cdf-init-run.jpg +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/rdf2cdf-post-init.jpg +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/run_workflow.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/sheet2cdf-asset-hierarchy.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/sheet2cdf-running-workflow.gif +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/sheet2cdf-transformation-rules-ui.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/sheet2cdf-upload-rules.gif +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/sheet2cdf-workflow-steps.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/sheet2cdf-workflow.gif +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/sheet2cdf-workflow.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/step-configurables.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/step-metrics.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/tutorial-notebooks-part-2_graph-capturing-sheet.gif +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/validate_workflow.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/wf-ephemeral-mode.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/wf-overview.gif +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/wf-persistent-blocking-mode.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/wf-persistent-non-blocking.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/wf-start-mode-ui.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/wind_farm_classic_knowledge_graph.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/wind_farm_data_product_instances.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/work-in-progress.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/workflow-context.jpg +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/working_with_metadata_provenance.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/figs/working_with_metadata_published_dm.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/rules/cdf-dms-architect-alice.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/rules/dms-addition-svein-harald.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/rules/dms-analytics-olav.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/rules/dms-architect-rules-raw-filter-example.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/rules/dms-architect-rules-template.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/rules/dms-rebuild-olav.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/rules/domain-expert-rules-template.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/rules/expert-grid-emma.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/rules/expert-wind-energy-jon.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/rules/information-addition-svein-harald.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/rules/information-analytics-olav-ref.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/rules/information-analytics-olav.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/rules/information-architect-david.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/rules/information-architect-rules-template.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/videos/tutorial-1-defining-data-model.mp4 +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/videos/tutorial-1-download-rules-template.mp4 +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/videos/tutorial-1-upload-gql-schema-to-cdf.mp4 +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/videos/tutorial-2-graph-capturing-sheet.mp4 +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/videos/tutorial-3-asset-hierarchy.mp4 +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/videos/tutorial-3-decommissioning.mp4 +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/videos/tutorial-3-relationships.mp4 +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/videos/tutorial-3-resurrection.mp4 +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/artifacts/videos/tutorial-4-asset-hierarchy.mp4 +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/data-modeling-principles.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/excel_data_modeling/conceptual/overview.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/excel_data_modeling/conceptual/reference.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/excel_data_modeling/data_model.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/excel_data_modeling/physical/enum.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/excel_data_modeling/physical/overview.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/excel_data_modeling/physical/properties.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/excel_data_modeling/physical/reference.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/excel_data_modeling/physical/views.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/excel_data_modeling/units.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/gettingstarted/installation.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/gettingstarted/why-neat.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/index.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/reference/NeatSession/base.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/reference/NeatSession/drop.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/reference/NeatSession/fix.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/reference/NeatSession/inspect.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/reference/NeatSession/mapping.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/reference/NeatSession/prepare.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/reference/NeatSession/read.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/reference/NeatSession/set.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/reference/NeatSession/show.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/reference/NeatSession/subset.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/reference/NeatSession/template.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/reference/NeatSession/to.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/reference/issues/base.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/reference/issues/errors.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/reference/issues/user_model_warnings.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/reference/issues/warnings.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/reference/overview.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/tutorials/data-modeling/cold_start.ipynb +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/tutorials/data-modeling/figs/data-modeling-flow.png +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/tutorials/data-modeling/files/wind_farm_prospecting_conceptual_data_model.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/tutorials/data-modeling/files/wind_farm_prospecting_conceptual_data_model_expanded.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/tutorials/data-modeling/files/wind_farm_prospecting_physical_data_model.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/tutorials/data-modeling/from-conceptual-to-physical-via-CDM.ipynb +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_conceptual_wind_energy_WindFarmProspecting_v1.html +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_conceptual_wind_energy_WindFarmProspecting_v1_implements.html +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_physical_neat_playground_NeatHelloWorld_v1.html +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/tutorials/data-modeling/my_first_model.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/tutorials/data-modeling/physical-data-model.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/docs/tutorials/introduction/introduction.ipynb +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/mkdocs.yml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/clean_space.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/core_classic_mapping.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/create_classic_core_mapping_yaml.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/dependency_profiler.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/docs_generate_reference.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/docs_generate_unit.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/generate_steps_md.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/.gitignore +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/README.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/config.dev.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/neat_integration_runner/README.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/neat_integration_runner/auth/neat_cicd_testing.group.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/lift_pumps/classic/lift_pump_stations_root.Asset.csv +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/lift_pumps/data_sets/hierarchies.DataSet.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/lift_pumps/raw/collections_pump.Table.csv +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/lift_pumps/raw/collections_pump.Table.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/classic/Measurement.Asset.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/classic/Measurement.Label.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/classic/MetMast.Asset.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/classic/PowerGeneratingUnit.Label.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/classic/Utsira.Asset.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-01.Asset.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-01_to_MetMast.Relationship.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-02.Asset.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-02_to_MetMast.Relationship.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/classic/WindTurbine.Label.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/classic/metMast.Label.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/classic/planned_WT-01_2022-01-01.Event.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/classic/power_curve_manufacturer1.Sequence.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/data_sets/maintenance.DataSet.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/data_sets/source_ds.DataSet.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/data_sets/usecase_01.DataSet.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/files/WT-01_datasheet.FileMetadata.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/files/WT-01_datasheet.txt +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-01_forecast.TimeSeries.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-01_production.TimeSeries.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-02_forecast.TimeSeries.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-02_production.TimeSeries.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/manual_test_dms_importer.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/migration.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/oxi_remote/README.md +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/oxi_remote/docker-compose.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/test_lookup_table.csv +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/scripts/windfarm_to_toolkit.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/config.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/conftest.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_graph/aml-raw-graph.ttl +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_graph/aml_example.aml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_graph/car.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_graph/dexpi-raw-graph.ttl +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_graph/dexpi_example.xml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_graph/iodd_Piab-piCOMPACT10X-20230509-IODD1.1.xml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_graph/low-quality-graph.ttl +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_instances/asset_centric_cdf/assets.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_instances/asset_centric_cdf/events.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_instances/asset_centric_cdf/files.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_instances/asset_centric_cdf/labels.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_instances/asset_centric_cdf/relationships.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_instances/asset_centric_cdf/sequence_rows.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_instances/asset_centric_cdf/sequences.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_instances/asset_centric_cdf/timeseries.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_instances/classic_windfarm.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/conceptual/broken_concepts.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/conceptual/dangling-properties.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/conceptual/info-arch-car-rules.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/conceptual/info_with_cdm_ref.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/conceptual/information-unknown-value-type.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/conceptual/only_concepts.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/conceptual/ontology.ttl +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/conversion/single_concept.conceptual.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/conversion/single_concept.physical.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/non_neat/cognite_core_v1.zip +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/non_neat/referencing_core/MyDescribable.container.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/non_neat/referencing_core/MyDescribable.view.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/non_neat/referencing_core/enterprise.datamodel.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/non_neat/windturbine.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/partial-model/complete.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/partial-model/part1.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/partial-model/part2.ttl +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/partial-model/part3.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/car_dms_rules.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/car_dms_rules_deprecated.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/dm_raw_filter.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/dm_view_space_different.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/dms-unknown-value-type.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/isa_plus_cdm.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/missing-in-model-value.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/mixed-up-version.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/physical_singleton_issue.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/pump_example_duplicated_resources.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/pump_example_with_missing_cells.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/pump_example_with_missing_cells_raise_issues.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/1.Production.container.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/10.SimNode.container.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/12.SimSubNode.container.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/13.SimEdge.container.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/14.Property.container.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/15.Coordinate.container.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/16.Coordinates.container.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/17.ModelExecutionEnvironment.view.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/18.Coordinate.view.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/19.Coordinates.view.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/2.SimulationModel.container.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/20.SimEdge.view.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/21.ProductionTimeseries.view.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/22.SimNode.view.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/23.Production.view.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/24.SimSubNode.view.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/25.SimulationResultFile.view.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/26.InputProperty.view.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/28.OutputProperty.view.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/29.Property.view.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/3.strongly-coupled-model.datamodel.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/30.SimulationModel.view.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/31.SimNodeAndEdge.view.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/5.my.space.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/6.ModelExecutionEnvironment.container.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/7.ProductionTimeseries.container.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/8.SimNodeAndEdge.container.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical/strongly_connected_model/data_models/9.SimulationResultFile.container.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical_invalid/inconsistent_container_dms_rules.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical_invalid/invalid_property_dms_rules.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical_invalid/missing_view_container_dms_rules.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical_invalid/too_many_containers_per_view.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical_invalid/views_without_properties.xlsx +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical_yamls/invalid_indices.expected_issues.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical_yamls/invalid_indices.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical_yamls/invalid_yaml.expected_issues.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical_yamls/invalid_yaml.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical_yamls/multiple_indices_on_property.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical_yamls/reverse_direct_relation_missing_target.expected_issues.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/data/_schema/physical_yamls/reverse_direct_relation_missing_target.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_end_to_end/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_end_to_end/test_rules_flow/test_cdm_extension_verification.yaml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_end_to_end/test_rules_flow/test_excel_importer_to_yaml.yml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_end_to_end/test_rules_flow/test_excel_importer_to_yaml_new_endpoint.yml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_end_to_end/test_rules_flow/test_ontology_importer_to_yaml.yml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_end_to_end/test_rules_flow/test_to_extension_transformer.yml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_end_to_end/test_rules_flow.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/conftest.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_api/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_api/test_conversion.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_api/test_validate_rules.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_client_available.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_graph/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_graph/test_loaders/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_graph/test_loaders/test_dms_loader.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_neat_client/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_neat_client/test_cdf_loaders.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_neat_client/test_statistics.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_rules/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_rules/test_exporters/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_rules/test_exporters/test_dms_exporters.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_rules/test_importers/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_session/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_session/test_create_enterprise.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_session/test_data_model_prepare_fix/test_prefix_dms_rules_entities.yml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_session/test_data_model_prepare_fix/test_prefix_info_rules_entities.yml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_session/test_data_model_prepare_fix/test_standardize_space_and_version.yml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_session/test_data_model_prepare_fix.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_session/test_data_model_to/test_raw_filter.yml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_session/test_data_model_to.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_session/test_graph_flow/test_aml_to_dms.yml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_session/test_graph_flow/test_create_extension_template.yml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_session/test_graph_flow/test_dexpi_to_dms.yml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_session/test_graph_flow/test_snapshot_workflow_ids_to_python.yml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_session/test_graph_flow/test_snapshot_workflow_to_python.yml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_session/test_graph_flow/test_uplift_workflow_to_python.yml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_session/test_graph_flow.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_session/test_read/test_read_cdm.yml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_session/test_read/test_read_model_referencing_core.yml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_session/test_read.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_utils/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_integration/test_utils/test_reader.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_extractors/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_extractors/test_asset_extractor.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_extractors/test_dms_extractor.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_extractors/test_dms_graph_extractor.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_extractors/test_events_extractor.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_extractors/test_files_extractor.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_extractors/test_labels_extractor.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_extractors/test_raw_extractor.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_extractors/test_relationship_extractor.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_extractors/test_sequences_extractor.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_extractors/test_timeseries_extractor.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_graph_read.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_loaders/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_loaders/test_dms_loader.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_loaders/test_rdf2dms.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_loaders/test_rdf_to_instance_space.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_provenance.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_transformers/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_transformers/test_asset_depth_transformer.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_transformers/test_asset_event_connector_transformer.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_transformers/test_asset_file_connector_transformer.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_transformers/test_asset_relationship_connector_transformer.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_transformers/test_asset_sequence_connector_transformer.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_transformers/test_asset_ts_connector_transformer.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_transformers/test_attach_property_from_target2source.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_transformers/test_connection_to_literal.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_transformers/test_make_connection_on_exact_match.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_transformers/test_prune_graph.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_graph/test_transformers/test_split_multi_value_property_transformer.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_issues/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_issues/test_formatters.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_issues/test_issue_behavior.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_issues/test_issues_metatests.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_neat_client/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_neat_client/test_instances.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_neat_client/test_loaders.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_neat_client/test_schema.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_neat_package_metadata.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_plugins.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_analysis.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_exporters/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_exporters/test_exporters_meta.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_exporters/test_rules2dms.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_exporters/test_rules2excel.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_exporters/test_rules2ontology.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_exporters/test_rules2yaml.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_importers/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_importers/constants.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_importers/test_dms_importer.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_importers/test_graph_data_model_importer.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_importers/test_inference_importer.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_importers/test_owl_importer.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_importers/test_subinference_importer.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_models/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_models/test_asset_rules.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_models/test_base_rules.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_models/test_conceptual_model.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_models/test_data_types.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_models/test_dms_schema.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_models/test_input_rules.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_models/test_wrapped_entities.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_models/utils.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_transformers/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_transformers/test_converters.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_transformers/test_mapping.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_transformers/test_transformer_meta.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_rules/test_transformers/test_union_conceptual.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_session/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_session/test_flows.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_session/test_meta.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_session/test_plugin.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_session/test_read.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_session/test_to_yaml.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_store/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_store/test_select_queries.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_store/tests_rules_store/test_import_export.yml +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_store/tests_rules_store.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_utils/__init__.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_utils/test_auxiliary.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_utils/test_cdf_classes.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_utils/test_rdf.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_utils/test_reader.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_utils/test_tarjan.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_utils/test_text.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/tests_unit/test_utils/test_utils.py +0 -0
- {cognite_neat-0.123.26 → cognite_neat-0.123.28}/tests/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cognite-neat
|
|
3
|
-
Version: 0.123.
|
|
3
|
+
Version: 0.123.28
|
|
4
4
|
Summary: Knowledge graph transformation
|
|
5
5
|
Project-URL: Documentation, https://cognite-neat.readthedocs-hosted.com/
|
|
6
6
|
Project-URL: Homepage, https://cognite-neat.readthedocs-hosted.com/
|
|
@@ -18,7 +18,7 @@ Requires-Dist: jsonpath-python<2.0.0,>=1.0.6
|
|
|
18
18
|
Requires-Dist: mixpanel<5.0.0,>=4.10.1
|
|
19
19
|
Requires-Dist: networkx<4.0.0,>=3.4.2
|
|
20
20
|
Requires-Dist: openpyxl<4.0.0,>=3.0.10
|
|
21
|
-
Requires-Dist: packaging
|
|
21
|
+
Requires-Dist: packaging>=22.0
|
|
22
22
|
Requires-Dist: pandas<3.0.0,>=1.5.3
|
|
23
23
|
Requires-Dist: pydantic<3.0.0,>=2.0.0
|
|
24
24
|
Requires-Dist: pyvis<1.0.0,>=0.3.2
|
|
@@ -43,6 +43,10 @@ class EntityTypes(StrEnum):
|
|
|
43
43
|
prefix = "prefix"
|
|
44
44
|
space = "space"
|
|
45
45
|
container_index = "container_index"
|
|
46
|
+
concept_restriction = "conceptRestriction"
|
|
47
|
+
value_constraint = "valueConstraint"
|
|
48
|
+
cardinality_constraint = "cardinalityConstraint"
|
|
49
|
+
named_individual = "named_individual"
|
|
46
50
|
|
|
47
51
|
|
|
48
52
|
def get_reserved_words(
|
|
@@ -100,8 +100,8 @@ class UnverifiedConceptualProperty(UnverifiedComponent[ConceptualProperty]):
|
|
|
100
100
|
|
|
101
101
|
def dump(self, default_prefix: str, **kwargs) -> dict[str, Any]: # type: ignore
|
|
102
102
|
output = super().dump()
|
|
103
|
-
output["Concept"] = ConceptEntity.load(self.concept, prefix=default_prefix)
|
|
104
|
-
output["Value Type"] = load_value_type(self.value_type, default_prefix)
|
|
103
|
+
output["Concept"] = ConceptEntity.load(self.concept, prefix=default_prefix, return_on_failure=True)
|
|
104
|
+
output["Value Type"] = load_value_type(self.value_type, default_prefix, return_on_failure=True)
|
|
105
105
|
return output
|
|
106
106
|
|
|
107
107
|
def copy(self, update: dict[str, Any], default_prefix: str) -> "UnverifiedConceptualProperty":
|
|
@@ -135,10 +135,16 @@ class UnverifiedConcept(UnverifiedComponent[Concept]):
|
|
|
135
135
|
parent: list[ConceptEntity] | None = None
|
|
136
136
|
if isinstance(self.implements, str):
|
|
137
137
|
self.implements = self.implements.strip()
|
|
138
|
-
parent = [
|
|
138
|
+
parent = [
|
|
139
|
+
ConceptEntity.load(parent_str, prefix=default_prefix, return_on_failure=True)
|
|
140
|
+
for parent_str in self.implements.split(",")
|
|
141
|
+
]
|
|
139
142
|
elif isinstance(self.implements, list):
|
|
140
|
-
parent = [
|
|
141
|
-
|
|
143
|
+
parent = [
|
|
144
|
+
ConceptEntity.load(parent_str, prefix=default_prefix, return_on_failure=True)
|
|
145
|
+
for parent_str in self.implements
|
|
146
|
+
]
|
|
147
|
+
output["Concept"] = ConceptEntity.load(self.concept, prefix=default_prefix, return_on_failure=True)
|
|
142
148
|
output["Implements"] = parent
|
|
143
149
|
return output
|
|
144
150
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from ._constants import Undefined, Unknown
|
|
2
2
|
from ._loaders import load_connection, load_dms_value_type, load_value_type
|
|
3
3
|
from ._multi_value import MultiValueTypeInfo
|
|
4
|
+
from ._restrictions import ConceptPropertyCardinalityConstraint, ConceptPropertyValueConstraint, parse_restriction
|
|
4
5
|
from ._single_value import (
|
|
5
6
|
AssetEntity,
|
|
6
7
|
AssetFields,
|
|
@@ -31,6 +32,8 @@ __all__ = [
|
|
|
31
32
|
"CdfResourceEntityList",
|
|
32
33
|
"ClassEntityList",
|
|
33
34
|
"ConceptEntity",
|
|
35
|
+
"ConceptPropertyCardinalityConstraint",
|
|
36
|
+
"ConceptPropertyValueConstraint",
|
|
34
37
|
"ConceptualEntity",
|
|
35
38
|
"ContainerEntity",
|
|
36
39
|
"ContainerEntityList",
|
|
@@ -61,4 +64,5 @@ __all__ = [
|
|
|
61
64
|
"load_connection",
|
|
62
65
|
"load_dms_value_type",
|
|
63
66
|
"load_value_type",
|
|
67
|
+
"parse_restriction",
|
|
64
68
|
]
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
from typing import Literal, overload
|
|
2
|
+
|
|
3
|
+
from cognite.neat.core._data_model.models.data_types import DataType
|
|
4
|
+
from cognite.neat.core._issues.errors import NeatTypeError
|
|
5
|
+
|
|
6
|
+
from ._multi_value import MultiValueTypeInfo
|
|
7
|
+
from ._single_value import (
|
|
8
|
+
ConceptEntity,
|
|
9
|
+
EdgeEntity,
|
|
10
|
+
PhysicalUnknownEntity,
|
|
11
|
+
ReverseConnectionEntity,
|
|
12
|
+
Unknown,
|
|
13
|
+
UnknownEntity,
|
|
14
|
+
ViewEntity,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@overload
|
|
19
|
+
def load_value_type(
|
|
20
|
+
raw: str | MultiValueTypeInfo | DataType | ConceptEntity | UnknownEntity,
|
|
21
|
+
default_prefix: str,
|
|
22
|
+
return_on_failure: Literal[False] = False,
|
|
23
|
+
) -> MultiValueTypeInfo | DataType | ConceptEntity | UnknownEntity: ...
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
@overload
|
|
27
|
+
def load_value_type(
|
|
28
|
+
raw: str | MultiValueTypeInfo | DataType | ConceptEntity | UnknownEntity,
|
|
29
|
+
default_prefix: str,
|
|
30
|
+
return_on_failure: Literal[True],
|
|
31
|
+
) -> MultiValueTypeInfo | DataType | ConceptEntity | UnknownEntity | None | str: ...
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def load_value_type(
|
|
35
|
+
raw: str | MultiValueTypeInfo | DataType | ConceptEntity | UnknownEntity,
|
|
36
|
+
default_prefix: str,
|
|
37
|
+
return_on_failure: Literal[True, False] = False,
|
|
38
|
+
) -> MultiValueTypeInfo | DataType | ConceptEntity | UnknownEntity | None | str:
|
|
39
|
+
"""
|
|
40
|
+
Loads a value type from a raw string or entity.
|
|
41
|
+
|
|
42
|
+
Args:
|
|
43
|
+
raw: The raw value to load.
|
|
44
|
+
default_prefix: The default prefix to use if not specified in the raw value.
|
|
45
|
+
return_on_failure: If True, returns the raw value on parsing failure instead of raising an error.
|
|
46
|
+
|
|
47
|
+
Returns:
|
|
48
|
+
The loaded value type entity, or the raw value if loading fails and `return_on_failure` is True.
|
|
49
|
+
"""
|
|
50
|
+
if isinstance(raw, MultiValueTypeInfo | DataType | ConceptEntity | UnknownEntity):
|
|
51
|
+
return raw
|
|
52
|
+
elif isinstance(raw, str):
|
|
53
|
+
# property holding xsd data type
|
|
54
|
+
# check if it is multi value type
|
|
55
|
+
if "," in raw:
|
|
56
|
+
value_type = MultiValueTypeInfo.load(raw)
|
|
57
|
+
value_type.set_default_prefix(default_prefix)
|
|
58
|
+
return value_type
|
|
59
|
+
elif DataType.is_data_type(raw):
|
|
60
|
+
return DataType.load(raw)
|
|
61
|
+
|
|
62
|
+
# unknown value type
|
|
63
|
+
elif raw == str(Unknown):
|
|
64
|
+
return UnknownEntity()
|
|
65
|
+
|
|
66
|
+
# property holding link to class
|
|
67
|
+
else:
|
|
68
|
+
return ConceptEntity.load(raw, prefix=default_prefix, return_on_failure=return_on_failure)
|
|
69
|
+
else:
|
|
70
|
+
raise NeatTypeError(f"Invalid value type: {type(raw)}")
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
@overload
|
|
74
|
+
def load_dms_value_type(
|
|
75
|
+
raw: str | DataType | ViewEntity | PhysicalUnknownEntity,
|
|
76
|
+
default_space: str,
|
|
77
|
+
default_version: str,
|
|
78
|
+
return_on_failure: Literal[False],
|
|
79
|
+
) -> DataType | ViewEntity | PhysicalUnknownEntity: ...
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
@overload
|
|
83
|
+
def load_dms_value_type(
|
|
84
|
+
raw: str | DataType | ViewEntity | PhysicalUnknownEntity,
|
|
85
|
+
default_space: str,
|
|
86
|
+
default_version: str,
|
|
87
|
+
return_on_failure: Literal[True],
|
|
88
|
+
) -> DataType | ViewEntity | PhysicalUnknownEntity | str: ...
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def load_dms_value_type(
|
|
92
|
+
raw: str | DataType | ViewEntity | PhysicalUnknownEntity,
|
|
93
|
+
default_space: str,
|
|
94
|
+
default_version: str,
|
|
95
|
+
return_on_failure: Literal[True, False] = False,
|
|
96
|
+
) -> DataType | ViewEntity | PhysicalUnknownEntity | str:
|
|
97
|
+
"""
|
|
98
|
+
Loads a value type from a raw string or entity in the context of a data modeling service
|
|
99
|
+
|
|
100
|
+
Args:
|
|
101
|
+
raw: The raw value to load.
|
|
102
|
+
default_space: The default space to use if not specified in the raw value.
|
|
103
|
+
default_version: The default version to use if not specified in the raw value.
|
|
104
|
+
return_on_failure: If True, returns the raw value on parsing failure instead of raising an error.
|
|
105
|
+
|
|
106
|
+
Returns:
|
|
107
|
+
The loaded value type entity, or the raw value if loading fails and `return_on_failure` is True.
|
|
108
|
+
"""
|
|
109
|
+
if isinstance(raw, DataType | ViewEntity | PhysicalUnknownEntity):
|
|
110
|
+
return raw
|
|
111
|
+
elif isinstance(raw, str):
|
|
112
|
+
if DataType.is_data_type(raw):
|
|
113
|
+
return DataType.load(raw)
|
|
114
|
+
elif raw == str(Unknown):
|
|
115
|
+
return PhysicalUnknownEntity()
|
|
116
|
+
else:
|
|
117
|
+
return ViewEntity.load(
|
|
118
|
+
raw, space=default_space, version=default_version, return_on_failure=return_on_failure
|
|
119
|
+
)
|
|
120
|
+
raise NeatTypeError(f"Invalid value type: {type(raw)}")
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
@overload
|
|
124
|
+
def load_connection(
|
|
125
|
+
raw: Literal["direct"] | ReverseConnectionEntity | EdgeEntity | str | None,
|
|
126
|
+
default_space: str,
|
|
127
|
+
default_version: str,
|
|
128
|
+
return_on_failure: Literal[False] = False,
|
|
129
|
+
) -> Literal["direct"] | ReverseConnectionEntity | EdgeEntity | None: ...
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
@overload
|
|
133
|
+
def load_connection(
|
|
134
|
+
raw: Literal["direct"] | ReverseConnectionEntity | EdgeEntity | str | None,
|
|
135
|
+
default_space: str,
|
|
136
|
+
default_version: str,
|
|
137
|
+
return_on_failure: Literal[True],
|
|
138
|
+
) -> Literal["direct"] | ReverseConnectionEntity | EdgeEntity | None | str: ...
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def load_connection(
|
|
142
|
+
raw: Literal["direct"] | ReverseConnectionEntity | EdgeEntity | str | None,
|
|
143
|
+
default_space: str,
|
|
144
|
+
default_version: str,
|
|
145
|
+
return_on_failure: Literal[True, False] = False,
|
|
146
|
+
) -> Literal["direct"] | ReverseConnectionEntity | EdgeEntity | None | str:
|
|
147
|
+
if isinstance(raw, str) and raw.lower() == "direct":
|
|
148
|
+
return "direct" # type: ignore[return-value]
|
|
149
|
+
elif isinstance(raw, EdgeEntity | ReverseConnectionEntity) or raw is None:
|
|
150
|
+
return raw # type: ignore[return-value]
|
|
151
|
+
elif isinstance(raw, str) and raw.startswith("edge"):
|
|
152
|
+
return EdgeEntity.load(raw, space=default_space, version=default_version, return_on_failure=return_on_failure) # type: ignore[return-value]
|
|
153
|
+
elif isinstance(raw, str) and raw.startswith("reverse"):
|
|
154
|
+
return ReverseConnectionEntity.load(raw, return_on_failure=return_on_failure) # type: ignore[return-value]
|
|
155
|
+
raise NeatTypeError(f"Invalid connection: {type(raw)}")
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import re
|
|
2
|
+
import sys
|
|
3
|
+
from abc import ABC
|
|
4
|
+
from typing import Any, ClassVar, Final, Literal, TypeVar, cast, get_args
|
|
5
|
+
|
|
6
|
+
from pydantic import BaseModel, ConfigDict, Field, field_validator, model_validator
|
|
7
|
+
from rdflib import Literal as RDFLiteral
|
|
8
|
+
from rdflib import URIRef
|
|
9
|
+
|
|
10
|
+
from cognite.neat.core._data_model._constants import EntityTypes
|
|
11
|
+
from cognite.neat.core._data_model.models.data_types import _XSD_TYPES, DataType
|
|
12
|
+
from cognite.neat.core._data_model.models.entities._constants import _PARSE
|
|
13
|
+
from cognite.neat.core._data_model.models.entities._single_value import ConceptEntity, ConceptualEntity
|
|
14
|
+
from cognite.neat.core._issues.errors._general import NeatValueError
|
|
15
|
+
from cognite.neat.core._utils.rdf_ import remove_namespace_from_uri
|
|
16
|
+
|
|
17
|
+
if sys.version_info <= (3, 11):
|
|
18
|
+
from typing_extensions import Self
|
|
19
|
+
else:
|
|
20
|
+
from typing import Self
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
ValueConstraints = Literal["allValuesFrom", "someValuesFrom", "hasValue"]
|
|
24
|
+
CardinalityConstraints = Literal["minCardinality", "maxCardinality", "cardinality", "qualifiedCardinality"]
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
# Constants for regex patterns - more maintainable
|
|
28
|
+
PROPERTY_PATTERN: Final[str] = r"[a-zA-Z0-9._~?@!$&'*+,;=%-]+"
|
|
29
|
+
VALUE_PATTERN: Final[str] = r".+"
|
|
30
|
+
CARDINALITY_VALUE_PATTERN: Final[str] = r"\d+"
|
|
31
|
+
ON_PATTERN: Final[str] = r"[^(]*"
|
|
32
|
+
|
|
33
|
+
VALUE_CONSTRAINT_REGEX = re.compile(
|
|
34
|
+
rf"^{EntityTypes.value_constraint}:(?P<property>{PROPERTY_PATTERN})\((?P<constraint>{'|'.join(get_args(ValueConstraints))}),(?P<value>{VALUE_PATTERN})\)$"
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
CARDINALITY_CONSTRAINT_REGEX = re.compile(
|
|
38
|
+
rf"^{EntityTypes.cardinality_constraint}:(?P<property>{PROPERTY_PATTERN})\((?P<constraint>{'|'.join(get_args(CardinalityConstraints))}),(?P<value>{CARDINALITY_VALUE_PATTERN})(?:,(?P<on>{ON_PATTERN}))?\)$"
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class NamedIndividualEntity(ConceptualEntity):
|
|
43
|
+
type_: ClassVar[EntityTypes] = EntityTypes.named_individual
|
|
44
|
+
|
|
45
|
+
@model_validator(mode="after")
|
|
46
|
+
def reset_prefix(self) -> Self:
|
|
47
|
+
self.prefix = "ni"
|
|
48
|
+
return self
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class ConceptPropertyRestriction(ABC, BaseModel):
|
|
52
|
+
model_config: ClassVar[ConfigDict] = ConfigDict(
|
|
53
|
+
str_strip_whitespace=True,
|
|
54
|
+
arbitrary_types_allowed=True,
|
|
55
|
+
strict=False,
|
|
56
|
+
extra="ignore",
|
|
57
|
+
)
|
|
58
|
+
type_: ClassVar[EntityTypes] = EntityTypes.concept_restriction
|
|
59
|
+
property_: str
|
|
60
|
+
|
|
61
|
+
@classmethod
|
|
62
|
+
def load(cls: "type[T_ConceptPropertyRestriction]", data: Any, **defaults: Any) -> "T_ConceptPropertyRestriction":
|
|
63
|
+
if isinstance(data, cls):
|
|
64
|
+
return data
|
|
65
|
+
elif not isinstance(data, str):
|
|
66
|
+
raise ValueError(f"Cannot load {cls.__name__} from {data}")
|
|
67
|
+
|
|
68
|
+
return cls.model_validate({_PARSE: data, "defaults": defaults})
|
|
69
|
+
|
|
70
|
+
@model_validator(mode="before")
|
|
71
|
+
def _load(cls, data: Any) -> dict:
|
|
72
|
+
defaults = {}
|
|
73
|
+
if isinstance(data, dict) and _PARSE in data:
|
|
74
|
+
defaults = data.get("defaults", {})
|
|
75
|
+
data = data[_PARSE]
|
|
76
|
+
if isinstance(data, dict):
|
|
77
|
+
data.update(defaults)
|
|
78
|
+
return data
|
|
79
|
+
|
|
80
|
+
if not isinstance(data, str):
|
|
81
|
+
raise ValueError(f"Cannot load {cls.__name__} from {data}")
|
|
82
|
+
|
|
83
|
+
return cls._parse(data, defaults)
|
|
84
|
+
|
|
85
|
+
@classmethod
|
|
86
|
+
def _parse(cls, data: str, defaults: dict) -> dict:
|
|
87
|
+
raise NotImplementedError(f"{cls.__name__} must implement _parse method")
|
|
88
|
+
|
|
89
|
+
def dump(self) -> str:
|
|
90
|
+
return self.__str__()
|
|
91
|
+
|
|
92
|
+
def as_tuple(self) -> tuple[str, ...]:
|
|
93
|
+
# We haver overwritten the serialization to str, so we need to do it manually
|
|
94
|
+
extra: tuple[str, ...] = tuple(
|
|
95
|
+
[
|
|
96
|
+
str(v or "")
|
|
97
|
+
for field_name in self.model_fields.keys()
|
|
98
|
+
if (v := getattr(self, field_name)) and field_name not in {"property_"}
|
|
99
|
+
]
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
return self.property_, *extra
|
|
103
|
+
|
|
104
|
+
def __lt__(self, other: object) -> bool:
|
|
105
|
+
if not isinstance(other, ConceptPropertyRestriction):
|
|
106
|
+
return NotImplemented
|
|
107
|
+
return self.as_tuple() < other.as_tuple()
|
|
108
|
+
|
|
109
|
+
def __eq__(self, other: object) -> bool:
|
|
110
|
+
if not isinstance(other, ConceptPropertyRestriction):
|
|
111
|
+
return NotImplemented
|
|
112
|
+
return self.as_tuple() == other.as_tuple()
|
|
113
|
+
|
|
114
|
+
def __hash__(self) -> int:
|
|
115
|
+
return hash(str(self))
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
T_ConceptPropertyRestriction = TypeVar("T_ConceptPropertyRestriction", bound="ConceptPropertyRestriction")
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
class ConceptPropertyValueConstraint(ConceptPropertyRestriction):
|
|
122
|
+
type_: ClassVar[EntityTypes] = EntityTypes.value_constraint
|
|
123
|
+
constraint: ValueConstraints
|
|
124
|
+
value: RDFLiteral | ConceptEntity | NamedIndividualEntity
|
|
125
|
+
|
|
126
|
+
@field_validator("value")
|
|
127
|
+
def validate_value(cls, value: Any) -> Any:
|
|
128
|
+
if isinstance(value, RDFLiteral) and value.datatype is None:
|
|
129
|
+
raise NeatValueError("RDFLiteral must have a datatype set, which must be one of the XSD types.")
|
|
130
|
+
return value
|
|
131
|
+
|
|
132
|
+
def __str__(self) -> str:
|
|
133
|
+
value_str = (
|
|
134
|
+
f"{self.value.value}^^{remove_namespace_from_uri(cast(URIRef, self.value.datatype))}"
|
|
135
|
+
if isinstance(self.value, RDFLiteral)
|
|
136
|
+
else str(self.value)
|
|
137
|
+
)
|
|
138
|
+
return f"{self.type_}:{self.property_}({self.constraint},{value_str})"
|
|
139
|
+
|
|
140
|
+
@classmethod
|
|
141
|
+
def _parse(cls, data: str, defaults: dict) -> dict:
|
|
142
|
+
if not (result := VALUE_CONSTRAINT_REGEX.match(data)):
|
|
143
|
+
raise NeatValueError(f"Invalid value constraint format: {data}")
|
|
144
|
+
|
|
145
|
+
property_ = result.group("property")
|
|
146
|
+
constraint = result.group("constraint")
|
|
147
|
+
raw_value = result.group("value")
|
|
148
|
+
|
|
149
|
+
value: NamedIndividualEntity | RDFLiteral | ConceptEntity
|
|
150
|
+
# scenario 1: NamedIndividual as value restriction
|
|
151
|
+
if raw_value.startswith("ni:"):
|
|
152
|
+
value = NamedIndividualEntity.load(raw_value)
|
|
153
|
+
# scenario 2: Datatype as value restriction
|
|
154
|
+
elif "^^" in raw_value:
|
|
155
|
+
if len(value_components := raw_value.split("^^")) == 2 and value_components[1] in _XSD_TYPES:
|
|
156
|
+
value = RDFLiteral(value_components[0], datatype=DataType.load(value_components[1]).as_xml_uri_ref())
|
|
157
|
+
else:
|
|
158
|
+
raise NeatValueError(f"Invalid value format for datatype: {raw_value}")
|
|
159
|
+
|
|
160
|
+
# scenario 3: ConceptEntity as value restriction
|
|
161
|
+
else:
|
|
162
|
+
value = ConceptEntity.load(raw_value, **defaults)
|
|
163
|
+
|
|
164
|
+
return dict(property_=property_, constraint=constraint, value=value)
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
class ConceptPropertyCardinalityConstraint(ConceptPropertyRestriction):
|
|
168
|
+
type_: ClassVar[EntityTypes] = EntityTypes.cardinality_constraint
|
|
169
|
+
constraint: CardinalityConstraints
|
|
170
|
+
value: int = Field(ge=0)
|
|
171
|
+
on: DataType | ConceptEntity | None = None
|
|
172
|
+
|
|
173
|
+
def __str__(self) -> str:
|
|
174
|
+
on_str = f",{self.on}" if self.on else ""
|
|
175
|
+
return f"{self.type_}:{self.property_}({self.constraint},{self.value}{on_str})"
|
|
176
|
+
|
|
177
|
+
@classmethod
|
|
178
|
+
def _parse(cls, data: str, defaults: dict) -> dict:
|
|
179
|
+
if not (result := CARDINALITY_CONSTRAINT_REGEX.match(data)):
|
|
180
|
+
raise NeatValueError(f"Invalid cardinality constraint format: {data}")
|
|
181
|
+
|
|
182
|
+
property_ = result.group("property")
|
|
183
|
+
constraint = result.group("constraint")
|
|
184
|
+
value = result.group("value")
|
|
185
|
+
on = result.group("on")
|
|
186
|
+
if on:
|
|
187
|
+
if on in _XSD_TYPES:
|
|
188
|
+
on = DataType.load(on)
|
|
189
|
+
else:
|
|
190
|
+
on = cast(ConceptEntity, ConceptEntity.load(on, **defaults))
|
|
191
|
+
|
|
192
|
+
return dict(property_=property_, constraint=constraint, value=value, on=on)
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
def parse_restriction(data: str, **defaults: Any) -> ConceptPropertyRestriction:
|
|
196
|
+
"""Parse a string to create either a value or cardinality restriction.
|
|
197
|
+
|
|
198
|
+
Args:
|
|
199
|
+
data: String representation of the restriction
|
|
200
|
+
**defaults: Default values to use when parsing
|
|
201
|
+
|
|
202
|
+
Returns:
|
|
203
|
+
Either a ConceptPropertyValueConstraint or ConceptPropertyCardinalityConstraint
|
|
204
|
+
|
|
205
|
+
Raises:
|
|
206
|
+
NeatValueError: If the string cannot be parsed as either restriction type
|
|
207
|
+
"""
|
|
208
|
+
# Check for value constraint pattern first (more specific)
|
|
209
|
+
if VALUE_CONSTRAINT_REGEX.match(data):
|
|
210
|
+
try:
|
|
211
|
+
return ConceptPropertyValueConstraint.load(data, **defaults)
|
|
212
|
+
except Exception as e:
|
|
213
|
+
raise NeatValueError(f"Failed to parse value constraint: {data}") from e
|
|
214
|
+
|
|
215
|
+
# Check for cardinality constraint pattern
|
|
216
|
+
if CARDINALITY_CONSTRAINT_REGEX.match(data):
|
|
217
|
+
try:
|
|
218
|
+
return ConceptPropertyCardinalityConstraint.load(data, **defaults)
|
|
219
|
+
except Exception as e:
|
|
220
|
+
raise NeatValueError(f"Failed to parse cardinality constraint: {data}") from e
|
|
221
|
+
|
|
222
|
+
# If neither pattern matches, provide a clear error
|
|
223
|
+
raise NeatValueError(
|
|
224
|
+
f"Invalid restriction format: {data}. "
|
|
225
|
+
f"Expected format: '{EntityTypes.value_constraint}:property(constraint,value)' "
|
|
226
|
+
f"or '{EntityTypes.cardinality_constraint}:property(constraint,value[,on])'"
|
|
227
|
+
)
|
|
228
|
+
|
|
229
|
+
|
|
230
|
+
T_ConceptRestriction = TypeVar("T_ConceptRestriction", bound=ConceptPropertyRestriction)
|
|
@@ -59,7 +59,13 @@ class ConceptualEntity(BaseModel, extra="ignore"):
|
|
|
59
59
|
|
|
60
60
|
@classmethod
|
|
61
61
|
@overload
|
|
62
|
-
def load(
|
|
62
|
+
def load(
|
|
63
|
+
cls: "type[T_Entity]",
|
|
64
|
+
data: Any,
|
|
65
|
+
strict: Literal[True],
|
|
66
|
+
return_on_failure: Literal[False] = False,
|
|
67
|
+
**defaults: Any,
|
|
68
|
+
) -> "T_Entity": ...
|
|
63
69
|
|
|
64
70
|
@classmethod
|
|
65
71
|
@overload
|
|
@@ -67,25 +73,59 @@ class ConceptualEntity(BaseModel, extra="ignore"):
|
|
|
67
73
|
cls: "type[T_Entity]",
|
|
68
74
|
data: Any,
|
|
69
75
|
strict: Literal[False] = False,
|
|
76
|
+
return_on_failure: Literal[False] = False,
|
|
70
77
|
**defaults: Any,
|
|
71
78
|
) -> "T_Entity | UnknownEntity": ...
|
|
72
79
|
|
|
73
80
|
@classmethod
|
|
74
|
-
|
|
81
|
+
@overload
|
|
82
|
+
def load(
|
|
83
|
+
cls: "type[T_Entity]",
|
|
84
|
+
data: Any,
|
|
85
|
+
strict: Literal[False] = False,
|
|
86
|
+
return_on_failure: Literal[True] = True,
|
|
87
|
+
**defaults: Any,
|
|
88
|
+
) -> "T_Entity | Any": ...
|
|
89
|
+
|
|
90
|
+
@classmethod
|
|
91
|
+
@overload
|
|
92
|
+
def load(
|
|
93
|
+
cls: "type[T_Entity]",
|
|
94
|
+
data: Any,
|
|
95
|
+
strict: Literal[True] = True,
|
|
96
|
+
return_on_failure: Literal[True] = True,
|
|
97
|
+
**defaults: Any,
|
|
98
|
+
) -> "T_Entity | Any": ...
|
|
99
|
+
|
|
100
|
+
@classmethod
|
|
101
|
+
def load(
|
|
102
|
+
cls: "type[T_Entity]", data: Any, strict: bool = False, return_on_failure: bool = False, **defaults: Any
|
|
103
|
+
) -> "T_Entity | UnknownEntity | Any":
|
|
104
|
+
"""Loads an entity from a string or dict representation.
|
|
105
|
+
|
|
106
|
+
Args:
|
|
107
|
+
data: The data to load the entity from. Can be a string or a dict.
|
|
108
|
+
strict: If True, will raise an error if the data is "unknown".
|
|
109
|
+
return_on_failure: If True, will return the input data if loading fails.
|
|
110
|
+
This is used when you want to defer error handling to a later stage.
|
|
111
|
+
defaults: Default values to use when loading the entity. These will be used if the corresponding
|
|
112
|
+
"""
|
|
75
113
|
if isinstance(data, cls):
|
|
76
114
|
return data
|
|
77
115
|
elif isinstance(data, str) and data == str(Unknown):
|
|
78
116
|
if strict:
|
|
79
117
|
raise NeatValueError(f"Failed to load entity {data!s}")
|
|
80
118
|
return UnknownEntity(prefix=Undefined, suffix=Unknown)
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
119
|
+
try:
|
|
120
|
+
if defaults and isinstance(defaults, dict):
|
|
121
|
+
# This is a trick to pass in default values
|
|
84
122
|
return cls.model_validate({_PARSE: data, "defaults": defaults})
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
123
|
+
else:
|
|
124
|
+
return cls.model_validate(data)
|
|
125
|
+
except ValueError:
|
|
126
|
+
if return_on_failure:
|
|
127
|
+
return data
|
|
128
|
+
raise
|
|
89
129
|
|
|
90
130
|
@model_validator(mode="before")
|
|
91
131
|
def _load(cls, data: Any) -> "dict | ConceptualEntity":
|
|
@@ -342,7 +382,13 @@ class PhysicalEntity(ConceptualEntity, Generic[T_ID], ABC):
|
|
|
342
382
|
|
|
343
383
|
@classmethod # type: ignore[override]
|
|
344
384
|
@overload
|
|
345
|
-
def load(
|
|
385
|
+
def load(
|
|
386
|
+
cls: "type[T_DMSEntity]",
|
|
387
|
+
data: Any,
|
|
388
|
+
strict: Literal[True],
|
|
389
|
+
return_on_failure: Literal[False] = False,
|
|
390
|
+
**defaults: Any,
|
|
391
|
+
) -> "T_DMSEntity": ...
|
|
346
392
|
|
|
347
393
|
@classmethod
|
|
348
394
|
@overload
|
|
@@ -350,18 +396,56 @@ class PhysicalEntity(ConceptualEntity, Generic[T_ID], ABC):
|
|
|
350
396
|
cls: "type[T_DMSEntity]",
|
|
351
397
|
data: Any,
|
|
352
398
|
strict: Literal[False] = False,
|
|
399
|
+
return_on_failure: Literal[False] = False,
|
|
353
400
|
**defaults: Any,
|
|
354
401
|
) -> "T_DMSEntity | PhysicalUnknownEntity": ...
|
|
355
402
|
|
|
356
403
|
@classmethod
|
|
404
|
+
@overload
|
|
357
405
|
def load(
|
|
358
|
-
cls: "type[T_DMSEntity]",
|
|
359
|
-
|
|
406
|
+
cls: "type[T_DMSEntity]",
|
|
407
|
+
data: Any,
|
|
408
|
+
strict: Literal[False] = False,
|
|
409
|
+
return_on_failure: Literal[True] = True,
|
|
410
|
+
**defaults: Any,
|
|
411
|
+
) -> "T_DMSEntity | Any": ...
|
|
412
|
+
|
|
413
|
+
@classmethod
|
|
414
|
+
@overload
|
|
415
|
+
def load(
|
|
416
|
+
cls: "type[T_DMSEntity]",
|
|
417
|
+
data: Any,
|
|
418
|
+
strict: Literal[True] = True,
|
|
419
|
+
return_on_failure: Literal[True] = True,
|
|
420
|
+
**defaults: Any,
|
|
421
|
+
) -> "T_DMSEntity | Any": ...
|
|
422
|
+
|
|
423
|
+
@classmethod
|
|
424
|
+
def load(
|
|
425
|
+
cls: "type[T_DMSEntity]",
|
|
426
|
+
data: Any,
|
|
427
|
+
strict: Literal[True, False] = False,
|
|
428
|
+
return_on_failure: Literal[True, False] = False,
|
|
429
|
+
**defaults: Any,
|
|
430
|
+
) -> "T_DMSEntity | PhysicalUnknownEntity | Any":
|
|
431
|
+
"""Loads a DMS entity from a string or dict representation.
|
|
432
|
+
|
|
433
|
+
Args:
|
|
434
|
+
data: The data to load the entity from. Can be a string or a dict.
|
|
435
|
+
strict: If True, will raise an error if the data is "unknown".
|
|
436
|
+
return_on_failure: If True, will return the input data if loading fails.
|
|
437
|
+
This is used when you want to defer error handling to a later stage.
|
|
438
|
+
defaults: Default values to use when loading the entity. These will be used if the corresponding
|
|
439
|
+
fields are missing in the input data.
|
|
440
|
+
|
|
441
|
+
"""
|
|
360
442
|
if isinstance(data, str) and data == str(Unknown):
|
|
361
443
|
if strict:
|
|
362
444
|
raise NeatValueError(f"Failed to load entity {data!s}")
|
|
363
445
|
return PhysicalUnknownEntity.from_id(None)
|
|
364
|
-
|
|
446
|
+
if isinstance(data, UnknownEntity):
|
|
447
|
+
return PhysicalUnknownEntity.from_id(None)
|
|
448
|
+
return cast(T_DMSEntity, super().load(data, strict=False, return_on_failure=return_on_failure, **defaults))
|
|
365
449
|
|
|
366
450
|
@property
|
|
367
451
|
def space(self) -> str:
|