Fix enum34 members are treated as inherited member

This commit is contained in:
Takeshi KOMIYA 2018-01-06 22:10:15 +09:00
parent c1b3efe203
commit c2a7984e05

View File

@ -19,7 +19,7 @@ from types import FunctionType, MethodType, ModuleType
from six import PY2
from sphinx.util import logging
from sphinx.util.inspect import safe_getattr
from sphinx.util.inspect import isenumclass, safe_getattr
if False:
# For type annotation
@ -206,6 +206,12 @@ def get_object_members(subject, objpath, attrgetter, analyzer=None):
# the members directly defined in the class
obj_dict = attrgetter(subject, '__dict__', {})
# Py34 doesn't have enum members in __dict__.
if sys.version_info[:2] == (3, 4) and isenumclass(subject):
obj_dict = dict(obj_dict)
for name, value in subject.__members__.items():
obj_dict[name] = value
members = {}
for name in dir(subject):
try: