pytrilogy 0.0.2.45__py3-none-any.whl → 0.0.2.47__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.45
3
+ Version: 0.0.2.47
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=UvZczB4kSHAfRSvHaEiwHBDkkIKuVLZsvZVUni5kMc8,291
1
+ trilogy/__init__.py,sha256=1AtwhSy-U-0z7qVDt7pbGMULzjuha1IHXXyCkuZwRiw,291
2
2
  trilogy/compiler.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  trilogy/constants.py,sha256=UPymm94T2c6a55XdDaXw0aleTe1pOJ6lf6gOWLKZyKg,1430
4
4
  trilogy/engine.py,sha256=R5ubIxYyrxRExz07aZCUfrTsoXCHQ8DKFTDsobXdWdA,1102
@@ -16,7 +16,7 @@ trilogy/core/exceptions.py,sha256=1c1lQCwSw4_5CQS3q7scOkXU8GQvullJXfPHubprl90,61
16
16
  trilogy/core/functions.py,sha256=IhVpt3n6wEanKHnGu3oA2w6-hKIlxWpEyz7fHN66mpo,10720
17
17
  trilogy/core/graph_models.py,sha256=mameUTiuCajtihDw_2-W218xyJlvTusOWrEKP1yAWgk,2003
18
18
  trilogy/core/internal.py,sha256=jNGFHKENnbMiMCtAgsnLZYVSENDK4b5ALecXFZpTDzQ,1075
19
- trilogy/core/models.py,sha256=WxmOgW0cTUgcBVu_gLPUwA9j3KWYPH5FsxKzBSJukEg,164085
19
+ trilogy/core/models.py,sha256=Hk25VWc8mA6eJNozhoNaP3_Rx7ECpCYXXQaanS_pwn4,164150
20
20
  trilogy/core/optimization.py,sha256=VFSvJLNoCCOraip-PZUKeE4qrlxtXARjQUzJZiW-yRk,7325
21
21
  trilogy/core/query_processor.py,sha256=mbcZlgjChrRjDHkdmMbKe-T70UpbBkJhS09MyU5a6UY,17785
22
22
  trilogy/core/optimizations/__init__.py,sha256=bWQecbeiwiDx9LJnLsa7dkWxdbl2wcnkcTN69JyP8iI,356
@@ -50,7 +50,7 @@ trilogy/core/processing/nodes/select_node_v2.py,sha256=7WoFxeGEAzhpS4y4Zw2nH2tt7
50
50
  trilogy/core/processing/nodes/unnest_node.py,sha256=mAmFluzm2yeeiQ6NfIB7BU_8atRGh-UJfPf9ROwbhr8,2152
51
51
  trilogy/core/processing/nodes/window_node.py,sha256=ro0QfMFi4ZmIn5Q4D0M_vJWfnHH_C0MN7XkVkx8Gygg,1214
52
52
  trilogy/dialect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
- trilogy/dialect/base.py,sha256=Aj0U5JUFPzBuo-5LNASYIkJVIYiMhL3A4nGEslY7xAg,36301
53
+ trilogy/dialect/base.py,sha256=YyJy20CNJfOmuHg-WhYEwIamJzAQxb48_lqghriTm8c,36261
54
54
  trilogy/dialect/bigquery.py,sha256=15KJ-cOpBlk9O7FPviPgmg8xIydJeKx7WfmL3SSsPE8,2953
55
55
  trilogy/dialect/common.py,sha256=eqJi_Si1iyb2sV0siTf8g8JOHueWu6RkdtQZtutKazk,3826
56
56
  trilogy/dialect/config.py,sha256=tLVEMctaTDhUgARKXUNfHUcIolGaALkQ0RavUvXAY4w,2994
@@ -75,9 +75,9 @@ trilogy/parsing/render.py,sha256=-qqpXQg4yHcv284Vosjnsc_vrPveH6oaYbeCd3ZSvs0,156
75
75
  trilogy/parsing/trilogy.lark,sha256=B6NM3-rBHtYB_WSEti0DiS8Z-I8YH3kZU47xNzQvBx4,12389
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.45.dist-info/LICENSE.md,sha256=5ZRvtTyCCFwz1THxDTjAu3Lidds9WjPvvzgVwPSYNDo,1042
79
- pytrilogy-0.0.2.45.dist-info/METADATA,sha256=3yU7J0Qxk2FqzC6WKBP-AL8JOp_loHi_x6_gZwlF-DM,8426
80
- pytrilogy-0.0.2.45.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
81
- pytrilogy-0.0.2.45.dist-info/entry_points.txt,sha256=0petKryjvvtEfTlbZC1AuMFumH_WQ9v8A19LvoS6G6c,54
82
- pytrilogy-0.0.2.45.dist-info/top_level.txt,sha256=cAy__NW_eMAa_yT9UnUNlZLFfxcg6eimUAZ184cdNiE,8
83
- pytrilogy-0.0.2.45.dist-info/RECORD,,
78
+ pytrilogy-0.0.2.47.dist-info/LICENSE.md,sha256=5ZRvtTyCCFwz1THxDTjAu3Lidds9WjPvvzgVwPSYNDo,1042
79
+ pytrilogy-0.0.2.47.dist-info/METADATA,sha256=Mb0qndiqtvzvG5pNpM-PE3qSZKQmtKa-Gdsv5CDdOFc,8426
80
+ pytrilogy-0.0.2.47.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
81
+ pytrilogy-0.0.2.47.dist-info/entry_points.txt,sha256=0petKryjvvtEfTlbZC1AuMFumH_WQ9v8A19LvoS6G6c,54
82
+ pytrilogy-0.0.2.47.dist-info/top_level.txt,sha256=cAy__NW_eMAa_yT9UnUNlZLFfxcg6eimUAZ184cdNiE,8
83
+ pytrilogy-0.0.2.47.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.45"
7
+ __version__ = "0.0.2.47"
8
8
 
9
9
  __all__ = ["parse", "Executor", "Dialects", "Environment", "CONFIG"]
trilogy/core/models.py CHANGED
@@ -2194,7 +2194,7 @@ class Datasource(HasUUID, Namespaced, BaseModel):
2194
2194
  v = Address(location=v)
2195
2195
  return v
2196
2196
 
2197
- @field_validator("grain", mode="plain")
2197
+ @field_validator("grain", mode="before")
2198
2198
  @classmethod
2199
2199
  def grain_enforcement(cls, v: Grain, info: ValidationInfo):
2200
2200
  values = info.data
@@ -3129,7 +3129,9 @@ class UndefinedConcept(Concept, Mergeable, Namespaced):
3129
3129
  name: str
3130
3130
  environment: "EnvironmentConceptDict"
3131
3131
  line_no: int | None = None
3132
- datatype: DataType = DataType.UNKNOWN
3132
+ datatype: DataType | ListType | StructType | MapType | NumericType = (
3133
+ DataType.UNKNOWN
3134
+ )
3133
3135
  purpose: Purpose = Purpose.KEY
3134
3136
 
3135
3137
  def with_merge(
trilogy/dialect/base.py CHANGED
@@ -313,10 +313,18 @@ class BaseDialect:
313
313
  )
314
314
  for x in c.lineage.over
315
315
  ]
316
- rval = f"{self.WINDOW_FUNCTION_MAP[c.lineage.type](concept = self.render_concept_sql(c.lineage.content,
317
- cte=cte, alias=False, raise_invalid=raise_invalid),
318
- window=','.join(rendered_over_components), sort=','.join(rendered_order_components),
319
- offset=c.lineage.index)}" # noqa: E501
316
+
317
+ rval = self.WINDOW_FUNCTION_MAP[c.lineage.type](
318
+ concept=self.render_concept_sql(
319
+ c.lineage.content,
320
+ cte=cte,
321
+ alias=False,
322
+ raise_invalid=raise_invalid,
323
+ ),
324
+ window=",".join(rendered_over_components),
325
+ sort=",".join(rendered_order_components),
326
+ offset=c.lineage.index,
327
+ )
320
328
  elif isinstance(c.lineage, FilterItem):
321
329
  # for cases when we've optimized this
322
330
  if cte.condition == c.lineage.where.conditional: