industrial-model 0.1.4__py3-none-any.whl → 0.1.6__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.
- industrial_model/__init__.py +2 -1
- industrial_model/cognite_adapters/optimizer.py +5 -2
- industrial_model/cognite_adapters/query_mapper.py +16 -14
- industrial_model/models/__init__.py +2 -0
- industrial_model/{cognite_adapters → models}/schemas.py +1 -3
- industrial_model/statements/__init__.py +2 -0
- industrial_model/statements/expressions.py +6 -0
- {industrial_model-0.1.4.dist-info → industrial_model-0.1.6.dist-info}/METADATA +1 -1
- {industrial_model-0.1.4.dist-info → industrial_model-0.1.6.dist-info}/RECORD +10 -10
- {industrial_model-0.1.4.dist-info → industrial_model-0.1.6.dist-info}/WHEEL +0 -0
industrial_model/__init__.py
CHANGED
|
@@ -8,12 +8,13 @@ from .models import (
|
|
|
8
8
|
ViewInstance,
|
|
9
9
|
ViewInstanceConfig,
|
|
10
10
|
)
|
|
11
|
-
from .statements import and_, col, or_, select
|
|
11
|
+
from .statements import and_, col, not_, or_, select
|
|
12
12
|
|
|
13
13
|
__all__ = [
|
|
14
14
|
"and_",
|
|
15
15
|
"or_",
|
|
16
16
|
"col",
|
|
17
|
+
"not_",
|
|
17
18
|
"select",
|
|
18
19
|
"ViewInstance",
|
|
19
20
|
"InstanceId",
|
|
@@ -49,8 +49,11 @@ class QueryOptimizer:
|
|
|
49
49
|
where_clause, BoolExpression
|
|
50
50
|
) and self._has_space_filter(where_clause.filters):
|
|
51
51
|
return True
|
|
52
|
-
elif
|
|
53
|
-
|
|
52
|
+
elif (
|
|
53
|
+
isinstance(where_clause, LeafExpression)
|
|
54
|
+
and where_clause.property == SPACE_PROPERTY
|
|
55
|
+
):
|
|
56
|
+
return True
|
|
54
57
|
|
|
55
58
|
return False
|
|
56
59
|
|
|
@@ -21,13 +21,12 @@ from cognite.client.data_classes.data_modeling.views import (
|
|
|
21
21
|
)
|
|
22
22
|
|
|
23
23
|
from industrial_model.constants import EDGE_MARKER, MAX_LIMIT, NESTED_SEP
|
|
24
|
-
from industrial_model.models import TViewInstance
|
|
24
|
+
from industrial_model.models import TViewInstance, get_schema_properties
|
|
25
25
|
from industrial_model.statements import Statement
|
|
26
26
|
|
|
27
27
|
from .filter_mapper import (
|
|
28
28
|
FilterMapper,
|
|
29
29
|
)
|
|
30
|
-
from .schemas import get_schema_properties
|
|
31
30
|
from .sort_mapper import SortMapper
|
|
32
31
|
from .view_mapper import ViewMapper
|
|
33
32
|
|
|
@@ -135,19 +134,22 @@ class QueryMapper:
|
|
|
135
134
|
with_,
|
|
136
135
|
select_,
|
|
137
136
|
)
|
|
138
|
-
if not props:
|
|
139
|
-
with_[property_key] = NodeResultSetExpression(
|
|
140
|
-
from_=key,
|
|
141
|
-
direction="inwards",
|
|
142
|
-
through=property.source.as_property_ref(
|
|
143
|
-
property.through.property
|
|
144
|
-
),
|
|
145
|
-
limit=MAX_LIMIT,
|
|
146
|
-
)
|
|
147
137
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
138
|
+
with_[property_key] = NodeResultSetExpression(
|
|
139
|
+
from_=key,
|
|
140
|
+
direction="inwards",
|
|
141
|
+
through=property.source.as_property_ref(
|
|
142
|
+
property.through.property
|
|
143
|
+
),
|
|
144
|
+
limit=MAX_LIMIT,
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
if property.through.property not in props:
|
|
148
|
+
props.append(property.through.property)
|
|
149
|
+
|
|
150
|
+
select_[property_key] = self._get_select(
|
|
151
|
+
property.source, props
|
|
152
|
+
)
|
|
151
153
|
elif isinstance(property, EdgeConnection) and property.source:
|
|
152
154
|
edge_property_key = f"{property_key}{NESTED_SEP}{EDGE_MARKER}"
|
|
153
155
|
|
|
@@ -7,6 +7,7 @@ from .entities import (
|
|
|
7
7
|
ViewInstance,
|
|
8
8
|
ViewInstanceConfig,
|
|
9
9
|
)
|
|
10
|
+
from .schemas import get_schema_properties
|
|
10
11
|
|
|
11
12
|
__all__ = [
|
|
12
13
|
"RootModel",
|
|
@@ -16,4 +17,5 @@ __all__ = [
|
|
|
16
17
|
"ValidationMode",
|
|
17
18
|
"PaginatedResult",
|
|
18
19
|
"ViewInstanceConfig",
|
|
20
|
+
"get_schema_properties",
|
|
19
21
|
]
|
|
@@ -12,14 +12,12 @@ from typing import (
|
|
|
12
12
|
|
|
13
13
|
from pydantic import BaseModel
|
|
14
14
|
|
|
15
|
-
from industrial_model.constants import NESTED_SEP
|
|
16
|
-
|
|
17
15
|
TBaseModel = TypeVar("TBaseModel", bound=BaseModel)
|
|
18
16
|
|
|
19
17
|
|
|
20
18
|
def get_schema_properties(
|
|
21
19
|
cls: type[TBaseModel],
|
|
22
|
-
nested_separator: str
|
|
20
|
+
nested_separator: str,
|
|
23
21
|
prefix: str | None = None,
|
|
24
22
|
) -> list[str]:
|
|
25
23
|
data = _get_type_properties(cls) or {}
|
|
@@ -161,5 +161,11 @@ def or_(*expressions: bool | LeafExpression | BoolExpression) -> bool:
|
|
|
161
161
|
) # type: ignore
|
|
162
162
|
|
|
163
163
|
|
|
164
|
+
def not_(*expressions: bool | LeafExpression | BoolExpression) -> bool:
|
|
165
|
+
return BoolExpression(
|
|
166
|
+
operator="not", filters=_unwrap_expressions(*expressions)
|
|
167
|
+
) # type: ignore
|
|
168
|
+
|
|
169
|
+
|
|
164
170
|
def col(property: Any) -> Column:
|
|
165
171
|
return Column(property)
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
industrial_model/__init__.py,sha256=
|
|
1
|
+
industrial_model/__init__.py,sha256=qst1HvSXw7ytYTvi_hgg8989rSqKXF3n_8jv3wO73x8,525
|
|
2
2
|
industrial_model/config.py,sha256=wzSKVKHIdGlxCRtu0PIeL3SLYvnQBR4Py46CcETxa8U,238
|
|
3
3
|
industrial_model/constants.py,sha256=wtFdxkR9gojqekwXeyVCof6VUkJYuqjjgAgVVKrcxaw,450
|
|
4
4
|
industrial_model/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
industrial_model/utils.py,sha256=OuuAkIqu-551axsZJPuqHu5d9iReGcfY9ROBFtHIwkY,933
|
|
6
6
|
industrial_model/cognite_adapters/__init__.py,sha256=9N4oT7tWZx5wjVr7q64Ef5FLT75Omep48xGYv1PhxV8,1917
|
|
7
7
|
industrial_model/cognite_adapters/filter_mapper.py,sha256=NqH-OW7_iKFY9POCG8W3KjkwXUgrZP1d_yxDx1J0fXM,3859
|
|
8
|
-
industrial_model/cognite_adapters/optimizer.py,sha256=
|
|
9
|
-
industrial_model/cognite_adapters/query_mapper.py,sha256=
|
|
8
|
+
industrial_model/cognite_adapters/optimizer.py,sha256=G8I07jJ9tarE5GZXXUSpTMKUei6ptV-cudJSLsoykX4,2223
|
|
9
|
+
industrial_model/cognite_adapters/query_mapper.py,sha256=3fEcaLsGjLKIh-g1BbMcffQ6rp99JeCW555iJo8JW44,6260
|
|
10
10
|
industrial_model/cognite_adapters/query_result_mapper.py,sha256=jUreXqsaLnq7hp6T_JZQNRtL8TL8hoLSFvD4SkJ4TEE,7002
|
|
11
|
-
industrial_model/cognite_adapters/schemas.py,sha256=EiRe0HK6thCzk0WYOPrAIRe8GkkG7_ykQsy7WVfT_Og,3430
|
|
12
11
|
industrial_model/cognite_adapters/sort_mapper.py,sha256=RJUAYlZGXoYzK0PwX63cibRF_L-MUq9g2ZsC2EeNIF4,696
|
|
13
12
|
industrial_model/cognite_adapters/utils.py,sha256=nBYHK8697L2yGEAcyKjQV9NEZQmWy_aSGq_iMl7gofM,907
|
|
14
13
|
industrial_model/cognite_adapters/view_mapper.py,sha256=lnv64KezSQTAr6XdcExa8d92GU5Ll9K9HfMcQGzhX6k,488
|
|
15
14
|
industrial_model/engines/__init__.py,sha256=7aGHrUm2MxIq39vR8h0xu3i1zNOuT9H9U-q4lV3nErQ,102
|
|
16
15
|
industrial_model/engines/async_engine.py,sha256=3Y4Ao14CDJJAZFbgTX9I6LOJUxfe8nwOOukGVeiw914,1070
|
|
17
16
|
industrial_model/engines/engine.py,sha256=8-wfktRLZpad_V7_F1Vz7vtjE_bQhga_jXXjuwSgfrE,1897
|
|
18
|
-
industrial_model/models/__init__.py,sha256=
|
|
17
|
+
industrial_model/models/__init__.py,sha256=YcNLjpYnxdU_wTpn1n0AhwlZ-XHWYqX6FzfbuevG3jo,406
|
|
19
18
|
industrial_model/models/base.py,sha256=jbiaICJ0R1mmxXtDqxxlVdq-tTX4RLdqnLTgs9HLm_4,1279
|
|
20
19
|
industrial_model/models/entities.py,sha256=NrFV_a3ZP6Y4b1M2PFl_746qcCsexsyO2cuB0snZhkw,1319
|
|
20
|
+
industrial_model/models/schemas.py,sha256=FzreMCR2TGX89-tMRpCNdcYqHj1u9QlocRLNwE_J2rA,3366
|
|
21
21
|
industrial_model/queries/__init__.py,sha256=7aheTE5qs03rxWm9fmGWptbz_p9OIXXYD8if56cqs18,227
|
|
22
22
|
industrial_model/queries/models.py,sha256=iiHQ7-cfg0nukEv5PoCx9QPF-w1gVSnoNbXBOK9Mzeo,1185
|
|
23
23
|
industrial_model/queries/params.py,sha256=ehgCoR5n6E-tkEuoymZ2lkLcSzMaBAx_HnyJ7sWpqz0,964
|
|
24
|
-
industrial_model/statements/__init__.py,sha256=
|
|
25
|
-
industrial_model/statements/expressions.py,sha256=
|
|
26
|
-
industrial_model-0.1.
|
|
27
|
-
industrial_model-0.1.
|
|
28
|
-
industrial_model-0.1.
|
|
24
|
+
industrial_model/statements/__init__.py,sha256=9fD-qpNXIkrjoahxC_R6hS4DKSVelehimvRPKbpYfA0,1775
|
|
25
|
+
industrial_model/statements/expressions.py,sha256=Sar1cIvy3sYi7tkWJN3ylHlZ252oN2mZJpZ1TX9jN3s,4940
|
|
26
|
+
industrial_model-0.1.6.dist-info/METADATA,sha256=M-BS6_DyB4pIwwqPlvBp4_7XCqFDBbdver_EXwZ8WMo,4806
|
|
27
|
+
industrial_model-0.1.6.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
28
|
+
industrial_model-0.1.6.dist-info/RECORD,,
|
|
File without changes
|