From 5604670c08b14ad7fc117dcbb23f664ef6a5a5bc Mon Sep 17 00:00:00 2001 From: Sergey Kvachonok Date: Sat, 14 Feb 2026 18:59:29 +0300 Subject: [PATCH] fix: prevent infinite recursion in nested derived classes Python syntax does not allow nesting derived classes into the base class, but compiled extension modules can effectively create class hierarchies like this: ```python class MyEnum: class A(MyEnum): a: int class B(MyEnum): b: int ``` Resolves issue #868 --- pdoc/doc_pyi.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pdoc/doc_pyi.py b/pdoc/doc_pyi.py index d4169262..f78d70a3 100644 --- a/pdoc/doc_pyi.py +++ b/pdoc/doc_pyi.py @@ -77,7 +77,8 @@ def _prepare_module(ns: doc.Namespace) -> None: # at the moment, .members is the only lazy property that is accessed. for member in ns.members.values(): - if isinstance(member, doc.Class): + # prevent infinite recursion for nested classes derived from the outer class + if isinstance(member, doc.Class) and not member.is_inherited: _prepare_module(member)