cognite-neat 0.109.4__tar.gz → 0.110.0__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.109.4 → cognite_neat-0.110.0}/PKG-INFO +1 -1
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_alpha.py +2 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/_api/schema.py +17 -1
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/data_classes/schema.py +3 -3
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_constants.py +11 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_classic.py +9 -10
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_iodd.py +3 -3
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_mock_graph_generator.py +9 -7
- cognite_neat-0.110.0/cognite/neat/_graph/loaders/_rdf2dms.py +581 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/queries/_base.py +28 -92
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/transformers/__init__.py +1 -3
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/transformers/_rdfpath.py +2 -49
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/__init__.py +1 -6
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/_base.py +21 -252
- cognite_neat-0.110.0/cognite/neat/_issues/_contextmanagers.py +46 -0
- cognite_neat-0.110.0/cognite/neat/_issues/_factory.py +61 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/errors/__init__.py +18 -4
- cognite_neat-0.110.0/cognite/neat/_issues/errors/_wrapper.py +89 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/formatters.py +4 -4
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/warnings/__init__.py +3 -2
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/warnings/_properties.py +8 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/_constants.py +9 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/_shared.py +3 -2
- cognite_neat-0.110.0/cognite/neat/_rules/analysis/__init__.py +3 -0
- cognite_neat-0.110.0/cognite/neat/_rules/analysis/_base.py +577 -0
- cognite_neat-0.110.0/cognite/neat/_rules/catalog/info-rules-imf.xlsx +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/exporters/_rules2excel.py +2 -8
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/exporters/_rules2instance_template.py +2 -2
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/exporters/_rules2ontology.py +5 -4
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_base.py +2 -47
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_dms2rules.py +7 -10
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_dtdl2rules/dtdl_importer.py +2 -2
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_rdf/_inference2rules.py +59 -25
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_rdf/_shared.py +1 -1
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_spreadsheet2rules.py +12 -9
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/dms/_rules.py +3 -1
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/dms/_rules_input.py +4 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/dms/_validation.py +14 -4
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/entities/_loaders.py +1 -1
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/entities/_multi_value.py +2 -2
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/information/_rules.py +18 -17
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/information/_rules_input.py +2 -1
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/information/_validation.py +3 -1
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/transformers/__init__.py +8 -2
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/transformers/_converters.py +228 -43
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/transformers/_verification.py +5 -10
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_base.py +4 -4
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_prepare.py +12 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_read.py +21 -17
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_show.py +11 -123
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_state.py +0 -2
- cognite_neat-0.110.0/cognite/neat/_session/_subset.py +64 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_to.py +63 -12
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_store/_graph_store.py +5 -246
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/rdf_.py +2 -2
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/spreadsheet.py +44 -1
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/text.py +51 -32
- cognite_neat-0.110.0/cognite/neat/_version.py +2 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/pyproject.toml +2 -2
- cognite_neat-0.109.4/cognite/neat/_graph/loaders/_rdf2dms.py +0 -642
- cognite_neat-0.109.4/cognite/neat/_graph/queries/_construct.py +0 -187
- cognite_neat-0.109.4/cognite/neat/_graph/queries/_shared.py +0 -173
- cognite_neat-0.109.4/cognite/neat/_issues/errors/_wrapper.py +0 -11
- cognite_neat-0.109.4/cognite/neat/_rules/analysis/__init__.py +0 -4
- cognite_neat-0.109.4/cognite/neat/_rules/analysis/_base.py +0 -385
- cognite_neat-0.109.4/cognite/neat/_rules/analysis/_dms.py +0 -57
- cognite_neat-0.109.4/cognite/neat/_rules/analysis/_information.py +0 -249
- cognite_neat-0.109.4/cognite/neat/_rules/catalog/info-rules-imf.xlsx +0 -0
- cognite_neat-0.109.4/cognite/neat/_rules/models/_rdfpath.py +0 -372
- cognite_neat-0.109.4/cognite/neat/_version.py +0 -2
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/LICENSE +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/README.md +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/_api/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/_api/data_modeling_loaders.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/_api_client.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/data_classes/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/data_classes/data_modeling.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/data_classes/neat_sequence.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_client/testing.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_config.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/_shared.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/_tracking/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/_tracking/base.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/_tracking/log.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/examples/Knowledge-Graph-Nordic44-dirty.xml +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/examples/Knowledge-Graph-Nordic44.xml +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/examples/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/examples/skos-capturing-sheet-wind-topics.xlsx +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_base.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_assets.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_base.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_data_sets.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_events.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_files.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_labels.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_relationships.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_sequences.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_classic_cdf/_timeseries.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_dexpi.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_dms.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_dms_graph.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/extractors/_rdf_file.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/loaders/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/loaders/_base.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/queries/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/transformers/_base.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/transformers/_classic_cdf.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/transformers/_iodd.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/transformers/_prune_graph.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_graph/transformers/_value_type.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/errors/_external.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/errors/_general.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/errors/_properties.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/errors/_resources.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/warnings/_external.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/warnings/_general.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/warnings/_models.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/warnings/_resources.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_issues/warnings/user_modeling.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/catalog/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/catalog/classic_model.xlsx +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/catalog/hello_world_pump.xlsx +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/exporters/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/exporters/_base.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/exporters/_rules2dms.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/exporters/_rules2yaml.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/exporters/_validation.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_dtdl2rules/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_dtdl2rules/_unit_lookup.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_dtdl2rules/dtdl_converter.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_dtdl2rules/spec.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_rdf/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_rdf/_base.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_rdf/_imf2rules.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_rdf/_owl2rules.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/importers/_yaml2rules.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/_base_input.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/_base_rules.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/_types.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/data_types.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/dms/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/dms/_exporter.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/entities/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/entities/_constants.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/entities/_single_value.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/entities/_types.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/entities/_wrapped.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/information/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/mapping/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/mapping/_classic2core.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/models/mapping/_classic2core.yaml +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/transformers/_base.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_rules/transformers/_mapping.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_collector.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_create.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_drop.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_fix.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_inspect.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_mapping.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_set.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/_wizard.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/engine/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/engine/_import.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/engine/_interface.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/engine/_load.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_session/exceptions.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_shared.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_store/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_store/_provenance.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_store/_rules_store.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_store/exceptions.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/auth.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/auxiliary.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/collection_.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/graph_transformations_report.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/io_.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/reader/__init__.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/reader/_base.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/time_.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/upload.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/_utils/xml_.py +0 -0
- {cognite_neat-0.109.4 → cognite_neat-0.110.0}/cognite/neat/py.typed +0 -0
|
@@ -13,3 +13,5 @@ class AlphaFlags:
|
|
|
13
13
|
manual_rules_edit = AlphaWarning("enable_manual_edit")
|
|
14
14
|
same_space_properties_only_export = AlphaWarning("same-space-properties-only")
|
|
15
15
|
standardize_naming = AlphaWarning("standardize_naming")
|
|
16
|
+
standardize_space_and_version = AlphaWarning("standardize_space_and_version")
|
|
17
|
+
data_model_subsetting = AlphaWarning("data_model_subsetting")
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
from collections
|
|
1
|
+
from collections import defaultdict
|
|
2
|
+
from collections.abc import Iterable, Sequence
|
|
2
3
|
from typing import TYPE_CHECKING
|
|
3
4
|
|
|
4
5
|
from cognite.client import data_modeling as dm
|
|
5
6
|
|
|
6
7
|
from cognite.neat._client.data_classes.data_modeling import ContainerApplyDict, SpaceApplyDict, ViewApplyDict
|
|
7
8
|
from cognite.neat._client.data_classes.schema import DMSSchema
|
|
9
|
+
from cognite.neat._constants import is_hierarchy_property
|
|
8
10
|
from cognite.neat._issues.errors import NeatValueError
|
|
9
11
|
|
|
10
12
|
if TYPE_CHECKING:
|
|
@@ -110,3 +112,17 @@ class SchemaAPI:
|
|
|
110
112
|
views=view_write,
|
|
111
113
|
containers=container_write,
|
|
112
114
|
)
|
|
115
|
+
|
|
116
|
+
@staticmethod
|
|
117
|
+
def get_hierarchical_properties(
|
|
118
|
+
views: Iterable[dm.View | dm.ViewApply],
|
|
119
|
+
) -> dict[dm.ViewId, set[str]]:
|
|
120
|
+
"""Sorts the views by container constraints."""
|
|
121
|
+
hierarchical_properties_by_view_id: dict[dm.ViewId, set[str]] = defaultdict(set)
|
|
122
|
+
for view in views:
|
|
123
|
+
for prop_id, prop in (view.properties or {}).items():
|
|
124
|
+
if not isinstance(prop, dm.MappedProperty | dm.MappedPropertyApply):
|
|
125
|
+
continue
|
|
126
|
+
if is_hierarchy_property(prop.container, prop.container_property_identifier):
|
|
127
|
+
hierarchical_properties_by_view_id[view.as_id()].add(prop_id)
|
|
128
|
+
return hierarchical_properties_by_view_id
|
|
@@ -34,7 +34,7 @@ from cognite.neat._issues.warnings import (
|
|
|
34
34
|
FileTypeUnexpectedWarning,
|
|
35
35
|
ResourcesDuplicatedWarning,
|
|
36
36
|
)
|
|
37
|
-
from cognite.neat._utils.text import
|
|
37
|
+
from cognite.neat._utils.text import to_camel_case
|
|
38
38
|
|
|
39
39
|
if sys.version_info >= (3, 11):
|
|
40
40
|
from typing import Self
|
|
@@ -238,7 +238,7 @@ class DMSSchema:
|
|
|
238
238
|
data_dict = data
|
|
239
239
|
loaded: dict[str, Any] = {}
|
|
240
240
|
for attr in fields(cls):
|
|
241
|
-
if items := data_dict.get(attr.name) or data_dict.get(
|
|
241
|
+
if items := data_dict.get(attr.name) or data_dict.get(to_camel_case(attr.name)):
|
|
242
242
|
if attr.name == "data_model":
|
|
243
243
|
if isinstance(items, list) and len(items) > 1:
|
|
244
244
|
try:
|
|
@@ -320,7 +320,7 @@ class DMSSchema:
|
|
|
320
320
|
cls_fields = sorted(fields(self), key=lambda f: f.name) if sort else fields(self)
|
|
321
321
|
for attr in cls_fields:
|
|
322
322
|
if items := getattr(self, attr.name):
|
|
323
|
-
key =
|
|
323
|
+
key = to_camel_case(attr.name) if camel_case else attr.name
|
|
324
324
|
if isinstance(items, CogniteResourceDict):
|
|
325
325
|
if sort:
|
|
326
326
|
output[key] = [
|
|
@@ -164,11 +164,22 @@ READONLY_PROPERTIES_BY_CONTAINER: Mapping[dm.ContainerId, frozenset[str]] = {
|
|
|
164
164
|
dm.ContainerId("cdf_cdm", "CogniteFile"): frozenset({"isUploaded", "uploadedTime"}),
|
|
165
165
|
}
|
|
166
166
|
|
|
167
|
+
HIERARCHICAL_PROPERTIES_BY_CONTAINER: Mapping[dm.ContainerId, frozenset[str]] = {
|
|
168
|
+
dm.ContainerId("cdf_cdm", "CogniteAsset"): frozenset({"assetHierarchy_parent"})
|
|
169
|
+
}
|
|
170
|
+
|
|
167
171
|
|
|
168
172
|
def is_readonly_property(container: dm.ContainerId, property_: str) -> bool:
|
|
169
173
|
return container in READONLY_PROPERTIES_BY_CONTAINER and property_ in READONLY_PROPERTIES_BY_CONTAINER[container]
|
|
170
174
|
|
|
171
175
|
|
|
176
|
+
def is_hierarchy_property(container: dm.ContainerId, property_: str) -> bool:
|
|
177
|
+
return (
|
|
178
|
+
container in HIERARCHICAL_PROPERTIES_BY_CONTAINER
|
|
179
|
+
and property_ in HIERARCHICAL_PROPERTIES_BY_CONTAINER[container]
|
|
180
|
+
)
|
|
181
|
+
|
|
182
|
+
|
|
172
183
|
DMS_RESERVED_PROPERTIES = frozenset(
|
|
173
184
|
{
|
|
174
185
|
"createdTime",
|
|
@@ -16,12 +16,10 @@ from cognite.neat._issues.warnings import CDFAuthWarning, NeatValueWarning
|
|
|
16
16
|
from cognite.neat._rules._shared import ReadRules
|
|
17
17
|
from cognite.neat._rules.catalog import classic_model
|
|
18
18
|
from cognite.neat._rules.models import InformationInputRules, InformationRules
|
|
19
|
-
from cognite.neat._rules.models._rdfpath import Entity as RDFPathEntity
|
|
20
|
-
from cognite.neat._rules.models._rdfpath import RDFPath, SingleProperty
|
|
21
19
|
from cognite.neat._shared import Triple
|
|
22
20
|
from cognite.neat._utils.collection_ import chunker, iterate_progress_bar
|
|
23
21
|
from cognite.neat._utils.rdf_ import remove_namespace_from_uri
|
|
24
|
-
from cognite.neat._utils.text import
|
|
22
|
+
from cognite.neat._utils.text import to_snake_case
|
|
25
23
|
|
|
26
24
|
from ._assets import AssetsExtractor
|
|
27
25
|
from ._base import ClassicCDFBaseExtractor, InstanceIdPrefix
|
|
@@ -194,13 +192,14 @@ class ClassicGraphExtractor(KnowledgeGraphExtractor):
|
|
|
194
192
|
for prop in verified.properties:
|
|
195
193
|
prop_id = prop.property_
|
|
196
194
|
if is_snake_case:
|
|
197
|
-
prop_id =
|
|
198
|
-
prop.instance_source =
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
)
|
|
203
|
-
|
|
195
|
+
prop_id = to_snake_case(prop_id)
|
|
196
|
+
prop.instance_source = [self._namespace[prop_id]]
|
|
197
|
+
for cls_ in verified.classes:
|
|
198
|
+
cls_id = cls_.class_.suffix
|
|
199
|
+
if is_snake_case:
|
|
200
|
+
cls_id = to_snake_case(cls_id)
|
|
201
|
+
cls_.instance_source = self._namespace[cls_id]
|
|
202
|
+
|
|
204
203
|
return verified
|
|
205
204
|
|
|
206
205
|
@property
|
|
@@ -14,7 +14,7 @@ from cognite.neat._graph.extractors._base import BaseExtractor
|
|
|
14
14
|
from cognite.neat._issues.errors import FileReadError, NeatValueError
|
|
15
15
|
from cognite.neat._shared import Triple
|
|
16
16
|
from cognite.neat._utils.rdf_ import remove_namespace_from_uri
|
|
17
|
-
from cognite.neat._utils.text import
|
|
17
|
+
from cognite.neat._utils.text import to_camel_case
|
|
18
18
|
from cognite.neat._utils.xml_ import get_children
|
|
19
19
|
|
|
20
20
|
IODD = Namespace("http://www.io-link.com/IODD/2010/10/")
|
|
@@ -170,7 +170,7 @@ class IODDExtractor(BaseExtractor):
|
|
|
170
170
|
):
|
|
171
171
|
if text_id := child[0].attrib.get("textId"):
|
|
172
172
|
# Create connection from device to textId node
|
|
173
|
-
element_tag =
|
|
173
|
+
element_tag = to_camel_case(element_tag)
|
|
174
174
|
triples.append((id, IODD[element_tag], namespace[text_id]))
|
|
175
175
|
|
|
176
176
|
return triples
|
|
@@ -216,7 +216,7 @@ class IODDExtractor(BaseExtractor):
|
|
|
216
216
|
if id := element.attrib.get("id"):
|
|
217
217
|
if id in cls.std_variable_elements_to_extract:
|
|
218
218
|
if object := element.attrib.get("defaultValue"):
|
|
219
|
-
predicate =
|
|
219
|
+
predicate = to_camel_case(id.replace("V_", ""))
|
|
220
220
|
triples.append((device_id, IODD[predicate], Literal(object)))
|
|
221
221
|
return triples
|
|
222
222
|
|
|
@@ -12,11 +12,12 @@ import pandas as pd
|
|
|
12
12
|
from rdflib import RDF, Literal, Namespace, URIRef
|
|
13
13
|
|
|
14
14
|
from cognite.neat._rules._constants import EntityTypes
|
|
15
|
-
from cognite.neat._rules.analysis import
|
|
15
|
+
from cognite.neat._rules.analysis import RulesAnalysis
|
|
16
16
|
from cognite.neat._rules.models import DMSRules, InformationRules
|
|
17
17
|
from cognite.neat._rules.models.data_types import DataType
|
|
18
18
|
from cognite.neat._rules.models.entities import ClassEntity
|
|
19
19
|
from cognite.neat._rules.models.information import InformationProperty
|
|
20
|
+
from cognite.neat._rules.transformers import SubsetInformationRules
|
|
20
21
|
from cognite.neat._shared import Triple
|
|
21
22
|
from cognite.neat._utils.rdf_ import remove_namespace_from_uri
|
|
22
23
|
|
|
@@ -54,7 +55,7 @@ class MockGraphGenerator(BaseExtractor):
|
|
|
54
55
|
|
|
55
56
|
if not class_count:
|
|
56
57
|
self.class_count = {
|
|
57
|
-
class_: 1 for class_ in
|
|
58
|
+
class_: 1 for class_ in RulesAnalysis(self.rules).defined_classes(include_ancestors=True)
|
|
58
59
|
}
|
|
59
60
|
elif all(isinstance(key, str) for key in class_count.keys()):
|
|
60
61
|
self.class_count = {
|
|
@@ -104,7 +105,8 @@ def generate_triples(
|
|
|
104
105
|
"""
|
|
105
106
|
|
|
106
107
|
namespace = rules.metadata.namespace
|
|
107
|
-
|
|
108
|
+
analysis = RulesAnalysis(rules)
|
|
109
|
+
defined_classes = analysis.defined_classes(include_ancestors=True)
|
|
108
110
|
|
|
109
111
|
if non_existing_classes := set(class_count.keys()) - defined_classes:
|
|
110
112
|
msg = f"Class count contains classes {non_existing_classes} for which properties are not defined in Data Model!"
|
|
@@ -118,16 +120,16 @@ def generate_triples(
|
|
|
118
120
|
|
|
119
121
|
# Subset data model to only classes that are defined in class count
|
|
120
122
|
rules = (
|
|
121
|
-
|
|
123
|
+
SubsetInformationRules(classes=set(class_count.keys())).transform(rules)
|
|
122
124
|
if defined_classes != set(class_count.keys())
|
|
123
125
|
else rules
|
|
124
126
|
)
|
|
125
127
|
|
|
126
|
-
class_linkage =
|
|
128
|
+
class_linkage = analysis.class_linkage().to_pandas()
|
|
127
129
|
|
|
128
130
|
# Remove one of symmetric pairs from class linkage to maintain proper linking
|
|
129
131
|
# among instances of symmetrically linked classes
|
|
130
|
-
if sym_pairs :=
|
|
132
|
+
if sym_pairs := analysis.symmetrically_connected_classes():
|
|
131
133
|
class_linkage = _remove_higher_occurring_sym_pair(class_linkage, sym_pairs)
|
|
132
134
|
|
|
133
135
|
# Remove any of symmetric pairs containing classes that are not present class count
|
|
@@ -137,7 +139,7 @@ def generate_triples(
|
|
|
137
139
|
generation_order = _prettify_generation_order(_get_generation_order(class_linkage))
|
|
138
140
|
|
|
139
141
|
# Generated simple view of data model
|
|
140
|
-
class_property_pairs =
|
|
142
|
+
class_property_pairs = analysis.properties_by_class(include_ancestors=True)
|
|
141
143
|
|
|
142
144
|
# pregenerate instance ids for each remaining class
|
|
143
145
|
instance_ids = {
|