]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
make linter happy
authorViolet Folino Gallo <48537601+galloviolet@users.noreply.github.com>
Wed, 9 Jul 2025 22:07:24 +0000 (15:07 -0700)
committerViolet Folino Gallo <48537601+galloviolet@users.noreply.github.com>
Wed, 9 Jul 2025 22:07:24 +0000 (15:07 -0700)
lib/sqlalchemy/sql/elements.py
lib/sqlalchemy/testing/suite/test_select.py

index 1e1b26e86325ecc7124832f7446ce445d52d05f4..91fb2e5b664b6139cb3716372f78c56249bf7fa9 100644 (file)
@@ -4231,7 +4231,9 @@ class Over(ColumnElement[_T]):
         element: ColumnElement[_T],
         partition_by: Optional[_ByArgument] = None,
         order_by: Optional[_ByArgument] = None,
-        range_: Optional[typing_Tuple[Optional[typing.Any], Optional[typing.Any]]] = None,
+        range_: Optional[
+            typing_Tuple[Optional[typing.Any], Optional[typing.Any]]
+        ] = None,
         rows: Optional[typing_Tuple[Optional[int], Optional[int]]] = None,
         groups: Optional[typing_Tuple[Optional[int], Optional[int]]] = None,
     ):
@@ -4252,8 +4254,8 @@ class Over(ColumnElement[_T]):
             )
         else:
             self.range_ = _FrameClause(range_) if range_ else None
-            self.rows = _FrameClause(self._interpret_int_range(rows)) if rows else None
-            self.groups = _FrameClause(self._interpret_int_range(groups)) if groups else None
+            self.rows = self._interpret_int_range(rows)
+            self.groups = self._interpret_int_range(groups)
 
     if not TYPE_CHECKING:
 
@@ -4272,15 +4274,18 @@ class Over(ColumnElement[_T]):
                 ]
             )
         )
-    
+
     def _interpret_int_range(self, rows):
+        if rows is None:
+            return None
         try:
             lower = rows[0] if rows[0] is None else int(rows[0])
             upper = rows[1] if rows[1] is None else int(rows[1])
         except ValueError as ve:
-            raise exc.ArgumentError("Integer or None expected for rows value and groups value") from ve
+            err = "Integer or None expected for rows value and groups value"
+            raise exc.ArgumentError(err) from ve
 
-        return lower, upper
+        return _FrameClause((lower, upper))
 
 
 class _FrameClauseType(Enum):
@@ -4315,9 +4320,15 @@ class _FrameClause(ClauseElement):
             lower_value, upper_value = range_
         except (ValueError, TypeError) as ve:
             raise exc.ArgumentError("2-tuple expected for range/rows") from ve
-        
-        lower_type = type_api.INTEGERTYPE if isinstance(lower_value, int) else type_api.NUMERICTYPE
-        upper_type = type_api.INTEGERTYPE if isinstance(upper_value, int) else type_api.NUMERICTYPE
+
+        if isinstance(lower_value, int):
+            lower_type = type_api.INTEGERTYPE
+        else:
+            lower_type = type_api.NUMERICTYPE
+        if isinstance(upper_value, int):
+            upper_type = type_api.INTEGERTYPE
+        else:
+            upper_type = type_api.NUMERICTYPE
 
         if lower_value is None:
             self.lower_type = _FrameClauseType.RANGE_UNBOUNDED
index c54bc20d3a177e9b4f4473abd5765d2290e9576d..0b55a57c13558f4b6bd7959a715c6d4ca87c5faa 100644 (file)
@@ -25,6 +25,7 @@ from ... import column
 from ... import Computed
 from ... import exists
 from ... import false
+from ... import Float
 from ... import ForeignKey
 from ... import func
 from ... import Identity
@@ -42,7 +43,6 @@ from ... import tuple_
 from ... import TupleType
 from ... import union
 from ... import values
-from ... import Float
 from ...exc import DatabaseError
 from ...exc import ProgrammingError
 
@@ -1919,9 +1919,16 @@ class WindowFunctionTest(fixtures.TablesTest):
 
     @classmethod
     def insert_data(cls, connection):
+        def row_factory(i):
+            return {
+                "id": i,
+                "col1": i,
+                "col2": i * 5,
+                "col3": i + 0.5,
+            }
         connection.execute(
             cls.tables.some_table.insert(),
-            [{"id": i, "col1": i, "col2": i * 5, "col3": i + 0.5} for i in range(1, 50)],
+            [row_factory(i) for i in range(1, 50)],
         )
 
     def test_window(self, connection):