sphinx-automodapi
sphinx-automodapi copied to clipboard
Does not mock with autodoc_mock_imports
Sphinx autodoc uses autodoc_mock_imports
to, well, mock imports.
Trying to mock modules with MagicMock
causes them to be excluded from the compiled docs, see https://github.com/sphinx-doc/sphinx/issues/4956
Since automodapi doesn't respect autodoc_mock_imports
, it tries to import the modules, but since they can't be mocked otherwise (as far as I have been able to get) this breaks automodapi when modules need to be mocked (ie. build with readthedocs).
Specifically,
Traceback (most recent call last):
File "/home/docs/checkouts/readthedocs.org/user_builds/rpilot/envs/master/lib/python2.7/site-packages/sphinx/cmd/build.py", line 303, in build_main
args.tags, args.verbosity, args.jobs, args.keep_going)
File "/home/docs/checkouts/readthedocs.org/user_builds/rpilot/envs/master/lib/python2.7/site-packages/sphinx/application.py", line 263, in __init__
self._init_builder()
File "/home/docs/checkouts/readthedocs.org/user_builds/rpilot/envs/master/lib/python2.7/site-packages/sphinx/application.py", line 325, in _init_builder
self.emit('builder-inited')
File "/home/docs/checkouts/readthedocs.org/user_builds/rpilot/envs/master/lib/python2.7/site-packages/sphinx/application.py", line 510, in emit
return self.events.emit(event, self, *args)
File "/home/docs/checkouts/readthedocs.org/user_builds/rpilot/envs/master/lib/python2.7/site-packages/sphinx/events.py", line 80, in emit
results.append(callback(*args))
File "/home/docs/checkouts/readthedocs.org/user_builds/rpilot/envs/master/lib/python2.7/site-packages/sphinx_automodapi/automodsumm.py", line 263, in process_automodsumm_generation
lines = automodsumm_to_autosummary_lines(sfn, app)
File "/home/docs/checkouts/readthedocs.org/user_builds/rpilot/envs/master/lib/python2.7/site-packages/sphinx_automodapi/automodsumm.py", line 335, in automodsumm_to_autosummary_lines
filestr = automodapi.automodapi_replace(fr.read(), app, True, docname, False)
File "/home/docs/checkouts/readthedocs.org/user_builds/rpilot/envs/master/lib/python2.7/site-packages/sphinx_automodapi/automodapi.py", line 277, in automodapi_replace
modnm, toskip, onlylocals=onlylocals)
File "/home/docs/checkouts/readthedocs.org/user_builds/rpilot/envs/master/lib/python2.7/site-packages/sphinx_automodapi/automodapi.py", line 388, in _mod_info
for localnm, fqnm, obj in zip(*find_mod_objs(modname, onlylocals=onlylocals)):
File "/home/docs/checkouts/readthedocs.org/user_builds/rpilot/envs/master/lib/python2.7/site-packages/sphinx_automodapi/utils.py", line 78, in find_mod_objs
__import__(modname)
File "/home/docs/checkouts/readthedocs.org/user_builds/rpilot/checkouts/master/rpilot/core/plots.py", line 13, in <module>
import PySide
ImportError: No module named PySide