cognite-neat 0.100.1__py3-none-any.whl → 0.102.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/_constants.py +5 -1
- cognite/neat/_graph/loaders/_rdf2dms.py +1 -2
- cognite/neat/_graph/queries/_base.py +22 -2
- cognite/neat/_graph/queries/_shared.py +4 -4
- cognite/neat/_graph/transformers/__init__.py +17 -0
- cognite/neat/_graph/transformers/_base.py +1 -1
- cognite/neat/_graph/transformers/_iodd.py +9 -4
- cognite/neat/_graph/transformers/_prune_graph.py +196 -65
- cognite/neat/_rules/exporters/_rules2dms.py +35 -13
- cognite/neat/_rules/exporters/_rules2excel.py +7 -2
- cognite/neat/_rules/importers/_dms2rules.py +51 -19
- cognite/neat/_rules/importers/_rdf/_base.py +2 -2
- cognite/neat/_rules/models/_base_rules.py +13 -9
- cognite/neat/_rules/models/dms/_rules.py +111 -39
- cognite/neat/_rules/models/information/_rules.py +52 -19
- cognite/neat/_session/_base.py +18 -0
- cognite/neat/_session/_prepare.py +85 -2
- cognite/neat/_session/_read.py +3 -3
- cognite/neat/_session/_to.py +1 -1
- cognite/neat/_session/engine/_load.py +3 -1
- cognite/neat/_store/_base.py +23 -2
- cognite/neat/_utils/auth.py +6 -4
- cognite/neat/_utils/reader/__init__.py +2 -2
- cognite/neat/_utils/reader/_base.py +40 -35
- cognite/neat/_utils/text.py +12 -0
- cognite/neat/_version.py +2 -2
- cognite_neat-0.102.0.dist-info/METADATA +113 -0
- {cognite_neat-0.100.1.dist-info → cognite_neat-0.102.0.dist-info}/RECORD +31 -31
- cognite_neat-0.100.1.dist-info/METADATA +0 -215
- {cognite_neat-0.100.1.dist-info → cognite_neat-0.102.0.dist-info}/LICENSE +0 -0
- {cognite_neat-0.100.1.dist-info → cognite_neat-0.102.0.dist-info}/WHEEL +0 -0
- {cognite_neat-0.100.1.dist-info → cognite_neat-0.102.0.dist-info}/entry_points.txt +0 -0
|
@@ -41,8 +41,10 @@ def load_neat_engine(client: CogniteClient | None, location: Literal["newest", "
|
|
|
41
41
|
|
|
42
42
|
if location == "newest" or not candidates:
|
|
43
43
|
# Loading in reverse order of priority
|
|
44
|
-
#
|
|
44
|
+
# 4. Downloads folder
|
|
45
45
|
candidates = _load_from_path(Path.home() / "Downloads", pattern, lower_bound, upper_bound)
|
|
46
|
+
# 3. Current working directory
|
|
47
|
+
candidates.update(_load_from_path(Path.cwd(), pattern, lower_bound, upper_bound))
|
|
46
48
|
# 2. CDF
|
|
47
49
|
if client:
|
|
48
50
|
candidates.update(_load_from_cdf(client, pattern, lower_bound, upper_bound, cache_dir))
|
cognite/neat/_store/_base.py
CHANGED
|
@@ -195,8 +195,13 @@ class NeatGraphStore:
|
|
|
195
195
|
self, class_neat_id: URIRef, property_link_pairs: dict[str, URIRef] | None
|
|
196
196
|
) -> Iterable[tuple[str, dict[str | InstanceType, list[str]]]]:
|
|
197
197
|
if self.rules is None:
|
|
198
|
-
warnings.warn("Rules not found in graph store!", stacklevel=2)
|
|
198
|
+
warnings.warn("Rules not found in graph store! Aborting!", stacklevel=2)
|
|
199
199
|
return
|
|
200
|
+
if self.multi_type_instances:
|
|
201
|
+
warnings.warn(
|
|
202
|
+
"Multi typed instances detected, issues with loading can occur!",
|
|
203
|
+
stacklevel=2,
|
|
204
|
+
)
|
|
200
205
|
|
|
201
206
|
if cls := InformationAnalysis(self.rules).classes_by_neat_id.get(class_neat_id):
|
|
202
207
|
if property_link_pairs:
|
|
@@ -225,6 +230,11 @@ class NeatGraphStore:
|
|
|
225
230
|
if self.rules is None:
|
|
226
231
|
warnings.warn("Rules not found in graph store!", stacklevel=2)
|
|
227
232
|
return
|
|
233
|
+
if self.multi_type_instances:
|
|
234
|
+
warnings.warn(
|
|
235
|
+
"Multi typed instances detected, issues with loading can occur!",
|
|
236
|
+
stacklevel=2,
|
|
237
|
+
)
|
|
228
238
|
|
|
229
239
|
if class_entity not in [definition.class_ for definition in self.rules.classes]:
|
|
230
240
|
warnings.warn("Desired type not found in graph!", stacklevel=2)
|
|
@@ -267,7 +277,6 @@ class NeatGraphStore:
|
|
|
267
277
|
|
|
268
278
|
# get property types to guide process of removing or not namespaces from results
|
|
269
279
|
property_types = InformationAnalysis(self.rules).property_types(class_entity)
|
|
270
|
-
|
|
271
280
|
for instance_id in instance_ids:
|
|
272
281
|
if res := self.queries.describe(
|
|
273
282
|
instance_id=instance_id,
|
|
@@ -292,6 +301,11 @@ class NeatGraphStore:
|
|
|
292
301
|
if not self.rules:
|
|
293
302
|
warnings.warn("Rules not found in graph store!", stacklevel=2)
|
|
294
303
|
return
|
|
304
|
+
if self.multi_type_instances:
|
|
305
|
+
warnings.warn(
|
|
306
|
+
"Multi typed instances detected, issues with loading can occur!",
|
|
307
|
+
stacklevel=2,
|
|
308
|
+
)
|
|
295
309
|
|
|
296
310
|
class_entity = ClassEntity(prefix=self.rules.metadata.prefix, suffix=class_)
|
|
297
311
|
|
|
@@ -390,6 +404,10 @@ class NeatGraphStore:
|
|
|
390
404
|
def summary(self) -> pd.DataFrame:
|
|
391
405
|
return pd.DataFrame(self.queries.summarize_instances(), columns=["Type", "Occurrence"])
|
|
392
406
|
|
|
407
|
+
@property
|
|
408
|
+
def multi_type_instances(self) -> dict[str, list[str]]:
|
|
409
|
+
return self.queries.multi_type_instances()
|
|
410
|
+
|
|
393
411
|
def _repr_html_(self) -> str:
|
|
394
412
|
provenance = self.provenance._repr_html_()
|
|
395
413
|
summary: pd.DataFrame = self.summary
|
|
@@ -404,6 +422,9 @@ class NeatGraphStore:
|
|
|
404
422
|
f"{cast(pd.DataFrame, self._shorten_summary(summary))._repr_html_()}" # type: ignore[operator]
|
|
405
423
|
)
|
|
406
424
|
|
|
425
|
+
if self.multi_type_instances:
|
|
426
|
+
summary_text += "<br><strong>Multi value instances detected! Loading could have issues!</strong></br>" # type: ignore
|
|
427
|
+
|
|
407
428
|
return f"{summary_text}" f"{provenance}"
|
|
408
429
|
|
|
409
430
|
def _shorten_summary(self, summary: pd.DataFrame) -> pd.DataFrame:
|
cognite/neat/_utils/auth.py
CHANGED
|
@@ -32,10 +32,7 @@ def get_cognite_client(env_file_name: str) -> CogniteClient:
|
|
|
32
32
|
"""
|
|
33
33
|
if not env_file_name.endswith(".env"):
|
|
34
34
|
raise ValueError("env_file_name must end with '.env'")
|
|
35
|
-
|
|
36
|
-
variables = EnvironmentVariables.create_from_environ()
|
|
37
|
-
return variables.get_client()
|
|
38
|
-
|
|
35
|
+
# First try to load from .env file in repository root
|
|
39
36
|
repo_root = _repo_root()
|
|
40
37
|
if repo_root:
|
|
41
38
|
with suppress(KeyError, FileNotFoundError, TypeError):
|
|
@@ -43,6 +40,11 @@ def get_cognite_client(env_file_name: str) -> CogniteClient:
|
|
|
43
40
|
client = variables.get_client()
|
|
44
41
|
print(f"Found {env_file_name} file in repository root. Loaded variables from {env_file_name} file.")
|
|
45
42
|
return client
|
|
43
|
+
# Then try to load from environment variables
|
|
44
|
+
with suppress(KeyError):
|
|
45
|
+
variables = EnvironmentVariables.create_from_environ()
|
|
46
|
+
return variables.get_client()
|
|
47
|
+
# If not found, prompt the user
|
|
46
48
|
variables = _prompt_user()
|
|
47
49
|
if repo_root and _env_in_gitignore(repo_root, env_file_name):
|
|
48
50
|
local_import("rich", "jupyter")
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
from ._base import GitHubReader, NeatReader, PathReader
|
|
1
|
+
from ._base import GitHubReader, HttpFileReader, NeatReader, PathReader
|
|
2
2
|
|
|
3
|
-
__all__ = ["NeatReader", "PathReader", "GitHubReader"]
|
|
3
|
+
__all__ = ["NeatReader", "PathReader", "GitHubReader", "HttpFileReader"]
|
|
@@ -17,6 +17,8 @@ class NeatReader(ABC):
|
|
|
17
17
|
url = urlparse(io)
|
|
18
18
|
if url.scheme == "https" and url.netloc.endswith("github.com"):
|
|
19
19
|
return GitHubReader(io)
|
|
20
|
+
elif url.scheme == "https":
|
|
21
|
+
return HttpFileReader(io, url.path)
|
|
20
22
|
|
|
21
23
|
if isinstance(io, str | Path):
|
|
22
24
|
return PathReader(Path(io))
|
|
@@ -94,12 +96,10 @@ class PathReader(NeatReader):
|
|
|
94
96
|
return self.path.exists()
|
|
95
97
|
|
|
96
98
|
|
|
97
|
-
class
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
self.raw = raw
|
|
102
|
-
self.repo, self.path = self._parse_url(raw)
|
|
99
|
+
class HttpFileReader(NeatReader):
|
|
100
|
+
def __init__(self, url: str, path: str):
|
|
101
|
+
self._url = url
|
|
102
|
+
self.path = path
|
|
103
103
|
|
|
104
104
|
@property
|
|
105
105
|
def name(self) -> str:
|
|
@@ -107,9 +107,40 @@ class GitHubReader(NeatReader):
|
|
|
107
107
|
return self.path.rsplit("/", maxsplit=1)[-1]
|
|
108
108
|
return self.path
|
|
109
109
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
110
|
+
def read_text(self) -> str:
|
|
111
|
+
response = requests.get(self._url)
|
|
112
|
+
response.raise_for_status()
|
|
113
|
+
return response.text
|
|
114
|
+
|
|
115
|
+
def size(self) -> int:
|
|
116
|
+
response = requests.head(self._url)
|
|
117
|
+
response.raise_for_status()
|
|
118
|
+
return int(response.headers["Content-Length"])
|
|
119
|
+
|
|
120
|
+
def iterate(self, chunk_size: int) -> Iterable[str]:
|
|
121
|
+
with requests.get(self._url, stream=True) as response:
|
|
122
|
+
response.raise_for_status()
|
|
123
|
+
for chunk in response.iter_content(chunk_size):
|
|
124
|
+
yield chunk.decode("utf-8")
|
|
125
|
+
|
|
126
|
+
def __enter__(self) -> IO:
|
|
127
|
+
return StringIO(self.read_text())
|
|
128
|
+
|
|
129
|
+
def __str__(self) -> str:
|
|
130
|
+
return self._url
|
|
131
|
+
|
|
132
|
+
def exists(self) -> bool:
|
|
133
|
+
response = requests.head(self._url)
|
|
134
|
+
return 200 <= response.status_code < 400
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
class GitHubReader(HttpFileReader):
|
|
138
|
+
raw_url = "https://raw.githubusercontent.com/"
|
|
139
|
+
|
|
140
|
+
def __init__(self, raw: str):
|
|
141
|
+
self.raw = raw
|
|
142
|
+
self.repo, path = self._parse_url(raw)
|
|
143
|
+
super().__init__(f"{self.raw_url}{self.repo}/main/{path}", path)
|
|
113
144
|
|
|
114
145
|
@staticmethod
|
|
115
146
|
def _parse_url(url: str) -> tuple[str, str]:
|
|
@@ -134,29 +165,3 @@ class GitHubReader(NeatReader):
|
|
|
134
165
|
|
|
135
166
|
def __str__(self) -> str:
|
|
136
167
|
return self.raw
|
|
137
|
-
|
|
138
|
-
def read_text(self) -> str:
|
|
139
|
-
response = requests.get(self._full_url)
|
|
140
|
-
response.raise_for_status()
|
|
141
|
-
return response.text
|
|
142
|
-
|
|
143
|
-
def size(self) -> int:
|
|
144
|
-
response = requests.head(self._full_url)
|
|
145
|
-
response.raise_for_status()
|
|
146
|
-
return int(response.headers["Content-Length"])
|
|
147
|
-
|
|
148
|
-
def iterate(self, chunk_size: int) -> Iterable[str]:
|
|
149
|
-
with requests.get(self._full_url, stream=True) as response:
|
|
150
|
-
response.raise_for_status()
|
|
151
|
-
for chunk in response.iter_content(chunk_size):
|
|
152
|
-
yield chunk.decode("utf-8")
|
|
153
|
-
|
|
154
|
-
def __enter__(self) -> IO:
|
|
155
|
-
return StringIO(self.read_text())
|
|
156
|
-
|
|
157
|
-
def __exit__(self, exc_type, exc_value, traceback) -> None:
|
|
158
|
-
pass
|
|
159
|
-
|
|
160
|
-
def exists(self) -> bool:
|
|
161
|
-
response = requests.head(self._full_url)
|
|
162
|
-
return 200 <= response.status_code < 400
|
cognite/neat/_utils/text.py
CHANGED
|
@@ -106,6 +106,18 @@ def to_snake(string: str) -> str:
|
|
|
106
106
|
return "_".join(map(str.lower, words))
|
|
107
107
|
|
|
108
108
|
|
|
109
|
+
def sentence_or_string_to_camel(string: str) -> str:
|
|
110
|
+
# Could be a combination of kebab and pascal/camel case
|
|
111
|
+
if " " in string:
|
|
112
|
+
parts = string.split(" ")
|
|
113
|
+
try:
|
|
114
|
+
return parts[0].casefold() + "".join(word.capitalize() for word in parts[1:])
|
|
115
|
+
except IndexError:
|
|
116
|
+
return ""
|
|
117
|
+
else:
|
|
118
|
+
return to_camel(string)
|
|
119
|
+
|
|
120
|
+
|
|
109
121
|
def replace_non_alphanumeric_with_underscore(text: str) -> str:
|
|
110
122
|
return re.sub(r"\W+", "_", text)
|
|
111
123
|
|
cognite/neat/_version.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
__version__ = "0.
|
|
2
|
-
__engine__ = "^2.0.
|
|
1
|
+
__version__ = "0.102.0"
|
|
2
|
+
__engine__ = "^2.0.2"
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: cognite-neat
|
|
3
|
+
Version: 0.102.0
|
|
4
|
+
Summary: Knowledge graph transformation
|
|
5
|
+
Home-page: https://cognite-neat.readthedocs-hosted.com/
|
|
6
|
+
License: Apache-2.0
|
|
7
|
+
Author: Nikola Vasiljevic
|
|
8
|
+
Author-email: nikola.vasiljevic@cognite.com
|
|
9
|
+
Requires-Python: >=3.10,<4.0
|
|
10
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Provides-Extra: all
|
|
17
|
+
Provides-Extra: docs
|
|
18
|
+
Provides-Extra: google
|
|
19
|
+
Provides-Extra: oxi
|
|
20
|
+
Provides-Extra: service
|
|
21
|
+
Requires-Dist: PyYAML
|
|
22
|
+
Requires-Dist: backports.strenum (>=1.2,<2.0) ; python_version < "3.11"
|
|
23
|
+
Requires-Dist: cognite-sdk (>=7.54.6,<8.0.0)
|
|
24
|
+
Requires-Dist: elementpath (>=4.0.0,<5.0.0)
|
|
25
|
+
Requires-Dist: exceptiongroup (>=1.1.3,<2.0.0) ; python_version < "3.11"
|
|
26
|
+
Requires-Dist: fastapi (>=0,<1) ; extra == "service" or extra == "all"
|
|
27
|
+
Requires-Dist: google-api-python-client ; extra == "google"
|
|
28
|
+
Requires-Dist: google-auth-oauthlib ; extra == "google"
|
|
29
|
+
Requires-Dist: gspread ; extra == "google"
|
|
30
|
+
Requires-Dist: jsonpath-python (>=1.0.6,<2.0.0)
|
|
31
|
+
Requires-Dist: lxml (>=5.3.0,<6.0.0) ; extra == "all"
|
|
32
|
+
Requires-Dist: mixpanel (>=4.10.1,<5.0.0)
|
|
33
|
+
Requires-Dist: mkdocs ; extra == "docs"
|
|
34
|
+
Requires-Dist: mkdocs-autorefs (>=0.5.0,<0.6.0) ; extra == "docs"
|
|
35
|
+
Requires-Dist: mkdocs-git-authors-plugin ; extra == "docs"
|
|
36
|
+
Requires-Dist: mkdocs-git-revision-date-localized-plugin ; extra == "docs"
|
|
37
|
+
Requires-Dist: mkdocs-gitbook ; extra == "docs"
|
|
38
|
+
Requires-Dist: mkdocs-glightbox ; extra == "docs"
|
|
39
|
+
Requires-Dist: mkdocs-jupyter ; extra == "docs"
|
|
40
|
+
Requires-Dist: mkdocs-material-extensions ; extra == "docs"
|
|
41
|
+
Requires-Dist: mkdocstrings[python] ; extra == "docs"
|
|
42
|
+
Requires-Dist: networkx (>=3.4.2,<4.0.0)
|
|
43
|
+
Requires-Dist: openpyxl
|
|
44
|
+
Requires-Dist: oxrdflib[oxigraph] (>=0.4.0,<0.5.0) ; extra == "oxi" or extra == "all"
|
|
45
|
+
Requires-Dist: packaging (>=22.0,<25.0)
|
|
46
|
+
Requires-Dist: pandas
|
|
47
|
+
Requires-Dist: prometheus-client (>=0,<1) ; extra == "service" or extra == "all"
|
|
48
|
+
Requires-Dist: pydantic (>=2,<3)
|
|
49
|
+
Requires-Dist: pymdown-extensions ; extra == "docs"
|
|
50
|
+
Requires-Dist: pyoxigraph (==0.4.3) ; extra == "oxi" or extra == "all"
|
|
51
|
+
Requires-Dist: python-multipart (==0.0.9) ; extra == "service" or extra == "all"
|
|
52
|
+
Requires-Dist: pyvis (>=0.3.2,<0.4.0)
|
|
53
|
+
Requires-Dist: rdflib
|
|
54
|
+
Requires-Dist: requests
|
|
55
|
+
Requires-Dist: rich[jupyter] (>=13.7.1,<14.0.0)
|
|
56
|
+
Requires-Dist: schedule (>=1,<2) ; extra == "service" or extra == "all"
|
|
57
|
+
Requires-Dist: tomli (>=2.0.1,<3.0.0) ; python_version < "3.11"
|
|
58
|
+
Requires-Dist: typing_extensions (>=4.8,<5.0) ; python_version < "3.11"
|
|
59
|
+
Requires-Dist: urllib3 (>=2,<3)
|
|
60
|
+
Requires-Dist: uvicorn[standard] (>=0,<1) ; extra == "service" or extra == "all"
|
|
61
|
+
Project-URL: Documentation, https://cognite-neat.readthedocs-hosted.com/
|
|
62
|
+
Project-URL: Repository, https://github.com/cognitedata/neat
|
|
63
|
+
Description-Content-Type: text/markdown
|
|
64
|
+
|
|
65
|
+
# kNowlEdge grAph Transformer (NEAT)
|
|
66
|
+
|
|
67
|
+
[](https://github.com/cognitedata/neat/actions/workflows/release.yaml)
|
|
68
|
+
[](https://cognite-neat.readthedocs-hosted.com/en/latest/?badge=latest)
|
|
69
|
+
[](https://github.com/cognitedata/neat)
|
|
70
|
+
[](https://pypi.org/project/cognite-neat/)
|
|
71
|
+
[](https://pypistats.org/packages/cognite-neat)
|
|
72
|
+
[](https://hub.docker.com/r/cognite/neat)
|
|
73
|
+
[](https://github.com/cognitedata/neat/blob/master/LICENSE)
|
|
74
|
+
[](https://github.com/ambv/black)
|
|
75
|
+
[](https://github.com/astral-sh/ruff)
|
|
76
|
+
[](http://mypy-lang.org)
|
|
77
|
+
|
|
78
|
+
NEAT is a domain expert centric and developer friendly solution for rapid:
|
|
79
|
+
|
|
80
|
+
- semantic data modeling
|
|
81
|
+
- creation, transformation and enrichment of knowledge graphs
|
|
82
|
+
- and ingestion of the models and graphs into [Cognite Data Fusion](https://www.cognite.com/en/product/cognite_data_fusion_industrial_dataops_platform)
|
|
83
|
+
|
|
84
|
+
NEAT is using open and globally recognized standards maintained by the [World Wide Web Consortium (W3C)](https://www.w3.org/RDF/).
|
|
85
|
+
NEAT represents an essential tool for creation of standardized, machine-actionable, linked and semantic (meta)data.
|
|
86
|
+
|
|
87
|
+
> NEAT is an acronym derived from k**N**owl**Ed**ge gr**A**ph **T**ransformer hallucinated by GenAI.
|
|
88
|
+
|
|
89
|
+
## Installation
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
pip install cognite-neat
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
## Usage
|
|
96
|
+
|
|
97
|
+
The user interface for `NEAT` is a notebook-based environment. Once you have set up your notebook
|
|
98
|
+
environment, you start by creating a `CogniteClient` and instantiate a `NeatSession` object.
|
|
99
|
+
|
|
100
|
+
```python
|
|
101
|
+
from cognite.neat import NeatSession, get_cognite_client
|
|
102
|
+
|
|
103
|
+
client = get_cognite_client(".env")
|
|
104
|
+
|
|
105
|
+
neat = NeatSession(client)
|
|
106
|
+
|
|
107
|
+
neat.read.cdf.data_model(("my_space", "MyDataModel", "v1"))
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Documentation
|
|
111
|
+
|
|
112
|
+
For more information, see the [documentation](https://cognite-neat.readthedocs-hosted.com/en/latest/)
|
|
113
|
+
|
|
@@ -80,7 +80,7 @@ cognite/neat/_client/data_classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
|
|
|
80
80
|
cognite/neat/_client/data_classes/data_modeling.py,sha256=RvpUp9ygd-yffQFJ7O2mQqMLDPIa-dmip5zPb8QVIiw,6672
|
|
81
81
|
cognite/neat/_client/data_classes/schema.py,sha256=hYKcrxXf90tA2NIqwBOzw9_hb4OanF9dwwPnur6MEfg,22904
|
|
82
82
|
cognite/neat/_config.py,sha256=f9Py4SEHwYYquIg-k1rC7MbXBLENXQauoZtLyUbWvJQ,10118
|
|
83
|
-
cognite/neat/_constants.py,sha256=
|
|
83
|
+
cognite/neat/_constants.py,sha256=ksyp8NKHEmjxz-773EUXfFZHsvjNOVrCpUXx85aStZo,2882
|
|
84
84
|
cognite/neat/_graph/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
85
85
|
cognite/neat/_graph/_shared.py,sha256=g7XFITbVxdDyGZ6mlgFUv5cBycrU7QbPktRikdUVkks,863
|
|
86
86
|
cognite/neat/_graph/_tracking/__init__.py,sha256=pYj7c-YAUIP4hvN-4mlWnwaeZFerzL9_gM-oZhex7cE,91
|
|
@@ -110,16 +110,16 @@ cognite/neat/_graph/extractors/_mock_graph_generator.py,sha256=yEqQdbnRQjBXVQIEV
|
|
|
110
110
|
cognite/neat/_graph/extractors/_rdf_file.py,sha256=YgPZN4Ayk6UlbwFFjdWn4Yo3P74D8KeNUb3slXg6Ox8,1604
|
|
111
111
|
cognite/neat/_graph/loaders/__init__.py,sha256=1eam_rG1BXTUJ8iDm8_IYZldEe177vn2GmHihDBi8qk,718
|
|
112
112
|
cognite/neat/_graph/loaders/_base.py,sha256=tjplRd-vbWhWyys0Ll3KgHR3F3ETlP_dXJ3e8F8w15M,3984
|
|
113
|
-
cognite/neat/_graph/loaders/_rdf2dms.py,sha256=
|
|
113
|
+
cognite/neat/_graph/loaders/_rdf2dms.py,sha256=N_6PH9PLpa5H2u2tJwgnJR21HuXnFIwiRj7g_ursdVI,17425
|
|
114
114
|
cognite/neat/_graph/queries/__init__.py,sha256=BgDd-037kvtWwAoGAy8eORVNMiZ5-E9sIV0txIpeaN4,50
|
|
115
|
-
cognite/neat/_graph/queries/_base.py,sha256=
|
|
115
|
+
cognite/neat/_graph/queries/_base.py,sha256=Y3Amuave6xdQsDE5ZXCrYLUgOMIH8BXa4n5Pc9czAF0,14926
|
|
116
116
|
cognite/neat/_graph/queries/_construct.py,sha256=CW8uHtXXACUXDj1AcEjROXtvoiuyx0CTgZ0bURY5Neo,7213
|
|
117
|
-
cognite/neat/_graph/queries/_shared.py,sha256=
|
|
118
|
-
cognite/neat/_graph/transformers/__init__.py,sha256=
|
|
119
|
-
cognite/neat/_graph/transformers/_base.py,sha256=
|
|
117
|
+
cognite/neat/_graph/queries/_shared.py,sha256=uhw-nY4jJvivgtj1msdCRrfTWgauU7ybSHUqqUaFOUU,5390
|
|
118
|
+
cognite/neat/_graph/transformers/__init__.py,sha256=8nN901mwxtNMvX9xAtWVuaU6jDjJ5yiXDfc-oYGzYfE,1425
|
|
119
|
+
cognite/neat/_graph/transformers/_base.py,sha256=3AJogynIiuTcXtGj70xU1Iz7l7HO3MJD4dTVvx2zqEk,336
|
|
120
120
|
cognite/neat/_graph/transformers/_classic_cdf.py,sha256=8vzvoHH2YJMg2mMTEH_ASGWn1Maars1N1RZ9jWhLTkY,19291
|
|
121
|
-
cognite/neat/_graph/transformers/_iodd.py,sha256=
|
|
122
|
-
cognite/neat/_graph/transformers/_prune_graph.py,sha256=
|
|
121
|
+
cognite/neat/_graph/transformers/_iodd.py,sha256=KNz1fPdKK40UaHgPMECzNZgSeU5PdPRyLdaRYdq1iug,866
|
|
122
|
+
cognite/neat/_graph/transformers/_prune_graph.py,sha256=ZW_UHFAPjYiAm_B32utdxR6Dl1aq9C4ODmmmW8WrkUo,10616
|
|
123
123
|
cognite/neat/_graph/transformers/_rdfpath.py,sha256=0ZH7d62kfdCyWGrCyY2oJSnGEPsHQd0sMrZAsTibCCI,4155
|
|
124
124
|
cognite/neat/_graph/transformers/_value_type.py,sha256=JorH-AgDXVZUkG_GCcwn51Mw0M2WIOV834t0kF_Nwvo,2614
|
|
125
125
|
cognite/neat/_issues/__init__.py,sha256=IEZBpvL88hdghX7JgndhxcZcxreZowuoQFIXuSeIKDs,556
|
|
@@ -149,22 +149,22 @@ cognite/neat/_rules/catalog/__init__.py,sha256=dzx-DYYJDc861aFiOI5o1FsySD9F1agY8
|
|
|
149
149
|
cognite/neat/_rules/catalog/info-rules-imf.xlsx,sha256=7odm5CoAU72-VTZk_z1u7GbycIb-X-8Yy3mtBGLjhE4,55511
|
|
150
150
|
cognite/neat/_rules/exporters/__init__.py,sha256=jCwXAeyZJv7GNJ3hGG-80gb8LAidozsyFMzdNIsGt_Y,1204
|
|
151
151
|
cognite/neat/_rules/exporters/_base.py,sha256=vadYWb5hVbjiPIhVIzlY6ARisoqhtJa6Ce0ysNHPXQc,1328
|
|
152
|
-
cognite/neat/_rules/exporters/_rules2dms.py,sha256=
|
|
153
|
-
cognite/neat/_rules/exporters/_rules2excel.py,sha256=
|
|
152
|
+
cognite/neat/_rules/exporters/_rules2dms.py,sha256=pwqy0wzLpSh-BNukLOOB12gTVNeCHEPefX5idtTp2sI,17198
|
|
153
|
+
cognite/neat/_rules/exporters/_rules2excel.py,sha256=d_UwE1tL2JaFcmdLtnRTu_dzNatUsHsVFYLsndPGaaY,11777
|
|
154
154
|
cognite/neat/_rules/exporters/_rules2instance_template.py,sha256=8HM1SkzcucaEYpQi96ncMnL8STArX9Oe09JBhJJAN4I,5810
|
|
155
155
|
cognite/neat/_rules/exporters/_rules2ontology.py,sha256=ioMi1GUhnbvcfVOPb3Z0a24mIEe74AfxySETWMDS9Lc,21776
|
|
156
156
|
cognite/neat/_rules/exporters/_rules2yaml.py,sha256=O9vnzDHf1ep1Qu0po0GVjgu945HNx3-zRmhxv65sv6I,3052
|
|
157
157
|
cognite/neat/_rules/exporters/_validation.py,sha256=DVJGdNNU2WtAFgUg0h4SWVhveRErEPOcYdT65y5toV0,682
|
|
158
158
|
cognite/neat/_rules/importers/__init__.py,sha256=DZN_MIy_rQwyudvdAYtLPOVPB3YytmDoIfKGgT55StQ,1316
|
|
159
159
|
cognite/neat/_rules/importers/_base.py,sha256=P5bksMf7MNfLDX0SVQxjmK3Y-psoe0HcI_sWFoQJbFs,3264
|
|
160
|
-
cognite/neat/_rules/importers/_dms2rules.py,sha256=
|
|
160
|
+
cognite/neat/_rules/importers/_dms2rules.py,sha256=u-zWfunrEXJEstgVfh3PVd33eJLz_s4hvFu2ayGmCME,21802
|
|
161
161
|
cognite/neat/_rules/importers/_dtdl2rules/__init__.py,sha256=CNR-sUihs2mnR1bPMKs3j3L4ds3vFTsrl6YycExZTfU,68
|
|
162
162
|
cognite/neat/_rules/importers/_dtdl2rules/_unit_lookup.py,sha256=wW4saKva61Q_i17guY0dc4OseJDQfqHy_QZBtm0OD6g,12134
|
|
163
163
|
cognite/neat/_rules/importers/_dtdl2rules/dtdl_converter.py,sha256=j38U0um1ZWI-yRvEUR3z33vOvMCYXJxSO9L_B7m9xDE,11707
|
|
164
164
|
cognite/neat/_rules/importers/_dtdl2rules/dtdl_importer.py,sha256=y3UMwrBysT3pl_wXJj-qKYKYbJDKa424AAfn6e8489k,5955
|
|
165
165
|
cognite/neat/_rules/importers/_dtdl2rules/spec.py,sha256=u__f08rAiYG0FIRiWoecBN83bVN3GEy--Lvm7463Q68,12166
|
|
166
166
|
cognite/neat/_rules/importers/_rdf/__init__.py,sha256=F0x60kVLtJ9H8Md8_aMeKMBkhPCMiljyxt2_YmQfnMU,183
|
|
167
|
-
cognite/neat/_rules/importers/_rdf/_base.py,sha256=
|
|
167
|
+
cognite/neat/_rules/importers/_rdf/_base.py,sha256=03YUWpcxjTrmYoVmZYxQKlMo4v54VJFfe_qx0fc8AGA,5449
|
|
168
168
|
cognite/neat/_rules/importers/_rdf/_imf2rules.py,sha256=xemIv5G6JXJJ6Jn_1P5UldwEDNsgMIGiDF28DnOTtjU,3597
|
|
169
169
|
cognite/neat/_rules/importers/_rdf/_inference2rules.py,sha256=Zu6GTsG8A48PQs8F7H8iskTj9zu2R-l4NlWejCwSwqo,12518
|
|
170
170
|
cognite/neat/_rules/importers/_rdf/_owl2rules.py,sha256=KhQAM9ai2ckhpB7ohfRi0n8ztRwbPADfNMFed8f-5V8,3267
|
|
@@ -173,13 +173,13 @@ cognite/neat/_rules/importers/_spreadsheet2rules.py,sha256=TI92l_qddRW2JWk3Jbmsv
|
|
|
173
173
|
cognite/neat/_rules/importers/_yaml2rules.py,sha256=5DsEMYo6JVHC_mBOaaR3J6on1rXSpk82plCsrOq5_l8,3144
|
|
174
174
|
cognite/neat/_rules/models/__init__.py,sha256=z1LoPY2X-M8Og8bKcjae2JwQB9yW8Y_ASnkL3Tjwqyg,1024
|
|
175
175
|
cognite/neat/_rules/models/_base_input.py,sha256=qJrxobZLqpc28adEUJTKdJ8hDUZ67SVDFkUJnGjcPOc,6647
|
|
176
|
-
cognite/neat/_rules/models/_base_rules.py,sha256=
|
|
176
|
+
cognite/neat/_rules/models/_base_rules.py,sha256=4JP9jnJFP93kQ1otJSop-xIljTpHmZgNX9RfsQvEBfY,14820
|
|
177
177
|
cognite/neat/_rules/models/_rdfpath.py,sha256=hqUMZCMeI8ESdJltu7FifuUhna5JNN_Heup2aYkV56Y,11882
|
|
178
178
|
cognite/neat/_rules/models/_types.py,sha256=7rh4PVaqI58OTXtoIgZKitmwa5hZlVtk8uX4czlSGFY,5261
|
|
179
179
|
cognite/neat/_rules/models/data_types.py,sha256=LJuWUbStlZM4hUJGExOJIJXmAA4uiA0tvO9zKqLUrQg,9805
|
|
180
180
|
cognite/neat/_rules/models/dms/__init__.py,sha256=r2XGwAjTsAZs-n-oimg40hLUKVpqFGVuAPmfEUCwwRs,695
|
|
181
181
|
cognite/neat/_rules/models/dms/_exporter.py,sha256=eB5uDX06XYkQkON96eykSk7ZCegb9a5dCxTmTIr252c,28020
|
|
182
|
-
cognite/neat/_rules/models/dms/_rules.py,sha256=
|
|
182
|
+
cognite/neat/_rules/models/dms/_rules.py,sha256=xQ8NoSE9D4tMjcEwKn4z7HdF9l_3OR-1xRlH3uamQPM,20186
|
|
183
183
|
cognite/neat/_rules/models/dms/_rules_input.py,sha256=mVW-gHrjjlqFuq82qTkxIaMZ7OlzQFxjopxdlwQergY,12949
|
|
184
184
|
cognite/neat/_rules/models/dms/_validation.py,sha256=TAgNg1rur3PRVPcsm4-BXKV9AHX8AtahN0OhRx3PgyM,27262
|
|
185
185
|
cognite/neat/_rules/models/entities/__init__.py,sha256=QD-h79HhjqCsgscNU5kuf1ieRCE94dOfpujLuzYbtHk,1469
|
|
@@ -190,7 +190,7 @@ cognite/neat/_rules/models/entities/_single_value.py,sha256=dVfqIx3_Agi_LddhsqPO
|
|
|
190
190
|
cognite/neat/_rules/models/entities/_types.py,sha256=df9rnXJJKciv2Bp-Ve2q4xdEJt6WWniq12Z0hW2d6sk,1917
|
|
191
191
|
cognite/neat/_rules/models/entities/_wrapped.py,sha256=FxC8HztW_tUUtuArAOwxyFfkdJnSEB4bgZoNmmmfiPk,7137
|
|
192
192
|
cognite/neat/_rules/models/information/__init__.py,sha256=ex9JOyiZYXefFl9oi1VaHhyUOtYjXWytSmwuq4pqKqc,556
|
|
193
|
-
cognite/neat/_rules/models/information/_rules.py,sha256=
|
|
193
|
+
cognite/neat/_rules/models/information/_rules.py,sha256=c_vS0GM9hv2ESanuso5H5x5vR1aBVtG5rwzjQhHij_k,11798
|
|
194
194
|
cognite/neat/_rules/models/information/_rules_input.py,sha256=PdXTPN0QfO4vxN5M4xzaaDwHEQo53RbY_jIr5TfBszY,5443
|
|
195
195
|
cognite/neat/_rules/models/information/_validation.py,sha256=HbaLShj6uumu-t9I3FUI_iKQfUDiwEkuFENHgWIPfrk,10202
|
|
196
196
|
cognite/neat/_rules/models/mapping/__init__.py,sha256=T68Hf7rhiXa7b03h4RMwarAmkGnB-Bbhc1H07b2PyC4,100
|
|
@@ -203,40 +203,40 @@ cognite/neat/_rules/transformers/_mapping.py,sha256=gMkLHeMWTvQJZV-YLMQm0pirnd2a
|
|
|
203
203
|
cognite/neat/_rules/transformers/_pipelines.py,sha256=2y786LkNMedmxoozUyvtd-2bfqf6wkX2H8On-m2Ucsw,2618
|
|
204
204
|
cognite/neat/_rules/transformers/_verification.py,sha256=M4-Cr3vTm3PZyHSjW-odbOqbY5g0hiRjERDjvLgYbxU,3907
|
|
205
205
|
cognite/neat/_session/__init__.py,sha256=fxQ5URVlUnmEGYyB8Baw7IDq-uYacqkigbc4b-Pr9Fw,58
|
|
206
|
-
cognite/neat/_session/_base.py,sha256=
|
|
206
|
+
cognite/neat/_session/_base.py,sha256=93FJAYYdXvg2cpzL-rVCFdIivFIafb2OtMhr5zrkcyE,11696
|
|
207
207
|
cognite/neat/_session/_collector.py,sha256=zS5JxLIYnAWV-dBzF6WgUfo662iYSzEyDhtnMv-Zibs,4002
|
|
208
208
|
cognite/neat/_session/_drop.py,sha256=XlEaKb_HpqI5EQuUuUFjcf3Qx6BfcBBWdqqGdwkGhmE,1137
|
|
209
209
|
cognite/neat/_session/_inspect.py,sha256=s3R6vz8HbqZSdknyXTSkmA3JvvInlQF5yNKECTA-I1w,7264
|
|
210
210
|
cognite/neat/_session/_mapping.py,sha256=MZ_xRhapc2mVwM-W3tda2zZGaPncj_ZqnzuasvY05po,6109
|
|
211
|
-
cognite/neat/_session/_prepare.py,sha256=
|
|
212
|
-
cognite/neat/_session/_read.py,sha256=
|
|
211
|
+
cognite/neat/_session/_prepare.py,sha256=saGqkQUxdclU840d2IUMSeYltSoVn0b9ZkC2ntfOuu0,24994
|
|
212
|
+
cognite/neat/_session/_read.py,sha256=Kfq1RAT5soXSI7vgxY-HN-GjMzAW5RZQD9E7JiuKBmU,15152
|
|
213
213
|
cognite/neat/_session/_set.py,sha256=NY0Vz8xD_a-UA8qWE1GFxHdmBl1BkT1KHQehQVKUorI,1914
|
|
214
214
|
cognite/neat/_session/_show.py,sha256=_ev_Z41rkW4nlvhLf69PmttggKksnkCchOow7CmICyU,14124
|
|
215
215
|
cognite/neat/_session/_state.py,sha256=rqKHkikagO1pf_fKpY-LZI1X5R_v6AyYpV72_3eSduM,5783
|
|
216
|
-
cognite/neat/_session/_to.py,sha256=
|
|
216
|
+
cognite/neat/_session/_to.py,sha256=PjS3avL0a4SmarMgfxJrsjAA45gMZ_1wX9RcKSSvKXk,7413
|
|
217
217
|
cognite/neat/_session/_wizard.py,sha256=O8d0FA87RIoiTOD2KLyTVsxwA2-ewAG2By4JfxXSL84,1474
|
|
218
218
|
cognite/neat/_session/engine/__init__.py,sha256=aeI5pzljU5n1B-SVu3LwjYVsN1tSVhnJj-4ddflEo4U,120
|
|
219
219
|
cognite/neat/_session/engine/_import.py,sha256=1QxA2_EK613lXYAHKQbZyw2yjo5P9XuiX4Z6_6-WMNQ,169
|
|
220
220
|
cognite/neat/_session/engine/_interface.py,sha256=ItJ1VMrPt-pKKvpSpglD9n9yFC6ehF9xV2DUVCyfQB0,533
|
|
221
|
-
cognite/neat/_session/engine/_load.py,sha256=
|
|
221
|
+
cognite/neat/_session/engine/_load.py,sha256=LcoYVthQyCzLWKzRE_75_nElS-n_eMWSPAgNJBnh5dA,5193
|
|
222
222
|
cognite/neat/_session/exceptions.py,sha256=dvhwF7d8AADxqEI13nZreLCPBPN_7A3KiAqlWjkpuqc,2303
|
|
223
223
|
cognite/neat/_shared.py,sha256=JXebp3LREqBq9TPNXb7QCHwF7_nbWo622WAzllxSaaU,1671
|
|
224
224
|
cognite/neat/_store/__init__.py,sha256=G-VG_YwfRt1kuPao07PDJyZ3w_0-eguzLUM13n-Z_RA,64
|
|
225
|
-
cognite/neat/_store/_base.py,sha256=
|
|
225
|
+
cognite/neat/_store/_base.py,sha256=WfVFynBRbhY-DgzpA0cApLUpaPMfiyolzVOycDgnm7c,17143
|
|
226
226
|
cognite/neat/_store/_provenance.py,sha256=BiVOuwl65qWZBaBlPYbVv0Dy_Ibg7U3tLpXt8H7KRuw,8722
|
|
227
227
|
cognite/neat/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
228
|
-
cognite/neat/_utils/auth.py,sha256=
|
|
228
|
+
cognite/neat/_utils/auth.py,sha256=YRzvkjT9lAYSJd3wsPov2wtmGVCtt1wOlmp84RRTEXw,13444
|
|
229
229
|
cognite/neat/_utils/auxiliary.py,sha256=WFOycFgoYipvDmtGvn6ZNH3H8iNZmHamrfe2kXRb8lM,6667
|
|
230
230
|
cognite/neat/_utils/collection_.py,sha256=Q_LN1qypr0SeAV3dAR5KLD1szHNohSdYxyA8hr3n4T8,1433
|
|
231
231
|
cognite/neat/_utils/rdf_.py,sha256=_nmZqo6_Ef7Aep0kXR_uoiRxGQR2u5lMK4g5mxWneeY,8586
|
|
232
|
-
cognite/neat/_utils/reader/__init__.py,sha256=
|
|
233
|
-
cognite/neat/_utils/reader/_base.py,sha256=
|
|
232
|
+
cognite/neat/_utils/reader/__init__.py,sha256=bTYNMnlcCDSFWAcbj7j_r1pU3CnFM7lXeXXfo6acokA,146
|
|
233
|
+
cognite/neat/_utils/reader/_base.py,sha256=mk_kZDnfg5LcvYJr5IiBosYwbF82mLWo1p1Wq3K2p_Y,4681
|
|
234
234
|
cognite/neat/_utils/spreadsheet.py,sha256=LI0c7dlW0zXHkHw0NvB-gg6Df6cDcE3FbiaHBYLXdzQ,2714
|
|
235
|
-
cognite/neat/_utils/text.py,sha256=
|
|
235
|
+
cognite/neat/_utils/text.py,sha256=0IffvBIAmeGh92F4T6xiEdd-vv3B7FOGEMbfuTktO5Y,4017
|
|
236
236
|
cognite/neat/_utils/time_.py,sha256=O30LUiDH9TdOYz8_a9pFqTtJdg8vEjC3qHCk8xZblG8,345
|
|
237
237
|
cognite/neat/_utils/upload.py,sha256=iWKmsQgw4EHLv-11NjYu7zAj5LtqTAfNa87a1kWeuaU,5727
|
|
238
238
|
cognite/neat/_utils/xml_.py,sha256=FQkq84u35MUsnKcL6nTMJ9ajtG9D5i1u4VBnhGqP2DQ,1710
|
|
239
|
-
cognite/neat/_version.py,sha256=
|
|
239
|
+
cognite/neat/_version.py,sha256=vjgGQ3RZK2Kvz8gvZ9ElmNuxvNfbYPv4p9coXriN5Ic,46
|
|
240
240
|
cognite/neat/_workflows/__init__.py,sha256=S0fZq7kvoqDKodHu1UIPsqcpdvXoefUWRPt1lqeQkQs,420
|
|
241
241
|
cognite/neat/_workflows/base.py,sha256=O1pcmfbme2gIVF2eOGrKZSUDmhZc8L9rI8UfvLN2YAM,26839
|
|
242
242
|
cognite/neat/_workflows/cdf_store.py,sha256=3pebnATPo6In4-1srpa3wzstynTOi3T6hwFX5uaie4c,18050
|
|
@@ -265,8 +265,8 @@ cognite/neat/_workflows/tasks.py,sha256=dr2xuIb8P5e5e9p_fjzRlvDbKsre2xGYrkc3wnRx
|
|
|
265
265
|
cognite/neat/_workflows/triggers.py,sha256=u69xOsaTtM8_WD6ZeIIBB-XKwvlZmPHAsZQh_TnyHcM,7073
|
|
266
266
|
cognite/neat/_workflows/utils.py,sha256=gKdy3RLG7ctRhbCRwaDIWpL9Mi98zm56-d4jfHDqP1E,453
|
|
267
267
|
cognite/neat/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
268
|
-
cognite_neat-0.
|
|
269
|
-
cognite_neat-0.
|
|
270
|
-
cognite_neat-0.
|
|
271
|
-
cognite_neat-0.
|
|
272
|
-
cognite_neat-0.
|
|
268
|
+
cognite_neat-0.102.0.dist-info/LICENSE,sha256=W8VmvFia4WHa3Gqxq1Ygrq85McUNqIGDVgtdvzT-XqA,11351
|
|
269
|
+
cognite_neat-0.102.0.dist-info/METADATA,sha256=7qilQkBii0rF3dUUBQGeuEf74Yr4VaUyKQ6DgyOPQM4,5708
|
|
270
|
+
cognite_neat-0.102.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
|
271
|
+
cognite_neat-0.102.0.dist-info/entry_points.txt,sha256=SsQlnl8SNMSSjE3acBI835JYFtsIinLSbVmHmMEXv6E,51
|
|
272
|
+
cognite_neat-0.102.0.dist-info/RECORD,,
|