pytrilogy 0.0.3.83__py3-none-any.whl → 0.0.3.84__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.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,5 +1,5 @@
1
- pytrilogy-0.0.3.83.dist-info/licenses/LICENSE.md,sha256=5ZRvtTyCCFwz1THxDTjAu3Lidds9WjPvvzgVwPSYNDo,1042
2
- trilogy/__init__.py,sha256=Rh-SluRXHl9PmO1Tte7AvBGZUzGc0qDJwk8oJPx3KtU,303
1
+ pytrilogy-0.0.3.84.dist-info/licenses/LICENSE.md,sha256=5ZRvtTyCCFwz1THxDTjAu3Lidds9WjPvvzgVwPSYNDo,1042
2
+ trilogy/__init__.py,sha256=b0Bn2iqQWc-ybYMseprmaaiHheIdhoVAhJDfyMQJNkI,303
3
3
  trilogy/compiler.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  trilogy/constants.py,sha256=eKb_EJvSqjN9tGbdVEViwdtwwh8fZ3-jpOEDqL71y70,1691
5
5
  trilogy/engine.py,sha256=OK2RuqCIUId6yZ5hfF8J1nxGP0AJqHRZiafcowmW0xc,1728
@@ -41,7 +41,7 @@ trilogy/core/processing/discovery_node_factory.py,sha256=5QVYUsci_h6iYWhS0GCoDow
41
41
  trilogy/core/processing/discovery_utility.py,sha256=eY4n7_r6_R-cx_Sm8FiouMXh78v2iO2SGhi0aI5jvDg,4549
42
42
  trilogy/core/processing/discovery_validation.py,sha256=eZ4HfHMpqZLI8MGG2jez8arS8THs6ceuVrQFIY6gXrU,5364
43
43
  trilogy/core/processing/graph_utils.py,sha256=8QUVrkE9j-9C1AyrCb1nQEh8daCe0u1HuXl-Te85lag,1205
44
- trilogy/core/processing/utility.py,sha256=VjKhDFeItB642riF8KHwyk4YEc58nVDiPLIydwdLPcQ,22716
44
+ trilogy/core/processing/utility.py,sha256=I7KgLJc1oLYPZoArMzoYMr-w2y3wv80u2VfVYbBNfkM,22716
45
45
  trilogy/core/processing/node_generators/__init__.py,sha256=iVJ-crowPxYeut-hFjyEjfibKIDq7PfB4LEuDAUCjGY,943
46
46
  trilogy/core/processing/node_generators/basic_node.py,sha256=TLZCv4WS196a-0g5xgKuJGthnGP8Ugm46iz85_3NIY4,5626
47
47
  trilogy/core/processing/node_generators/common.py,sha256=PdysdroW9DUADP7f5Wv_GKPUyCTROZV1g3L45fawxi8,9443
@@ -50,7 +50,7 @@ trilogy/core/processing/node_generators/filter_node.py,sha256=oRRq2-T3ufgn4D23uQ
50
50
  trilogy/core/processing/node_generators/group_node.py,sha256=1QJhRxsTklJ5xq8wHlAURZaN9gL9FPpeCa1OJ7IwXnY,6769
51
51
  trilogy/core/processing/node_generators/group_to_node.py,sha256=jKcNCDOY6fNblrdZwaRU0sbUSr9H0moQbAxrGgX6iGA,3832
52
52
  trilogy/core/processing/node_generators/multiselect_node.py,sha256=GWV5yLmKTe1yyPhN60RG1Rnrn4ktfn9lYYXi_FVU4UI,7061
53
- trilogy/core/processing/node_generators/node_merge_node.py,sha256=bYhXGJqJDgT4JWlN4u761V3bkP96o6J25LFs6YBOiKQ,18304
53
+ trilogy/core/processing/node_generators/node_merge_node.py,sha256=sUKS9bSTeYNCyF9jibrkac1_QkmxD-k4x35nQK1b9cM,18312
54
54
  trilogy/core/processing/node_generators/recursive_node.py,sha256=l5zdh0dURKwmAy8kK4OpMtZfyUEQRk6N-PwSWIyBpSM,2468
55
55
  trilogy/core/processing/node_generators/rowset_node.py,sha256=5L5u6xz1In8EaHQdcYgR2si-tz9WB9YLXURo4AkUT9A,6630
56
56
  trilogy/core/processing/node_generators/select_merge_node.py,sha256=Cv2GwNiYSmwewjuK8T3JB3pbgrLZFPsB75DCP153BMA,22818
@@ -111,8 +111,8 @@ trilogy/std/money.preql,sha256=XWwvAV3WxBsHX9zfptoYRnBigcfYwrYtBHXTME0xJuQ,2082
111
111
  trilogy/std/net.preql,sha256=7l7MqIjs6TDCpO6dBAoNJU81Ex255jZRK36kBgE1GDs,158
112
112
  trilogy/std/ranking.preql,sha256=LDoZrYyz4g3xsII9XwXfmstZD-_92i1Eox1UqkBIfi8,83
113
113
  trilogy/std/report.preql,sha256=LbV-XlHdfw0jgnQ8pV7acG95xrd1-p65fVpiIc-S7W4,202
114
- pytrilogy-0.0.3.83.dist-info/METADATA,sha256=5Wl6yOEMzIqdUAUuP6OinBib-2jtSmhieDJoDRHCDiA,9589
115
- pytrilogy-0.0.3.83.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
116
- pytrilogy-0.0.3.83.dist-info/entry_points.txt,sha256=ewBPU2vLnVexZVnB-NrVj-p3E-4vukg83Zk8A55Wp2w,56
117
- pytrilogy-0.0.3.83.dist-info/top_level.txt,sha256=cAy__NW_eMAa_yT9UnUNlZLFfxcg6eimUAZ184cdNiE,8
118
- pytrilogy-0.0.3.83.dist-info/RECORD,,
114
+ pytrilogy-0.0.3.84.dist-info/METADATA,sha256=geu9WBXvLdcteqUAJuFHuDkeyxc8h7l-t9PgRkk7J4o,9589
115
+ pytrilogy-0.0.3.84.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
116
+ pytrilogy-0.0.3.84.dist-info/entry_points.txt,sha256=ewBPU2vLnVexZVnB-NrVj-p3E-4vukg83Zk8A55Wp2w,56
117
+ pytrilogy-0.0.3.84.dist-info/top_level.txt,sha256=cAy__NW_eMAa_yT9UnUNlZLFfxcg6eimUAZ184cdNiE,8
118
+ pytrilogy-0.0.3.84.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.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: