cognite-neat 0.121.2__tar.gz → 0.122.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of cognite-neat might be problematic. Click here for more details.
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/PKG-INFO +17 -10
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/README.md +13 -6
- cognite_neat-0.122.1/cognite/neat/_version.py +2 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_constants.py +1 -1
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/catalog/__init__.py +1 -1
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/exporters/__init__.py +1 -1
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/exporters/_data_model2instance_template.py +11 -11
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/importers/__init__.py +2 -2
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/importers/_dict2data_model.py +11 -6
- cognite_neat-0.122.1/cognite/neat/core/_data_model/importers/_rdf/__init__.py +5 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/importers/_rdf/_base.py +8 -8
- cognite_neat-0.121.2/cognite/neat/core/_data_model/importers/_rdf/_imf2rules.py → cognite_neat-0.122.1/cognite/neat/core/_data_model/importers/_rdf/_imf2data_model.py +2 -2
- cognite_neat-0.121.2/cognite/neat/core/_data_model/importers/_rdf/_inference2rules.py → cognite_neat-0.122.1/cognite/neat/core/_data_model/importers/_rdf/_inference2rdata_model.py +26 -26
- cognite_neat-0.121.2/cognite/neat/core/_data_model/importers/_rdf/_owl2rules.py → cognite_neat-0.122.1/cognite/neat/core/_data_model/importers/_rdf/_owl2data_model.py +5 -5
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/importers/_spreadsheet2data_model.py +6 -9
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/__init__.py +5 -3
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/_base_unverified.py +12 -12
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/_base_verified.py +6 -11
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/conceptual/_validation.py +1 -1
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/conceptual/_verified.py +2 -2
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/mapping/_classic2core.py +1 -1
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/physical/_exporter.py +4 -3
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/physical/_validation.py +5 -5
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/transformers/__init__.py +2 -2
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/transformers/_base.py +1 -1
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/transformers/_converters.py +9 -9
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/transformers/_verification.py +1 -1
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/extractors/_base.py +1 -1
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_classic.py +1 -1
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/extractors/_mock_graph_generator.py +14 -13
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/loaders/_base.py +2 -2
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/loaders/_rdf2dms.py +26 -20
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/transformers/_rdfpath.py +1 -1
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_issues/_factory.py +1 -1
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_issues/errors/_resources.py +1 -1
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_issues/warnings/_properties.py +1 -1
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/_base.py +26 -22
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/_drop.py +2 -2
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/_experimental.py +1 -1
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/_inspect.py +8 -8
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/_mapping.py +9 -5
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/_read.py +38 -36
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/_set.py +5 -5
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/_show.py +15 -12
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/_state/README.md +1 -1
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/_state.py +18 -18
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/_subset.py +6 -6
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/_template.py +13 -11
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/_to.py +35 -35
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/exceptions.py +5 -2
- cognite_neat-0.122.1/docs/excel_data_modeling/conceptual/overview.md +10 -0
- {cognite_neat-0.121.2/docs/excel_data_modeling/logical → cognite_neat-0.122.1/docs/excel_data_modeling/conceptual}/reference.md +18 -20
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/excel_data_modeling/physical/enum.md +2 -2
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/excel_data_modeling/physical/overview.md +1 -1
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/excel_data_modeling/physical/properties.md +11 -11
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/excel_data_modeling/physical/reference.md +9 -8
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/excel_data_modeling/physical/views.md +5 -5
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/gettingstarted/installation.md +32 -12
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/gettingstarted/why-neat.md +17 -17
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/index.md +12 -5
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/reference/overview.md +2 -2
- cognite_neat-0.122.1/docs/tutorials/data-modeling/cold_start.ipynb +483 -0
- cognite_neat-0.122.1/docs/tutorials/data-modeling/files/wind_farm_prospecting_conceptual_data_model.xlsx +0 -0
- cognite_neat-0.122.1/docs/tutorials/data-modeling/files/wind_farm_prospecting_conceptual_data_model_expanded.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/tutorials/data-modeling/from-conceptual-to-physical-via-CDM.ipynb +37 -45
- cognite_neat-0.122.1/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_physical_neat_playground_NeatHelloWorld_v1.html +456 -0
- cognite_neat-0.122.1/docs/tutorials/data-modeling/my_first_model.xlsx +0 -0
- cognite_neat-0.122.1/last_changelog_entry.md +5 -0
- cognite_neat-0.122.1/last_git_message.txt +21 -0
- cognite_neat-0.122.1/last_version.txt +1 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/mkdocs.yml +4 -5
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/pyproject.toml +2 -2
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/docs_generate_reference.py +8 -2
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_graph/test_loaders/test_dms_loader.py +2 -2
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_session/test_data_model_prepare_fix.py +3 -3
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_session/test_data_model_to.py +5 -4
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_session/test_graph_flow.py +26 -7
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_session/test_read.py +3 -3
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_loaders/test_dms_loader.py +1 -1
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_importers/test_inference_importer.py +6 -6
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_session/test_to_yaml.py +1 -1
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/uv.lock +531 -546
- cognite_neat-0.121.2/cognite/neat/_version.py +0 -2
- cognite_neat-0.121.2/cognite/neat/core/_data_model/importers/_rdf/__init__.py +0 -5
- cognite_neat-0.121.2/docs/excel_data_modeling/logical/overview.md +0 -8
- cognite_neat-0.121.2/docs/excel_data_modeling/logical/properties.md +0 -281
- cognite_neat-0.121.2/docs/tutorials/data-modeling/files/wind_farm_prospecting_conceptual_data_model.xlsx +0 -0
- cognite_neat-0.121.2/docs/tutorials/data-modeling/files/wind_farm_prospecting_conceptual_data_model_expanded.xlsx +0 -0
- cognite_neat-0.121.2/last_changelog_entry.md +0 -8
- cognite_neat-0.121.2/last_git_message.txt +0 -25
- cognite_neat-0.121.2/last_version.txt +0 -1
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/.coveragerc +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/.github/CODEOWNERS +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/.github/pull_request_template.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/.github/renovate.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/.github/workflows/code-quality.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/.github/workflows/release.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/.gitignore +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/.pre-commit-config.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/.readthedocs.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/CODE_OF_CONDUCT.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/CONTRIBUTING.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/LICENSE +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cdf.toml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/codecov.yml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_client/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_client/_api/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_client/_api/data_modeling_loaders.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_client/_api/neat_instances.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_client/_api/schema.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_client/_api/statistics.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_client/_api_client.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_client/data_classes/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_client/data_classes/data_modeling.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_client/data_classes/neat_sequence.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_client/data_classes/schema.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_client/data_classes/statistics.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_client/testing.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_config.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/_constants.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/_shared.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/analysis/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/analysis/_base.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/catalog/classic_model.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/catalog/conceptual-imf-data-model.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/catalog/hello_world_pump.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/exporters/_base.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/exporters/_data_model2dms.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/exporters/_data_model2excel.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/exporters/_data_model2ontology.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/exporters/_data_model2yaml.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/importers/_base.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/importers/_base_file_reader.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/importers/_dms2data_model.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/importers/_dtdl2data_model/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/importers/_dtdl2data_model/_unit_lookup.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/importers/_dtdl2data_model/dtdl_converter.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/importers/_dtdl2data_model/dtdl_importer.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/importers/_dtdl2data_model/spec.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/importers/_rdf/_shared.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/_types.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/conceptual/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/conceptual/_unverified.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/data_types.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/entities/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/entities/_constants.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/entities/_loaders.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/entities/_multi_value.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/entities/_single_value.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/entities/_types.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/entities/_wrapped.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/mapping/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/mapping/_classic2core.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/physical/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/physical/_unverified.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/physical/_verified.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/transformers/_mapping.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/_shared.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/_tracking/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/_tracking/base.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/_tracking/log.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/examples/Knowledge-Graph-Nordic44.xml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/examples/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/extractors/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/extractors/_classic_cdf/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_assets.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_base.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_data_sets.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_events.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_files.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_labels.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_relationships.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_sequences.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/extractors/_classic_cdf/_timeseries.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/extractors/_dict.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/extractors/_dms.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/extractors/_dms_graph.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/extractors/_raw.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/extractors/_rdf_file.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/loaders/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/queries/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/queries/_base.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/queries/_queries.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/queries/_select.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/queries/_update.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/transformers/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/transformers/_base.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/transformers/_classic_cdf.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/transformers/_prune_graph.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_instances/transformers/_value_type.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_issues/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_issues/_base.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_issues/_contextmanagers.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_issues/errors/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_issues/errors/_external.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_issues/errors/_general.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_issues/errors/_properties.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_issues/errors/_wrapper.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_issues/formatters.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_issues/warnings/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_issues/warnings/_external.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_issues/warnings/_general.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_issues/warnings/_models.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_issues/warnings/_resources.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_issues/warnings/user_modeling.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_shared.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_store/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_store/_data_model.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_store/_instance.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_store/_provenance.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_store/exceptions.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_utils/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_utils/auth.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_utils/auxiliary.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_utils/collection_.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_utils/graph_transformations_report.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_utils/io_.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_utils/rdf_.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_utils/reader/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_utils/reader/_base.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_utils/spreadsheet.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_utils/text.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_utils/time_.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_utils/upload.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_utils/xml_.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/py.typed +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/_collector.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/_explore.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/_fix.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/_prepare.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/_wizard.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/engine/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/engine/_import.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/engine/_interface.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/session/engine/_load.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/dev.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/DataModelCDF.PNG +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/DataModelInstancesCDF.PNG +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/DataModelInstancesVizCDF.PNG +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/aml-dm-cdf.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/aml-dm.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/aml-instances-cdf.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/aml-instances-full.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_dms.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_dms_typed.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_populated.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/asset_hierarchy_lift_pump_stations_populated_with_typed.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/authorship.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/base-components.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/bid_capacity_data_model.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/change_validate_step.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/connecting_metadata_dm.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/connecting_metadata_populated.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/connecting_metadata_published_dm.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/container_spec.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/core_extension.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/core_extension_excel.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/core_extension_no_connection.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/core_extension_with_properties.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/data-exploration.gif +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/data-model-nordic44.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/data-modeling-flow.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/dexpi-dm-cdf.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/dexpi-dm-viz.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/dexpi-graph-viz.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/dexpi-instance-cdf.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/dexpi-transformed-graph-viz.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/dm-classes.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/dm-object-shapes.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/dm-prefixes.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/dm-source-to-solution-mapping.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/dm2cdf-asset.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/dm2cdf-mapping.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/execution-history.gif +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/export_dms_config.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/export_dms_executed.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/export_dms_workflow.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/features.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/graph-etl-flow.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/high-level-io.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/instances-nordic44.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/instances-sheet.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/key-aspects-of-neat.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/knowledge-graph-viz-filtering.gif +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/knowledge-graph-viz.gif +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/life_cycle_analitic_solution_export_dms.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/life_cycle_converter_model_analytic_solution_model.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/life_cycle_download_reference_model_analytic_soluteion_model.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/life_cycle_download_reference_model_analytic_solution_model_export.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/logo.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/metadata-sheet.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/multi-hop.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/neat-high-level.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/neat-two_flows.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/neat_shift_tab.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/neat_tab.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/prefixes-sheet.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/pump_hello_world_published.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/rdf-in-nutshell.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/rdf2cdf-graph-change.jpg +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/rdf2cdf-graph-resurrect.jpg +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/rdf2cdf-graph.jpg +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/rdf2cdf-init-run-step1.jpg +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/rdf2cdf-init-run-step2.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/rdf2cdf-init-run.jpg +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/rdf2cdf-post-init.jpg +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/run_workflow.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/sheet2cdf-asset-hierarchy.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/sheet2cdf-running-workflow.gif +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/sheet2cdf-transformation-rules-ui.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/sheet2cdf-upload-rules.gif +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/sheet2cdf-workflow-steps.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/sheet2cdf-workflow.gif +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/sheet2cdf-workflow.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/step-configurables.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/step-metrics.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/tutorial-notebooks-part-2_graph-capturing-sheet.gif +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/validate_workflow.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/wf-ephemeral-mode.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/wf-overview.gif +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/wf-persistent-blocking-mode.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/wf-persistent-non-blocking.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/wf-start-mode-ui.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/wind_farm_classic_knowledge_graph.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/wind_farm_data_product_instances.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/work-in-progress.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/workflow-context.jpg +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/working_with_metadata_provenance.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/figs/working_with_metadata_published_dm.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/rules/cdf-dms-architect-alice.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/rules/dms-addition-svein-harald.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/rules/dms-analytics-olav.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/rules/dms-architect-rules-raw-filter-example.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/rules/dms-architect-rules-template.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/rules/dms-rebuild-olav.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/rules/domain-expert-rules-template.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/rules/expert-grid-emma.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/rules/expert-wind-energy-jon.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/rules/information-addition-svein-harald.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/rules/information-analytics-olav-ref.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/rules/information-analytics-olav.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/rules/information-architect-david.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/rules/information-architect-rules-template.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/videos/tutorial-1-defining-data-model.mp4 +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/videos/tutorial-1-download-rules-template.mp4 +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/videos/tutorial-1-upload-gql-schema-to-cdf.mp4 +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/videos/tutorial-2-graph-capturing-sheet.mp4 +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/videos/tutorial-3-asset-hierarchy.mp4 +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/videos/tutorial-3-decommissioning.mp4 +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/videos/tutorial-3-relationships.mp4 +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/videos/tutorial-3-resurrection.mp4 +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/artifacts/videos/tutorial-4-asset-hierarchy.mp4 +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/data-modeling-principles.md +0 -0
- /cognite_neat-0.121.2/docs/excel_data_modeling/rules.md → /cognite_neat-0.122.1/docs/excel_data_modeling/data_model.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/excel_data_modeling/units.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/reference/NeatSession/base.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/reference/NeatSession/drop.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/reference/NeatSession/fix.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/reference/NeatSession/inspect.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/reference/NeatSession/mapping.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/reference/NeatSession/prepare.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/reference/NeatSession/read.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/reference/NeatSession/set.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/reference/NeatSession/show.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/reference/NeatSession/subset.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/reference/NeatSession/template.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/reference/NeatSession/to.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/reference/issues/base.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/reference/issues/errors.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/reference/issues/user_model_warnings.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/reference/issues/warnings.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/tutorials/data-modeling/figs/data-modeling-flow.png +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/tutorials/data-modeling/files/wind_farm_prospecting_physical_data_model.xlsx +0 -0
- /cognite_neat-0.121.2/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_logical_wind_energy_WindFarmProspecting_v1.html → /cognite_neat-0.122.1/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_conceptual_wind_energy_WindFarmProspecting_v1.html +0 -0
- /cognite_neat-0.121.2/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_logical_wind_energy_WindFarmProspecting_v1_implements.html → /cognite_neat-0.122.1/docs/tutorials/data-modeling/http_purl.org_cognite_neat_data-model_verified_conceptual_wind_energy_WindFarmProspecting_v1_implements.html +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/tutorials/data-modeling/physical-data-model.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/docs/tutorials/introduction/introduction.ipynb +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/clean_space.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/core_classic_mapping.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/create_classic_core_mapping_yaml.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/dependency_profiler.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/docs_generate_unit.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/generate_steps_md.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/.gitignore +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/README.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/config.dev.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/neat_integration_runner/README.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/neat_integration_runner/auth/neat_cicd_testing.group.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/lift_pumps/classic/lift_pump_stations_root.Asset.csv +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/lift_pumps/data_sets/hierarchies.DataSet.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/lift_pumps/raw/collections_pump.Table.csv +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/lift_pumps/raw/collections_pump.Table.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/classic/Measurement.Asset.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/classic/Measurement.Label.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/classic/MetMast.Asset.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/classic/PowerGeneratingUnit.Label.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/classic/Utsira.Asset.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-01.Asset.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-01_to_MetMast.Relationship.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-02.Asset.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/classic/WT-02_to_MetMast.Relationship.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/classic/WindTurbine.Label.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/classic/metMast.Label.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/classic/planned_WT-01_2022-01-01.Event.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/classic/power_curve_manufacturer1.Sequence.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/data_sets/maintenance.DataSet.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/data_sets/source_ds.DataSet.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/data_sets/usecase_01.DataSet.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/files/WT-01_datasheet.FileMetadata.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/files/WT-01_datasheet.txt +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-01_forecast.TimeSeries.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-01_production.TimeSeries.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-02_forecast.TimeSeries.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/integration_runner/modules/test_data/windfarm/timeseries/WT-02_production.TimeSeries.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/manual_test_dms_importer.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/migration.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/oxi_remote/README.md +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/oxi_remote/docker-compose.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/test_lookup_table.csv +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/scripts/windfarm_to_toolkit.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/config.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/conftest.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_graph/IMF_TempTransmitterComplete.ttl +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_graph/aml-raw-graph.ttl +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_graph/aml_example.aml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_graph/car.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_graph/dexpi-raw-graph.ttl +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_graph/dexpi_example.xml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_graph/iodd_Piab-piCOMPACT10X-20230509-IODD1.1.xml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_graph/low-quality-graph.ttl +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_instances/asset_centric_cdf/assets.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_instances/asset_centric_cdf/events.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_instances/asset_centric_cdf/files.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_instances/asset_centric_cdf/labels.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_instances/asset_centric_cdf/relationships.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_instances/asset_centric_cdf/sequence_rows.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_instances/asset_centric_cdf/sequences.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_instances/asset_centric_cdf/timeseries.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_instances/classic_windfarm.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/conceptual/broken_concepts.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/conceptual/info-arch-car-rules.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/conceptual/info_with_cdm_ref.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/conceptual/information-unknown-value-type.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/conceptual/only_concepts.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/conversion/single_concept.conceptual.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/conversion/single_concept.physical.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/cognite_core_v1.zip +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/TemperatureController.zip +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/BaseConsumer.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/BasePlant.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/BaseReceiver.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/CityPlant.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/CoalPlant.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/DeliverySubStation.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/DomesticConsumer.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/FarmConsumer.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/Floor.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/GasPlant.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/GeneratorSubStation.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/HydroPlant.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/IndustrialConsumer.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/IndustrialPlant.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/NuclearPlant.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/PowerLine.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/Room.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/SolarPlant.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/Transformer.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/dtdl/energy-grid/WindPlant.json +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/referencing_core/MyDescribable.container.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/referencing_core/MyDescribable.view.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/referencing_core/enterprise.datamodel.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/non_neat/windturbine.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/partial-model/complete.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/partial-model/part1.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/partial-model/part2.ttl +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/partial-model/part3.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical/car_dms_rules.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical/car_dms_rules_deprecated.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical/dm_raw_filter.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical/dm_view_space_different.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical/dms-unknown-value-type.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical/isa_plus_cdm.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical/missing-in-model-value.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical/mixed-up-version.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical/pump_example_duplicated_resources.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical/pump_example_with_missing_cells.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical/pump_example_with_missing_cells_raise_issues.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical_invalid/inconsistent_container_dms_rules.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical_invalid/invalid_metadata.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical_invalid/invalid_property_dms_rules.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical_invalid/missing_view_container_dms_rules.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical_invalid/too_many_containers_per_view.xlsx +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical_yamls/invalid_yaml.expected_issues.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical_yamls/invalid_yaml.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical_yamls/reverse_direct_relation_missing_target.expected_issues.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/data/_schema/physical_yamls/reverse_direct_relation_missing_target.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_end_to_end/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_end_to_end/test_rules_flow/test_cdm_extension_verification.yaml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_end_to_end/test_rules_flow/test_excel_importer_to_yaml.yml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_end_to_end/test_rules_flow/test_ontology_importer_to_yaml.yml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_end_to_end/test_rules_flow/test_to_extension_transformer.yml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_end_to_end/test_rules_flow.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/conftest.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_api/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_api/test_conversion.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_api/test_validate_rules.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_client_available.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_graph/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_graph/test_loaders/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_neat_client/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_neat_client/test_cdf_loaders.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_neat_client/test_statistics.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_rules/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_rules/test_exporters/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_rules/test_exporters/test_dms_exporters.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_rules/test_importers/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_session/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_session/test_create_enterprise.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_session/test_data_model_prepare_fix/test_prefix_dms_rules_entities.yml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_session/test_data_model_prepare_fix/test_prefix_info_rules_entities.yml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_session/test_data_model_prepare_fix/test_standardize_space_and_version.yml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_session/test_data_model_to/test_raw_filter.yml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_session/test_graph_flow/test_aml_to_dms.yml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_session/test_graph_flow/test_create_extension_template.yml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_session/test_graph_flow/test_dexpi_to_dms.yml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_session/test_graph_flow/test_snapshot_workflow_ids_to_python.yml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_session/test_graph_flow/test_snapshot_workflow_to_python.yml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_session/test_graph_flow/test_uplift_workflow_to_python.yml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_session/test_read/test_read_model_referencing_core.yml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_utils/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_integration/test_utils/test_reader.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_extractors/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_extractors/test_asset_extractor.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_extractors/test_dms_extractor.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_extractors/test_dms_graph_extractor.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_extractors/test_events_extractor.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_extractors/test_files_extractor.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_extractors/test_labels_extractor.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_extractors/test_raw_extractor.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_extractors/test_relationship_extractor.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_extractors/test_sequences_extractor.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_extractors/test_timeseries_extractor.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_graph_read.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_loaders/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_loaders/test_rdf2dms.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_provenance.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_transformers/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_transformers/test_asset_depth_transformer.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_transformers/test_asset_event_connector_transformer.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_transformers/test_asset_file_connector_transformer.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_transformers/test_asset_relationship_connector_transformer.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_transformers/test_asset_sequence_connector_transformer.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_transformers/test_asset_ts_connector_transformer.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_transformers/test_attach_property_from_target2source.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_transformers/test_connection_to_literal.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_transformers/test_make_connection_on_exact_match.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_transformers/test_prune_graph.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_graph/test_transformers/test_split_multi_value_property_transformer.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_issues/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_issues/test_formatters.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_issues/test_issue_behavior.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_issues/test_issues_metatests.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_neat_client/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_neat_client/test_instances.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_neat_client/test_loaders.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_neat_client/test_schema.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_neat_package_metadata.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_analysis.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_exporters/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_exporters/test_exporters_meta.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_exporters/test_rules2dms.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_exporters/test_rules2excel.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_exporters/test_rules2ontology.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_exporters/test_rules2yaml.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_importers/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_importers/constants.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_importers/test_dms_importer.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_importers/test_dtdl_importer.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_importers/test_excel_importer.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_importers/test_imf_importer.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_importers/test_owl_importer.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_importers/test_subinference_importer.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_models/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_models/test_asset_rules.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_models/test_base_rules.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_models/test_conceptual_model.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_models/test_data_types.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_models/test_dms_schema.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_models/test_entities.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_models/test_input_rules.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_models/test_physical_data_model.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_models/test_wrapped_entities.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_models/utils.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_transformers/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_transformers/test_converters.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_transformers/test_mapping.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_rules/test_transformers/test_transformer_meta.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_session/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_session/test_meta.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_session/test_read.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_store/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_store/tests_rules_store/test_import_export.yml +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_store/tests_rules_store.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_utils/__init__.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_utils/test_auxiliary.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_utils/test_cdf_classes.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_utils/test_rdf.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_utils/test_reader.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_utils/test_text.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/tests_unit/test_utils/test_utils.py +0 -0
- {cognite_neat-0.121.2 → cognite_neat-0.122.1}/tests/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cognite-neat
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.122.1
|
|
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/
|
|
@@ -47,9 +47,9 @@ Requires-Dist: google-auth-oauthlib<2.0.0,>=1.0.0; extra == 'google'
|
|
|
47
47
|
Requires-Dist: gspread<6.0.0,>=5.0.0; extra == 'google'
|
|
48
48
|
Provides-Extra: lxml
|
|
49
49
|
Requires-Dist: lxml<6.0.0,>=5.3.0; extra == 'lxml'
|
|
50
|
-
Provides-Extra:
|
|
51
|
-
Requires-Dist: oxrdflib<0.5.0,>=0.4.0; extra == '
|
|
52
|
-
Requires-Dist: pyoxigraph<0.5.0,>=0.4.3; extra == '
|
|
50
|
+
Provides-Extra: oxi
|
|
51
|
+
Requires-Dist: oxrdflib<0.5.0,>=0.4.0; extra == 'oxi'
|
|
52
|
+
Requires-Dist: pyoxigraph<0.5.0,>=0.4.3; extra == 'oxi'
|
|
53
53
|
Description-Content-Type: text/markdown
|
|
54
54
|
|
|
55
55
|
# kNowlEdge grAph Transformer (NEAT)
|
|
@@ -67,9 +67,9 @@ Description-Content-Type: text/markdown
|
|
|
67
67
|
|
|
68
68
|
NEAT is a domain expert centric and developer friendly solution for rapid:
|
|
69
69
|
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
- and ingestion of the models and graphs into [Cognite Data Fusion](https://www.cognite.com/en/product/cognite_data_fusion_industrial_dataops_platform)
|
|
70
|
+
- data modeling
|
|
71
|
+
- extraction, transformation and loading of instances
|
|
72
|
+
- and ingestion of the models and instances (i.e. knowledge graphs) into [Cognite Data Fusion](https://www.cognite.com/en/product/cognite_data_fusion_industrial_dataops_platform)
|
|
73
73
|
|
|
74
74
|
NEAT is using open and globally recognized standards maintained by the [World Wide Web Consortium (W3C)](https://www.w3.org/RDF/).
|
|
75
75
|
NEAT represents an essential tool for creation of standardized, machine-actionable, linked and semantic (meta)data.
|
|
@@ -85,13 +85,12 @@ By mid of 2022, sheet2rdf was used in several POCs in Cognite. As Cognite's Data
|
|
|
85
85
|
|
|
86
86
|
Presented in various forums in 2022, this approach paved the way for NEAT’s formal development in November 2022 to enable cost-saving and empowerment of Cognite customers to self-sufficiently maintain and onboard knowledge graphs to Cognite Data Fusion.
|
|
87
87
|
|
|
88
|
-
|
|
89
88
|
## Authorship
|
|
90
89
|
|
|
91
90
|
### Authors
|
|
92
91
|
The plot below shows the NEAT authorship from the start until present day.
|
|
93
92
|
|
|
94
|
-

|
|
95
94
|
|
|
96
95
|
#### Current authors
|
|
97
96
|
- [Nikola Vasiljević](www.linkedin.com/in/thisisnikola)
|
|
@@ -108,9 +107,17 @@ We are very grateful for the contributions made by:
|
|
|
108
107
|
|
|
109
108
|
- [Marie Solvik Lepoutre](https://www.linkedin.com/in/mslepoutre/), who improved RDF triples projections to Cognite Data Fusion
|
|
110
109
|
- [Bård Henning Tvedt](https://www.linkedin.com/in/bhtvedt/), who implemented IMF importer
|
|
110
|
+
- [Hassan Gomaa](https://www.linkedin.com/in/dr-hassan-gomaa-232638121/), who extended the DEXPI extractor
|
|
111
111
|
- [Kristina Tomičić](https://www.linkedin.com/in/kristina-tomicic-6bb443108/), who implemented Data Model and Instances visualization
|
|
112
112
|
|
|
113
113
|
|
|
114
|
+
## Sponsors
|
|
115
|
+
NEAT is developed and maintained by Cognite. We are grateful for the past support of our sponsors, who funded us to develop NEAT and to make it open source.
|
|
116
|
+
|
|
117
|
+
- [Statnett](https://www.statnett.no/) - the MIMIR team ([Ola Hagen Øyan](https://www.linkedin.com/in/ola-%C3%B8yan-b0205b19/), [Olav Westeng Alstad](https://www.linkedin.com/in/olav-w-alstad-52329191/),[Andreas Kimsås](https://www.linkedin.com/in/andreas-kims%C3%A5s-964a0b2/) and [Anders Willersrud](https://www.linkedin.com/in/anders-willersrud-13a20220/)) – who supported the development of NEAT from end of 2022 to mid of 2023 and its integration with Statnett's infrastructure, where NEAT was battle-tested as a tool for non-sematic experts to define data models and transform large knowledge graphs representing the entire Norwegian power grid system. Without Statnett's support NEAT would not exist in the first place, and would not be open-source.
|
|
118
|
+
- [Aker Solutions](https://www.akersolutions.com/) – the IMod Team (currently lead by [Maria Kenderkova](https://www.linkedin.com/in/maria-kenderkova/)), who funded development of NEAT from mid of 2023 till end of 2024 (multi-level and role-based data modeling, support for ontologies, IMF, DEXPI, AML,...) , as well who were early adopters and embraced NEAT and who were patient with us when things did not work so well. Aker Solutions was instrumental to elevating NEAT to a product level, and who selflessly advocate for NEAT globally.
|
|
119
|
+
|
|
120
|
+
|
|
114
121
|
## Installation
|
|
115
122
|
|
|
116
123
|
```bash
|
|
@@ -134,4 +141,4 @@ neat.read.cdf.data_model(("my_space", "MyDataModel", "v1"))
|
|
|
134
141
|
|
|
135
142
|
## Documentation
|
|
136
143
|
|
|
137
|
-
For more information, see the [documentation](https://cognite-neat.readthedocs-hosted.com/en/latest/)
|
|
144
|
+
For more information, see the [documentation](https://cognite-neat.readthedocs-hosted.com/en/latest/)
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
|
|
14
14
|
NEAT is a domain expert centric and developer friendly solution for rapid:
|
|
15
15
|
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
- and ingestion of the models and graphs into [Cognite Data Fusion](https://www.cognite.com/en/product/cognite_data_fusion_industrial_dataops_platform)
|
|
16
|
+
- data modeling
|
|
17
|
+
- extraction, transformation and loading of instances
|
|
18
|
+
- and ingestion of the models and instances (i.e. knowledge graphs) into [Cognite Data Fusion](https://www.cognite.com/en/product/cognite_data_fusion_industrial_dataops_platform)
|
|
19
19
|
|
|
20
20
|
NEAT is using open and globally recognized standards maintained by the [World Wide Web Consortium (W3C)](https://www.w3.org/RDF/).
|
|
21
21
|
NEAT represents an essential tool for creation of standardized, machine-actionable, linked and semantic (meta)data.
|
|
@@ -31,13 +31,12 @@ By mid of 2022, sheet2rdf was used in several POCs in Cognite. As Cognite's Data
|
|
|
31
31
|
|
|
32
32
|
Presented in various forums in 2022, this approach paved the way for NEAT’s formal development in November 2022 to enable cost-saving and empowerment of Cognite customers to self-sufficiently maintain and onboard knowledge graphs to Cognite Data Fusion.
|
|
33
33
|
|
|
34
|
-
|
|
35
34
|
## Authorship
|
|
36
35
|
|
|
37
36
|
### Authors
|
|
38
37
|
The plot below shows the NEAT authorship from the start until present day.
|
|
39
38
|
|
|
40
|
-

|
|
41
40
|
|
|
42
41
|
#### Current authors
|
|
43
42
|
- [Nikola Vasiljević](www.linkedin.com/in/thisisnikola)
|
|
@@ -54,9 +53,17 @@ We are very grateful for the contributions made by:
|
|
|
54
53
|
|
|
55
54
|
- [Marie Solvik Lepoutre](https://www.linkedin.com/in/mslepoutre/), who improved RDF triples projections to Cognite Data Fusion
|
|
56
55
|
- [Bård Henning Tvedt](https://www.linkedin.com/in/bhtvedt/), who implemented IMF importer
|
|
56
|
+
- [Hassan Gomaa](https://www.linkedin.com/in/dr-hassan-gomaa-232638121/), who extended the DEXPI extractor
|
|
57
57
|
- [Kristina Tomičić](https://www.linkedin.com/in/kristina-tomicic-6bb443108/), who implemented Data Model and Instances visualization
|
|
58
58
|
|
|
59
59
|
|
|
60
|
+
## Sponsors
|
|
61
|
+
NEAT is developed and maintained by Cognite. We are grateful for the past support of our sponsors, who funded us to develop NEAT and to make it open source.
|
|
62
|
+
|
|
63
|
+
- [Statnett](https://www.statnett.no/) - the MIMIR team ([Ola Hagen Øyan](https://www.linkedin.com/in/ola-%C3%B8yan-b0205b19/), [Olav Westeng Alstad](https://www.linkedin.com/in/olav-w-alstad-52329191/),[Andreas Kimsås](https://www.linkedin.com/in/andreas-kims%C3%A5s-964a0b2/) and [Anders Willersrud](https://www.linkedin.com/in/anders-willersrud-13a20220/)) – who supported the development of NEAT from end of 2022 to mid of 2023 and its integration with Statnett's infrastructure, where NEAT was battle-tested as a tool for non-sematic experts to define data models and transform large knowledge graphs representing the entire Norwegian power grid system. Without Statnett's support NEAT would not exist in the first place, and would not be open-source.
|
|
64
|
+
- [Aker Solutions](https://www.akersolutions.com/) – the IMod Team (currently lead by [Maria Kenderkova](https://www.linkedin.com/in/maria-kenderkova/)), who funded development of NEAT from mid of 2023 till end of 2024 (multi-level and role-based data modeling, support for ontologies, IMF, DEXPI, AML,...) , as well who were early adopters and embraced NEAT and who were patient with us when things did not work so well. Aker Solutions was instrumental to elevating NEAT to a product level, and who selflessly advocate for NEAT globally.
|
|
65
|
+
|
|
66
|
+
|
|
60
67
|
## Installation
|
|
61
68
|
|
|
62
69
|
```bash
|
|
@@ -80,4 +87,4 @@ neat.read.cdf.data_model(("my_space", "MyDataModel", "v1"))
|
|
|
80
87
|
|
|
81
88
|
## Documentation
|
|
82
89
|
|
|
83
|
-
For more information, see the [documentation](https://cognite-neat.readthedocs-hosted.com/en/latest/)
|
|
90
|
+
For more information, see the [documentation](https://cognite-neat.readthedocs-hosted.com/en/latest/)
|
|
@@ -104,7 +104,7 @@ COGNITE_CONCEPTS = (
|
|
|
104
104
|
|
|
105
105
|
DMS_LISTABLE_PROPERTY_LIMIT = 1000
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
EXAMPLE_DATA_MODELS = PACKAGE_DIRECTORY / "core" / "_data_model" / "examples"
|
|
108
108
|
EXAMPLE_GRAPHS = PACKAGE_DIRECTORY / "core" / "_instances" / "examples"
|
|
109
109
|
|
|
110
110
|
DEFAULT_SPACE_URI = "http://purl.org/cognite/space/{space}#"
|
{cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/exporters/__init__.py
RENAMED
|
@@ -34,6 +34,6 @@ def _repr_html_() -> str:
|
|
|
34
34
|
)._repr_html_()
|
|
35
35
|
|
|
36
36
|
return (
|
|
37
|
-
"<strong>Exporter</strong> An exporter converts Neat's representation of a data model
|
|
37
|
+
"<strong>Exporter</strong> An exporter converts Neat's representation of a data model"
|
|
38
38
|
f" into a schema/data model for a target format.<br />{table}"
|
|
39
39
|
)
|
|
@@ -20,8 +20,8 @@ from ._base import BaseExporter
|
|
|
20
20
|
|
|
21
21
|
class InstanceTemplateExporter(BaseExporter[ConceptualDataModel, Workbook]):
|
|
22
22
|
"""
|
|
23
|
-
Converts
|
|
24
|
-
instances based on
|
|
23
|
+
Converts conceptual data model to a templated spreadsheet meant for capturing
|
|
24
|
+
instances based on concept definitions in the data model.
|
|
25
25
|
|
|
26
26
|
Args:
|
|
27
27
|
no_rows: number of rows for processing, by default 1000
|
|
@@ -50,30 +50,30 @@ class InstanceTemplateExporter(BaseExporter[ConceptualDataModel, Workbook]):
|
|
|
50
50
|
|
|
51
51
|
def export(
|
|
52
52
|
self,
|
|
53
|
-
|
|
53
|
+
data_model: ConceptualDataModel,
|
|
54
54
|
) -> Workbook:
|
|
55
55
|
workbook = Workbook()
|
|
56
56
|
|
|
57
57
|
# Remove default sheet named "Sheet"
|
|
58
58
|
workbook.remove(workbook["Sheet"])
|
|
59
59
|
|
|
60
|
-
for
|
|
61
|
-
workbook.create_sheet(title=
|
|
60
|
+
for concept, properties in DataModelAnalysis(data_model).properties_by_id_by_concept().items():
|
|
61
|
+
workbook.create_sheet(title=concept.suffix)
|
|
62
62
|
|
|
63
63
|
# Add header rows
|
|
64
|
-
workbook[
|
|
64
|
+
workbook[concept.suffix].append(["identifier", *list(properties.keys())])
|
|
65
65
|
|
|
66
66
|
if self.auto_identifier_type == "uuid":
|
|
67
|
-
_add_uuid_identifiers(workbook,
|
|
67
|
+
_add_uuid_identifiers(workbook, concept.suffix, self.no_rows)
|
|
68
68
|
else:
|
|
69
69
|
# Default to index-based identifier
|
|
70
|
-
_add_index_identifiers(workbook,
|
|
70
|
+
_add_index_identifiers(workbook, concept.suffix, self.no_rows)
|
|
71
71
|
|
|
72
72
|
for i, property_ in enumerate(properties.values()):
|
|
73
73
|
if property_.type_ == EntityTypes.object_property and self.add_drop_down_list:
|
|
74
74
|
_add_drop_down_list(
|
|
75
75
|
workbook,
|
|
76
|
-
|
|
76
|
+
concept.suffix,
|
|
77
77
|
get_column_letter(i + 2),
|
|
78
78
|
self.no_rows,
|
|
79
79
|
cast(ConceptEntity, property_.value_type).suffix,
|
|
@@ -85,9 +85,9 @@ class InstanceTemplateExporter(BaseExporter[ConceptualDataModel, Workbook]):
|
|
|
85
85
|
|
|
86
86
|
return workbook
|
|
87
87
|
|
|
88
|
-
def export_to_file(self,
|
|
88
|
+
def export_to_file(self, data_model: ConceptualDataModel, filepath: Path) -> None:
|
|
89
89
|
"""Exports graph capturing sheet to excel file."""
|
|
90
|
-
data = self.export(
|
|
90
|
+
data = self.export(data_model)
|
|
91
91
|
try:
|
|
92
92
|
data.save(filepath)
|
|
93
93
|
finally:
|
{cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/importers/__init__.py
RENAMED
|
@@ -17,7 +17,7 @@ __all__ = [
|
|
|
17
17
|
"SubclassInferenceImporter",
|
|
18
18
|
]
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
DataModelImporters = (
|
|
21
21
|
OWLImporter
|
|
22
22
|
| IMFImporter
|
|
23
23
|
| DMSImporter
|
|
@@ -47,5 +47,5 @@ def _repr_html_() -> str:
|
|
|
47
47
|
|
|
48
48
|
return (
|
|
49
49
|
"<strong>Importer</strong> An importer reads data/schema/data model from a source"
|
|
50
|
-
f" and converts it into Neat's representation of a data model
|
|
50
|
+
f" and converts it into Neat's representation of a data model.<br />{table}"
|
|
51
51
|
)
|
|
@@ -7,7 +7,10 @@ from cognite.neat.core._data_model._shared import (
|
|
|
7
7
|
ImportedDataModel,
|
|
8
8
|
T_UnverifiedDataModel,
|
|
9
9
|
)
|
|
10
|
-
from cognite.neat.core._data_model.models import
|
|
10
|
+
from cognite.neat.core._data_model.models import (
|
|
11
|
+
UNVERIFIED_DATA_MODEL_BY_ROLE,
|
|
12
|
+
RoleTypes,
|
|
13
|
+
)
|
|
11
14
|
from cognite.neat.core._issues import IssueList, MultiValueError, NeatIssue
|
|
12
15
|
from cognite.neat.core._issues.errors import (
|
|
13
16
|
FileMissingRequiredFieldError,
|
|
@@ -44,16 +47,18 @@ class YAMLReader:
|
|
|
44
47
|
|
|
45
48
|
|
|
46
49
|
class DictImporter(BaseImporter[T_UnverifiedDataModel]):
|
|
47
|
-
"""Imports the
|
|
50
|
+
"""Imports the data model from a YAML file.
|
|
48
51
|
|
|
49
52
|
Args:
|
|
50
53
|
raw_data: The raw data to be imported.
|
|
51
54
|
|
|
52
55
|
.. note::
|
|
53
56
|
|
|
54
|
-
YAML files are typically used for storing
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
YAML files are typically used for storing data model when checked into version
|
|
58
|
+
control systems, e.g., git-history.
|
|
59
|
+
The advantage of using YAML files over Excel is that tools like git can
|
|
60
|
+
show the differences between different
|
|
61
|
+
versions of the data model.
|
|
57
62
|
|
|
58
63
|
"""
|
|
59
64
|
|
|
@@ -115,7 +120,7 @@ class DictImporter(BaseImporter[T_UnverifiedDataModel]):
|
|
|
115
120
|
|
|
116
121
|
role_input = RoleTypes(metadata["role"])
|
|
117
122
|
role_enum = RoleTypes(role_input)
|
|
118
|
-
data_model_cls =
|
|
123
|
+
data_model_cls = UNVERIFIED_DATA_MODEL_BY_ROLE[role_enum]
|
|
119
124
|
|
|
120
125
|
data_model = cast(T_UnverifiedDataModel, data_model_cls.load(self.raw_data))
|
|
121
126
|
|
{cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/importers/_rdf/_base.py
RENAMED
|
@@ -28,13 +28,13 @@ DEFAULT_RDF_DATA_MODEL_ID = ("neat_space", "RDFDataModel", "rdf")
|
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
class BaseRDFImporter(BaseImporter[UnverifiedConceptualDataModel]):
|
|
31
|
-
"""Baser RDF importers used for all
|
|
31
|
+
"""Baser RDF importers used for all data model importers that are using RDF as input.
|
|
32
32
|
|
|
33
33
|
Args:
|
|
34
34
|
issue_list: Issue list to store issues
|
|
35
|
-
graph:
|
|
36
|
-
data_model_id: Data model id to be used for the imported
|
|
37
|
-
space: CDF Space to be used for the imported
|
|
35
|
+
graph: graph where instances are stored
|
|
36
|
+
data_model_id: Data model id to be used for the imported data model
|
|
37
|
+
space: CDF Space to be used for the imported data model
|
|
38
38
|
language: Language for description and human readable entity names
|
|
39
39
|
|
|
40
40
|
|
|
@@ -119,18 +119,18 @@ class BaseRDFImporter(BaseImporter[UnverifiedConceptualDataModel]):
|
|
|
119
119
|
self,
|
|
120
120
|
) -> ImportedDataModel[UnverifiedConceptualDataModel]:
|
|
121
121
|
"""
|
|
122
|
-
Creates `
|
|
122
|
+
Creates `ImportedDataModel` object from the data for target role.
|
|
123
123
|
"""
|
|
124
124
|
if self.issue_list.has_errors:
|
|
125
125
|
# In case there were errors during the import, the to_data_model method will return None
|
|
126
126
|
self.issue_list.trigger_warnings()
|
|
127
127
|
raise MultiValueError(self.issue_list.errors)
|
|
128
128
|
|
|
129
|
-
|
|
129
|
+
data_model_dict = self._to_data_model_components()
|
|
130
130
|
|
|
131
|
-
|
|
131
|
+
data_model = UnverifiedConceptualDataModel.load(data_model_dict)
|
|
132
132
|
self.issue_list.trigger_warnings()
|
|
133
|
-
return ImportedDataModel(
|
|
133
|
+
return ImportedDataModel(data_model, {})
|
|
134
134
|
|
|
135
135
|
def _to_data_model_components(self) -> dict:
|
|
136
136
|
raise NotImplementedError()
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""This module performs importing of various formats to one of serializations for which
|
|
2
|
-
there are loaders to
|
|
2
|
+
there are loaders to data model pydantic class."""
|
|
3
3
|
|
|
4
4
|
from cognite.neat.core._data_model.importers._rdf._base import BaseRDFImporter
|
|
5
5
|
from cognite.neat.core._data_model.importers._rdf._shared import (
|
|
@@ -75,7 +75,7 @@ PROPERTIES_QUERY = """
|
|
|
75
75
|
|
|
76
76
|
|
|
77
77
|
class IMFImporter(BaseRDFImporter):
|
|
78
|
-
"""Convert IMF Types provided as SHACL shapes to
|
|
78
|
+
"""Convert IMF Types provided as SHACL shapes to unverified data model."""
|
|
79
79
|
|
|
80
80
|
@property
|
|
81
81
|
def description(self) -> str:
|
|
@@ -56,10 +56,10 @@ INSTANCE_PROPERTIES_DEFINITION = """SELECT ?property (count(?property) as ?occur
|
|
|
56
56
|
|
|
57
57
|
|
|
58
58
|
class InferenceImporter(BaseRDFImporter):
|
|
59
|
-
"""Infers
|
|
59
|
+
"""Infers data model from instances stored as triples.
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
Use the factory methods to create
|
|
61
|
+
Data model inference through analysis of knowledge graph provided in various formats.
|
|
62
|
+
Use the factory methods to create triples from sources such as
|
|
63
63
|
RDF files, JSON files, YAML files, XML files, or directly from a graph store.
|
|
64
64
|
|
|
65
65
|
ClassVars:
|
|
@@ -151,7 +151,7 @@ class InferenceImporter(BaseRDFImporter):
|
|
|
151
151
|
"""Convert RDF graph to dictionary defining data model and prefixes of the graph
|
|
152
152
|
|
|
153
153
|
Args:
|
|
154
|
-
graph: RDF graph to be converted to
|
|
154
|
+
graph: RDF graph to be converted to data model
|
|
155
155
|
max_number_of_instance: Max number of instances to be considered for each class
|
|
156
156
|
|
|
157
157
|
Returns:
|
|
@@ -218,7 +218,7 @@ class InferenceImporter(BaseRDFImporter):
|
|
|
218
218
|
resource_type="Property",
|
|
219
219
|
identifier=f"{concept_id}:{property_id}",
|
|
220
220
|
property_name=property_id,
|
|
221
|
-
default_action="Remove the property from the
|
|
221
|
+
default_action="Remove the property from the data model",
|
|
222
222
|
recommended_action="Make sure that graph is complete",
|
|
223
223
|
)
|
|
224
224
|
|
|
@@ -300,11 +300,11 @@ class _ReadProperties:
|
|
|
300
300
|
|
|
301
301
|
|
|
302
302
|
class SubclassInferenceImporter(BaseRDFImporter):
|
|
303
|
-
"""Infer subclasses from a triple store.
|
|
303
|
+
"""Infer subclasses from instances stored in a triple store.
|
|
304
304
|
|
|
305
|
-
Assumes that the
|
|
306
|
-
match the RDF.type of the instances
|
|
307
|
-
|
|
305
|
+
Assumes that the instances already are connected to a schema. The classes should
|
|
306
|
+
match the RDF.type of the instances, while the subclasses should match the NEAT.type
|
|
307
|
+
of the instances.
|
|
308
308
|
|
|
309
309
|
ClassVars:
|
|
310
310
|
overwrite_data_types: Mapping of data types to be overwritten. The InferenceImporter will overwrite
|
|
@@ -357,26 +357,26 @@ class SubclassInferenceImporter(BaseRDFImporter):
|
|
|
357
357
|
self,
|
|
358
358
|
issue_list: IssueList,
|
|
359
359
|
graph: Graph,
|
|
360
|
-
|
|
360
|
+
data_model: ConceptualDataModel | None = None,
|
|
361
361
|
data_model_id: dm.DataModelId | tuple[str, str, str] | None = None,
|
|
362
362
|
non_existing_node_type: UnknownEntity | AnyURI = DEFAULT_NON_EXISTING_NODE_TYPE,
|
|
363
363
|
) -> None:
|
|
364
|
-
if sum([1 for v in [
|
|
365
|
-
raise ValueError("Exactly one of
|
|
364
|
+
if sum([1 for v in [data_model, data_model_id] if v is not None]) != 1:
|
|
365
|
+
raise ValueError("Exactly one of data model or data_model_id must be provided.")
|
|
366
366
|
if data_model_id is not None:
|
|
367
367
|
identifier = data_model_id
|
|
368
|
-
elif
|
|
369
|
-
identifier =
|
|
368
|
+
elif data_model is not None:
|
|
369
|
+
identifier = data_model.metadata.as_data_model_id().as_tuple() # type: ignore[assignment]
|
|
370
370
|
else:
|
|
371
|
-
raise ValueError("Exactly one of
|
|
371
|
+
raise ValueError("Exactly one of data model or data_model_id must be provided.")
|
|
372
372
|
super().__init__(issue_list, graph, identifier, -1, non_existing_node_type, language="en")
|
|
373
|
-
self.
|
|
373
|
+
self._data_model = data_model
|
|
374
374
|
|
|
375
375
|
def _to_data_model_components(
|
|
376
376
|
self,
|
|
377
377
|
) -> dict:
|
|
378
|
-
if self.
|
|
379
|
-
prefixes = self.
|
|
378
|
+
if self._data_model:
|
|
379
|
+
prefixes = self._data_model.prefixes.copy()
|
|
380
380
|
else:
|
|
381
381
|
prefixes = get_default_prefixes_and_namespaces()
|
|
382
382
|
|
|
@@ -384,9 +384,9 @@ class SubclassInferenceImporter(BaseRDFImporter):
|
|
|
384
384
|
read_properties = self._read_class_properties_from_graph(parent_by_child)
|
|
385
385
|
classes, properties = self._create_classes_properties(read_properties, prefixes)
|
|
386
386
|
|
|
387
|
-
if self.
|
|
388
|
-
metadata = self.
|
|
389
|
-
default_space = self.
|
|
387
|
+
if self._data_model:
|
|
388
|
+
metadata = self._data_model.metadata.model_dump()
|
|
389
|
+
default_space = self._data_model.metadata.prefix
|
|
390
390
|
else:
|
|
391
391
|
metadata = self._default_metadata()
|
|
392
392
|
default_space = metadata["space"]
|
|
@@ -400,8 +400,8 @@ class SubclassInferenceImporter(BaseRDFImporter):
|
|
|
400
400
|
def _create_classes_properties(
|
|
401
401
|
self, read_properties: list[_ReadProperties], prefixes: dict[str, Namespace]
|
|
402
402
|
) -> tuple[list[UnverifiedConcept], list[UnverifiedConceptualProperty]]:
|
|
403
|
-
if self.
|
|
404
|
-
existing_classes = {class_.concept.suffix: class_ for class_ in self.
|
|
403
|
+
if self._data_model:
|
|
404
|
+
existing_classes = {class_.concept.suffix: class_ for class_ in self._data_model.concepts}
|
|
405
405
|
else:
|
|
406
406
|
existing_classes = {}
|
|
407
407
|
classes: list[UnverifiedConcept] = []
|
|
@@ -509,8 +509,8 @@ class SubclassInferenceImporter(BaseRDFImporter):
|
|
|
509
509
|
for result_row in self.graph.query(self._ordered_class_query):
|
|
510
510
|
type_uri, instance_count_literal = cast(tuple[URIRef, RdfLiteral], result_row)
|
|
511
511
|
count_by_type[type_uri] = instance_count_literal.toPython()
|
|
512
|
-
if self.
|
|
513
|
-
analysis = DataModelAnalysis(self.
|
|
512
|
+
if self._data_model:
|
|
513
|
+
analysis = DataModelAnalysis(self._data_model)
|
|
514
514
|
existing_class_properties = {
|
|
515
515
|
(class_entity.suffix, prop.property_): prop
|
|
516
516
|
for class_entity, properties in analysis.properties_by_concepts(
|
|
@@ -518,7 +518,7 @@ class SubclassInferenceImporter(BaseRDFImporter):
|
|
|
518
518
|
).items()
|
|
519
519
|
for prop in properties
|
|
520
520
|
}
|
|
521
|
-
existing_classes = {cls_.concept.suffix: cls_ for cls_ in self.
|
|
521
|
+
existing_classes = {cls_.concept.suffix: cls_ for cls_ in self._data_model.concepts}
|
|
522
522
|
else:
|
|
523
523
|
existing_class_properties = {}
|
|
524
524
|
existing_classes = {}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"""This module performs importing of various formats to one of serializations for which
|
|
2
|
-
there are loaders to
|
|
2
|
+
there are loaders to data model pydantic class."""
|
|
3
3
|
|
|
4
4
|
from cognite.neat.core._data_model.importers._rdf._base import BaseRDFImporter
|
|
5
5
|
from cognite.neat.core._data_model.importers._rdf._shared import (
|
|
@@ -47,20 +47,20 @@ PROPERTIES_QUERY = """
|
|
|
47
47
|
|
|
48
48
|
|
|
49
49
|
class OWLImporter(BaseRDFImporter):
|
|
50
|
-
"""Convert OWL ontology to
|
|
50
|
+
"""Convert OWL ontology to unverified data model.
|
|
51
51
|
|
|
52
52
|
Args:
|
|
53
53
|
filepath: Path to OWL ontology
|
|
54
54
|
|
|
55
55
|
!!! Note
|
|
56
56
|
OWL Ontologies are information models which completeness varies. As such, constructing functional
|
|
57
|
-
data model directly will often be impossible, therefore the produced
|
|
58
|
-
To avoid this, neat will automatically attempt to make the imported
|
|
57
|
+
data model directly will often be impossible, therefore the produced data model object will be ill formed.
|
|
58
|
+
To avoid this, neat will automatically attempt to make the imported data model compliant by adding default
|
|
59
59
|
values for missing information, attaching dangling properties to default containers based on the
|
|
60
60
|
property type, etc.
|
|
61
61
|
|
|
62
62
|
One has to be aware that NEAT will be opinionated about how to make the ontology
|
|
63
|
-
compliant, and that the resulting
|
|
63
|
+
compliant, and that the resulting data model may not be what you expect.
|
|
64
64
|
|
|
65
65
|
"""
|
|
66
66
|
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
"""This module performs importing of
|
|
2
|
-
In more details, it traverses the graph and abstracts class and properties, basically
|
|
3
|
-
generating a list of data_model based on which nodes that form the graph are made.
|
|
4
|
-
"""
|
|
1
|
+
"""This module performs importing of data model from spreadsheets."""
|
|
5
2
|
|
|
6
3
|
import tempfile
|
|
7
4
|
from collections import UserDict, defaultdict
|
|
@@ -20,8 +17,8 @@ from cognite.neat.core._data_model._shared import (
|
|
|
20
17
|
T_UnverifiedDataModel,
|
|
21
18
|
)
|
|
22
19
|
from cognite.neat.core._data_model.models import (
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
UNVERIFIED_DATA_MODEL_BY_ROLE,
|
|
21
|
+
VERIFIED_DATA_MODEL_BY_ROLE,
|
|
25
22
|
RoleTypes,
|
|
26
23
|
SchemaCompleteness,
|
|
27
24
|
)
|
|
@@ -58,8 +55,8 @@ MANDATORY_SHEETS_BY_ROLE: dict[RoleTypes, set[str]] = {
|
|
|
58
55
|
role_type: {
|
|
59
56
|
str(sheet_name)
|
|
60
57
|
for sheet_name in (
|
|
61
|
-
|
|
62
|
-
if
|
|
58
|
+
VERIFIED_DATA_MODEL_BY_ROLE.get(role_type).mandatory_fields(use_alias=True) # type: ignore
|
|
59
|
+
if VERIFIED_DATA_MODEL_BY_ROLE.get(role_type)
|
|
63
60
|
else []
|
|
64
61
|
)
|
|
65
62
|
if sheet_name is not None
|
|
@@ -280,7 +277,7 @@ class ExcelImporter(BaseImporter[T_UnverifiedDataModel]):
|
|
|
280
277
|
original_role = user_read.role
|
|
281
278
|
read_info_by_sheet = user_read.read_info_by_sheet
|
|
282
279
|
|
|
283
|
-
data_model_cls =
|
|
280
|
+
data_model_cls = UNVERIFIED_DATA_MODEL_BY_ROLE[original_role]
|
|
284
281
|
data_model = cast(T_UnverifiedDataModel, data_model_cls.load(sheets))
|
|
285
282
|
|
|
286
283
|
# Delete the temporary file if it was created
|
{cognite_neat-0.121.2 → cognite_neat-0.122.1}/cognite/neat/core/_data_model/models/__init__.py
RENAMED
|
@@ -10,18 +10,20 @@ from ._base_verified import DataModelType, ExtensionCategory, RoleTypes, SchemaC
|
|
|
10
10
|
from .physical._unverified import UnverifiedPhysicalDataModel
|
|
11
11
|
from .physical._verified import PhysicalDataModel
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
UNVERIFIED_DATA_MODEL_BY_ROLE: dict[
|
|
14
|
+
RoleTypes, type[UnverifiedConceptualDataModel] | type[UnverifiedPhysicalDataModel]
|
|
15
|
+
] = {
|
|
14
16
|
RoleTypes.information: UnverifiedConceptualDataModel,
|
|
15
17
|
RoleTypes.dms: UnverifiedPhysicalDataModel,
|
|
16
18
|
}
|
|
17
|
-
|
|
19
|
+
VERIFIED_DATA_MODEL_BY_ROLE: dict[RoleTypes, type[ConceptualDataModel] | type[PhysicalDataModel]] = {
|
|
18
20
|
RoleTypes.information: ConceptualDataModel,
|
|
19
21
|
RoleTypes.dms: PhysicalDataModel,
|
|
20
22
|
}
|
|
21
23
|
|
|
22
24
|
|
|
23
25
|
__all__ = [
|
|
24
|
-
"
|
|
26
|
+
"UNVERIFIED_DATA_MODEL_BY_ROLE",
|
|
25
27
|
"ConceptualDataModel",
|
|
26
28
|
"DMSSchema",
|
|
27
29
|
"DataModelType",
|
|
@@ -27,29 +27,29 @@ if sys.version_info >= (3, 11):
|
|
|
27
27
|
else:
|
|
28
28
|
from typing_extensions import Self
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
T_BaseDataModel = TypeVar("T_BaseDataModel", bound=BaseVerifiedDataModel)
|
|
31
|
+
T_DataModel = TypeVar("T_DataModel", bound=SchemaModel)
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
@dataclass
|
|
35
|
-
class UnverifiedDataModel(Generic[
|
|
36
|
-
"""Input
|
|
35
|
+
class UnverifiedDataModel(Generic[T_BaseDataModel], ABC):
|
|
36
|
+
"""Input data model are raw data that is not yet validated."""
|
|
37
37
|
|
|
38
38
|
@classmethod
|
|
39
39
|
@abstractmethod
|
|
40
|
-
def _get_verified_cls(cls) -> type[
|
|
40
|
+
def _get_verified_cls(cls) -> type[T_BaseDataModel]:
|
|
41
41
|
raise NotImplementedError("This method should be implemented in the subclass.")
|
|
42
42
|
|
|
43
43
|
@classmethod
|
|
44
44
|
@overload
|
|
45
|
-
def load(cls: "type[
|
|
45
|
+
def load(cls: "type[T_UnverifiedDataModel]", data: dict[str, Any]) -> "T_UnverifiedDataModel": ...
|
|
46
46
|
|
|
47
47
|
@classmethod
|
|
48
48
|
@overload
|
|
49
|
-
def load(cls: "type[
|
|
49
|
+
def load(cls: "type[T_UnverifiedDataModel]", data: None) -> None: ...
|
|
50
50
|
|
|
51
51
|
@classmethod
|
|
52
|
-
def load(cls: "type[
|
|
52
|
+
def load(cls: "type[T_UnverifiedDataModel]", data: dict | None) -> "T_UnverifiedDataModel | None":
|
|
53
53
|
if data is None:
|
|
54
54
|
return None
|
|
55
55
|
return cls._load(data)
|
|
@@ -110,7 +110,7 @@ class UnverifiedDataModel(Generic[T_BaseRules], ABC):
|
|
|
110
110
|
def _dataclass_fields(self) -> list[Field]:
|
|
111
111
|
return list(fields(self))
|
|
112
112
|
|
|
113
|
-
def as_verified_data_model(self) ->
|
|
113
|
+
def as_verified_data_model(self) -> T_BaseDataModel:
|
|
114
114
|
cls_ = self._get_verified_cls()
|
|
115
115
|
return cls_.model_validate(self.dump())
|
|
116
116
|
|
|
@@ -127,14 +127,14 @@ class UnverifiedDataModel(Generic[T_BaseRules], ABC):
|
|
|
127
127
|
return output
|
|
128
128
|
|
|
129
129
|
|
|
130
|
-
|
|
130
|
+
T_UnverifiedDataModel = TypeVar("T_UnverifiedDataModel", bound=UnverifiedDataModel)
|
|
131
131
|
|
|
132
132
|
|
|
133
133
|
@dataclass
|
|
134
|
-
class UnverifiedComponent(ABC, Generic[
|
|
134
|
+
class UnverifiedComponent(ABC, Generic[T_DataModel]):
|
|
135
135
|
@classmethod
|
|
136
136
|
@abstractmethod
|
|
137
|
-
def _get_verified_cls(cls) -> type[
|
|
137
|
+
def _get_verified_cls(cls) -> type[T_DataModel]:
|
|
138
138
|
raise NotImplementedError("This method should be implemented in the subclass.")
|
|
139
139
|
|
|
140
140
|
@classmethod
|