From e0b2162a77a8a6021f9e17129d6fa23eeceac48c Mon Sep 17 00:00:00 2001 From: Takeshi KOMIYA Date: Sat, 22 Aug 2020 00:44:07 +0900 Subject: [PATCH] Fix #8143: AttributeError if autodoc_default_options contains False autodoc crahses when autodoc_default_options contains False value unexpectedly. After this change, it also accepts False. --- CHANGES | 2 ++ sphinx/ext/autodoc/__init__.py | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index d6870c750..fde891098 100644 --- a/CHANGES +++ b/CHANGES @@ -17,6 +17,8 @@ Bugs fixed ---------- * #8085: i18n: Add support for having single text domain +* #8143: autodoc: AttributeError is raised when False value is passed to + autodoc_default_options * #8093: The highlight warning has wrong location in some builders (LaTeX, singlehtml and so on) diff --git a/sphinx/ext/autodoc/__init__.py b/sphinx/ext/autodoc/__init__.py index b61a96c84..ed02c2c90 100644 --- a/sphinx/ext/autodoc/__init__.py +++ b/sphinx/ext/autodoc/__init__.py @@ -94,7 +94,10 @@ def members_option(arg: Any) -> Union[object, List[str]]: """Used to convert the :members: option to auto directives.""" if arg is None or arg is True: return ALL - return [x.strip() for x in arg.split(',') if x.strip()] + elif arg is False: + return None + else: + return [x.strip() for x in arg.split(',') if x.strip()] def members_set_option(arg: Any) -> Union[object, Set[str]]: @@ -172,7 +175,7 @@ def merge_members_option(options: Dict) -> None: members = options.setdefault('members', []) for key in {'private-members', 'special-members'}: - if key in options and options[key] is not ALL: + if key in options and options[key] not in (ALL, None): for member in options[key]: if member not in members: members.append(member)