pytrilogy 0.0.3.83__tar.gz → 0.0.3.84__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.

Files changed (151) hide show
  1. {pytrilogy-0.0.3.83/pytrilogy.egg-info → pytrilogy-0.0.3.84}/PKG-INFO +1 -1
  2. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84/pytrilogy.egg-info}/PKG-INFO +1 -1
  3. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/__init__.py +1 -1
  4. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/node_generators/node_merge_node.py +4 -4
  5. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/utility.py +2 -2
  6. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/LICENSE.md +0 -0
  7. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/README.md +0 -0
  8. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/pyproject.toml +0 -0
  9. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/pytrilogy.egg-info/SOURCES.txt +0 -0
  10. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/pytrilogy.egg-info/dependency_links.txt +0 -0
  11. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/pytrilogy.egg-info/entry_points.txt +0 -0
  12. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/pytrilogy.egg-info/requires.txt +0 -0
  13. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/pytrilogy.egg-info/top_level.txt +0 -0
  14. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/setup.cfg +0 -0
  15. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/setup.py +0 -0
  16. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_datatypes.py +0 -0
  17. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_declarations.py +0 -0
  18. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_derived_concepts.py +0 -0
  19. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_discovery_nodes.py +0 -0
  20. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_enums.py +0 -0
  21. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_environment.py +0 -0
  22. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_execute_models.py +0 -0
  23. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_executor.py +0 -0
  24. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_failure.py +0 -0
  25. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_functions.py +0 -0
  26. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_imports.py +0 -0
  27. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_metadata.py +0 -0
  28. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_models.py +0 -0
  29. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_multi_join_assignments.py +0 -0
  30. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_parse_engine.py +0 -0
  31. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_parsing.py +0 -0
  32. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_parsing_failures.py +0 -0
  33. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_partial_handling.py +0 -0
  34. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_query_processing.py +0 -0
  35. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_query_render.py +0 -0
  36. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_select.py +0 -0
  37. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_show.py +0 -0
  38. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_statements.py +0 -0
  39. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_typing.py +0 -0
  40. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_undefined_concept.py +0 -0
  41. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_user_functions.py +0 -0
  42. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/tests/test_where_clause.py +0 -0
  43. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/authoring/__init__.py +0 -0
  44. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/compiler.py +0 -0
  45. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/constants.py +0 -0
  46. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/__init__.py +0 -0
  47. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/constants.py +0 -0
  48. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/enums.py +0 -0
  49. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/env_processor.py +0 -0
  50. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/environment_helpers.py +0 -0
  51. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/ergonomics.py +0 -0
  52. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/exceptions.py +0 -0
  53. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/functions.py +0 -0
  54. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/graph_models.py +0 -0
  55. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/internal.py +0 -0
  56. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/models/__init__.py +0 -0
  57. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/models/author.py +0 -0
  58. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/models/build.py +0 -0
  59. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/models/build_environment.py +0 -0
  60. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/models/core.py +0 -0
  61. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/models/datasource.py +0 -0
  62. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/models/environment.py +0 -0
  63. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/models/execute.py +0 -0
  64. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/optimization.py +0 -0
  65. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/optimizations/__init__.py +0 -0
  66. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/optimizations/base_optimization.py +0 -0
  67. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/optimizations/inline_datasource.py +0 -0
  68. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/optimizations/predicate_pushdown.py +0 -0
  69. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/__init__.py +0 -0
  70. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/concept_strategies_v3.py +0 -0
  71. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/discovery_loop.py +0 -0
  72. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/discovery_node_factory.py +0 -0
  73. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/discovery_utility.py +0 -0
  74. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/discovery_validation.py +0 -0
  75. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/graph_utils.py +0 -0
  76. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/node_generators/__init__.py +0 -0
  77. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/node_generators/basic_node.py +0 -0
  78. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/node_generators/common.py +0 -0
  79. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/node_generators/constant_node.py +0 -0
  80. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/node_generators/filter_node.py +0 -0
  81. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/node_generators/group_node.py +0 -0
  82. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/node_generators/group_to_node.py +0 -0
  83. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/node_generators/multiselect_node.py +0 -0
  84. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/node_generators/recursive_node.py +0 -0
  85. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/node_generators/rowset_node.py +0 -0
  86. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/node_generators/select_helpers/__init__.py +0 -0
  87. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/node_generators/select_helpers/datasource_injection.py +0 -0
  88. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/node_generators/select_merge_node.py +0 -0
  89. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/node_generators/select_node.py +0 -0
  90. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/node_generators/synonym_node.py +0 -0
  91. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/node_generators/union_node.py +0 -0
  92. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/node_generators/unnest_node.py +0 -0
  93. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/node_generators/window_node.py +0 -0
  94. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/nodes/__init__.py +0 -0
  95. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/nodes/base_node.py +0 -0
  96. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/nodes/filter_node.py +0 -0
  97. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/nodes/group_node.py +0 -0
  98. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/nodes/merge_node.py +0 -0
  99. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/nodes/recursive_node.py +0 -0
  100. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/nodes/select_node_v2.py +0 -0
  101. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/nodes/union_node.py +0 -0
  102. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/nodes/unnest_node.py +0 -0
  103. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/processing/nodes/window_node.py +0 -0
  104. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/query_processor.py +0 -0
  105. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/statements/__init__.py +0 -0
  106. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/statements/author.py +0 -0
  107. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/statements/build.py +0 -0
  108. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/statements/common.py +0 -0
  109. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/statements/execute.py +0 -0
  110. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/core/utility.py +0 -0
  111. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/dialect/__init__.py +0 -0
  112. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/dialect/base.py +0 -0
  113. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/dialect/bigquery.py +0 -0
  114. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/dialect/common.py +0 -0
  115. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/dialect/config.py +0 -0
  116. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/dialect/dataframe.py +0 -0
  117. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/dialect/duckdb.py +0 -0
  118. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/dialect/enums.py +0 -0
  119. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/dialect/postgres.py +0 -0
  120. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/dialect/presto.py +0 -0
  121. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/dialect/snowflake.py +0 -0
  122. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/dialect/sql_server.py +0 -0
  123. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/engine.py +0 -0
  124. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/executor.py +0 -0
  125. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/hooks/__init__.py +0 -0
  126. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/hooks/base_hook.py +0 -0
  127. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/hooks/graph_hook.py +0 -0
  128. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/hooks/query_debugger.py +0 -0
  129. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/metadata/__init__.py +0 -0
  130. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/parser.py +0 -0
  131. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/parsing/__init__.py +0 -0
  132. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/parsing/common.py +0 -0
  133. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/parsing/config.py +0 -0
  134. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/parsing/exceptions.py +0 -0
  135. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/parsing/helpers.py +0 -0
  136. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/parsing/parse_engine.py +0 -0
  137. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/parsing/render.py +0 -0
  138. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/parsing/trilogy.lark +0 -0
  139. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/py.typed +0 -0
  140. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/render.py +0 -0
  141. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/scripts/__init__.py +0 -0
  142. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/scripts/trilogy.py +0 -0
  143. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/std/__init__.py +0 -0
  144. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/std/date.preql +0 -0
  145. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/std/display.preql +0 -0
  146. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/std/geography.preql +0 -0
  147. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/std/money.preql +0 -0
  148. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/std/net.preql +0 -0
  149. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/std/ranking.preql +0 -0
  150. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/std/report.preql +0 -0
  151. {pytrilogy-0.0.3.83 → pytrilogy-0.0.3.84}/trilogy/utility.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pytrilogy
3
- Version: 0.0.3.83
3
+ Version: 0.0.3.84
4
4
  Summary: Declarative, typed query language that compiles to SQL.
5
5
  Home-page:
6
6
  Author:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pytrilogy
3
- Version: 0.0.3.83
3
+ Version: 0.0.3.84
4
4
  Summary: Declarative, typed query language that compiles to SQL.
5
5
  Home-page:
6
6
  Author:
@@ -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.83"
7
+ __version__ = "0.0.3.84"
8
8
 
9
9
  __all__ = ["parse", "Executor", "Dialects", "Environment", "CONFIG"]
@@ -104,16 +104,16 @@ def determine_induced_minimal_nodes(
104
104
  if filter_downstream and lookup.derivation not in (Derivation.ROOT,):
105
105
  nodes_to_remove.append(node)
106
106
  if nodes_to_remove:
107
- logger.debug(f"Removing nodes {nodes_to_remove} from graph")
107
+ # logger.debug(f"Removing nodes {nodes_to_remove} from graph")
108
108
  H.remove_nodes_from(nodes_to_remove)
109
109
  isolates = list(nx.isolates(H))
110
110
  if isolates:
111
- logger.debug(f"Removing isolates {isolates} from graph")
111
+ # logger.debug(f"Removing isolates {isolates} from graph")
112
112
  H.remove_nodes_from(isolates)
113
113
 
114
114
  zero_out = list(x for x in H.nodes if G.out_degree(x) == 0 and x not in nodelist)
115
115
  while zero_out:
116
- logger.debug(f"Removing zero out nodes {zero_out} from graph")
116
+ # logger.debug(f"Removing zero out nodes {zero_out} from graph")
117
117
  H.remove_nodes_from(zero_out)
118
118
  zero_out = list(
119
119
  x for x in H.nodes if G.out_degree(x) == 0 and x not in nodelist
@@ -128,7 +128,7 @@ def determine_induced_minimal_nodes(
128
128
  if path_removals:
129
129
  logger.debug(f"Removing paths {path_removals} from graph")
130
130
  H.remove_nodes_from(path_removals)
131
- logger.debug(f"Graph after path removal {H.nodes}")
131
+ # logger.debug(f"Graph after path removal {H.nodes}")
132
132
  sG: nx.Graph = ax.steinertree.steiner_tree(H, nodelist).copy()
133
133
  if not sG.nodes:
134
134
  logger.debug(f"No Steiner tree found for nodes {nodelist}")
@@ -169,9 +169,9 @@ def resolve_join_order_v2(
169
169
  right_is_nullable = any(
170
170
  key in nullables.get(right, []) for key in common
171
171
  )
172
- if left_is_partial:
172
+ if left_is_partial or right_is_nullable:
173
173
  join_type = JoinType.FULL
174
- elif right_is_partial or right_is_nullable:
174
+ elif right_is_partial:
175
175
  join_type = JoinType.LEFT_OUTER
176
176
  # we can't inner join if the left was an outer join
177
177
  else:
File without changes
File without changes
File without changes
File without changes