From 4117172b6d3a0574a78be328e47107d8e7218d5c Mon Sep 17 00:00:00 2001 From: Sam Wilson Date: Thu, 14 May 2026 15:50:36 -0700 Subject: [PATCH] support cst.If at module level --- src/docc/__init__.py | 2 +- src/docc/plugins/python/cst.py | 15 +++++++++++++++ whitelist.txt | 1 + 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/docc/__init__.py b/src/docc/__init__.py index 9336b28..cf9aca2 100644 --- a/src/docc/__init__.py +++ b/src/docc/__init__.py @@ -17,5 +17,5 @@ The documentation compiler. """ -__version__ = "0.6.0" +__version__ = "0.6.1" "Current version of docc" diff --git a/src/docc/plugins/python/cst.py b/src/docc/plugins/python/cst.py index 4d1bf81..2a1216c 100644 --- a/src/docc/plugins/python/cst.py +++ b/src/docc/plugins/python/cst.py @@ -873,6 +873,15 @@ def enter(self, node: Node) -> Visit: visit = self.enter_assign(node, cst_node) elif isinstance(cst_node, cst.SimpleStatementLine): visit = Visit.TraverseChildren + elif isinstance(cst_node, cst.IndentedBlock): + visit = Visit.TraverseChildren + elif isinstance(cst_node, cst.If): + node.find_child(cst_node.body).visit(self) + if cst_node.orelse is not None: + node.find_child(cst_node.orelse).visit(self) + visit = Visit.SkipChildren + elif isinstance(cst_node, cst.Else): + visit = Visit.TraverseChildren elif isinstance(cst_node, cst.Expr): visit = Visit.SkipChildren elif isinstance(cst_node, (cst.Import, cst.ImportFrom)): @@ -917,6 +926,12 @@ def exit(self, node: Node) -> None: self.exit_assign() elif isinstance(cst_node, cst.SimpleStatementLine): pass + elif isinstance(cst_node, cst.IndentedBlock): + pass + elif isinstance(cst_node, cst.If): + pass + elif isinstance(cst_node, cst.Else): + pass elif isinstance(cst_node, cst.Expr): pass elif isinstance(cst_node, (cst.ImportFrom, cst.Import)): diff --git a/whitelist.txt b/whitelist.txt index eb291a8..eb753e7 100644 --- a/whitelist.txt +++ b/whitelist.txt @@ -40,6 +40,7 @@ matcher merchantability metaclass modulefinder +orelse param params pathname2url