From 2db3008cbc1cbc929898f34ee53564ec798e8e68 Mon Sep 17 00:00:00 2001 From: Pablo Galindo Salgado Date: Mon, 16 Feb 2026 22:18:57 +0000 Subject: [PATCH] gh-142349: Fix ast.unparse for lazy import statements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The unparser was not handling the `is_lazy` attribute on Import and ImportFrom AST nodes, causing lazy imports to be unparsed as regular imports. This broke the round-trip (parse → unparse → reparse) for any file containing `lazy import` statements. --- Lib/_ast_unparse.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Lib/_ast_unparse.py b/Lib/_ast_unparse.py index 1c8741b5a55483..0c3b1d3a9108a3 100644 --- a/Lib/_ast_unparse.py +++ b/Lib/_ast_unparse.py @@ -239,11 +239,11 @@ def visit_NamedExpr(self, node): self.traverse(node.value) def visit_Import(self, node): - self.fill("import ") + self.fill("lazy import " if node.is_lazy else "import ") self.interleave(lambda: self.write(", "), self.traverse, node.names) def visit_ImportFrom(self, node): - self.fill("from ") + self.fill("lazy from " if node.is_lazy else "from ") self.write("." * (node.level or 0)) if node.module: self.write(node.module)