pytrilogy 0.0.2.50__py3-none-any.whl → 0.0.2.52__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 pytrilogy might be problematic. Click here for more details.

Files changed (27) hide show
  1. {pytrilogy-0.0.2.50.dist-info → pytrilogy-0.0.2.52.dist-info}/METADATA +1 -1
  2. {pytrilogy-0.0.2.50.dist-info → pytrilogy-0.0.2.52.dist-info}/RECORD +27 -25
  3. trilogy/__init__.py +1 -1
  4. trilogy/core/internal.py +5 -1
  5. trilogy/core/models.py +124 -263
  6. trilogy/core/processing/concept_strategies_v3.py +14 -4
  7. trilogy/core/processing/node_generators/basic_node.py +7 -3
  8. trilogy/core/processing/node_generators/common.py +8 -3
  9. trilogy/core/processing/node_generators/filter_node.py +5 -5
  10. trilogy/core/processing/node_generators/group_node.py +24 -8
  11. trilogy/core/processing/node_generators/multiselect_node.py +4 -3
  12. trilogy/core/processing/node_generators/node_merge_node.py +14 -2
  13. trilogy/core/processing/node_generators/rowset_node.py +3 -4
  14. trilogy/core/processing/node_generators/select_helpers/__init__.py +0 -0
  15. trilogy/core/processing/node_generators/select_helpers/datasource_injection.py +203 -0
  16. trilogy/core/processing/node_generators/select_merge_node.py +17 -9
  17. trilogy/core/processing/nodes/base_node.py +2 -33
  18. trilogy/core/processing/nodes/group_node.py +19 -10
  19. trilogy/core/processing/nodes/merge_node.py +2 -2
  20. trilogy/hooks/graph_hook.py +3 -1
  21. trilogy/parsing/common.py +54 -12
  22. trilogy/parsing/parse_engine.py +39 -20
  23. trilogy/parsing/render.py +17 -1
  24. {pytrilogy-0.0.2.50.dist-info → pytrilogy-0.0.2.52.dist-info}/LICENSE.md +0 -0
  25. {pytrilogy-0.0.2.50.dist-info → pytrilogy-0.0.2.52.dist-info}/WHEEL +0 -0
  26. {pytrilogy-0.0.2.50.dist-info → pytrilogy-0.0.2.52.dist-info}/entry_points.txt +0 -0
  27. {pytrilogy-0.0.2.50.dist-info → pytrilogy-0.0.2.52.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pytrilogy
3
- Version: 0.0.2.50
3
+ Version: 0.0.2.52
4
4
  Summary: Declarative, typed query language that compiles to SQL.
5
5
  Home-page:
6
6
  Author:
@@ -1,4 +1,4 @@
1
- trilogy/__init__.py,sha256=IN9QOl63ICFDvmAtr97Xo-KPeIdHaN9JuYuIIsxV0Mk,291
1
+ trilogy/__init__.py,sha256=yfbpE5psI6MoWHNALr4OUL3M-GvCLXA38qbH-VWU5ZQ,291
2
2
  trilogy/compiler.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  trilogy/constants.py,sha256=qZ1d0hoKPPV2HHCoFwPYTVB7b6bXjpWvXd3lE-zEhy8,1494
4
4
  trilogy/engine.py,sha256=yOPnR7XCjWG82Gym_LLZBkYKKJdLCvqdCyt8zguNcnM,1103
@@ -15,8 +15,8 @@ trilogy/core/ergonomics.py,sha256=ASLDd0RqKWrZiG3XcKHo8nyTjaB_8xfE9t4NZ1UvGpc,16
15
15
  trilogy/core/exceptions.py,sha256=1c1lQCwSw4_5CQS3q7scOkXU8GQvullJXfPHubprl90,617
16
16
  trilogy/core/functions.py,sha256=hDlwLxQUskT9iRcIic1lfACQnxMLNM5ASdHRPi0ghyw,10835
17
17
  trilogy/core/graph_models.py,sha256=mameUTiuCajtihDw_2-W218xyJlvTusOWrEKP1yAWgk,2003
18
- trilogy/core/internal.py,sha256=-CykZknaWieFh5begaQJ4EgGP9qJccGg4XXdmBirxEc,1074
19
- trilogy/core/models.py,sha256=WE75DKSyqx-hFUxIuc4oPlq1VV4eyN-pLeHuKfhlsWc,166832
18
+ trilogy/core/internal.py,sha256=FQWbuETKPfzjALMmdXJwlOMlESfm2Z5gmErSsq3BX9c,1173
19
+ trilogy/core/models.py,sha256=1d9Li5gQymKDl2U9PWweEYctxgxaKORIggsQhUibefM,162044
20
20
  trilogy/core/optimization.py,sha256=Jy3tVJNeqhpK6VSyTvgIWKCao6y-VCZ7mYA69MIF6L0,7989
21
21
  trilogy/core/query_processor.py,sha256=V-TqybYO0kCY8O7Nk58OBhb7_eRPs_EqAwaQv-EYLSY,18615
22
22
  trilogy/core/optimizations/__init__.py,sha256=EBanqTXEzf1ZEYjAneIWoIcxtMDite5-n2dQ5xcfUtg,356
@@ -25,28 +25,30 @@ trilogy/core/optimizations/inline_constant.py,sha256=c-YHOg6eAufL4EaCf4-0PbY_D4s
25
25
  trilogy/core/optimizations/inline_datasource.py,sha256=LsngRKBy-LYcx1sfo1-rnDym_ly73YV9WkEngSjpFx8,3943
26
26
  trilogy/core/optimizations/predicate_pushdown.py,sha256=XPWEBv8jXnc0OL2JDPNwFvJ5AtOE7dLzJK0LzdmdZMo,9252
27
27
  trilogy/core/processing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
- trilogy/core/processing/concept_strategies_v3.py,sha256=Uxi9OMg52OLrYNW76SAYXIvnI9UFAFauao34ZO7uD3o,37053
28
+ trilogy/core/processing/concept_strategies_v3.py,sha256=TrkaE8bY0AU7XiLP47rLqqFqkfiinrNF3v6C6DtZiY4,37474
29
29
  trilogy/core/processing/graph_utils.py,sha256=stbYnDxnK-1kbo9L4XNU85FQhWCP-oZYO7LCXhAdC5M,1198
30
30
  trilogy/core/processing/utility.py,sha256=STqSHP8fWTVmaIUCfHAb9Hke_fzOG2pTbmWIdYS4cvc,18787
31
31
  trilogy/core/processing/node_generators/__init__.py,sha256=s_YV1OYc336DuS9591259qjI_K_CtOCuhkf4t2aOgYs,733
32
- trilogy/core/processing/node_generators/basic_node.py,sha256=VqVyb4wXI_B2OmfwtpsypimzcevoPe_pnstlKLU3S5s,2878
33
- trilogy/core/processing/node_generators/common.py,sha256=4rFEBWUpZ01WcdQEi_8fa9QbyxHIiQ781W4nuhVLaxc,8881
34
- trilogy/core/processing/node_generators/filter_node.py,sha256=2ucE8shC3gyKjPilkfkA0FW0ZHhfcGy2wBQfquuHNlM,7548
35
- trilogy/core/processing/node_generators/group_node.py,sha256=dD2qlFzLRxYni9_1fHbewoe8AzKExyrDJRfeTwy7XQ4,4863
32
+ trilogy/core/processing/node_generators/basic_node.py,sha256=dz7i0BSn4qRv6SBIS_JnVAm09-nkNizoAHrznmqnJXY,3074
33
+ trilogy/core/processing/node_generators/common.py,sha256=2TeYHZzUkLbQh0602IWilLd2yyfoorhc1zAkpTluyHU,9033
34
+ trilogy/core/processing/node_generators/filter_node.py,sha256=NAI5gDQap8ygk905lTuPh6UxoWy--PpChEjgSJl5jKA,7567
35
+ trilogy/core/processing/node_generators/group_node.py,sha256=k57SVWHSVvTqCd47tyLUGCsSZaP7UQqMCJYTSz1S7oQ,5566
36
36
  trilogy/core/processing/node_generators/group_to_node.py,sha256=8ToptIWQoJttquEPrRTMvU33jCJQI-VJxVObN8W8QJk,2511
37
- trilogy/core/processing/node_generators/multiselect_node.py,sha256=jOaSOX80tprgYAG9XQ8lL93lt8QbdoAgFhTqF6lgdPY,6484
38
- trilogy/core/processing/node_generators/node_merge_node.py,sha256=p0NrUxXVsQSoFuP2JCmNZg4muaQV7TXwW11ECEe7pjA,13988
39
- trilogy/core/processing/node_generators/rowset_node.py,sha256=a9FxQb1qobeewrRNd-X_fFJ_aRLP1WcytK5-Bgu6wjs,5284
40
- trilogy/core/processing/node_generators/select_merge_node.py,sha256=7jp8byYFoeglBinXtQLKrGoJ6VEQPDCR4R7lMbIh634,15288
37
+ trilogy/core/processing/node_generators/multiselect_node.py,sha256=se-cHRYRPskxq2Wq9bw5LkUFSCN1rhk8_05-OTezLz0,6421
38
+ trilogy/core/processing/node_generators/node_merge_node.py,sha256=3GzuiTiorFVe9MyLhoz2PDyI0x9XL7bQ8ucEbV54le8,14627
39
+ trilogy/core/processing/node_generators/rowset_node.py,sha256=cLEfhjQPpnxc1_34j_1A7lmsGcbi89F2cMqDYls4Oh0,5199
40
+ trilogy/core/processing/node_generators/select_merge_node.py,sha256=YW0H81IpE9B6f0SK75QH2DVSfr8d3oA9AbbqP44Jhnc,15746
41
41
  trilogy/core/processing/node_generators/select_node.py,sha256=bjTylBa-vYbmzpuSpphmIo_Oi78YZpI8ppHnN9KDYDk,1795
42
42
  trilogy/core/processing/node_generators/union_node.py,sha256=MfJjF2m0ARl0oUH9QT1awzPv0e3yA3mXK1XqAvUTgKw,2504
43
43
  trilogy/core/processing/node_generators/unnest_node.py,sha256=8El2B1mzC9vIUSk-m94xHvaJwAf5GtCAGfTxGDSiqmU,2229
44
44
  trilogy/core/processing/node_generators/window_node.py,sha256=5htRRxaxw6EnS-2TVoQIiy4bkNSoBefBpj2DVBtBo-w,3484
45
+ trilogy/core/processing/node_generators/select_helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
+ trilogy/core/processing/node_generators/select_helpers/datasource_injection.py,sha256=hJZS7GT0dl7sK0riweEwVAVRv5LCXOnMD1hF0XY9hpE,6548
45
47
  trilogy/core/processing/nodes/__init__.py,sha256=WNUmYmZF3uqF2qiJ1L7y0u9qiVD9YnluKds0wA5opJE,4813
46
- trilogy/core/processing/nodes/base_node.py,sha256=izspnhnzyGKF1KuUpAQmZByxE85bPrrrUj3Q18EDwxM,16515
48
+ trilogy/core/processing/nodes/base_node.py,sha256=KFk6sKNS3lEA_JyimHqdry4-QNEntnMO0GBBC_oA1bs,15552
47
49
  trilogy/core/processing/nodes/filter_node.py,sha256=j7icDAXJ7oFPkHTOQVmm9QbZxrhhYEUGJj2lSiguXKA,2292
48
- trilogy/core/processing/nodes/group_node.py,sha256=g67rsj5DK9-fna0ppVpfuTkwaQzwhKwAur4HNnpNwgU,7438
49
- trilogy/core/processing/nodes/merge_node.py,sha256=eiqGEvO8UgN-YJ7mlkNlodR4vAGsUJ7d5y2hytvcgDU,14866
50
+ trilogy/core/processing/nodes/group_node.py,sha256=C2U4kyfYnM0Gy1b_C5K-uh-s-9Kncr5olFxMuF0G7zQ,7852
51
+ trilogy/core/processing/nodes/merge_node.py,sha256=p9KoJmOoPqXlehYWj5pF_VuP5ZESTr5dAjAOQbf66O8,14875
50
52
  trilogy/core/processing/nodes/select_node_v2.py,sha256=t3ln9Kxeml8mVTnLgtNPvavb5TLTRtfkJ0nyxh7UYUs,8212
51
53
  trilogy/core/processing/nodes/union_node.py,sha256=1QgOWkjJ-ADFdanoRzi0EM5buhuzJbmlda9BAUGp4mM,1352
52
54
  trilogy/core/processing/nodes/unnest_node.py,sha256=0TFANwqVPaVpUR6SF5uweGTlXfEnagXRBBZU6dUwtcY,2101
@@ -64,22 +66,22 @@ trilogy/dialect/snowflake.py,sha256=wmao9p26jX5yIX5SC8sRAZTXkPGTvq6ixO693QTfhz8,
64
66
  trilogy/dialect/sql_server.py,sha256=7iFpo2xztQ4ZJVwJ5n8kntWreymRzz035iClGZp3Nyc,3117
65
67
  trilogy/hooks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
66
68
  trilogy/hooks/base_hook.py,sha256=gD6_sjzTzchpLIn3CvJzkM9IvaWNfQUra3yDh9-s8qQ,1125
67
- trilogy/hooks/graph_hook.py,sha256=6YAHlVnak03JtWEox2oAroMdRdN7ETUN7SqwQXhdTdE,2870
69
+ trilogy/hooks/graph_hook.py,sha256=c-vC-IXoJ_jDmKQjxQyIxyXPOuUcLIURB573gCsAfzQ,2940
68
70
  trilogy/hooks/query_debugger.py,sha256=FoDh2bu2NiwLusVhKa5El_l8EKaqfET7zn55GP0TkOE,4644
69
71
  trilogy/metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
72
  trilogy/parsing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
- trilogy/parsing/common.py,sha256=Cm8GPznLphvc44K9EVpo_iVBRtWuH0zFMa8ekYfmVBg,10887
73
+ trilogy/parsing/common.py,sha256=ZVYF8sOzSa1bkUp7y_fwEmRPfsnVJ2kmbUuUg8TpHRY,12062
72
74
  trilogy/parsing/config.py,sha256=Z-DaefdKhPDmSXLgg5V4pebhSB0h590vI0_VtHnlukI,111
73
75
  trilogy/parsing/exceptions.py,sha256=92E5i2frv5hj9wxObJZsZqj5T6bglvPzvdvco_vW1Zk,38
74
76
  trilogy/parsing/helpers.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
75
- trilogy/parsing/parse_engine.py,sha256=BLO79wqweLptVq66VKAHjF68ggE_gd4XFtsWv9HTtGU,68671
76
- trilogy/parsing/render.py,sha256=Dr0QKIaAUi9uxfZZJVNV-todKoTA-tsWXNXPJ4Ohjn0,15650
77
+ trilogy/parsing/parse_engine.py,sha256=GgImj-mtDHOctDQWC1SDuSANPR0S_nXTJOhmOuHyD5g,69332
78
+ trilogy/parsing/render.py,sha256=xqfWXxiREk3SJ6Hp8eRnEojXp3uj2wF9jukZEPglZZA,16104
77
79
  trilogy/parsing/trilogy.lark,sha256=EazfEvYPuvkPkNjUnVzFi0uD9baavugbSI8CyfawShk,12573
78
80
  trilogy/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
81
  trilogy/scripts/trilogy.py,sha256=DQDW81E5mDMWFP8oPw8q-IyrR2JGxQSDWgUWe2VTSRQ,3731
80
- pytrilogy-0.0.2.50.dist-info/LICENSE.md,sha256=5ZRvtTyCCFwz1THxDTjAu3Lidds9WjPvvzgVwPSYNDo,1042
81
- pytrilogy-0.0.2.50.dist-info/METADATA,sha256=uqgnhuCqk3kTbmMRDbHps-acUl4qTZoGJUMDLhALK4w,8426
82
- pytrilogy-0.0.2.50.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
83
- pytrilogy-0.0.2.50.dist-info/entry_points.txt,sha256=0petKryjvvtEfTlbZC1AuMFumH_WQ9v8A19LvoS6G6c,54
84
- pytrilogy-0.0.2.50.dist-info/top_level.txt,sha256=cAy__NW_eMAa_yT9UnUNlZLFfxcg6eimUAZ184cdNiE,8
85
- pytrilogy-0.0.2.50.dist-info/RECORD,,
82
+ pytrilogy-0.0.2.52.dist-info/LICENSE.md,sha256=5ZRvtTyCCFwz1THxDTjAu3Lidds9WjPvvzgVwPSYNDo,1042
83
+ pytrilogy-0.0.2.52.dist-info/METADATA,sha256=qgovNWhM9tY3eKYzpmsyeXMZHDBUvJVQHQ_sLnZB30E,8426
84
+ pytrilogy-0.0.2.52.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
85
+ pytrilogy-0.0.2.52.dist-info/entry_points.txt,sha256=0petKryjvvtEfTlbZC1AuMFumH_WQ9v8A19LvoS6G6c,54
86
+ pytrilogy-0.0.2.52.dist-info/top_level.txt,sha256=cAy__NW_eMAa_yT9UnUNlZLFfxcg6eimUAZ184cdNiE,8
87
+ pytrilogy-0.0.2.52.dist-info/RECORD,,
trilogy/__init__.py CHANGED
@@ -4,6 +4,6 @@ from trilogy.dialect.enums import Dialects
4
4
  from trilogy.executor import Executor
5
5
  from trilogy.parser import parse
6
6
 
7
- __version__ = "0.0.2.50"
7
+ __version__ = "0.0.2.52"
8
8
 
9
9
  __all__ = ["parse", "Executor", "Dialects", "Environment", "CONFIG"]
trilogy/core/internal.py CHANGED
@@ -1,6 +1,6 @@
1
1
  from trilogy.core.constants import ALL_ROWS_CONCEPT, INTERNAL_NAMESPACE
2
2
  from trilogy.core.enums import FunctionType, Purpose
3
- from trilogy.core.models import Concept, DataType, Function
3
+ from trilogy.core.models import Concept, DataType, Function, Grain
4
4
 
5
5
  DEFAULT_CONCEPTS = {
6
6
  ALL_ROWS_CONCEPT: Concept(
@@ -8,6 +8,7 @@ DEFAULT_CONCEPTS = {
8
8
  namespace=INTERNAL_NAMESPACE,
9
9
  datatype=DataType.INTEGER,
10
10
  purpose=Purpose.CONSTANT,
11
+ grain=Grain(),
11
12
  lineage=Function(
12
13
  operator=FunctionType.CONSTANT,
13
14
  arguments=[1],
@@ -20,17 +21,20 @@ DEFAULT_CONCEPTS = {
20
21
  namespace=INTERNAL_NAMESPACE,
21
22
  datatype=DataType.STRING,
22
23
  purpose=Purpose.KEY,
24
+ grain=Grain(),
23
25
  ),
24
26
  "datasource": Concept(
25
27
  name="datasource",
26
28
  namespace=INTERNAL_NAMESPACE,
27
29
  datatype=DataType.STRING,
28
30
  purpose=Purpose.KEY,
31
+ grain=Grain(),
29
32
  ),
30
33
  "query_text": Concept(
31
34
  name="query_text",
32
35
  namespace=INTERNAL_NAMESPACE,
33
36
  datatype=DataType.STRING,
34
37
  purpose=Purpose.KEY,
38
+ grain=Grain(),
35
39
  ),
36
40
  }