ransacklib 1.1.0.dev8__tar.gz → 1.1.0.dev10__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.
- {ransacklib-1.1.0.dev8/ransacklib.egg-info → ransacklib-1.1.0.dev10}/PKG-INFO +1 -1
- {ransacklib-1.1.0.dev8 → ransacklib-1.1.0.dev10}/pyproject.toml +1 -1
- {ransacklib-1.1.0.dev8 → ransacklib-1.1.0.dev10}/ransack/operator.py +2 -2
- {ransacklib-1.1.0.dev8 → ransacklib-1.1.0.dev10}/ransack/transformer.py +7 -5
- {ransacklib-1.1.0.dev8 → ransacklib-1.1.0.dev10/ransacklib.egg-info}/PKG-INFO +1 -1
- {ransacklib-1.1.0.dev8 → ransacklib-1.1.0.dev10}/tests/test_transformer.py +2 -2
- {ransacklib-1.1.0.dev8 → ransacklib-1.1.0.dev10}/LICENSE +0 -0
- {ransacklib-1.1.0.dev8 → ransacklib-1.1.0.dev10}/README.rst +0 -0
- {ransacklib-1.1.0.dev8 → ransacklib-1.1.0.dev10}/ransack/__init__.py +0 -0
- {ransacklib-1.1.0.dev8 → ransacklib-1.1.0.dev10}/ransack/exceptions.py +0 -0
- {ransacklib-1.1.0.dev8 → ransacklib-1.1.0.dev10}/ransack/function.py +0 -0
- {ransacklib-1.1.0.dev8 → ransacklib-1.1.0.dev10}/ransack/parser.py +0 -0
- {ransacklib-1.1.0.dev8 → ransacklib-1.1.0.dev10}/ransack/py.typed +0 -0
- {ransacklib-1.1.0.dev8 → ransacklib-1.1.0.dev10}/ransacklib.egg-info/SOURCES.txt +0 -0
- {ransacklib-1.1.0.dev8 → ransacklib-1.1.0.dev10}/ransacklib.egg-info/dependency_links.txt +0 -0
- {ransacklib-1.1.0.dev8 → ransacklib-1.1.0.dev10}/ransacklib.egg-info/requires.txt +0 -0
- {ransacklib-1.1.0.dev8 → ransacklib-1.1.0.dev10}/ransacklib.egg-info/top_level.txt +0 -0
- {ransacklib-1.1.0.dev8 → ransacklib-1.1.0.dev10}/setup.cfg +0 -0
- {ransacklib-1.1.0.dev8 → ransacklib-1.1.0.dev10}/tests/test_operator.py +0 -0
- {ransacklib-1.1.0.dev8 → ransacklib-1.1.0.dev10}/tests/test_parser.py +0 -0
|
@@ -608,7 +608,7 @@ def _operator_map_sql(op, l_sql, r_sql, t1, t2) -> tuple[str, Any, bool]:
|
|
|
608
608
|
(Number, Number): (f"{l_sql} / {r_sql}", Number),
|
|
609
609
|
},
|
|
610
610
|
"%": {
|
|
611
|
-
(Number, Number): (f"({l_sql}
|
|
611
|
+
(Number, Number): (f"({l_sql} %% {r_sql})", Number),
|
|
612
612
|
},
|
|
613
613
|
".": {
|
|
614
614
|
(str, str): (f"{l_sql} || {r_sql}", str),
|
|
@@ -680,4 +680,4 @@ def binary_operation_sql(
|
|
|
680
680
|
return sql, type_, not switch
|
|
681
681
|
except KeyError:
|
|
682
682
|
pass
|
|
683
|
-
raise OperatorNotFoundError(operator, (l_type, r_type)
|
|
683
|
+
raise OperatorNotFoundError(operator, (l_type, r_type)) from None
|
|
@@ -830,7 +830,9 @@ class SQLInterpreter(Interpreter):
|
|
|
830
830
|
A class providing a method for translating the query from 'ransack' language to SQL.
|
|
831
831
|
"""
|
|
832
832
|
|
|
833
|
-
def to_sql(
|
|
833
|
+
def to_sql(
|
|
834
|
+
self, tree: Tree, data: dict | None = None
|
|
835
|
+
) -> tuple[str, list[Any], Any]:
|
|
834
836
|
"""
|
|
835
837
|
Translates the given tree to PostgreSQL query using the provided data.
|
|
836
838
|
|
|
@@ -839,15 +841,15 @@ class SQLInterpreter(Interpreter):
|
|
|
839
841
|
data: Optional dictionary containing the definition of queried columns.
|
|
840
842
|
|
|
841
843
|
Returns:
|
|
842
|
-
A part of the SQL query (the part after 'SELECT' or 'WHERE')
|
|
843
|
-
parameters.
|
|
844
|
+
A part of the SQL query (the part after 'SELECT' or 'WHERE'), its
|
|
845
|
+
parameters and a resulting type.
|
|
844
846
|
"""
|
|
845
847
|
self.data = data if data is not None else {}
|
|
846
848
|
|
|
847
|
-
result, params,
|
|
849
|
+
result, params, type_ = self.visit(tree)
|
|
848
850
|
|
|
849
851
|
self.data = {}
|
|
850
|
-
return result, params
|
|
852
|
+
return result, params, type_
|
|
851
853
|
|
|
852
854
|
def number(self, token: TokenWrapper) -> tuple[str, list, type[int | float]]:
|
|
853
855
|
return ("%s", [token.real_value], type(token.real_value))
|
|
@@ -725,7 +725,7 @@ class TestSQLInterpreter:
|
|
|
725
725
|
# Test arithmetic operations.
|
|
726
726
|
(
|
|
727
727
|
"(10 + 12 - 7) * (15 / (8 % 3)) - (-5)",
|
|
728
|
-
"(((%s + %s) - %s) * %s / (%s
|
|
728
|
+
"(((%s + %s) - %s) * %s / (%s %% %s) - (-%s))",
|
|
729
729
|
[10, 12, 7, 15, 8, 3, 5],
|
|
730
730
|
),
|
|
731
731
|
# Test comparisons.
|
|
@@ -856,7 +856,7 @@ class TestSQLInterpreter:
|
|
|
856
856
|
],
|
|
857
857
|
)
|
|
858
858
|
def test_parse_sql(self, parser, sql, expr, expected_sql, expected_params):
|
|
859
|
-
sql_str, params = self.parse(parser, sql, expr)
|
|
859
|
+
sql_str, params, _ = self.parse(parser, sql, expr)
|
|
860
860
|
|
|
861
861
|
assert sql_str == expected_sql
|
|
862
862
|
assert params == expected_params
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|