From 5a293346cf4fecb8629487f14f3dc22838c1a3e6 Mon Sep 17 00:00:00 2001 From: Christian Walch Date: Fri, 1 Apr 2022 07:45:53 +0200 Subject: [PATCH] Reduce complexity by removing recursion. --- sphinx/ext/autodoc/mock.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sphinx/ext/autodoc/mock.py b/sphinx/ext/autodoc/mock.py index cc6e4b366..15c11c33a 100644 --- a/sphinx/ext/autodoc/mock.py +++ b/sphinx/ext/autodoc/mock.py @@ -166,11 +166,13 @@ def ismock(subject: Any) -> bool: # check the object is bound method if isinstance(subject, MethodType) and isboundmethod(subject): - return ismock(subject.__func__) + tmp_subject = subject.__func__ + else: + tmp_subject = subject try: # check the object is mocked object - __mro__ = safe_getattr(type(subject), '__mro__', []) + __mro__ = safe_getattr(type(tmp_subject), '__mro__', []) if len(__mro__) > 2 and __mro__[-2] is _MockObject: # A mocked object has a MRO that ends with (..., _MockObject, object). return True