]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
chore(async-to-sync): handle generator expressions
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sat, 12 Jul 2025 05:44:04 +0000 (07:44 +0200)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Sat, 12 Jul 2025 05:49:52 +0000 (07:49 +0200)
tools/async_to_sync.py

index e3c4b04cfef7d3dcaf8b0afc90954042036a10f4..888417abe8aa19f17a073395bcb9d074367cfe95 100755 (executable)
@@ -264,6 +264,16 @@ class AsyncToSync(ast.NodeTransformer):  # type: ignore
         self.generic_visit(node)
         return node
 
+    def visit_GeneratorExp(self, node: ast.GeneratorExp) -> ast.AST:
+        if isinstance(node.elt, ast.Await):
+            node.elt = node.elt.value
+
+        for gen in node.generators:
+            if gen.is_async:
+                gen.is_async = 0
+
+        return node
+
 
 class RenameAsyncToSync(ast.NodeTransformer):  # type: ignore
     names_map = {