Merge pull request #5203 from tk0miya/2820_autoclass_supports_nested_class

Close #2820: autoclass directive supports nested class
This commit is contained in:
Takeshi KOMIYA 2018-07-23 23:18:31 +09:00 committed by GitHub
commit 250e6dbc6c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 19 additions and 2 deletions

View File

@ -162,6 +162,7 @@ Features added
if :confval:`latex_engine` is ``'xelatex'`` or ``'lualatex'``.
* #4976: ``SphinxLoggerAdapter.info()`` now supports ``location`` parameter
* #5122: setuptools: support nitpicky option
* #2820: autoclass directive supports nested class
Bugs fixed
----------

View File

@ -167,8 +167,21 @@ def import_object(modname, objpath, objtype='', attrgetter=safe_getattr, warning
logger.debug('[autodoc] import %s', modname)
try:
module = import_module(modname, warningiserror=warningiserror)
logger.debug('[autodoc] => %r', module)
module = None
objpath = list(objpath)
while module is None:
try:
module = import_module(modname, warningiserror=warningiserror)
logger.debug('[autodoc] import %s => %r', modname, module)
except ImportError:
logger.debug('[autodoc] import %s => failed', modname)
if '.' in modname:
# retry with parent module
modname, name = modname.rsplit('.', 1)
objpath.insert(0, name)
else:
raise
obj = module
parent = None
object_name = None

View File

@ -771,6 +771,9 @@ def test_generate():
('class', 'target.Outer.Inner'),
('method', 'target.Outer.Inner.meth')],
'class', 'Outer', all_members=True)
assert_processes([('class', 'target.Outer.Inner'),
('method', 'target.Outer.Inner.meth')],
'class', 'target.Outer.Inner', all_members=True)
# test descriptor docstrings
assert_result_contains(' Descriptor instance docstring.',