From 1d174a7dcad9e83fcadbf4b5079e01d275960c11 Mon Sep 17 00:00:00 2001 From: Daniel Pizetta Date: Thu, 1 Feb 2018 17:28:45 -0200 Subject: [PATCH] Reimplement fix for #4019 --- sphinx/ext/inheritance_diagram.py | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/sphinx/ext/inheritance_diagram.py b/sphinx/ext/inheritance_diagram.py index 00479a73c..8f72a3de7 100644 --- a/sphinx/ext/inheritance_diagram.py +++ b/sphinx/ext/inheritance_diagram.py @@ -76,18 +76,20 @@ def try_import(objname): __import__(objname) return sys.modules.get(objname) # type: ignore except ImportError: - try: - modname, attrname = module_sig_re.match(objname).groups() # type: ignore - except AttributeError: + matched = module_sig_re.match(objname) # type: ignore + + if not matched: + return None + + modname, attrname = matched.groups() + + if modname is None: + return None + try: + __import__(modname) + return getattr(sys.modules.get(modname), attrname, None) + except ImportError: return None - else: - if modname is None: - return None - try: - __import__(modname) - return getattr(sys.modules.get(modname), attrname, None) - except ImportError: - return None def import_classes(name, currmodule):