cognite-neat 0.106.0__py3-none-any.whl → 0.107.0__py3-none-any.whl
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/_graph/extractors/__init__.py +5 -1
- cognite/neat/_graph/extractors/_base.py +32 -0
- cognite/neat/_graph/extractors/_classic_cdf/_base.py +16 -3
- cognite/neat/_graph/extractors/_classic_cdf/_classic.py +74 -7
- cognite/neat/_graph/extractors/_classic_cdf/_relationships.py +2 -0
- cognite/neat/_graph/extractors/_classic_cdf/_sequences.py +8 -1
- cognite/neat/_graph/extractors/_dms.py +48 -14
- cognite/neat/_graph/extractors/_dms_graph.py +149 -0
- cognite/neat/_graph/extractors/_rdf_file.py +32 -5
- cognite/neat/_graph/loaders/_rdf2dms.py +112 -18
- cognite/neat/_graph/queries/_construct.py +1 -1
- cognite/neat/_graph/transformers/__init__.py +5 -0
- cognite/neat/_graph/transformers/_base.py +9 -1
- cognite/neat/_graph/transformers/_classic_cdf.py +90 -3
- cognite/neat/_graph/transformers/_rdfpath.py +3 -3
- cognite/neat/_graph/transformers/_value_type.py +54 -44
- cognite/neat/_rules/analysis/_base.py +1 -1
- cognite/neat/_rules/analysis/_information.py +14 -13
- cognite/neat/_rules/catalog/__init__.py +1 -0
- cognite/neat/_rules/catalog/classic_model.xlsx +0 -0
- cognite/neat/_rules/catalog/info-rules-imf.xlsx +0 -0
- cognite/neat/_rules/importers/_dms2rules.py +7 -5
- cognite/neat/_rules/importers/_rdf/_inference2rules.py +1 -1
- cognite/neat/_rules/models/_base_rules.py +0 -12
- cognite/neat/_rules/models/_types.py +5 -0
- cognite/neat/_rules/models/dms/_rules.py +50 -2
- cognite/neat/_rules/models/information/_rules.py +48 -5
- cognite/neat/_rules/models/information/_rules_input.py +1 -1
- cognite/neat/_rules/models/mapping/_classic2core.py +4 -5
- cognite/neat/_rules/transformers/__init__.py +4 -0
- cognite/neat/_rules/transformers/_converters.py +209 -62
- cognite/neat/_session/_base.py +2 -6
- cognite/neat/_session/_mapping.py +17 -6
- cognite/neat/_session/_prepare.py +0 -47
- cognite/neat/_session/_read.py +63 -5
- cognite/neat/_session/_state.py +7 -0
- cognite/neat/_session/_to.py +40 -2
- cognite/neat/_session/exceptions.py +7 -3
- cognite/neat/_store/_graph_store.py +52 -11
- cognite/neat/_store/_rules_store.py +22 -0
- cognite/neat/_utils/auth.py +2 -0
- cognite/neat/_version.py +1 -1
- {cognite_neat-0.106.0.dist-info → cognite_neat-0.107.0.dist-info}/METADATA +2 -2
- {cognite_neat-0.106.0.dist-info → cognite_neat-0.107.0.dist-info}/RECORD +47 -45
- {cognite_neat-0.106.0.dist-info → cognite_neat-0.107.0.dist-info}/WHEEL +1 -1
- {cognite_neat-0.106.0.dist-info → cognite_neat-0.107.0.dist-info}/LICENSE +0 -0
- {cognite_neat-0.106.0.dist-info → cognite_neat-0.107.0.dist-info}/entry_points.txt +0 -0
cognite/neat/_session/_read.py
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
from typing import Any, Literal, cast
|
|
2
2
|
|
|
3
3
|
from cognite.client.data_classes.data_modeling import DataModelId, DataModelIdentifier
|
|
4
|
+
from cognite.client.utils.useful_types import SequenceNotStr
|
|
4
5
|
|
|
5
6
|
from cognite.neat._client import NeatClient
|
|
7
|
+
from cognite.neat._constants import CLASSIC_CDF_NAMESPACE
|
|
6
8
|
from cognite.neat._graph import examples as instances_examples
|
|
7
9
|
from cognite.neat._graph import extractors
|
|
10
|
+
from cognite.neat._graph.transformers import ConvertLiteral, LiteralToEntity, LookupRelationshipSourceTarget
|
|
8
11
|
from cognite.neat._issues import IssueList
|
|
9
12
|
from cognite.neat._issues.errors import NeatValueError
|
|
10
13
|
from cognite.neat._issues.warnings import MissingCogniteClientWarning
|
|
11
14
|
from cognite.neat._rules import catalog, importers
|
|
12
15
|
from cognite.neat._rules.importers import BaseImporter
|
|
16
|
+
from cognite.neat._rules.transformers import ClassicPrepareCore
|
|
13
17
|
from cognite.neat._utils.reader import NeatReader
|
|
14
18
|
|
|
15
19
|
from ._state import SessionState
|
|
@@ -32,6 +36,22 @@ class ReadAPI:
|
|
|
32
36
|
self.yaml = YamlReadAPI(state, verbose)
|
|
33
37
|
self.xml = XMLReadAPI(state, verbose)
|
|
34
38
|
|
|
39
|
+
def session(self, io: Any) -> None:
|
|
40
|
+
"""Reads a Neat Session from a zip file.
|
|
41
|
+
|
|
42
|
+
Args:
|
|
43
|
+
io: file path to the Neat Session
|
|
44
|
+
|
|
45
|
+
Example:
|
|
46
|
+
```python
|
|
47
|
+
neat.read.session("path_to_neat_session")
|
|
48
|
+
```
|
|
49
|
+
"""
|
|
50
|
+
reader = NeatReader.create(io)
|
|
51
|
+
path = reader.materialize_path()
|
|
52
|
+
|
|
53
|
+
self._state.instances.store.write(extractors.RdfFileExtractor.from_zip(path))
|
|
54
|
+
|
|
35
55
|
|
|
36
56
|
@session_class_wrapper
|
|
37
57
|
class BaseReadAPI:
|
|
@@ -78,6 +98,24 @@ class CDFReadAPI(BaseReadAPI):
|
|
|
78
98
|
importer = importers.DMSImporter.from_data_model_id(self._get_client, data_model_id)
|
|
79
99
|
return self._state.rule_import(importer)
|
|
80
100
|
|
|
101
|
+
def graph(
|
|
102
|
+
self, data_model_id: DataModelIdentifier, instance_space: str | SequenceNotStr[str] | None = None
|
|
103
|
+
) -> IssueList:
|
|
104
|
+
"""Reads a knowledge graph from Cognite Data Fusion (CDF).
|
|
105
|
+
|
|
106
|
+
Args:
|
|
107
|
+
data_model_id: Tuple of strings with the id of a CDF Data Model.
|
|
108
|
+
instance_space: The instance spaces to extract. If None, all instance spaces are extracted.
|
|
109
|
+
|
|
110
|
+
Returns:
|
|
111
|
+
IssueList: A list of issues that occurred during the extraction.
|
|
112
|
+
|
|
113
|
+
"""
|
|
114
|
+
extractor = extractors.DMSGraphExtractor.from_data_model_id(
|
|
115
|
+
data_model_id, self._get_client, instance_space=instance_space
|
|
116
|
+
)
|
|
117
|
+
return self._state.write_graph(extractor)
|
|
118
|
+
|
|
81
119
|
|
|
82
120
|
@session_class_wrapper
|
|
83
121
|
class CDFClassicAPI(BaseReadAPI):
|
|
@@ -135,16 +173,37 @@ class CDFClassicAPI(BaseReadAPI):
|
|
|
135
173
|
```python
|
|
136
174
|
neat.read.cdf.graph("root_asset_external_id")
|
|
137
175
|
```
|
|
138
|
-
|
|
139
176
|
"""
|
|
177
|
+
namespace = CLASSIC_CDF_NAMESPACE
|
|
140
178
|
extractor = extractors.ClassicGraphExtractor(
|
|
141
|
-
self._get_client,
|
|
179
|
+
self._get_client,
|
|
180
|
+
root_asset_external_id=root_asset_external_id,
|
|
181
|
+
limit_per_type=limit_per_type,
|
|
182
|
+
namespace=namespace,
|
|
183
|
+
prefix="Classic",
|
|
142
184
|
)
|
|
143
|
-
|
|
144
|
-
issues = self._state.instances.store.write(extractor)
|
|
185
|
+
issues = self._state.write_graph(extractor)
|
|
145
186
|
issues.action = "Read Classic Graph"
|
|
146
187
|
if issues:
|
|
147
188
|
print("Use the .inspect.issues() for more details")
|
|
189
|
+
|
|
190
|
+
# Converting the instances from classic to core
|
|
191
|
+
self._state.instances.store.transform(LookupRelationshipSourceTarget(namespace, "Classic"))
|
|
192
|
+
self._state.instances.store.transform(
|
|
193
|
+
ConvertLiteral(
|
|
194
|
+
namespace["ClassicTimeSeries"],
|
|
195
|
+
namespace["isString"],
|
|
196
|
+
lambda is_string: "string" if is_string else "numeric",
|
|
197
|
+
)
|
|
198
|
+
)
|
|
199
|
+
self._state.instances.store.transform(
|
|
200
|
+
LiteralToEntity(None, namespace["source"], "ClassicSourceSystem", "name"),
|
|
201
|
+
)
|
|
202
|
+
# Updating the information model.
|
|
203
|
+
self._state.rule_store.transform(ClassicPrepareCore(namespace))
|
|
204
|
+
# Update the instance store with the latest rules
|
|
205
|
+
information_rules = self._state.rule_store.last_verified_information_rules
|
|
206
|
+
self._state.instances.store.rules = information_rules
|
|
148
207
|
return issues
|
|
149
208
|
|
|
150
209
|
|
|
@@ -396,7 +455,6 @@ class RDFExamples:
|
|
|
396
455
|
def __init__(self, state: SessionState) -> None:
|
|
397
456
|
self._state = state
|
|
398
457
|
|
|
399
|
-
@property
|
|
400
458
|
def nordic44(self) -> IssueList:
|
|
401
459
|
"""Reads the Nordic 44 knowledge graph into the NeatSession graph store."""
|
|
402
460
|
self._state.instances.store.write(extractors.RdfFileExtractor(instances_examples.nordic44_knowledge_graph))
|
cognite/neat/_session/_state.py
CHANGED
|
@@ -2,6 +2,7 @@ from dataclasses import dataclass, field
|
|
|
2
2
|
from typing import Literal, cast
|
|
3
3
|
|
|
4
4
|
from cognite.neat._client import NeatClient
|
|
5
|
+
from cognite.neat._graph.extractors import KnowledgeGraphExtractor
|
|
5
6
|
from cognite.neat._issues import IssueList
|
|
6
7
|
from cognite.neat._rules.importers import BaseImporter, InferenceImporter
|
|
7
8
|
from cognite.neat._rules.models import DMSRules, InformationRules
|
|
@@ -62,6 +63,12 @@ class SessionState:
|
|
|
62
63
|
issues.hint = "Use the .inspect.issues() for more details."
|
|
63
64
|
return issues
|
|
64
65
|
|
|
66
|
+
def write_graph(self, extractor: KnowledgeGraphExtractor) -> IssueList:
|
|
67
|
+
self.instances.store.write(extractor)
|
|
68
|
+
issue_list = self.rule_store.import_graph(extractor)
|
|
69
|
+
self.instances.store.add_rules(self.rule_store.last_verified_information_rules)
|
|
70
|
+
return issue_list
|
|
71
|
+
|
|
65
72
|
|
|
66
73
|
@dataclass
|
|
67
74
|
class InstancesState:
|
cognite/neat/_session/_to.py
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import warnings
|
|
2
|
+
import zipfile
|
|
1
3
|
from collections.abc import Collection
|
|
2
4
|
from pathlib import Path
|
|
3
5
|
from typing import Any, Literal, overload
|
|
@@ -80,11 +82,47 @@ class ToAPI:
|
|
|
80
82
|
exporter = exporters.ExcelExporter(styling="maximal", reference_rules_with_prefix=reference_rules_with_prefix)
|
|
81
83
|
return self._state.rule_store.export_to_file(exporter, Path(io))
|
|
82
84
|
|
|
85
|
+
def session(self, io: Any) -> None:
|
|
86
|
+
"""Export the current session to a file.
|
|
87
|
+
|
|
88
|
+
Args:
|
|
89
|
+
io: The file path to file-like object to write the session to.
|
|
90
|
+
|
|
91
|
+
Example:
|
|
92
|
+
Export the session to a file
|
|
93
|
+
```python
|
|
94
|
+
session_file_name = "neat_session.zip"
|
|
95
|
+
neat.to.session(session_file_name)
|
|
96
|
+
```
|
|
97
|
+
"""
|
|
98
|
+
filepath = Path(io)
|
|
99
|
+
if filepath.suffix not in {".zip"}:
|
|
100
|
+
warnings.warn("File extension is not .zip, adding it to the file name", stacklevel=2)
|
|
101
|
+
filepath = filepath.with_suffix(".zip")
|
|
102
|
+
|
|
103
|
+
filepath.parent.mkdir(exist_ok=True, parents=True)
|
|
104
|
+
|
|
105
|
+
with zipfile.ZipFile(filepath, "w") as zip_ref:
|
|
106
|
+
zip_ref.writestr(
|
|
107
|
+
"neat-session/instances/instances.ttl",
|
|
108
|
+
self._state.instances.store.serialize(),
|
|
109
|
+
)
|
|
110
|
+
|
|
83
111
|
@overload
|
|
84
|
-
def yaml(
|
|
112
|
+
def yaml(
|
|
113
|
+
self,
|
|
114
|
+
io: None,
|
|
115
|
+
format: Literal["neat"] = "neat",
|
|
116
|
+
skip_system_spaces: bool = True,
|
|
117
|
+
) -> str: ...
|
|
85
118
|
|
|
86
119
|
@overload
|
|
87
|
-
def yaml(
|
|
120
|
+
def yaml(
|
|
121
|
+
self,
|
|
122
|
+
io: Any,
|
|
123
|
+
format: Literal["neat", "toolkit"] = "neat",
|
|
124
|
+
skip_system_spaces: bool = True,
|
|
125
|
+
) -> None: ...
|
|
88
126
|
|
|
89
127
|
def yaml(
|
|
90
128
|
self, io: Any | None = None, format: Literal["neat", "toolkit"] = "neat", skip_system_spaces: bool = True
|
|
@@ -2,17 +2,21 @@ import functools
|
|
|
2
2
|
from collections.abc import Callable
|
|
3
3
|
from typing import Any
|
|
4
4
|
|
|
5
|
-
from cognite.neat._issues.errors import CDFMissingClientError
|
|
5
|
+
from cognite.neat._issues.errors import CDFMissingClientError, NeatImportError
|
|
6
6
|
|
|
7
7
|
from ._collector import _COLLECTOR
|
|
8
8
|
|
|
9
9
|
try:
|
|
10
10
|
from rich import print
|
|
11
|
+
from rich.markup import escape
|
|
11
12
|
|
|
12
13
|
_PREFIX = "[bold red][ERROR][/bold red]"
|
|
13
14
|
except ImportError:
|
|
14
15
|
_PREFIX = "[ERROR]"
|
|
15
16
|
|
|
17
|
+
def escape(x: Any, *_: Any, **__: Any) -> Any: # type: ignore[misc]
|
|
18
|
+
return x
|
|
19
|
+
|
|
16
20
|
|
|
17
21
|
class NeatSessionError(Exception):
|
|
18
22
|
"""Base class for all exceptions raised by the NeatSession class."""
|
|
@@ -29,8 +33,8 @@ def _session_method_wrapper(func: Callable, cls_name: str):
|
|
|
29
33
|
except NeatSessionError as e:
|
|
30
34
|
action = _get_action()
|
|
31
35
|
print(f"{_PREFIX} Cannot {action}: {e}")
|
|
32
|
-
except CDFMissingClientError as e:
|
|
33
|
-
print(f"{_PREFIX} {e.as_message()}")
|
|
36
|
+
except (CDFMissingClientError, NeatImportError) as e:
|
|
37
|
+
print(f"{_PREFIX} {escape(e.as_message())}")
|
|
34
38
|
except ModuleNotFoundError as e:
|
|
35
39
|
if e.name == "neatengine":
|
|
36
40
|
action = _get_action()
|
|
@@ -3,7 +3,8 @@ import warnings
|
|
|
3
3
|
from collections.abc import Iterable
|
|
4
4
|
from datetime import datetime, timezone
|
|
5
5
|
from pathlib import Path
|
|
6
|
-
from typing import cast
|
|
6
|
+
from typing import cast, overload
|
|
7
|
+
from zipfile import ZipExtFile
|
|
7
8
|
|
|
8
9
|
import pandas as pd
|
|
9
10
|
from pandas import Index
|
|
@@ -74,6 +75,32 @@ class NeatGraphStore:
|
|
|
74
75
|
"Return type of the graph store"
|
|
75
76
|
return type(self.graph.store).__name__
|
|
76
77
|
|
|
78
|
+
# no destination
|
|
79
|
+
@overload
|
|
80
|
+
def serialize(self, filepath: None = None) -> str: ...
|
|
81
|
+
|
|
82
|
+
# with destination
|
|
83
|
+
@overload
|
|
84
|
+
def serialize(self, filepath: Path) -> None: ...
|
|
85
|
+
|
|
86
|
+
def serialize(self, filepath: Path | None = None) -> None | str:
|
|
87
|
+
"""Serialize the graph store to a file.
|
|
88
|
+
|
|
89
|
+
Args:
|
|
90
|
+
filepath: File path to serialize the graph store to
|
|
91
|
+
|
|
92
|
+
Returns:
|
|
93
|
+
Serialized graph store
|
|
94
|
+
"""
|
|
95
|
+
if filepath:
|
|
96
|
+
self.graph.serialize(
|
|
97
|
+
filepath,
|
|
98
|
+
format="ox-trig" if self.type_ == "OxigraphStore" else "turtle",
|
|
99
|
+
)
|
|
100
|
+
return None
|
|
101
|
+
else:
|
|
102
|
+
return self.graph.serialize(format="ox-trig" if self.type_ == "OxigraphStore" else "turtle")
|
|
103
|
+
|
|
77
104
|
def add_rules(self, rules: InformationRules) -> None:
|
|
78
105
|
"""This method is used to add rules to the graph store and it is the only correct
|
|
79
106
|
way to add rules to the graph store, after the graph store has been initialized.
|
|
@@ -166,6 +193,8 @@ class NeatGraphStore:
|
|
|
166
193
|
|
|
167
194
|
if isinstance(extractor, RdfFileExtractor) and not extractor.issue_list.has_errors:
|
|
168
195
|
self._parse_file(extractor.filepath, cast(str, extractor.format), extractor.base_uri)
|
|
196
|
+
if isinstance(extractor.filepath, ZipExtFile):
|
|
197
|
+
extractor.filepath.close()
|
|
169
198
|
elif isinstance(extractor, RdfFileExtractor):
|
|
170
199
|
success = False
|
|
171
200
|
issue_text = "\n".join([issue.as_message() for issue in extractor.issue_list])
|
|
@@ -207,16 +236,28 @@ class NeatGraphStore:
|
|
|
207
236
|
"Multi typed instances detected, issues with loading can occur!",
|
|
208
237
|
stacklevel=2,
|
|
209
238
|
)
|
|
210
|
-
|
|
211
|
-
if cls :=
|
|
239
|
+
analysis = InformationAnalysis(self.rules)
|
|
240
|
+
if cls := analysis.classes_by_neat_id.get(class_neat_id):
|
|
212
241
|
if property_link_pairs:
|
|
213
242
|
property_renaming_config = {
|
|
214
243
|
prop_uri: prop_name
|
|
215
244
|
for prop_name, prop_neat_id in property_link_pairs.items()
|
|
216
|
-
if (
|
|
217
|
-
prop_uri := InformationAnalysis(self.rules).neat_id_to_transformation_property_uri(prop_neat_id)
|
|
218
|
-
)
|
|
245
|
+
if (prop_uri := analysis.neat_id_to_instance_source_property_uri(prop_neat_id))
|
|
219
246
|
}
|
|
247
|
+
if information_properties := analysis.classes_with_properties(consider_inheritance=True).get(
|
|
248
|
+
cls.class_
|
|
249
|
+
):
|
|
250
|
+
for prop in information_properties:
|
|
251
|
+
if prop.neatId is None:
|
|
252
|
+
continue
|
|
253
|
+
# Include renaming done in the Information rules that are not present in the
|
|
254
|
+
# property_link_pairs. The use case for this renaming to startNode and endNode
|
|
255
|
+
# properties that are not part of DMSRules but will typically be present
|
|
256
|
+
# in the Information rules.
|
|
257
|
+
if (
|
|
258
|
+
uri := analysis.neat_id_to_instance_source_property_uri(prop.neatId)
|
|
259
|
+
) and uri not in property_renaming_config:
|
|
260
|
+
property_renaming_config[uri] = prop.property_
|
|
220
261
|
|
|
221
262
|
yield from self._read_via_class_entity(cls.class_, property_renaming_config)
|
|
222
263
|
return
|
|
@@ -355,7 +396,7 @@ class NeatGraphStore:
|
|
|
355
396
|
|
|
356
397
|
def _parse_file(
|
|
357
398
|
self,
|
|
358
|
-
filepath: Path,
|
|
399
|
+
filepath: Path | ZipExtFile,
|
|
359
400
|
format: str = "turtle",
|
|
360
401
|
base_uri: URIRef | None = None,
|
|
361
402
|
) -> None:
|
|
@@ -375,12 +416,12 @@ class NeatGraphStore:
|
|
|
375
416
|
"""
|
|
376
417
|
|
|
377
418
|
# Oxigraph store, do not want to type hint this as it is an optional dependency
|
|
378
|
-
if
|
|
419
|
+
if self.type_ == "OxigraphStore":
|
|
379
420
|
local_import("pyoxigraph", "oxi")
|
|
380
421
|
|
|
381
422
|
# this is necessary to trigger rdflib oxigraph plugin
|
|
382
423
|
self.graph.parse(
|
|
383
|
-
filepath,
|
|
424
|
+
filepath, # type: ignore[arg-type]
|
|
384
425
|
format=rdflib_to_oxi_type(format),
|
|
385
426
|
transactional=False,
|
|
386
427
|
publicID=base_uri,
|
|
@@ -389,8 +430,8 @@ class NeatGraphStore:
|
|
|
389
430
|
|
|
390
431
|
# All other stores
|
|
391
432
|
else:
|
|
392
|
-
if filepath.is_file():
|
|
393
|
-
self.graph.parse(filepath, publicID=base_uri)
|
|
433
|
+
if isinstance(filepath, ZipExtFile) or filepath.is_file():
|
|
434
|
+
self.graph.parse(filepath, publicID=base_uri) # type: ignore[arg-type]
|
|
394
435
|
else:
|
|
395
436
|
for filename in filepath.iterdir():
|
|
396
437
|
if filename.is_file():
|
|
@@ -11,6 +11,7 @@ import rdflib
|
|
|
11
11
|
|
|
12
12
|
from cognite.neat._client import NeatClient
|
|
13
13
|
from cognite.neat._constants import DEFAULT_NAMESPACE
|
|
14
|
+
from cognite.neat._graph.extractors import DMSGraphExtractor, KnowledgeGraphExtractor
|
|
14
15
|
from cognite.neat._issues import IssueList, catch_issues
|
|
15
16
|
from cognite.neat._issues.errors import NeatValueError
|
|
16
17
|
from cognite.neat._rules._shared import ReadRules, Rules, T_VerifiedRules, VerifiedRules
|
|
@@ -73,6 +74,18 @@ class NeatRulesStore:
|
|
|
73
74
|
)
|
|
74
75
|
return self._do_activity(importer.to_rules, agent, source_entity, importer.description)[1]
|
|
75
76
|
|
|
77
|
+
def import_graph(self, extractor: KnowledgeGraphExtractor) -> IssueList:
|
|
78
|
+
agent = extractor.agent
|
|
79
|
+
source_entity = Entity(
|
|
80
|
+
was_attributed_to=UNKNOWN_AGENT,
|
|
81
|
+
id_=extractor.source_uri,
|
|
82
|
+
)
|
|
83
|
+
_, issues = self._do_activity(extractor.get_information_rules, agent, source_entity, extractor.description)
|
|
84
|
+
if isinstance(extractor, DMSGraphExtractor):
|
|
85
|
+
_, dms_issues = self._do_activity(extractor.get_dms_rules, agent, source_entity, extractor.description)
|
|
86
|
+
issues.extend(dms_issues)
|
|
87
|
+
return issues
|
|
88
|
+
|
|
76
89
|
def transform(self, *transformer: RulesTransformer) -> IssueList:
|
|
77
90
|
if not self.provenance:
|
|
78
91
|
raise EmptyStore()
|
|
@@ -365,6 +378,15 @@ class NeatRulesStore:
|
|
|
365
378
|
return change.target_entity.result
|
|
366
379
|
raise NeatValueError("No verified DMS rules found in the provenance.")
|
|
367
380
|
|
|
381
|
+
@property
|
|
382
|
+
def last_verified_information_rules(self) -> InformationRules:
|
|
383
|
+
for change in reversed(self.provenance):
|
|
384
|
+
if isinstance(change.target_entity, ModelEntity) and isinstance(
|
|
385
|
+
change.target_entity.result, InformationRules
|
|
386
|
+
):
|
|
387
|
+
return change.target_entity.result
|
|
388
|
+
raise NeatValueError("No verified information rules found in the provenance.")
|
|
389
|
+
|
|
368
390
|
@property
|
|
369
391
|
def last_issues(self) -> IssueList:
|
|
370
392
|
if not self.provenance:
|
cognite/neat/_utils/auth.py
CHANGED
|
@@ -6,6 +6,7 @@ from pathlib import Path
|
|
|
6
6
|
from typing import Literal, TypeAlias, get_args
|
|
7
7
|
|
|
8
8
|
from cognite.client import ClientConfig, CogniteClient
|
|
9
|
+
from cognite.client.config import global_config
|
|
9
10
|
from cognite.client.credentials import CredentialProvider, OAuthClientCredentials, OAuthInteractive, Token
|
|
10
11
|
|
|
11
12
|
from cognite.neat import _version
|
|
@@ -33,6 +34,7 @@ def get_cognite_client(env_file_name: str) -> CogniteClient:
|
|
|
33
34
|
"""
|
|
34
35
|
if not env_file_name.endswith(".env"):
|
|
35
36
|
raise ValueError("env_file_name must end with '.env'")
|
|
37
|
+
global_config.disable_pypi_version_check = True
|
|
36
38
|
# First try to load from .env file in repository root
|
|
37
39
|
repo_root = _repo_root()
|
|
38
40
|
if repo_root:
|
cognite/neat/_version.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
__version__ = "0.
|
|
1
|
+
__version__ = "0.107.0"
|
|
2
2
|
__engine__ = "^2.0.3"
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: cognite-neat
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.107.0
|
|
4
4
|
Summary: Knowledge graph transformation
|
|
5
|
-
Home-page: https://cognite-neat.readthedocs-hosted.com/
|
|
6
5
|
License: Apache-2.0
|
|
7
6
|
Author: Nikola Vasiljevic
|
|
8
7
|
Author-email: nikola.vasiljevic@cognite.com
|
|
@@ -54,6 +53,7 @@ Requires-Dist: tomli (>=2.0.1,<3.0.0) ; python_version < "3.11"
|
|
|
54
53
|
Requires-Dist: typing_extensions (>=4.8,<5.0) ; python_version < "3.11"
|
|
55
54
|
Requires-Dist: urllib3 (>=2,<3)
|
|
56
55
|
Project-URL: Documentation, https://cognite-neat.readthedocs-hosted.com/
|
|
56
|
+
Project-URL: Homepage, https://cognite-neat.readthedocs-hosted.com/
|
|
57
57
|
Project-URL: Repository, https://github.com/cognitedata/neat
|
|
58
58
|
Description-Content-Type: text/markdown
|
|
59
59
|
|
|
@@ -20,38 +20,39 @@ cognite/neat/_graph/examples/Knowledge-Graph-Nordic44-dirty.xml,sha256=ujJip6XBs
|
|
|
20
20
|
cognite/neat/_graph/examples/Knowledge-Graph-Nordic44.xml,sha256=U2Ns-M4LRjT1fBkhmRj63ur7jDzlRtHK9yOLf_npZ_g,1437996
|
|
21
21
|
cognite/neat/_graph/examples/__init__.py,sha256=yAjHVY3b5jOjmbW-iLbhvu7BG014TpGi3K4igkDqW5I,368
|
|
22
22
|
cognite/neat/_graph/examples/skos-capturing-sheet-wind-topics.xlsx,sha256=CV_yK5ZSbYS_ktfIZUPD8Sevs47zpswLXQUDFkGE4Gw,45798
|
|
23
|
-
cognite/neat/_graph/extractors/__init__.py,sha256=
|
|
24
|
-
cognite/neat/_graph/extractors/_base.py,sha256=
|
|
23
|
+
cognite/neat/_graph/extractors/__init__.py,sha256=T3G8U8ZYHSW0KA8JNArcFgY7wRk51S8T93J3YaVFeLY,2257
|
|
24
|
+
cognite/neat/_graph/extractors/_base.py,sha256=qQE-fl3f1hfqZg5KLF3zLHybP0u8ofRKf4jk7pEHnl4,1907
|
|
25
25
|
cognite/neat/_graph/extractors/_classic_cdf/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
26
26
|
cognite/neat/_graph/extractors/_classic_cdf/_assets.py,sha256=9WVFrAtUFAp_AAlb26Rtt2Axz9xsPQYetg7SKVrNCr4,1474
|
|
27
|
-
cognite/neat/_graph/extractors/_classic_cdf/_base.py,sha256=
|
|
28
|
-
cognite/neat/_graph/extractors/_classic_cdf/_classic.py,sha256=
|
|
27
|
+
cognite/neat/_graph/extractors/_classic_cdf/_base.py,sha256=LttJl6Zce3iHGlY4_fnACbaXI8dlgEqoDYZhqHieXYo,12080
|
|
28
|
+
cognite/neat/_graph/extractors/_classic_cdf/_classic.py,sha256=XP-4KME5UkdkEtLeHaDQpSyBYoHyyolj7595-Ivo-Iw,14220
|
|
29
29
|
cognite/neat/_graph/extractors/_classic_cdf/_data_sets.py,sha256=xRFv9pVFgIMTZ45E8teMC0Ynku_CuZdcZkVCbhPuPBk,1294
|
|
30
30
|
cognite/neat/_graph/extractors/_classic_cdf/_events.py,sha256=B8hRoMAg8GQvApjxals5PfPyjmdPO93U3nj_G7g0kDQ,1394
|
|
31
31
|
cognite/neat/_graph/extractors/_classic_cdf/_files.py,sha256=Q816cVQ9qS7Art66HJfErL2OV7MxH_eSIG7bJ8_HJ7Q,1406
|
|
32
32
|
cognite/neat/_graph/extractors/_classic_cdf/_labels.py,sha256=7guTZdGFT1r7ItE2VNgXwbBZ1y_005oB3fg1XbwT7WQ,2083
|
|
33
|
-
cognite/neat/_graph/extractors/_classic_cdf/_relationships.py,sha256=
|
|
34
|
-
cognite/neat/_graph/extractors/_classic_cdf/_sequences.py,sha256=
|
|
33
|
+
cognite/neat/_graph/extractors/_classic_cdf/_relationships.py,sha256=RrnYGtG8u-ZF5_8o0Qvg4qZZKGHiQffI3_eTUt7kNgI,3039
|
|
34
|
+
cognite/neat/_graph/extractors/_classic_cdf/_sequences.py,sha256=hm2QNOCQ0uJe_ud2wMAJt33zy6ARos9KU2cUDlKcJGc,10946
|
|
35
35
|
cognite/neat/_graph/extractors/_classic_cdf/_timeseries.py,sha256=6CmmxWWG2IErfNKOPhsjQ5wSOTUZZMjulpaRbHj0Q-g,1560
|
|
36
36
|
cognite/neat/_graph/extractors/_dexpi.py,sha256=SFWnKXYpQToWag9aoX8fxISNa9b8KlqjZnkwI18BzNY,9431
|
|
37
|
-
cognite/neat/_graph/extractors/_dms.py,sha256=
|
|
37
|
+
cognite/neat/_graph/extractors/_dms.py,sha256=80FAu2TiBz7FUk7h_DLZFr9suaomAbQFMZN8YTq8kaM,8149
|
|
38
|
+
cognite/neat/_graph/extractors/_dms_graph.py,sha256=L1amDPPysPKny2ABZ_pAl-4nKHDcBKgnalXgmcBeORo,6339
|
|
38
39
|
cognite/neat/_graph/extractors/_iodd.py,sha256=nMSLmtgvxLrQJMA5NECF1OCp4Bcv0Vq0WsNv8X9Oj1k,18458
|
|
39
40
|
cognite/neat/_graph/extractors/_mock_graph_generator.py,sha256=7WqyFu2Qj03pJD4auuV3vrqjNA9s9pO5jlKJoTrIink,15419
|
|
40
|
-
cognite/neat/_graph/extractors/_rdf_file.py,sha256=
|
|
41
|
+
cognite/neat/_graph/extractors/_rdf_file.py,sha256=oUlnFgSSgoy2roKefvi1EL5VyrmdBpA22YhTG-fxp4o,2845
|
|
41
42
|
cognite/neat/_graph/loaders/__init__.py,sha256=1eam_rG1BXTUJ8iDm8_IYZldEe177vn2GmHihDBi8qk,718
|
|
42
43
|
cognite/neat/_graph/loaders/_base.py,sha256=Fp6uUkNfAM-SVgsLz7tyNJxJ1eeEw3h2d4Q0YyppR-Y,3991
|
|
43
|
-
cognite/neat/_graph/loaders/_rdf2dms.py,sha256=
|
|
44
|
+
cognite/neat/_graph/loaders/_rdf2dms.py,sha256=uOfTgmfmyFdfY22Uyj2aHeh3TkdfXMf3k53xwAjqvhs,29750
|
|
44
45
|
cognite/neat/_graph/queries/__init__.py,sha256=BgDd-037kvtWwAoGAy8eORVNMiZ5-E9sIV0txIpeaN4,50
|
|
45
46
|
cognite/neat/_graph/queries/_base.py,sha256=Y3Amuave6xdQsDE5ZXCrYLUgOMIH8BXa4n5Pc9czAF0,14926
|
|
46
|
-
cognite/neat/_graph/queries/_construct.py,sha256=
|
|
47
|
+
cognite/neat/_graph/queries/_construct.py,sha256=vCCGI_mnqIC5lF38J0ZN3ixBH2l6nAvWP0nl-z529Qs,7214
|
|
47
48
|
cognite/neat/_graph/queries/_shared.py,sha256=uhw-nY4jJvivgtj1msdCRrfTWgauU7ybSHUqqUaFOUU,5390
|
|
48
|
-
cognite/neat/_graph/transformers/__init__.py,sha256=
|
|
49
|
-
cognite/neat/_graph/transformers/_base.py,sha256=
|
|
50
|
-
cognite/neat/_graph/transformers/_classic_cdf.py,sha256=
|
|
49
|
+
cognite/neat/_graph/transformers/__init__.py,sha256=euVkdO_THM0VZMDP4SUXJzzzHzFh4v2rAtrgv3-n3HE,1812
|
|
50
|
+
cognite/neat/_graph/transformers/_base.py,sha256=GWiq2rlhLHkdrMvOrOcesn9asWDu4Kt-xYSXQNSnAvY,4565
|
|
51
|
+
cognite/neat/_graph/transformers/_classic_cdf.py,sha256=IulhmojGdJwocMXBaLZyCLRcXrEeTns0JdgXJ716AzA,26334
|
|
51
52
|
cognite/neat/_graph/transformers/_iodd.py,sha256=KNz1fPdKK40UaHgPMECzNZgSeU5PdPRyLdaRYdq1iug,866
|
|
52
53
|
cognite/neat/_graph/transformers/_prune_graph.py,sha256=LFiAMYFteND5LGEv9KqYJr5C9-n7S5fR6IrEdtJyRnk,12447
|
|
53
|
-
cognite/neat/_graph/transformers/_rdfpath.py,sha256=
|
|
54
|
-
cognite/neat/_graph/transformers/_value_type.py,sha256=
|
|
54
|
+
cognite/neat/_graph/transformers/_rdfpath.py,sha256=jWroxG2j_Mt4COqCo8lY2L9_5DFyLlBnZ0ahyM2f9m8,5023
|
|
55
|
+
cognite/neat/_graph/transformers/_value_type.py,sha256=kel4D_BSF_o2HHCgiryEGSUTLKZ22nLowHM1nwZXUq0,13229
|
|
55
56
|
cognite/neat/_issues/__init__.py,sha256=OVgWivp_Br31p8zPeHjOEXs-Wj7lJU1pU1L3pfhfuqE,518
|
|
56
57
|
cognite/neat/_issues/_base.py,sha256=vV0E8cfXKlOnRXFIDZKg5QPMruELEbCaUfQ01l5dR9A,20073
|
|
57
58
|
cognite/neat/_issues/errors/__init__.py,sha256=cAmB92WnUDicT8adowED0-UbMTuJxdde2TS5G65IW50,2216
|
|
@@ -72,12 +73,13 @@ cognite/neat/_rules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
|
|
|
72
73
|
cognite/neat/_rules/_constants.py,sha256=lOyf7nybSYOuAE_wKmTMncHYz0Io0_J_YVnYBzjrvZA,5637
|
|
73
74
|
cognite/neat/_rules/_shared.py,sha256=2WrvsSKP4XQisDXUVu5z4GOfjQMIQZwed_UNfb4NCoY,1282
|
|
74
75
|
cognite/neat/_rules/analysis/__init__.py,sha256=sTW-gDkHn2VPAHnuOBYJF40Ap3AfxvhLkDGoIRKyOJE,126
|
|
75
|
-
cognite/neat/_rules/analysis/_base.py,sha256=
|
|
76
|
+
cognite/neat/_rules/analysis/_base.py,sha256=7pgCl3Zsg4uxzvzPRbByTs6wBGuVUeYf2ec-PiG7nLY,16745
|
|
76
77
|
cognite/neat/_rules/analysis/_dms.py,sha256=k9OrN6kRCcdPr8GCJDRXyF0nNXmBYJQDtoGqw7R87po,2204
|
|
77
|
-
cognite/neat/_rules/analysis/_information.py,sha256=
|
|
78
|
-
cognite/neat/_rules/catalog/__init__.py,sha256=
|
|
78
|
+
cognite/neat/_rules/analysis/_information.py,sha256=F3fAsQS8gLTfyy4z4t4cNaoMqU9TyDRzEOMzid6FJDc,10727
|
|
79
|
+
cognite/neat/_rules/catalog/__init__.py,sha256=dwDB8b-5GKZuwVyPuiwsH0EaK2FY9-wJrkTjKoL8KE4,250
|
|
80
|
+
cognite/neat/_rules/catalog/classic_model.xlsx,sha256=93_RsrRuA5BXFwbko-hKODQ-pcwCftMxxjbrU5Syp5k,15046
|
|
79
81
|
cognite/neat/_rules/catalog/hello_world_pump.xlsx,sha256=4Fv9qyv7ARHBXSIh-PiOUHcYrtgznKyR2PZCdEBlA0o,17071
|
|
80
|
-
cognite/neat/_rules/catalog/info-rules-imf.xlsx,sha256=
|
|
82
|
+
cognite/neat/_rules/catalog/info-rules-imf.xlsx,sha256=hj3ej7F1RYYyhGjX0rjVSOe_ZYD8m3AOA87-YtRqM84,56342
|
|
81
83
|
cognite/neat/_rules/exporters/__init__.py,sha256=IYBa0DIYlx8cFItgYRw9W4FY_LmVEjuaqMz3JORZZX0,1204
|
|
82
84
|
cognite/neat/_rules/exporters/_base.py,sha256=VkNMy8wsH-x4tAjS44cXgzzNH0CM2k_4RhkMwK50J7g,2284
|
|
83
85
|
cognite/neat/_rules/exporters/_rules2dms.py,sha256=7I3a8ZPwkIBQAClQbMjJ2D2aIITY-OBVUD-8hirCmzM,19183
|
|
@@ -88,7 +90,7 @@ cognite/neat/_rules/exporters/_rules2yaml.py,sha256=-TtE7-SvfJr0-ndNy26nrHXtxAq6
|
|
|
88
90
|
cognite/neat/_rules/exporters/_validation.py,sha256=DVJGdNNU2WtAFgUg0h4SWVhveRErEPOcYdT65y5toV0,682
|
|
89
91
|
cognite/neat/_rules/importers/__init__.py,sha256=d5k8vNgf1rjECl6pubozVQV1Bdpz62GI59GYC-cJMrY,1316
|
|
90
92
|
cognite/neat/_rules/importers/_base.py,sha256=HOmfESfF9KLGWGa5AmhPGc-AimwKHgoShbxPz90h2JE,3589
|
|
91
|
-
cognite/neat/_rules/importers/_dms2rules.py,sha256=
|
|
93
|
+
cognite/neat/_rules/importers/_dms2rules.py,sha256=gpfckYFV1SH_kmUiwK4wtvBLL8zHABsX4ccbBpa9UHw,22902
|
|
92
94
|
cognite/neat/_rules/importers/_dtdl2rules/__init__.py,sha256=CNR-sUihs2mnR1bPMKs3j3L4ds3vFTsrl6YycExZTfU,68
|
|
93
95
|
cognite/neat/_rules/importers/_dtdl2rules/_unit_lookup.py,sha256=wW4saKva61Q_i17guY0dc4OseJDQfqHy_QZBtm0OD6g,12134
|
|
94
96
|
cognite/neat/_rules/importers/_dtdl2rules/dtdl_converter.py,sha256=j38U0um1ZWI-yRvEUR3z33vOvMCYXJxSO9L_B7m9xDE,11707
|
|
@@ -97,20 +99,20 @@ cognite/neat/_rules/importers/_dtdl2rules/spec.py,sha256=u__f08rAiYG0FIRiWoecBN8
|
|
|
97
99
|
cognite/neat/_rules/importers/_rdf/__init__.py,sha256=x06gjJ3dXlhJRRgyXZ-HoF4vFnbPmzI2ni6wyzwtfPU,183
|
|
98
100
|
cognite/neat/_rules/importers/_rdf/_base.py,sha256=b7MM4PV4d0irLbU8nKws4ynhiIuzmvvZeeQycHVKMpQ,5682
|
|
99
101
|
cognite/neat/_rules/importers/_rdf/_imf2rules.py,sha256=M5hfWZUhoCgXFlr8QNfogNCI2pxzqqAvTJII4yA8xJw,3723
|
|
100
|
-
cognite/neat/_rules/importers/_rdf/_inference2rules.py,sha256=
|
|
102
|
+
cognite/neat/_rules/importers/_rdf/_inference2rules.py,sha256=6hqINEQGBAEQrw645jRgFrRZGfuROMjE4sE4vTyWpRA,12908
|
|
101
103
|
cognite/neat/_rules/importers/_rdf/_owl2rules.py,sha256=gTMe94DC9xe8NR9KNVHTMTshg_NzVuN1v8Lz95BUshI,3392
|
|
102
104
|
cognite/neat/_rules/importers/_rdf/_shared.py,sha256=mxBoqFQfvHeLa4kbDYAd7FEcHe1fv97tcqHd9gmFeKk,5867
|
|
103
105
|
cognite/neat/_rules/importers/_spreadsheet2rules.py,sha256=2KhOSzNPmQgBb64L3aIARwmqY944LNP_9QciMnn7ecY,10911
|
|
104
106
|
cognite/neat/_rules/importers/_yaml2rules.py,sha256=k2oDgz--mxFVeyqQG3uvyYcb0BkFHwKHdBYHVaxtAEc,3721
|
|
105
107
|
cognite/neat/_rules/models/__init__.py,sha256=tf6tyWiYO0eC2PHCcpy208dwOHjEi9hg0sEaQLcB3uA,1024
|
|
106
108
|
cognite/neat/_rules/models/_base_input.py,sha256=kAVI6QYAzsgQ79eLPc_hANJjl-o1e9IKeD7lF61ru9Y,6656
|
|
107
|
-
cognite/neat/_rules/models/_base_rules.py,sha256=
|
|
109
|
+
cognite/neat/_rules/models/_base_rules.py,sha256=VMn1ubalcrFTi1KxmTIUdU1AmN3L1qrbwmrw1-uk-OU,14690
|
|
108
110
|
cognite/neat/_rules/models/_rdfpath.py,sha256=hqUMZCMeI8ESdJltu7FifuUhna5JNN_Heup2aYkV56Y,11882
|
|
109
|
-
cognite/neat/_rules/models/_types.py,sha256=
|
|
111
|
+
cognite/neat/_rules/models/_types.py,sha256=gGRS8qK3Z-2buBmYtaVj8762qPNz_ToYAChZYCm8eyE,5381
|
|
110
112
|
cognite/neat/_rules/models/data_types.py,sha256=LJuWUbStlZM4hUJGExOJIJXmAA4uiA0tvO9zKqLUrQg,9805
|
|
111
113
|
cognite/neat/_rules/models/dms/__init__.py,sha256=fRaUH0IwG0YwWd_DNKM6j-jHHFyiIVz4_8DPiS1KR0Y,695
|
|
112
114
|
cognite/neat/_rules/models/dms/_exporter.py,sha256=eB5uDX06XYkQkON96eykSk7ZCegb9a5dCxTmTIr252c,28020
|
|
113
|
-
cognite/neat/_rules/models/dms/_rules.py,sha256=
|
|
115
|
+
cognite/neat/_rules/models/dms/_rules.py,sha256=zTmZLcqzkQqExrCPkFSWkWyO6Rlx7V1WQk0cTrzJMzM,22245
|
|
114
116
|
cognite/neat/_rules/models/dms/_rules_input.py,sha256=mDLojcIZyu-EIR0qLDCYIUqcgWDKdC7dEF5qffVvLfs,13197
|
|
115
117
|
cognite/neat/_rules/models/dms/_validation.py,sha256=PNFHsDNHJZfbHY1qt6D4t3eFOGjqe6Koa702Gzcz0I8,27734
|
|
116
118
|
cognite/neat/_rules/models/entities/__init__.py,sha256=Hlucp3LyV6ncLl79aqRTbSy2qgiGzoyN8x54D_zaJCY,1469
|
|
@@ -121,43 +123,43 @@ cognite/neat/_rules/models/entities/_single_value.py,sha256=GW1R8ko1vwjGhAs2Fl5B
|
|
|
121
123
|
cognite/neat/_rules/models/entities/_types.py,sha256=df9rnXJJKciv2Bp-Ve2q4xdEJt6WWniq12Z0hW2d6sk,1917
|
|
122
124
|
cognite/neat/_rules/models/entities/_wrapped.py,sha256=-LP20mEv8H2NAoZplP-IJud-kaMHNFWE8fqbeJmdpk4,7579
|
|
123
125
|
cognite/neat/_rules/models/information/__init__.py,sha256=lV7l8RTfWBvN_DFkzea8OzADjq0rZGgWe_0Fiwtfje0,556
|
|
124
|
-
cognite/neat/_rules/models/information/_rules.py,sha256=
|
|
125
|
-
cognite/neat/_rules/models/information/_rules_input.py,sha256=
|
|
126
|
+
cognite/neat/_rules/models/information/_rules.py,sha256=RQDcXEVZz9GG6KghpK-Vp4W_4ThoC12kfsPQdMkW75o,13766
|
|
127
|
+
cognite/neat/_rules/models/information/_rules_input.py,sha256=3So9QahmBXg_9PZjT2bjxapDYKBZsTl-QyLENOkCl68,5700
|
|
126
128
|
cognite/neat/_rules/models/information/_validation.py,sha256=HbaLShj6uumu-t9I3FUI_iKQfUDiwEkuFENHgWIPfrk,10202
|
|
127
129
|
cognite/neat/_rules/models/mapping/__init__.py,sha256=T68Hf7rhiXa7b03h4RMwarAmkGnB-Bbhc1H07b2PyC4,100
|
|
128
|
-
cognite/neat/_rules/models/mapping/_classic2core.py,sha256=
|
|
130
|
+
cognite/neat/_rules/models/mapping/_classic2core.py,sha256=AhLWoXk4PlBVA6SgBtY9dcLcpqEMaYcsiEatI19miPk,1211
|
|
129
131
|
cognite/neat/_rules/models/mapping/_classic2core.yaml,sha256=jodkmcTborWJmG3At16OChtnol696X6D4lgAa7aaQ78,20491
|
|
130
|
-
cognite/neat/_rules/transformers/__init__.py,sha256
|
|
132
|
+
cognite/neat/_rules/transformers/__init__.py,sha256=-vQkKqRMuVfFDVgXE9MmV-15sNeeBUQzx1_gD5c4E2M,1089
|
|
131
133
|
cognite/neat/_rules/transformers/_base.py,sha256=sflEUKfNgCE3NNErzBMJ88VJEYB12pU1H3da40B52Yg,2556
|
|
132
|
-
cognite/neat/_rules/transformers/_converters.py,sha256=
|
|
134
|
+
cognite/neat/_rules/transformers/_converters.py,sha256=5MfFwMA8Wjt2K86P44jVd8l659y-VMaqwLq6XTVhvMA,59092
|
|
133
135
|
cognite/neat/_rules/transformers/_mapping.py,sha256=2aNJ5hcJ2hRtQAacOEC6uOTM7SdglduimepmIhRUikg,18157
|
|
134
136
|
cognite/neat/_rules/transformers/_verification.py,sha256=jKTppklUCVwVlRfYyMfnUtV8r2ACTY-AtsoMF6L-KXo,4593
|
|
135
137
|
cognite/neat/_session/__init__.py,sha256=fxQ5URVlUnmEGYyB8Baw7IDq-uYacqkigbc4b-Pr9Fw,58
|
|
136
|
-
cognite/neat/_session/_base.py,sha256=
|
|
138
|
+
cognite/neat/_session/_base.py,sha256=3_YISV9iCHFANqTiZA_ziFYwm1TdP82u8ZqjCqWg8pI,9727
|
|
137
139
|
cognite/neat/_session/_collector.py,sha256=SPCb1fEuOVIMHMQsVUNS7nkUUPhtUuNatnWPAIfQMcE,4093
|
|
138
140
|
cognite/neat/_session/_drop.py,sha256=kfXSgsq3xaLOAxtfjPkix9C18xulJv4Cfu4gj86nBSY,1392
|
|
139
141
|
cognite/neat/_session/_inspect.py,sha256=yls1XrJpVid2IlOs6-m2-9Hlgn0AuT_CMIASDXVEktU,8410
|
|
140
|
-
cognite/neat/_session/_mapping.py,sha256=
|
|
141
|
-
cognite/neat/_session/_prepare.py,sha256=
|
|
142
|
-
cognite/neat/_session/_read.py,sha256=
|
|
142
|
+
cognite/neat/_session/_mapping.py,sha256=J0nUTKfWv7EYGSxCRo_eaZFs3SjPVVgGQQaxH-x2Q0Y,2588
|
|
143
|
+
cognite/neat/_session/_prepare.py,sha256=KuGPt9OYssNDyRPAzci5i32xOjPtA-TeZrccDcQyga4,21703
|
|
144
|
+
cognite/neat/_session/_read.py,sha256=3ip-8b6V7VdWHASZiCn60ivJbb1hg3M0eLyOHDppW6Y,17118
|
|
143
145
|
cognite/neat/_session/_set.py,sha256=7k6oPX3n7sUViGaSZOQb4zLQIBKDFt_y5xBmC5SYYjU,1997
|
|
144
146
|
cognite/neat/_session/_show.py,sha256=bp1IddBd0vBxlWcewxL3U3zv-GsE8l7lxIE7muCvyXk,16305
|
|
145
|
-
cognite/neat/_session/_state.py,sha256=
|
|
146
|
-
cognite/neat/_session/_to.py,sha256=
|
|
147
|
+
cognite/neat/_session/_state.py,sha256=5MXxwppitSdmFUEwTkeeKt-NK8fNf0kSQE2kzT3KgIU,4513
|
|
148
|
+
cognite/neat/_session/_to.py,sha256=Rs3axzs1IB0iJnszrxgqkaU4rYrqrJzFfLWYeGN9tbo,10680
|
|
147
149
|
cognite/neat/_session/_wizard.py,sha256=O8d0FA87RIoiTOD2KLyTVsxwA2-ewAG2By4JfxXSL84,1474
|
|
148
150
|
cognite/neat/_session/engine/__init__.py,sha256=D3MxUorEs6-NtgoICqtZ8PISQrjrr4dvca6n48bu_bI,120
|
|
149
151
|
cognite/neat/_session/engine/_import.py,sha256=1QxA2_EK613lXYAHKQbZyw2yjo5P9XuiX4Z6_6-WMNQ,169
|
|
150
152
|
cognite/neat/_session/engine/_interface.py,sha256=ItJ1VMrPt-pKKvpSpglD9n9yFC6ehF9xV2DUVCyfQB0,533
|
|
151
153
|
cognite/neat/_session/engine/_load.py,sha256=LcoYVthQyCzLWKzRE_75_nElS-n_eMWSPAgNJBnh5dA,5193
|
|
152
|
-
cognite/neat/_session/exceptions.py,sha256=
|
|
154
|
+
cognite/neat/_session/exceptions.py,sha256=xnZKO9yLiXjGEuWxmXKmIq2wE2m1eklUsD97neJBBfg,2473
|
|
153
155
|
cognite/neat/_shared.py,sha256=Ov59SWYboRRsncB_5V1ZC_BAoACfNLjo80vqE5Ru6wo,2325
|
|
154
156
|
cognite/neat/_store/__init__.py,sha256=RrvuZrMdezqun5dOrwHWSk26kampZcvqiHBqSFumkEE,130
|
|
155
|
-
cognite/neat/_store/_graph_store.py,sha256=
|
|
157
|
+
cognite/neat/_store/_graph_store.py,sha256=UgO_hr-6oqhqUrigkPeLd2NIjDz94kOQGz438P6z1y0,20624
|
|
156
158
|
cognite/neat/_store/_provenance.py,sha256=g_u6O7jo3ZekQVtc-FfJR1fTGqD9L3ipwfSEjdHB1xM,6610
|
|
157
|
-
cognite/neat/_store/_rules_store.py,sha256=
|
|
159
|
+
cognite/neat/_store/_rules_store.py,sha256=mjOa7xuWKWFnnA7nGI1X1xVd8TOXSn8AOdG3pHkB1S0,16424
|
|
158
160
|
cognite/neat/_store/exceptions.py,sha256=1xLtWqX-TiGcXdgayBgeNx1cipoXkye7LmTMFdpMg1s,506
|
|
159
161
|
cognite/neat/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
160
|
-
cognite/neat/_utils/auth.py,sha256=
|
|
162
|
+
cognite/neat/_utils/auth.py,sha256=3RV8VB9nKJAh2nZH6F9oPQOXgF2rRLKxq5jJLTJn3ow,14512
|
|
161
163
|
cognite/neat/_utils/auxiliary.py,sha256=WFOycFgoYipvDmtGvn6ZNH3H8iNZmHamrfe2kXRb8lM,6667
|
|
162
164
|
cognite/neat/_utils/collection_.py,sha256=JvYLSR6Cf8PIKGhr8HKRvep0U-z0980jbnIM_g-5I5I,2366
|
|
163
165
|
cognite/neat/_utils/graph_transformations_report.py,sha256=rjEy4XMvOygFL4UgnYOmFW6AHxaU9IXep-dmYc5654c,1230
|
|
@@ -170,10 +172,10 @@ cognite/neat/_utils/text.py,sha256=0IffvBIAmeGh92F4T6xiEdd-vv3B7FOGEMbfuTktO5Y,4
|
|
|
170
172
|
cognite/neat/_utils/time_.py,sha256=O30LUiDH9TdOYz8_a9pFqTtJdg8vEjC3qHCk8xZblG8,345
|
|
171
173
|
cognite/neat/_utils/upload.py,sha256=iWKmsQgw4EHLv-11NjYu7zAj5LtqTAfNa87a1kWeuaU,5727
|
|
172
174
|
cognite/neat/_utils/xml_.py,sha256=FQkq84u35MUsnKcL6nTMJ9ajtG9D5i1u4VBnhGqP2DQ,1710
|
|
173
|
-
cognite/neat/_version.py,sha256=
|
|
175
|
+
cognite/neat/_version.py,sha256=BpyKoq6uiHl43CEFHESU9WOzu3HL-G7rE2iWWGHqds4,46
|
|
174
176
|
cognite/neat/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
175
|
-
cognite_neat-0.
|
|
176
|
-
cognite_neat-0.
|
|
177
|
-
cognite_neat-0.
|
|
178
|
-
cognite_neat-0.
|
|
179
|
-
cognite_neat-0.
|
|
177
|
+
cognite_neat-0.107.0.dist-info/LICENSE,sha256=W8VmvFia4WHa3Gqxq1Ygrq85McUNqIGDVgtdvzT-XqA,11351
|
|
178
|
+
cognite_neat-0.107.0.dist-info/METADATA,sha256=9lNRJ7bJUqYZbL91bVEbiChOOf309O6bQM4LGxtFB9E,5361
|
|
179
|
+
cognite_neat-0.107.0.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
|
180
|
+
cognite_neat-0.107.0.dist-info/entry_points.txt,sha256=SsQlnl8SNMSSjE3acBI835JYFtsIinLSbVmHmMEXv6E,51
|
|
181
|
+
cognite_neat-0.107.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|