pytrilogy 0.0.2.29__py3-none-any.whl → 0.0.2.30__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.1
2
2
  Name: pytrilogy
3
- Version: 0.0.2.29
3
+ Version: 0.0.2.30
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=0Y9rVM2nobxcrfYQcGTfJVv_-3fbl5QtzNRClHX50TU,291
1
+ trilogy/__init__.py,sha256=pHqmnZdLkM4fDNn1mC3MRXMe1IoPU8UoCt1E5fjGFl0,291
2
2
  trilogy/compiler.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  trilogy/constants.py,sha256=KiyYnctoZen4Hzv8WG2jeN-IE-dfQbWHdVCUeTZYjBg,1270
4
4
  trilogy/engine.py,sha256=R5ubIxYyrxRExz07aZCUfrTsoXCHQ8DKFTDsobXdWdA,1102
@@ -71,13 +71,13 @@ trilogy/parsing/config.py,sha256=Z-DaefdKhPDmSXLgg5V4pebhSB0h590vI0_VtHnlukI,111
71
71
  trilogy/parsing/exceptions.py,sha256=92E5i2frv5hj9wxObJZsZqj5T6bglvPzvdvco_vW1Zk,38
72
72
  trilogy/parsing/helpers.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
73
73
  trilogy/parsing/parse_engine.py,sha256=JwG98fotPpvh5VC-CcHknCTFid9-Zj1Wfo8CyPOnJzs,64431
74
- trilogy/parsing/render.py,sha256=B9J2GrYQcE76kddMQSeAmvAPX-9pv39mpeSHZ10SNj8,14655
74
+ trilogy/parsing/render.py,sha256=VKyo8wEOuiOzUtJ6w9EoGGmkhlqDQyy8wFj_Q_h6EfE,15263
75
75
  trilogy/parsing/trilogy.lark,sha256=_z5px2N-e8oLUf7SpPMXXNqbAykDkZOvP4_lPgf5-Uk,12245
76
76
  trilogy/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
77
  trilogy/scripts/trilogy.py,sha256=PHxvv6f2ODv0esyyhWxlARgra8dVhqQhYl0lTrSyVNo,3729
78
- pytrilogy-0.0.2.29.dist-info/LICENSE.md,sha256=5ZRvtTyCCFwz1THxDTjAu3Lidds9WjPvvzgVwPSYNDo,1042
79
- pytrilogy-0.0.2.29.dist-info/METADATA,sha256=_grlNHrTsokAIFDU4uIYFOrJ8t7X_R5vr0kcuNMzJ6g,8403
80
- pytrilogy-0.0.2.29.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
81
- pytrilogy-0.0.2.29.dist-info/entry_points.txt,sha256=0petKryjvvtEfTlbZC1AuMFumH_WQ9v8A19LvoS6G6c,54
82
- pytrilogy-0.0.2.29.dist-info/top_level.txt,sha256=cAy__NW_eMAa_yT9UnUNlZLFfxcg6eimUAZ184cdNiE,8
83
- pytrilogy-0.0.2.29.dist-info/RECORD,,
78
+ pytrilogy-0.0.2.30.dist-info/LICENSE.md,sha256=5ZRvtTyCCFwz1THxDTjAu3Lidds9WjPvvzgVwPSYNDo,1042
79
+ pytrilogy-0.0.2.30.dist-info/METADATA,sha256=1Z7e7dhoCLe38WhBkVs29Igt7BY_5C9OVJrUVmvkgdw,8403
80
+ pytrilogy-0.0.2.30.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
81
+ pytrilogy-0.0.2.30.dist-info/entry_points.txt,sha256=0petKryjvvtEfTlbZC1AuMFumH_WQ9v8A19LvoS6G6c,54
82
+ pytrilogy-0.0.2.30.dist-info/top_level.txt,sha256=cAy__NW_eMAa_yT9UnUNlZLFfxcg6eimUAZ184cdNiE,8
83
+ pytrilogy-0.0.2.30.dist-info/RECORD,,
trilogy/__init__.py CHANGED
@@ -4,6 +4,6 @@ from trilogy.executor import Executor
4
4
  from trilogy.parser import parse
5
5
  from trilogy.constants import CONFIG
6
6
 
7
- __version__ = "0.0.2.29"
7
+ __version__ = "0.0.2.30"
8
8
 
9
9
  __all__ = ["parse", "Executor", "Dialects", "Environment", "CONFIG"]
trilogy/parsing/render.py CHANGED
@@ -386,13 +386,31 @@ class Renderer:
386
386
 
387
387
  @to_string.register
388
388
  def _(self, arg: "Function"):
389
- inputs = ",".join(self.to_string(c) for c in arg.arguments)
389
+ args = [self.to_string(c) for c in arg.arguments]
390
+
391
+ if arg.operator == FunctionType.SUBTRACT:
392
+ return f"{args[0]} - {args[1]}"
393
+ if arg.operator == FunctionType.ADD:
394
+ return f"{args[0]} + {args[1]}"
395
+ if arg.operator == FunctionType.MULTIPLY:
396
+ return f"{args[0]} * {args[1]}"
397
+ if arg.operator == FunctionType.DIVIDE:
398
+ return f"{args[0]} / {args[1]}"
399
+ if arg.operator == FunctionType.MOD:
400
+ return f"{args[0]} % {args[1]}"
401
+
402
+ inputs = ",".join(args)
403
+
390
404
  if arg.operator == FunctionType.CONSTANT:
391
405
  return f"{inputs}"
392
406
  if arg.operator == FunctionType.CAST:
393
407
  return f"CAST({self.to_string(arg.arguments[0])} AS {self.to_string(arg.arguments[1])})"
394
408
  if arg.operator == FunctionType.INDEX_ACCESS:
395
409
  return f"{self.to_string(arg.arguments[0])}[{self.to_string(arg.arguments[1])}]"
410
+
411
+ if arg.operator == FunctionType.CASE:
412
+ inputs = "\n".join(args)
413
+ return f"CASE {inputs}\nEND"
396
414
  return f"{arg.operator.value}({inputs})"
397
415
 
398
416
  @to_string.register