pytrilogy 0.0.3.92__tar.gz → 0.0.3.93__tar.gz
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.
- {pytrilogy-0.0.3.92/pytrilogy.egg-info → pytrilogy-0.0.3.93}/PKG-INFO +1 -1
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93/pytrilogy.egg-info}/PKG-INFO +1 -1
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/pytrilogy.egg-info/SOURCES.txt +1 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_discovery_nodes.py +1 -1
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_parsing.py +2 -3
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_query_processing.py +1 -1
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/__init__.py +1 -1
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/models/author.py +1 -1
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/models/build.py +136 -147
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/models/build_environment.py +2 -6
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/models/execute.py +3 -3
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/node_generators/group_node.py +3 -7
- pytrilogy-0.0.3.93/trilogy/core/processing/node_generators/select_merge_node_v2.py +792 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/LICENSE.md +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/README.md +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/pyproject.toml +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/pytrilogy.egg-info/dependency_links.txt +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/pytrilogy.egg-info/entry_points.txt +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/pytrilogy.egg-info/requires.txt +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/pytrilogy.egg-info/top_level.txt +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/setup.cfg +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/setup.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_datatypes.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_declarations.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_derived_concepts.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_enums.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_environment.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_execute_models.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_executor.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_failure.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_functions.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_imports.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_metadata.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_models.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_multi_join_assignments.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_parse_engine.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_parsing_failures.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_partial_handling.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_query_render.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_select.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_show.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_statements.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_typing.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_undefined_concept.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_user_functions.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/tests/test_where_clause.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/authoring/__init__.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/compiler.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/constants.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/__init__.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/constants.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/enums.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/env_processor.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/environment_helpers.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/ergonomics.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/exceptions.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/functions.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/graph_models.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/internal.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/models/__init__.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/models/core.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/models/datasource.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/models/environment.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/optimization.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/optimizations/__init__.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/optimizations/base_optimization.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/optimizations/inline_datasource.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/optimizations/predicate_pushdown.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/__init__.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/concept_strategies_v3.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/discovery_loop.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/discovery_node_factory.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/discovery_utility.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/discovery_validation.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/graph_utils.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/node_generators/__init__.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/node_generators/basic_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/node_generators/common.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/node_generators/constant_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/node_generators/filter_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/node_generators/group_to_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/node_generators/multiselect_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/node_generators/node_merge_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/node_generators/recursive_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/node_generators/rowset_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/node_generators/select_helpers/__init__.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/node_generators/select_helpers/datasource_injection.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/node_generators/select_merge_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/node_generators/select_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/node_generators/synonym_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/node_generators/union_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/node_generators/unnest_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/node_generators/window_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/nodes/__init__.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/nodes/base_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/nodes/filter_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/nodes/group_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/nodes/merge_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/nodes/recursive_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/nodes/select_node_v2.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/nodes/union_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/nodes/unnest_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/nodes/window_node.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/processing/utility.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/query_processor.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/statements/__init__.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/statements/author.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/statements/build.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/statements/common.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/statements/execute.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/core/utility.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/dialect/__init__.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/dialect/base.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/dialect/bigquery.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/dialect/common.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/dialect/config.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/dialect/dataframe.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/dialect/duckdb.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/dialect/enums.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/dialect/postgres.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/dialect/presto.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/dialect/snowflake.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/dialect/sql_server.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/engine.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/executor.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/hooks/__init__.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/hooks/base_hook.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/hooks/graph_hook.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/hooks/query_debugger.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/metadata/__init__.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/parser.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/parsing/__init__.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/parsing/common.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/parsing/config.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/parsing/exceptions.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/parsing/helpers.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/parsing/parse_engine.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/parsing/render.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/parsing/trilogy.lark +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/py.typed +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/render.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/scripts/__init__.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/scripts/trilogy.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/std/__init__.py +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/std/date.preql +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/std/display.preql +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/std/geography.preql +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/std/money.preql +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/std/net.preql +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/std/ranking.preql +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/std/report.preql +0 -0
- {pytrilogy-0.0.3.92 → pytrilogy-0.0.3.93}/trilogy/utility.py +0 -0
|
@@ -90,6 +90,7 @@ trilogy/core/processing/node_generators/node_merge_node.py
|
|
|
90
90
|
trilogy/core/processing/node_generators/recursive_node.py
|
|
91
91
|
trilogy/core/processing/node_generators/rowset_node.py
|
|
92
92
|
trilogy/core/processing/node_generators/select_merge_node.py
|
|
93
|
+
trilogy/core/processing/node_generators/select_merge_node_v2.py
|
|
93
94
|
trilogy/core/processing/node_generators/select_node.py
|
|
94
95
|
trilogy/core/processing/node_generators/synonym_node.py
|
|
95
96
|
trilogy/core/processing/node_generators/union_node.py
|
|
@@ -67,7 +67,7 @@ def test_group_node_property_all(test_environment: Environment, test_environment
|
|
|
67
67
|
sum_name_length = test_environment.concepts["category_name_length_sum"]
|
|
68
68
|
all_rows = test_environment.concepts[f"{INTERNAL_NAMESPACE}.{ALL_ROWS_CONCEPT}"]
|
|
69
69
|
sum_name_length_all_rows = sum_name_length.with_grain(
|
|
70
|
-
BuildGrain(components=
|
|
70
|
+
BuildGrain(components={all_rows.address})
|
|
71
71
|
)
|
|
72
72
|
group_node = gen_group_node(
|
|
73
73
|
sum_name_length_all_rows,
|
|
@@ -5,7 +5,6 @@ from trilogy.core.functions import argument_to_purpose, function_args_to_output_
|
|
|
5
5
|
from trilogy.core.models.author import (
|
|
6
6
|
Comparison,
|
|
7
7
|
Conditional,
|
|
8
|
-
ListWrapper,
|
|
9
8
|
SubselectComparison,
|
|
10
9
|
)
|
|
11
10
|
from trilogy.core.models.build import BuildComparison
|
|
@@ -61,7 +60,7 @@ def test_not_in():
|
|
|
61
60
|
_, parsed = parse_text(
|
|
62
61
|
"const order_id <- 4; SELECT order_id WHERE order_id NOT IN (1,2,3);"
|
|
63
62
|
)
|
|
64
|
-
query:
|
|
63
|
+
query: SelectStatement = parsed[-1]
|
|
65
64
|
right = query.where_clause.conditional.right
|
|
66
65
|
assert isinstance(right, TupleWrapper), type(right)
|
|
67
66
|
assert right[0] == 1
|
|
@@ -75,7 +74,7 @@ def test_datetime_lit_rendering():
|
|
|
75
74
|
from datetime import datetime
|
|
76
75
|
|
|
77
76
|
now = datetime.now()
|
|
78
|
-
wrapper =
|
|
77
|
+
wrapper = TupleWrapper(
|
|
79
78
|
(now,),
|
|
80
79
|
type=DataType.DATETIME,
|
|
81
80
|
)
|
|
@@ -135,7 +135,7 @@ def test_basic_aggregate(test_environment: Environment, test_environment_graph):
|
|
|
135
135
|
)
|
|
136
136
|
datasource = datasource.resolve()
|
|
137
137
|
assert isinstance(datasource, QueryDatasource)
|
|
138
|
-
assert datasource.grain == BuildGrain(components=
|
|
138
|
+
assert datasource.grain == BuildGrain(components={product.address})
|
|
139
139
|
|
|
140
140
|
|
|
141
141
|
def test_join_aggregate(test_environment: Environment, test_environment_graph):
|
|
@@ -1133,7 +1133,7 @@ class Concept(Addressable, DataTyped, ConceptArgs, Mergeable, Namespaced, BaseMo
|
|
|
1133
1133
|
granularity=self.granularity,
|
|
1134
1134
|
derivation=self.derivation,
|
|
1135
1135
|
lineage=self.lineage,
|
|
1136
|
-
grain=grain if grain else Grain(components=set()),
|
|
1136
|
+
grain=grain if grain else Grain.model_construct(components=set()),
|
|
1137
1137
|
namespace=self.namespace,
|
|
1138
1138
|
keys=self.keys,
|
|
1139
1139
|
modifiers=self.modifiers,
|