summaryrefslogtreecommitdiff
path: root/sphinx/ext/autodoc.py
diff options
context:
space:
mode:
authorshimizukawa <shimizukawa@gmail.com>2016-12-17 23:18:30 +0900
committershimizukawa <shimizukawa@gmail.com>2016-12-17 23:18:30 +0900
commit79fa283687c9b019b7d8e4c9f61f5815d0185b11 (patch)
treec5d05420e91f32ab1d0a970af4ff4250377773ea /sphinx/ext/autodoc.py
parent3b9aee43a2242f57c111e9f18d6bbea39076d695 (diff)
downloadsphinx-git-79fa283687c9b019b7d8e4c9f61f5815d0185b11.tar.gz
Fix #3255: In Py3.4 environment, autodoc doesn't support documentation for attributes of Enum class correctly.
Diffstat (limited to 'sphinx/ext/autodoc.py')
-rw-r--r--sphinx/ext/autodoc.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/sphinx/ext/autodoc.py b/sphinx/ext/autodoc.py
index c3832bfda..efa642c8f 100644
--- a/sphinx/ext/autodoc.py
+++ b/sphinx/ext/autodoc.py
@@ -32,7 +32,8 @@ from sphinx.application import ExtensionError
from sphinx.util.nodes import nested_parse_with_titles
from sphinx.util.compat import Directive
from sphinx.util.inspect import getargspec, isdescriptor, safe_getmembers, \
- safe_getattr, object_description, is_builtin_class_method, isenumattribute
+ safe_getattr, object_description, is_builtin_class_method, \
+ isenumclass, isenumattribute
from sphinx.util.docstrings import prepare_docstring
try:
@@ -774,6 +775,14 @@ class Documenter(object):
else:
members = [(mname, self.get_attr(self.object, mname, None))
for mname in list(iterkeys(obj_dict))]
+
+ # Py34 doesn't have enum members in __dict__.
+ if isenumclass(self.object):
+ members.extend(
+ item for item in self.object.__members__.items()
+ if item not in members
+ )
+
membernames = set(m[0] for m in members)
# add instance attributes from the analyzer
for aname in analyzed_member_names: