pytrilogy 0.0.3.82__py3-none-any.whl → 0.0.3.83__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.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pytrilogy
3
- Version: 0.0.3.82
3
+ Version: 0.0.3.83
4
4
  Summary: Declarative, typed query language that compiles to SQL.
5
5
  Home-page:
6
6
  Author:
@@ -1,5 +1,5 @@
1
- pytrilogy-0.0.3.82.dist-info/licenses/LICENSE.md,sha256=5ZRvtTyCCFwz1THxDTjAu3Lidds9WjPvvzgVwPSYNDo,1042
2
- trilogy/__init__.py,sha256=bYiPbjWf72hFcdkZbNsSKQsD0uR8NWYSSfzF26YTpfM,303
1
+ pytrilogy-0.0.3.83.dist-info/licenses/LICENSE.md,sha256=5ZRvtTyCCFwz1THxDTjAu3Lidds9WjPvvzgVwPSYNDo,1042
2
+ trilogy/__init__.py,sha256=Rh-SluRXHl9PmO1Tte7AvBGZUzGc0qDJwk8oJPx3KtU,303
3
3
  trilogy/compiler.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  trilogy/constants.py,sha256=eKb_EJvSqjN9tGbdVEViwdtwwh8fZ3-jpOEDqL71y70,1691
5
5
  trilogy/engine.py,sha256=OK2RuqCIUId6yZ5hfF8J1nxGP0AJqHRZiafcowmW0xc,1728
@@ -11,12 +11,12 @@ trilogy/utility.py,sha256=euQccZLKoYBz0LNg5tzLlvv2YHvXh9HArnYp1V3uXsM,763
11
11
  trilogy/authoring/__init__.py,sha256=e74k-Jep4DLYPQU_2m0aVsYlw5HKTOucAKtdTbd6f2g,2595
12
12
  trilogy/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  trilogy/core/constants.py,sha256=nizWYDCJQ1bigQMtkNIEMNTcN0NoEAXiIHLzpelxQ24,201
14
- trilogy/core/enums.py,sha256=kuwTeEur5TZ07DX8nO3fSiRQ32bLZ5jRK-vIjHbBUnc,8118
14
+ trilogy/core/enums.py,sha256=gIbFV6HT93wUWgfOm6lQeMS_sQcvHc4IK-vuQpwyepY,8158
15
15
  trilogy/core/env_processor.py,sha256=pFsxnluKIusGKx1z7tTnfsd_xZcPy9pZDungkjkyvI0,3170
16
16
  trilogy/core/environment_helpers.py,sha256=VvPIiFemqaLLpIpLIqprfu63K7muZ1YzNg7UZIUph8w,8267
17
17
  trilogy/core/ergonomics.py,sha256=e-7gE29vPLFdg0_A1smQ7eOrUwKl5VYdxRSTddHweRA,1631
18
18
  trilogy/core/exceptions.py,sha256=jYEduuMehcMkmCpf-OC_taELPZm7qNfeSNzIWkDYScs,707
19
- trilogy/core/functions.py,sha256=9Q-c7UGxOR0SVwzcHt9mHX_aVroW9jEWwJr7BtHigw8,31766
19
+ trilogy/core/functions.py,sha256=hIvMYbSSsVDsXfHtZ7pwGc2CFIYqsVuYt9GOfAw3BRk,32013
20
20
  trilogy/core/graph_models.py,sha256=BYhJzHKSgnZHVLJs1CfsgrxTPHqKqPNeA64RlozGY0A,3498
21
21
  trilogy/core/internal.py,sha256=wFx4e1I0mtx159YFShSXeUBSQ82NINtAbOI-92RX4i8,2151
22
22
  trilogy/core/optimization.py,sha256=ojpn-p79lr03SSVQbbw74iPCyoYpDYBmj1dbZ3oXCjI,8860
@@ -77,7 +77,7 @@ trilogy/core/statements/build.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
77
77
  trilogy/core/statements/common.py,sha256=KxEmz2ySySyZ6CTPzn0fJl5NX2KOk1RPyuUSwWhnK1g,759
78
78
  trilogy/core/statements/execute.py,sha256=pfr1CZ_Cx1qQ-7LDyRI0JUfvtxBr_GGv-VeqiAjr43g,1406
79
79
  trilogy/dialect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
- trilogy/dialect/base.py,sha256=0nVDvsnDS8iMTIlCUsBs_ymoZMW6uh04U4MMZxOuHUw,47428
80
+ trilogy/dialect/base.py,sha256=Bj3Wun81NAtfpjAyJGHDPSogPaTjBO1Bnmm9JxfpyfM,47533
81
81
  trilogy/dialect/bigquery.py,sha256=8xhEu0z_lKANjbvzvBbC7CeKrJf1iP8YyrHqNale-ug,4351
82
82
  trilogy/dialect/common.py,sha256=tSthIZOXXRPQ4KeMKnDDsH7KlTmf2EVqigVtLyoc4zc,6071
83
83
  trilogy/dialect/config.py,sha256=olnyeVU5W5T6b9-dMeNAnvxuPlyc2uefb7FRME094Ec,3834
@@ -98,9 +98,9 @@ trilogy/parsing/common.py,sha256=yV1AckK0h8u1OFeGQBTMu-wuW5m63c5CcZuPicsTH_w,306
98
98
  trilogy/parsing/config.py,sha256=Z-DaefdKhPDmSXLgg5V4pebhSB0h590vI0_VtHnlukI,111
99
99
  trilogy/parsing/exceptions.py,sha256=Xwwsv2C9kSNv2q-HrrKC1f60JNHShXcCMzstTSEbiCw,154
100
100
  trilogy/parsing/helpers.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
101
- trilogy/parsing/parse_engine.py,sha256=ll3uBwpJ2iAxT-KbbXy7OuCqUvKfLPzB1gHr8gApv_s,78591
101
+ trilogy/parsing/parse_engine.py,sha256=MXG5nzQWd1tVaJddF_NDst96N_ayALQ0EB3JMh8kWaY,78776
102
102
  trilogy/parsing/render.py,sha256=HSNntD82GiiwHT-TWPLXAaIMWLYVV5B5zQEsgwrHIBE,19605
103
- trilogy/parsing/trilogy.lark,sha256=Uhy6A00-GsC-L8fRCN0JZC6fL87ujOOd9_4LbQWApY4,15248
103
+ trilogy/parsing/trilogy.lark,sha256=B7onP5W7ZIW_uKObJ5rL1sQCpnWiMeZ2azQ9j2U2ssE,15368
104
104
  trilogy/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
105
  trilogy/scripts/trilogy.py,sha256=1L0XrH4mVHRt1C9T1HnaDv2_kYEfbWTb5_-cBBke79w,3774
106
106
  trilogy/std/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -111,8 +111,8 @@ trilogy/std/money.preql,sha256=XWwvAV3WxBsHX9zfptoYRnBigcfYwrYtBHXTME0xJuQ,2082
111
111
  trilogy/std/net.preql,sha256=7l7MqIjs6TDCpO6dBAoNJU81Ex255jZRK36kBgE1GDs,158
112
112
  trilogy/std/ranking.preql,sha256=LDoZrYyz4g3xsII9XwXfmstZD-_92i1Eox1UqkBIfi8,83
113
113
  trilogy/std/report.preql,sha256=LbV-XlHdfw0jgnQ8pV7acG95xrd1-p65fVpiIc-S7W4,202
114
- pytrilogy-0.0.3.82.dist-info/METADATA,sha256=eFCjlA6cbwL_BeJhwzGHYJEVqKLaWB49VJSkG71s0ls,9589
115
- pytrilogy-0.0.3.82.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
116
- pytrilogy-0.0.3.82.dist-info/entry_points.txt,sha256=ewBPU2vLnVexZVnB-NrVj-p3E-4vukg83Zk8A55Wp2w,56
117
- pytrilogy-0.0.3.82.dist-info/top_level.txt,sha256=cAy__NW_eMAa_yT9UnUNlZLFfxcg6eimUAZ184cdNiE,8
118
- pytrilogy-0.0.3.82.dist-info/RECORD,,
114
+ pytrilogy-0.0.3.83.dist-info/METADATA,sha256=5Wl6yOEMzIqdUAUuP6OinBib-2jtSmhieDJoDRHCDiA,9589
115
+ pytrilogy-0.0.3.83.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
116
+ pytrilogy-0.0.3.83.dist-info/entry_points.txt,sha256=ewBPU2vLnVexZVnB-NrVj-p3E-4vukg83Zk8A55Wp2w,56
117
+ pytrilogy-0.0.3.83.dist-info/top_level.txt,sha256=cAy__NW_eMAa_yT9UnUNlZLFfxcg6eimUAZ184cdNiE,8
118
+ pytrilogy-0.0.3.83.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.3.82"
7
+ __version__ = "0.0.3.83"
8
8
 
9
9
  __all__ = ["parse", "Executor", "Dialects", "Environment", "CONFIG"]
trilogy/core/enums.py CHANGED
@@ -154,6 +154,7 @@ class FunctionType(Enum):
154
154
  ARRAY_SUM = "array_sum"
155
155
  ARRAY_SORT = "array_sort"
156
156
  ARRAY_TRANSFORM = "array_transform"
157
+ ARRAY_TO_STRING = "array_to_string"
157
158
 
158
159
  # TEXT AND MAYBE MORE
159
160
  SPLIT = "split"
trilogy/core/functions.py CHANGED
@@ -283,6 +283,15 @@ FUNCTION_REGISTRY: dict[FunctionType, FunctionConfig] = {
283
283
  output_type_function=get_transform_output_type,
284
284
  arg_count=3,
285
285
  ),
286
+ FunctionType.ARRAY_TO_STRING: FunctionConfig(
287
+ valid_inputs={
288
+ DataType.ARRAY,
289
+ DataType.STRING,
290
+ },
291
+ output_purpose=Purpose.PROPERTY,
292
+ output_type=DataType.STRING,
293
+ arg_count=2,
294
+ ),
286
295
  FunctionType.ARRAY_SUM: FunctionConfig(
287
296
  valid_inputs={
288
297
  DataType.ARRAY,
trilogy/dialect/base.py CHANGED
@@ -193,6 +193,9 @@ FUNCTION_MAP = {
193
193
  FunctionType.ARRAY_TRANSFORM: lambda args: (
194
194
  f"array_transform({args[0]}, {args[1]} -> {args[2]})"
195
195
  ),
196
+ FunctionType.ARRAY_TO_STRING: lambda args: (
197
+ f"array_to_string({args[0]}, {args[1]})"
198
+ ),
196
199
  # math
197
200
  FunctionType.ADD: lambda x: " + ".join(x),
198
201
  FunctionType.ABS: lambda x: f"abs({x[0]})",
@@ -2034,6 +2034,12 @@ class ParseToObjects(Transformer):
2034
2034
  args, FunctionType.ARRAY_DISTINCT, meta
2035
2035
  )
2036
2036
 
2037
+ @v_args(meta=True)
2038
+ def farray_to_string(self, meta, args):
2039
+ return self.function_factory.create_function(
2040
+ args, FunctionType.ARRAY_TO_STRING, meta
2041
+ )
2042
+
2037
2043
  @v_args(meta=True)
2038
2044
  def farray_sort(self, meta, args):
2039
2045
  if len(args) == 1:
@@ -300,13 +300,15 @@
300
300
  farray_sum: _ARRAY_SUM expr ")"
301
301
  _ARRAY_DISTINCT.1: "array_distinct("i
302
302
  farray_distinct: _ARRAY_DISTINCT expr ")"
303
+ _ARRAY_TO_STRING.1: "array_to_string("i
304
+ farray_to_string: _ARRAY_TO_STRING expr "," expr ")"
303
305
  _ARRAY_SORT.1: "array_sort("i
304
306
  farray_sort: _ARRAY_SORT expr ("," ordering )? ")"
305
307
  _ARRAY_TRANSFORM.1: "array_transform("i
306
308
  transform_lambda: "@" IDENTIFIER
307
309
  farray_transform: _ARRAY_TRANSFORM expr "," transform_lambda ")"
308
310
 
309
- _array_functions: farray_sum | farray_distinct | farray_sort | farray_transform
311
+ _array_functions: farray_sum | farray_distinct | farray_sort | farray_transform | farray_to_string
310
312
 
311
313
  // special aggregate
312
314
  _GROUP.1: "group("i