pytrilogy 0.0.3.107__py3-none-any.whl → 0.0.3.108__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.107
3
+ Version: 0.0.3.108
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.107.dist-info/licenses/LICENSE.md,sha256=5ZRvtTyCCFwz1THxDTjAu3Lidds9WjPvvzgVwPSYNDo,1042
2
- trilogy/__init__.py,sha256=TOWJnXypdm58AYp22QN4LJVjkesmn8ojjYSy-Hf9K9Q,304
1
+ pytrilogy-0.0.3.108.dist-info/licenses/LICENSE.md,sha256=5ZRvtTyCCFwz1THxDTjAu3Lidds9WjPvvzgVwPSYNDo,1042
2
+ trilogy/__init__.py,sha256=G8KCrVGJJPcAMI2euUHspq_x_yiArkE3DddwfS2LspU,304
3
3
  trilogy/constants.py,sha256=g_zkVCNjGop6coZ1kM8eXXAzCnUN22ldx3TYFz0E9sc,1747
4
4
  trilogy/engine.py,sha256=3MiADf5MKcmxqiHBuRqiYdsXiLj7oitDfVvXvHrfjkA,2178
5
5
  trilogy/executor.py,sha256=KgCAQhHPT-j0rPkBbALX0f84W9-Q-bkjHayGuavg99w,16490
@@ -52,7 +52,7 @@ trilogy/core/processing/node_generators/multiselect_node.py,sha256=a505AEixjsjp5
52
52
  trilogy/core/processing/node_generators/node_merge_node.py,sha256=hNcZxnDLTZyYJWfojg769zH9HB9PfZfESmpN1lcHWXg,23172
53
53
  trilogy/core/processing/node_generators/recursive_node.py,sha256=l5zdh0dURKwmAy8kK4OpMtZfyUEQRk6N-PwSWIyBpSM,2468
54
54
  trilogy/core/processing/node_generators/rowset_node.py,sha256=MuVNIexXhqGONho_mewqMOwaYXNUnjjvyPvk_RDGNYE,5943
55
- trilogy/core/processing/node_generators/select_merge_node.py,sha256=ORF9H7A-yT2wzQZYVex2asmm7_y0b2_lP6U0e48asNA,25290
55
+ trilogy/core/processing/node_generators/select_merge_node.py,sha256=9MZdQJtkoe5NiQZT8RqoVzknqq8y3eZyVKrACIAmOUs,25539
56
56
  trilogy/core/processing/node_generators/select_node.py,sha256=Ta1G39V94gjX_AgyZDz9OqnwLz4BjY3D6Drx9YpziMQ,3555
57
57
  trilogy/core/processing/node_generators/synonym_node.py,sha256=AnAsa_Wj50NJ_IK0HSgab_7klYmKVrv0WI1uUe-GvEY,3766
58
58
  trilogy/core/processing/node_generators/union_node.py,sha256=NxQbnRRoYMI4WjMeph41yk4E6yipj53qdGuNt-Mozxw,2818
@@ -112,15 +112,15 @@ trilogy/scripts/trilogy.py,sha256=1L0XrH4mVHRt1C9T1HnaDv2_kYEfbWTb5_-cBBke79w,37
112
112
  trilogy/std/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
113
  trilogy/std/color.preql,sha256=sS9AXLDkECuDbNGnBMi2KnUuJukyVZVThKI9mP-ZOZI,50
114
114
  trilogy/std/date.preql,sha256=HWZm4t4HWyxr5geWRsY05RnHBVDMci8z8YA2cu0-OOw,188
115
- trilogy/std/display.preql,sha256=ZJ08crsZnC3kaWwNUrMB1ZH5j6DUUbz8RaUgihA8sm4,299
115
+ trilogy/std/display.preql,sha256=Jq35mrziBrj3h__RMjvBphrhg93wqXrJ2N-w6niL2LA,426
116
116
  trilogy/std/geography.preql,sha256=1A9Sq5PPMBnEPPf7f-rPVYxJfsnWpQ8oV_k4Fm3H2dU,675
117
117
  trilogy/std/metric.preql,sha256=DRECGhkMyqfit5Fl4Ut9zbWrJuSMI1iO9HikuyoBpE0,421
118
118
  trilogy/std/money.preql,sha256=XWwvAV3WxBsHX9zfptoYRnBigcfYwrYtBHXTME0xJuQ,2082
119
119
  trilogy/std/net.preql,sha256=WZCuvH87_rZntZiuGJMmBDMVKkdhTtxeHOkrXNwJ1EE,416
120
120
  trilogy/std/ranking.preql,sha256=LDoZrYyz4g3xsII9XwXfmstZD-_92i1Eox1UqkBIfi8,83
121
121
  trilogy/std/report.preql,sha256=LbV-XlHdfw0jgnQ8pV7acG95xrd1-p65fVpiIc-S7W4,202
122
- pytrilogy-0.0.3.107.dist-info/METADATA,sha256=WH1n7SdMf8X0M1jUWcT-UNZdT5NGMOANPo_uu9vBdFA,11839
123
- pytrilogy-0.0.3.107.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
124
- pytrilogy-0.0.3.107.dist-info/entry_points.txt,sha256=ewBPU2vLnVexZVnB-NrVj-p3E-4vukg83Zk8A55Wp2w,56
125
- pytrilogy-0.0.3.107.dist-info/top_level.txt,sha256=cAy__NW_eMAa_yT9UnUNlZLFfxcg6eimUAZ184cdNiE,8
126
- pytrilogy-0.0.3.107.dist-info/RECORD,,
122
+ pytrilogy-0.0.3.108.dist-info/METADATA,sha256=E94F8AfVcTrL90hRjztXep11eyghshWEcY6Kg6_NDwg,11839
123
+ pytrilogy-0.0.3.108.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
124
+ pytrilogy-0.0.3.108.dist-info/entry_points.txt,sha256=ewBPU2vLnVexZVnB-NrVj-p3E-4vukg83Zk8A55Wp2w,56
125
+ pytrilogy-0.0.3.108.dist-info/top_level.txt,sha256=cAy__NW_eMAa_yT9UnUNlZLFfxcg6eimUAZ184cdNiE,8
126
+ pytrilogy-0.0.3.108.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.107"
7
+ __version__ = "0.0.3.108"
8
8
 
9
9
  __all__ = ["parse", "Executor", "Dialects", "Environment", "CONFIG"]
@@ -416,17 +416,22 @@ def create_datasource_node(
416
416
  ) -> tuple[StrategyNode, bool]:
417
417
 
418
418
  target_grain = BuildGrain.from_concepts(all_concepts, environment=environment)
419
+ # datasource grain may have changed since reference graph creation
420
+ datasource_grain = BuildGrain.from_concepts(
421
+ datasource.grain.components, environment=environment
422
+ )
423
+ # datasource_grain = datasource.grain
419
424
  force_group = False
420
- if not datasource.grain.issubset(target_grain):
425
+ if not datasource_grain.issubset(target_grain):
421
426
  logger.info(
422
- f"{padding(depth)}{LOGGER_PREFIX}_DS_NODE Select node must be wrapped in group, {datasource.grain} not subset of target grain {target_grain}"
427
+ f"{padding(depth)}{LOGGER_PREFIX}_DS_NODE Select node must be wrapped in group, {datasource_grain} not subset of target grain {target_grain} from {all_concepts}"
423
428
  )
424
429
  force_group = True
425
430
  else:
426
431
  logger.info(
427
- f"{padding(depth)}{LOGGER_PREFIX}_DS_NODE Select node grain {datasource.grain} is subset of target grain {target_grain}, no group required"
432
+ f"{padding(depth)}{LOGGER_PREFIX}_DS_NODE Select node grain {datasource_grain} is subset of target grain {target_grain}, no group required"
428
433
  )
429
- if not datasource.grain.components:
434
+ if not datasource_grain.components:
430
435
  force_group = True
431
436
  partial_concepts = [
432
437
  c.concept
trilogy/std/display.preql CHANGED
@@ -2,8 +2,17 @@
2
2
 
3
3
  type percent float; # Percentage value
4
4
 
5
- def calc_percent(a, b, digits=-1) -> case when digits =-1 then
6
- case when b = 0 then 0.0::numeric::percent else
7
- (a/b)::numeric::percent end
8
- else round((case when b = 0 then 0.0::float::percent else
9
- (a/b)::float::percent end):: numeric::percent, digits) end;
5
+ def calc_percent(a, b, digits=-1) ->
6
+ case
7
+ when digits =-1 then
8
+ case
9
+ when b = 0 then 0.0::numeric
10
+ else (a/b)::numeric
11
+ end
12
+ else round((
13
+ case
14
+ when b = 0 then 0.0::float
15
+ else (a/b)::float
16
+ end
17
+ )::numeric, digits)
18
+ end::numeric::percent;