pytrilogy 0.0.1.114__py3-none-any.whl → 0.0.1.115__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.1.114
3
+ Version: 0.0.1.115
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=YP6zBKlyJngff_YhDMqBqw9lNoE9wqou96KfaGJqzg4,292
1
+ trilogy/__init__.py,sha256=FLkaJwdfgAlanF07q1NrFtMnJiCyOuGWPWbUpfXnttg,292
2
2
  trilogy/compiler.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  trilogy/constants.py,sha256=DJi3ESttmvqgy6fPRXiaQzqJVye6jYwf6XM89NHv0_M,735
4
4
  trilogy/engine.py,sha256=R5ubIxYyrxRExz07aZCUfrTsoXCHQ8DKFTDsobXdWdA,1102
@@ -16,7 +16,7 @@ trilogy/core/exceptions.py,sha256=NvV_4qLOgKXbpotgRf7c8BANDEvHxlqRPaA53IThQ2o,56
16
16
  trilogy/core/functions.py,sha256=zkRReytiotOBAW-a3Ri5eoejZDYTt2-7Op80ZxZxUmw,9129
17
17
  trilogy/core/graph_models.py,sha256=oJUMSpmYhqXlavckHLpR07GJxuQ8dZ1VbB1fB0KaS8c,2036
18
18
  trilogy/core/internal.py,sha256=jNGFHKENnbMiMCtAgsnLZYVSENDK4b5ALecXFZpTDzQ,1075
19
- trilogy/core/models.py,sha256=bVwdsGCfTybJC85kZ8H6a5fjFb7JLCkveAfUMuIAmos,111494
19
+ trilogy/core/models.py,sha256=2qkebdlVsHeGp1foupR6LJ5q9YewlZcZq6utxdLBqIw,111565
20
20
  trilogy/core/optimization.py,sha256=942MnGRzscAHcG9LsfMslIRRQBslbIiPHnAvJ3w8YRg,9157
21
21
  trilogy/core/query_processor.py,sha256=clIRJ6IcsqIVBPKFsxt8bqCLsLyajvAu02MUIcKQhTo,15713
22
22
  trilogy/core/processing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -65,14 +65,14 @@ trilogy/parsing/common.py,sha256=iR3fiiZ7w8VJuUGrQ0v06XGDXov81f4z1ZlFnj6y40E,580
65
65
  trilogy/parsing/config.py,sha256=Z-DaefdKhPDmSXLgg5V4pebhSB0h590vI0_VtHnlukI,111
66
66
  trilogy/parsing/exceptions.py,sha256=92E5i2frv5hj9wxObJZsZqj5T6bglvPzvdvco_vW1Zk,38
67
67
  trilogy/parsing/helpers.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
68
- trilogy/parsing/parse_engine.py,sha256=A8sQVfVr5sGIgWvz_tPF0EQjxiQhF3UqOTkBDcOaSKg,56115
68
+ trilogy/parsing/parse_engine.py,sha256=9j0mUN6D48iH39YRPRTp5JsDaB9YLFaF-xmF62ALMSA,56256
69
69
  trilogy/parsing/render.py,sha256=fxjpq2FZLgllw_d4cru-t_IXNPAz2DmYkT7v9ED0XRI,11540
70
70
  trilogy/parsing/trilogy.lark,sha256=GpjGQaDmK7GOTIqK1n4lMbDXqpt_w3EkqlYhlFw3HEA,10679
71
71
  trilogy/scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
72
  trilogy/scripts/trilogy.py,sha256=PHxvv6f2ODv0esyyhWxlARgra8dVhqQhYl0lTrSyVNo,3729
73
- pytrilogy-0.0.1.114.dist-info/LICENSE.md,sha256=5ZRvtTyCCFwz1THxDTjAu3Lidds9WjPvvzgVwPSYNDo,1042
74
- pytrilogy-0.0.1.114.dist-info/METADATA,sha256=TTpwsI8qmBYHFwu44PYUDEE-QIWWTIoKeqWGFM4s2us,7882
75
- pytrilogy-0.0.1.114.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
76
- pytrilogy-0.0.1.114.dist-info/entry_points.txt,sha256=0petKryjvvtEfTlbZC1AuMFumH_WQ9v8A19LvoS6G6c,54
77
- pytrilogy-0.0.1.114.dist-info/top_level.txt,sha256=cAy__NW_eMAa_yT9UnUNlZLFfxcg6eimUAZ184cdNiE,8
78
- pytrilogy-0.0.1.114.dist-info/RECORD,,
73
+ pytrilogy-0.0.1.115.dist-info/LICENSE.md,sha256=5ZRvtTyCCFwz1THxDTjAu3Lidds9WjPvvzgVwPSYNDo,1042
74
+ pytrilogy-0.0.1.115.dist-info/METADATA,sha256=6lmw6TXDHhgLTQoHRIqZxy3YK7oq0hQPMtV9Z9wzk0g,7882
75
+ pytrilogy-0.0.1.115.dist-info/WHEEL,sha256=Wyh-_nZ0DJYolHNn1_hMa4lM7uDedD_RGVwbmTjyItk,91
76
+ pytrilogy-0.0.1.115.dist-info/entry_points.txt,sha256=0petKryjvvtEfTlbZC1AuMFumH_WQ9v8A19LvoS6G6c,54
77
+ pytrilogy-0.0.1.115.dist-info/top_level.txt,sha256=cAy__NW_eMAa_yT9UnUNlZLFfxcg6eimUAZ184cdNiE,8
78
+ pytrilogy-0.0.1.115.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.1.114"
7
+ __version__ = "0.0.1.115"
8
8
 
9
9
  __all__ = ["parse", "Executor", "Dialects", "Environment", "CONFIG"]
trilogy/core/models.py CHANGED
@@ -2669,7 +2669,8 @@ class Environment(BaseModel):
2669
2669
 
2670
2670
 
2671
2671
  class LazyEnvironment(Environment):
2672
- """Variant of environment to defer parsing of a path"""
2672
+ """Variant of environment to defer parsing of a path
2673
+ until relevant attributes accessed."""
2673
2674
 
2674
2675
  load_path: Path
2675
2676
  loaded: bool = False
@@ -2681,6 +2682,7 @@ class LazyEnvironment(Environment):
2681
2682
  "working_path",
2682
2683
  "model_config",
2683
2684
  "model_fields",
2685
+ "model_post_init",
2684
2686
  ) or name.startswith("_"):
2685
2687
  return super().__getattribute__(name)
2686
2688
  if not self.loaded:
@@ -465,16 +465,19 @@ class ParseToObjects(Transformer):
465
465
  if purpose == Purpose.AUTO:
466
466
  purpose = None
467
467
  raw_name = args[1]
468
+ # abc.def.property pattern
468
469
  if isinstance(raw_name, str):
469
470
  lookup, namespace, name, parent_concept = parse_concept_reference(
470
471
  raw_name, self.environment, purpose
471
472
  )
473
+ # <abc.def,zef.gf>.property pattern
472
474
  else:
473
475
  keys, name = raw_name
474
- if "." in name:
475
- namespace, name = name.rsplit(".", 1)
476
- else:
476
+ namespaces = set([x.namespace for x in keys])
477
+ if not len(namespaces) == 1:
477
478
  namespace = self.environment.namespace or DEFAULT_NAMESPACE
479
+ else:
480
+ namespace = namespaces.pop()
478
481
  source_value = args[2]
479
482
  # we need to strip off every parenthetical to see what is being assigned.
480
483
  while isinstance(source_value, Parenthetical):