Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

autodoc: Fix UnboundLocalError in filter_members #11651

Merged
merged 2 commits into from Aug 28, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
18 changes: 16 additions & 2 deletions sphinx/ext/autodoc/__init__.py
Expand Up @@ -678,9 +678,23 @@ def is_filtered_inherited_member(name: str, obj: Any) -> bool:
try:
membername = obj.__name__
member = obj.object
# if isattr is True, the member is documented as an attribute
isattr = member is INSTANCEATTR or (namespace, membername) in attr_docs
except AttributeError:
if isinstance(obj, ObjectMember):
raise
# To be removed, retained for compatibility.
# See https://github.com/sphinx-doc/sphinx/issues/11631
membername, member = obj
warnings.warn(
'Returning tuples of (name, object) as '
'the second return value from get_object_members() is deprecated. '
'Return ObjectMember(name, object) instances instead.',
RemovedInSphinx80Warning, stacklevel=2,
)

# if isattr is True, the member is documented as an attribute
isattr = member is INSTANCEATTR or (namespace, membername) in attr_docs

try:
doc = getdoc(member, self.get_attr, self.config.autodoc_inherit_docstrings,
self.object, membername)
if not isinstance(doc, str):
Expand Down