]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
Early bailout style in the row factory functions
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Thu, 5 Aug 2021 16:50:15 +0000 (17:50 +0100)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Thu, 5 Aug 2021 20:32:04 +0000 (21:32 +0100)
psycopg/psycopg/rows.py

index a5137b52f9b994c8e948e727899f302cadaf9837..3bf8b6bbb06599f086feefa7d99c63a76730f427 100644 (file)
@@ -99,16 +99,15 @@ def dict_row(cursor: "BaseCursor[Any, DictRow]") -> RowMaker[DictRow]:
     to be sequences.
     """
     desc = cursor.description
-    if desc is not None:
-        titles = [c.name for c in desc]
+    if desc is None:
+        return no_result
 
-        def dict_row_(values: Sequence[Any]) -> Dict[str, Any]:
-            return dict(zip(titles, values))
+    titles = [c.name for c in desc]
 
-        return dict_row_
+    def dict_row_(values: Sequence[Any]) -> Dict[str, Any]:
+        return dict(zip(titles, values))
 
-    else:
-        return no_result
+    return dict_row_
 
 
 def namedtuple_row(
@@ -116,13 +115,12 @@ def namedtuple_row(
 ) -> RowMaker[NamedTuple]:
     """Row factory to represent rows as `~collections.namedtuple`."""
     desc = cursor.description
-    if desc is not None:
-        nt = _make_nt(*(c.name for c in desc))
-        return nt._make
-
-    else:
+    if desc is None:
         return no_result
 
+    nt = _make_nt(*(c.name for c in desc))
+    return nt._make
+
 
 # ascii except alnum and underscore
 _re_clean = re.compile(
@@ -155,16 +153,15 @@ def class_row(cls: Type[T]) -> Callable[["BaseCursor[Any, T]"], RowMaker[T]]:
 
     def class_row_(cur: "BaseCursor[Any, T]") -> RowMaker[T]:
         desc = cur.description
-        if desc is not None:
-            names = [d.name for d in desc]
+        if desc is None:
+            return no_result
 
-            def class_row__(values: Sequence[Any]) -> T:
-                return cls(**dict(zip(names, values)))  # type: ignore
+        names = [d.name for d in desc]
 
-            return class_row__
+        def class_row__(values: Sequence[Any]) -> T:
+            return cls(**dict(zip(names, values)))  # type: ignore
 
-        else:
-            return no_result
+        return class_row__
 
     return class_row_