cognite-neat 0.105.0__py3-none-any.whl → 0.105.1__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 +1 -0
- cognite/neat/_graph/loaders/_rdf2dms.py +19 -4
- cognite/neat/_graph/transformers/_classic_cdf.py +37 -50
- cognite/neat/_graph/transformers/_rdfpath.py +14 -15
- cognite/neat/_issues/warnings/__init__.py +2 -0
- cognite/neat/_issues/warnings/_properties.py +11 -0
- cognite/neat/_version.py +1 -1
- {cognite_neat-0.105.0.dist-info → cognite_neat-0.105.1.dist-info}/METADATA +2 -2
- {cognite_neat-0.105.0.dist-info → cognite_neat-0.105.1.dist-info}/RECORD +12 -12
- {cognite_neat-0.105.0.dist-info → cognite_neat-0.105.1.dist-info}/LICENSE +0 -0
- {cognite_neat-0.105.0.dist-info → cognite_neat-0.105.1.dist-info}/WHEEL +0 -0
- {cognite_neat-0.105.0.dist-info → cognite_neat-0.105.1.dist-info}/entry_points.txt +0 -0
cognite/neat/_constants.py
CHANGED
|
@@ -103,6 +103,7 @@ DEFAULT_DOCS_URL = "https://cognite-neat.readthedocs-hosted.com/en/latest/"
|
|
|
103
103
|
|
|
104
104
|
DMS_CONTAINER_PROPERTY_SIZE_LIMIT = 100
|
|
105
105
|
DMS_VIEW_CONTAINER_SIZE_LIMIT = 10
|
|
106
|
+
DMS_DIRECT_RELATION_LIST_LIMIT = 100
|
|
106
107
|
|
|
107
108
|
_ASSET_ROOT_PROPERTY = {
|
|
108
109
|
"connection": "direct",
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import itertools
|
|
2
2
|
import json
|
|
3
|
+
import warnings
|
|
3
4
|
from collections import defaultdict
|
|
4
5
|
from collections.abc import Iterable, Sequence
|
|
5
6
|
from graphlib import TopologicalSorter
|
|
6
7
|
from pathlib import Path
|
|
7
|
-
from typing import Any, get_args
|
|
8
|
+
from typing import Any, cast, get_args
|
|
8
9
|
|
|
9
10
|
import yaml
|
|
10
11
|
from cognite.client import CogniteClient
|
|
@@ -19,7 +20,7 @@ from pydantic import BaseModel, ValidationInfo, create_model, field_validator
|
|
|
19
20
|
from rdflib import RDF, URIRef
|
|
20
21
|
|
|
21
22
|
from cognite.neat._client import NeatClient
|
|
22
|
-
from cognite.neat._constants import is_readonly_property
|
|
23
|
+
from cognite.neat._constants import DMS_DIRECT_RELATION_LIST_LIMIT, is_readonly_property
|
|
23
24
|
from cognite.neat._graph._tracking import LogTracker, Tracker
|
|
24
25
|
from cognite.neat._issues import IssueList, NeatIssue, NeatIssueList
|
|
25
26
|
from cognite.neat._issues.errors import (
|
|
@@ -28,7 +29,7 @@ from cognite.neat._issues.errors import (
|
|
|
28
29
|
ResourceDuplicatedError,
|
|
29
30
|
ResourceRetrievalError,
|
|
30
31
|
)
|
|
31
|
-
from cognite.neat._issues.warnings import PropertyTypeNotSupportedWarning
|
|
32
|
+
from cognite.neat._issues.warnings import PropertyDirectRelationLimitWarning, PropertyTypeNotSupportedWarning
|
|
32
33
|
from cognite.neat._rules.analysis._dms import DMSAnalysis
|
|
33
34
|
from cognite.neat._rules.models import DMSRules
|
|
34
35
|
from cognite.neat._rules.models.data_types import _DATA_TYPE_BY_DMS_TYPE, Json
|
|
@@ -373,7 +374,21 @@ class DMSLoader(CDFLoader[dm.InstanceApply]):
|
|
|
373
374
|
def parse_direct_relation(cls, value: list, info: ValidationInfo) -> dict | list[dict]:
|
|
374
375
|
# We validate above that we only get one value for single direct relations.
|
|
375
376
|
if list.__name__ in _get_field_value_types(cls, info):
|
|
376
|
-
|
|
377
|
+
result = [{"space": self.instance_space, "externalId": remove_namespace_from_uri(v)} for v in value]
|
|
378
|
+
if len(result) <= DMS_DIRECT_RELATION_LIST_LIMIT:
|
|
379
|
+
return result
|
|
380
|
+
warnings.warn(
|
|
381
|
+
PropertyDirectRelationLimitWarning(
|
|
382
|
+
identifier="unknown",
|
|
383
|
+
resource_type="view property",
|
|
384
|
+
property_name=cast(str, cls.model_fields[info.field_name].alias or info.field_name),
|
|
385
|
+
limit=DMS_DIRECT_RELATION_LIST_LIMIT,
|
|
386
|
+
),
|
|
387
|
+
stacklevel=2,
|
|
388
|
+
)
|
|
389
|
+
# To get deterministic results, we sort by space and externalId
|
|
390
|
+
result.sort(key=lambda x: (x["space"], x["externalId"]))
|
|
391
|
+
return result[:DMS_DIRECT_RELATION_LIST_LIMIT]
|
|
377
392
|
elif value:
|
|
378
393
|
return {"space": self.instance_space, "externalId": remove_namespace_from_uri(value[0])}
|
|
379
394
|
return {}
|
|
@@ -6,6 +6,7 @@ from functools import lru_cache
|
|
|
6
6
|
from typing import cast
|
|
7
7
|
|
|
8
8
|
from rdflib import RDF, Graph, Literal, Namespace, URIRef
|
|
9
|
+
from rdflib.query import ResultRow
|
|
9
10
|
|
|
10
11
|
from cognite.neat._constants import CLASSIC_CDF_NAMESPACE, DEFAULT_NAMESPACE
|
|
11
12
|
from cognite.neat._graph import extractors
|
|
@@ -18,71 +19,57 @@ from cognite.neat._utils.rdf_ import (
|
|
|
18
19
|
remove_namespace_from_uri,
|
|
19
20
|
)
|
|
20
21
|
|
|
21
|
-
from ._base import BaseTransformer
|
|
22
|
+
from ._base import BaseTransformer, BaseTransformerStandardised, RowTransformationOutput
|
|
22
23
|
|
|
23
24
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
description: str = "Adds depth of asset in the asset hierarchy to the graph"
|
|
25
|
+
class AddAssetDepth(BaseTransformerStandardised):
|
|
26
|
+
description: str = "Adds depth of asset in the asset hierarchy and optionally types asset based on depth"
|
|
27
27
|
_use_only_once: bool = True
|
|
28
28
|
_need_changes = frozenset({str(extractors.AssetsExtractor.__name__)})
|
|
29
29
|
|
|
30
|
-
_parent_template: str = """SELECT ?child ?parent WHERE {{
|
|
31
|
-
<{asset_id}> <{parent_prop}> ?child .
|
|
32
|
-
OPTIONAL{{?child <{parent_prop}>+ ?parent .}}}}"""
|
|
33
|
-
|
|
34
|
-
_root_template: str = """SELECT ?root WHERE {{
|
|
35
|
-
<{asset_id}> <{root_prop}> ?root .}}"""
|
|
36
|
-
|
|
37
30
|
def __init__(
|
|
38
31
|
self,
|
|
39
32
|
asset_type: URIRef | None = None,
|
|
40
|
-
root_prop: URIRef | None = None,
|
|
41
33
|
parent_prop: URIRef | None = None,
|
|
42
34
|
depth_typing: dict[int, str] | None = None,
|
|
43
35
|
):
|
|
44
36
|
self.asset_type = asset_type or DEFAULT_NAMESPACE.Asset
|
|
45
|
-
self.root_prop = root_prop or DEFAULT_NAMESPACE.rootId
|
|
46
37
|
self.parent_prop = parent_prop or DEFAULT_NAMESPACE.parentId
|
|
47
38
|
self.depth_typing = depth_typing
|
|
48
39
|
|
|
49
|
-
def
|
|
50
|
-
"""
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
):
|
|
83
|
-
return 1
|
|
84
|
-
else:
|
|
85
|
-
return None
|
|
40
|
+
def _iterate_query(self) -> str:
|
|
41
|
+
query = """SELECT ?asset (IF(?isRoot, 0, COUNT(?parent)) AS ?parentCount)
|
|
42
|
+
WHERE {{
|
|
43
|
+
?asset a <{asset_type}> .
|
|
44
|
+
OPTIONAL {{ ?asset <{parent_prop}>+ ?parent . }}
|
|
45
|
+
BIND(IF(BOUND(?parent), false, true) AS ?isRoot)}}
|
|
46
|
+
GROUP BY ?asset ?isRoot
|
|
47
|
+
ORDER BY DESC(?parentCount)"""
|
|
48
|
+
|
|
49
|
+
return query.format(
|
|
50
|
+
asset_type=self.asset_type,
|
|
51
|
+
parent_prop=self.parent_prop,
|
|
52
|
+
)
|
|
53
|
+
|
|
54
|
+
def _count_query(self) -> str:
|
|
55
|
+
query = """SELECT (COUNT(?asset) as ?count)
|
|
56
|
+
WHERE {{ ?asset a <{asset_type}> . }}"""
|
|
57
|
+
|
|
58
|
+
return query.format(asset_type=self.asset_type)
|
|
59
|
+
|
|
60
|
+
def operation(self, query_result_row: ResultRow) -> RowTransformationOutput:
|
|
61
|
+
row_output = RowTransformationOutput()
|
|
62
|
+
subject, object = query_result_row
|
|
63
|
+
|
|
64
|
+
row_output.add_triples.append(cast(Triple, (subject, DEFAULT_NAMESPACE.depth, object)))
|
|
65
|
+
|
|
66
|
+
if self.depth_typing and (type_ := self.depth_typing.get(int(object), None)):
|
|
67
|
+
row_output.remove_triples.append(cast(Triple, (subject, RDF.type, self.asset_type)))
|
|
68
|
+
row_output.add_triples.append(cast(Triple, (subject, RDF.type, DEFAULT_NAMESPACE[type_])))
|
|
69
|
+
|
|
70
|
+
row_output.instances_modified_count += 1
|
|
71
|
+
|
|
72
|
+
return row_output
|
|
86
73
|
|
|
87
74
|
|
|
88
75
|
# TODO: standardise
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
from typing import cast
|
|
2
2
|
from urllib.parse import quote
|
|
3
3
|
|
|
4
|
-
from rdflib import Graph, URIRef
|
|
4
|
+
from rdflib import Graph, Namespace, URIRef
|
|
5
5
|
from rdflib.query import ResultRow
|
|
6
6
|
|
|
7
|
-
from cognite.neat._constants import DEFAULT_NAMESPACE
|
|
8
7
|
from cognite.neat._rules.analysis import InformationAnalysis
|
|
9
8
|
from cognite.neat._rules.models._rdfpath import RDFPath, SingleProperty
|
|
10
9
|
from cognite.neat._rules.models.information import InformationRules
|
|
11
10
|
from cognite.neat._shared import Triple
|
|
12
|
-
from cognite.neat._utils.rdf_ import remove_namespace_from_uri
|
|
11
|
+
from cognite.neat._utils.rdf_ import get_namespace, remove_namespace_from_uri
|
|
13
12
|
|
|
14
13
|
from ._base import BaseTransformer, BaseTransformerStandardised, RowTransformationOutput
|
|
15
14
|
|
|
@@ -76,11 +75,11 @@ class MakeConnectionOnExactMatch(BaseTransformerStandardised):
|
|
|
76
75
|
self.subject_predicate = subject_predicate
|
|
77
76
|
self.object_type = object_type
|
|
78
77
|
self.object_predicate = object_predicate
|
|
79
|
-
|
|
78
|
+
subject_namespace = Namespace(get_namespace(subject_type))
|
|
80
79
|
self.connection = (
|
|
81
|
-
|
|
80
|
+
subject_namespace[quote(connection.strip())]
|
|
82
81
|
if isinstance(connection, str)
|
|
83
|
-
else connection or
|
|
82
|
+
else connection or subject_namespace[remove_namespace_from_uri(self.object_type).lower()]
|
|
84
83
|
)
|
|
85
84
|
|
|
86
85
|
self.limit = limit
|
|
@@ -88,10 +87,10 @@ class MakeConnectionOnExactMatch(BaseTransformerStandardised):
|
|
|
88
87
|
def _iterate_query(self) -> str:
|
|
89
88
|
query = """SELECT DISTINCT ?subject ?object
|
|
90
89
|
WHERE {{
|
|
91
|
-
?subject a <{subject_type}>
|
|
92
|
-
|
|
93
|
-
?object <{
|
|
94
|
-
|
|
90
|
+
?subject a <{subject_type}> ;
|
|
91
|
+
<{subject_predicate}> ?value .
|
|
92
|
+
?object a <{object_type}> ;
|
|
93
|
+
<{object_predicate}> ?value .
|
|
95
94
|
}}"""
|
|
96
95
|
|
|
97
96
|
if self.limit and isinstance(self.limit, int) and self.limit > 0:
|
|
@@ -105,12 +104,12 @@ class MakeConnectionOnExactMatch(BaseTransformerStandardised):
|
|
|
105
104
|
)
|
|
106
105
|
|
|
107
106
|
def _count_query(self) -> str:
|
|
108
|
-
query = """SELECT (COUNT(DISTINCT
|
|
107
|
+
query = """SELECT (COUNT(DISTINCT ?subject) as ?count)
|
|
109
108
|
WHERE {{
|
|
110
|
-
?subject a <{subject_type}>
|
|
111
|
-
|
|
112
|
-
?object <{
|
|
113
|
-
|
|
109
|
+
?subject a <{subject_type}> ;
|
|
110
|
+
<{subject_predicate}> ?value .
|
|
111
|
+
?object a <{object_type}> ;
|
|
112
|
+
<{object_predicate}> ?value .
|
|
114
113
|
}}"""
|
|
115
114
|
|
|
116
115
|
if self.limit and isinstance(self.limit, int) and self.limit > 0:
|
|
@@ -28,6 +28,7 @@ from ._models import (
|
|
|
28
28
|
from ._properties import (
|
|
29
29
|
PropertyDataTypeConversionWarning,
|
|
30
30
|
PropertyDefinitionDuplicatedWarning,
|
|
31
|
+
PropertyDirectRelationLimitWarning,
|
|
31
32
|
PropertyNotFoundWarning,
|
|
32
33
|
PropertyOverwritingWarning,
|
|
33
34
|
PropertySkippedWarning,
|
|
@@ -64,6 +65,7 @@ __all__ = [
|
|
|
64
65
|
"PrincipleSolutionBuildsOnEnterpriseWarning",
|
|
65
66
|
"PropertyDataTypeConversionWarning",
|
|
66
67
|
"PropertyDefinitionDuplicatedWarning",
|
|
68
|
+
"PropertyDirectRelationLimitWarning",
|
|
67
69
|
"PropertyNotFoundWarning",
|
|
68
70
|
"PropertyOverwritingWarning",
|
|
69
71
|
"PropertySkippedWarning",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from dataclasses import dataclass
|
|
2
2
|
from typing import Generic
|
|
3
3
|
|
|
4
|
+
from cognite.neat._constants import DMS_DIRECT_RELATION_LIST_LIMIT
|
|
4
5
|
from cognite.neat._issues._base import ResourceType
|
|
5
6
|
|
|
6
7
|
from ._resources import ResourceNeatWarning, T_Identifier, T_ReferenceIdentifier
|
|
@@ -77,3 +78,13 @@ class PropertyDataTypeConversionWarning(PropertyWarning[T_Identifier]):
|
|
|
77
78
|
"""The {resource_type} with identifier {identifier} failed to convert the property {property_name}: {error}"""
|
|
78
79
|
|
|
79
80
|
error: str
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
@dataclass(unsafe_hash=True)
|
|
84
|
+
class PropertyDirectRelationLimitWarning(PropertyWarning[T_Identifier]):
|
|
85
|
+
"""The listable direct relation property {property_name} in the {resource_type} with identifier {identifier}
|
|
86
|
+
has more than {limit} relations. The relations will be sorted by (space, externalId) and truncated."""
|
|
87
|
+
|
|
88
|
+
resource_type = "view"
|
|
89
|
+
|
|
90
|
+
limit: int = DMS_DIRECT_RELATION_LIST_LIMIT
|
cognite/neat/_version.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
__version__ = "0.105.
|
|
1
|
+
__version__ = "0.105.1"
|
|
2
2
|
__engine__ = "^2.0.3"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: cognite-neat
|
|
3
|
-
Version: 0.105.
|
|
3
|
+
Version: 0.105.1
|
|
4
4
|
Summary: Knowledge graph transformation
|
|
5
5
|
Home-page: https://cognite-neat.readthedocs-hosted.com/
|
|
6
6
|
License: Apache-2.0
|
|
@@ -20,7 +20,7 @@ Provides-Extra: oxi
|
|
|
20
20
|
Provides-Extra: service
|
|
21
21
|
Requires-Dist: PyYAML
|
|
22
22
|
Requires-Dist: backports.strenum (>=1.2,<2.0) ; python_version < "3.11"
|
|
23
|
-
Requires-Dist: cognite-sdk (>=7.
|
|
23
|
+
Requires-Dist: cognite-sdk (>=7.71.2,<8.0.0)
|
|
24
24
|
Requires-Dist: elementpath (>=4.0.0,<5.0.0)
|
|
25
25
|
Requires-Dist: exceptiongroup (>=1.1.3,<2.0.0) ; python_version < "3.11"
|
|
26
26
|
Requires-Dist: fastapi (>=0,<1) ; extra == "service" or extra == "all"
|
|
@@ -10,7 +10,7 @@ cognite/neat/_client/data_classes/neat_sequence.py,sha256=QZWSfWnwk6KlYJvsInco4W
|
|
|
10
10
|
cognite/neat/_client/data_classes/schema.py,sha256=uD8ExxEiIP3zhK4b--Q5fND-vmcC05a9WU5ItLsqG88,23179
|
|
11
11
|
cognite/neat/_client/testing.py,sha256=c5ADJkRJFYGlJVQz-uPqxKExKXT297pxKh_ka4oGBjs,1082
|
|
12
12
|
cognite/neat/_config.py,sha256=f9Py4SEHwYYquIg-k1rC7MbXBLENXQauoZtLyUbWvJQ,10118
|
|
13
|
-
cognite/neat/_constants.py,sha256=
|
|
13
|
+
cognite/neat/_constants.py,sha256=ei0ODx_P1Z4O-8tVK_K_7oRvEMzovVJ-0kw96fW8a_0,4999
|
|
14
14
|
cognite/neat/_graph/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
15
|
cognite/neat/_graph/_shared.py,sha256=g7XFITbVxdDyGZ6mlgFUv5cBycrU7QbPktRikdUVkks,863
|
|
16
16
|
cognite/neat/_graph/_tracking/__init__.py,sha256=WOwsYieZtCW-iW15YkxUFrfKVVdLWdXHOGGStTwvE8A,91
|
|
@@ -40,17 +40,17 @@ cognite/neat/_graph/extractors/_mock_graph_generator.py,sha256=7WqyFu2Qj03pJD4au
|
|
|
40
40
|
cognite/neat/_graph/extractors/_rdf_file.py,sha256=YgPZN4Ayk6UlbwFFjdWn4Yo3P74D8KeNUb3slXg6Ox8,1604
|
|
41
41
|
cognite/neat/_graph/loaders/__init__.py,sha256=1eam_rG1BXTUJ8iDm8_IYZldEe177vn2GmHihDBi8qk,718
|
|
42
42
|
cognite/neat/_graph/loaders/_base.py,sha256=Fp6uUkNfAM-SVgsLz7tyNJxJ1eeEw3h2d4Q0YyppR-Y,3991
|
|
43
|
-
cognite/neat/_graph/loaders/_rdf2dms.py,sha256=
|
|
43
|
+
cognite/neat/_graph/loaders/_rdf2dms.py,sha256=BskCCo_2P4JjPOyAc4His6tv_nEPH8u0qoQZyaSjVGQ,25247
|
|
44
44
|
cognite/neat/_graph/queries/__init__.py,sha256=BgDd-037kvtWwAoGAy8eORVNMiZ5-E9sIV0txIpeaN4,50
|
|
45
45
|
cognite/neat/_graph/queries/_base.py,sha256=Y3Amuave6xdQsDE5ZXCrYLUgOMIH8BXa4n5Pc9czAF0,14926
|
|
46
46
|
cognite/neat/_graph/queries/_construct.py,sha256=CW8uHtXXACUXDj1AcEjROXtvoiuyx0CTgZ0bURY5Neo,7213
|
|
47
47
|
cognite/neat/_graph/queries/_shared.py,sha256=uhw-nY4jJvivgtj1msdCRrfTWgauU7ybSHUqqUaFOUU,5390
|
|
48
48
|
cognite/neat/_graph/transformers/__init__.py,sha256=sSrjK3_UDeesN8RzOjfNAYqyOEwjZJPUGO4uDuMLZ3s,1620
|
|
49
49
|
cognite/neat/_graph/transformers/_base.py,sha256=omFmfRGaudojjq3GlW6b8PA2TNRcN3jXkw6Xvnx5r4M,4345
|
|
50
|
-
cognite/neat/_graph/transformers/_classic_cdf.py,sha256=
|
|
50
|
+
cognite/neat/_graph/transformers/_classic_cdf.py,sha256=WaujTo8ryLSp7mZkyRdmAXHZ-AhgbOyM0X96S0rNhXs,18919
|
|
51
51
|
cognite/neat/_graph/transformers/_iodd.py,sha256=KNz1fPdKK40UaHgPMECzNZgSeU5PdPRyLdaRYdq1iug,866
|
|
52
52
|
cognite/neat/_graph/transformers/_prune_graph.py,sha256=LFiAMYFteND5LGEv9KqYJr5C9-n7S5fR6IrEdtJyRnk,12447
|
|
53
|
-
cognite/neat/_graph/transformers/_rdfpath.py,sha256=
|
|
53
|
+
cognite/neat/_graph/transformers/_rdfpath.py,sha256=WzydQvBzsnZ4BSv3HJWSH73e-sf1p-R4M2dm2H-DtEk,5019
|
|
54
54
|
cognite/neat/_graph/transformers/_value_type.py,sha256=ZtH1KZmOGBGpUcqj4fBRlPOMq6kADt-HMShvYPS5Org,12841
|
|
55
55
|
cognite/neat/_issues/__init__.py,sha256=OVgWivp_Br31p8zPeHjOEXs-Wj7lJU1pU1L3pfhfuqE,518
|
|
56
56
|
cognite/neat/_issues/_base.py,sha256=vV0E8cfXKlOnRXFIDZKg5QPMruELEbCaUfQ01l5dR9A,20073
|
|
@@ -61,11 +61,11 @@ cognite/neat/_issues/errors/_properties.py,sha256=T_nquQeEQS3DQY--DQ13acxhGX_-gp
|
|
|
61
61
|
cognite/neat/_issues/errors/_resources.py,sha256=YoajFF4Nxq_mhhVSZ7r3J6V-sH8cMMn576dSTsbcQZk,3964
|
|
62
62
|
cognite/neat/_issues/errors/_workflow.py,sha256=m_Hlsvl5A1Oy7P3IROnz-4_do8_orZ1Pr1IHqsMyEys,971
|
|
63
63
|
cognite/neat/_issues/formatters.py,sha256=ziNWT_YXwovTfU8Av5iYuSLgszzJYKTawM_z67VBdlU,3331
|
|
64
|
-
cognite/neat/_issues/warnings/__init__.py,sha256=
|
|
64
|
+
cognite/neat/_issues/warnings/__init__.py,sha256=6iIa8IFb7i1TtCS6Bp2ZiwPggQPWziKv9_jsb9v1m0U,2967
|
|
65
65
|
cognite/neat/_issues/warnings/_external.py,sha256=3tE98nLzOx9pb-VMi0MmQskHj-IuEqwjjoqhKMJ-xIM,1325
|
|
66
66
|
cognite/neat/_issues/warnings/_general.py,sha256=idZZZDbeSrDJJ1PomdmIO40QsZQNn_lWztWvMA-9q50,782
|
|
67
67
|
cognite/neat/_issues/warnings/_models.py,sha256=i4ZXr1IINKbFiVhUd8-qAt9_cXB8D3W-ng1Ime_lQTA,4376
|
|
68
|
-
cognite/neat/_issues/warnings/_properties.py,sha256=
|
|
68
|
+
cognite/neat/_issues/warnings/_properties.py,sha256=cC1mWcHm7NM2avheTh3eUZmNrnI-s5rqjGvg0-YR6NI,3146
|
|
69
69
|
cognite/neat/_issues/warnings/_resources.py,sha256=jRhV7ROxuqcwah4rB3vTjBf_cZufRgnkDKZAflhlV3c,3556
|
|
70
70
|
cognite/neat/_issues/warnings/user_modeling.py,sha256=_cN1wbaQUStZ13aG0VbN5UwKM9YdtyPfuSNJ1AAS6o8,3668
|
|
71
71
|
cognite/neat/_rules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -170,10 +170,10 @@ cognite/neat/_utils/text.py,sha256=0IffvBIAmeGh92F4T6xiEdd-vv3B7FOGEMbfuTktO5Y,4
|
|
|
170
170
|
cognite/neat/_utils/time_.py,sha256=O30LUiDH9TdOYz8_a9pFqTtJdg8vEjC3qHCk8xZblG8,345
|
|
171
171
|
cognite/neat/_utils/upload.py,sha256=iWKmsQgw4EHLv-11NjYu7zAj5LtqTAfNa87a1kWeuaU,5727
|
|
172
172
|
cognite/neat/_utils/xml_.py,sha256=FQkq84u35MUsnKcL6nTMJ9ajtG9D5i1u4VBnhGqP2DQ,1710
|
|
173
|
-
cognite/neat/_version.py,sha256=
|
|
173
|
+
cognite/neat/_version.py,sha256=pwMGasqtYdWAmthqoS-VAnOaio6xE8H0G5lpVVh6afU,46
|
|
174
174
|
cognite/neat/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
175
|
-
cognite_neat-0.105.
|
|
176
|
-
cognite_neat-0.105.
|
|
177
|
-
cognite_neat-0.105.
|
|
178
|
-
cognite_neat-0.105.
|
|
179
|
-
cognite_neat-0.105.
|
|
175
|
+
cognite_neat-0.105.1.dist-info/LICENSE,sha256=W8VmvFia4WHa3Gqxq1Ygrq85McUNqIGDVgtdvzT-XqA,11351
|
|
176
|
+
cognite_neat-0.105.1.dist-info/METADATA,sha256=Heyqxvr0rhVMEuHNlg8mphs00qmClzStLwhbdQBgPrk,5759
|
|
177
|
+
cognite_neat-0.105.1.dist-info/WHEEL,sha256=RaoafKOydTQ7I_I3JTrPCg6kUmTgtm4BornzOqyEfJ8,88
|
|
178
|
+
cognite_neat-0.105.1.dist-info/entry_points.txt,sha256=SsQlnl8SNMSSjE3acBI835JYFtsIinLSbVmHmMEXv6E,51
|
|
179
|
+
cognite_neat-0.105.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|