From 0f0ca79e06b3b6aa9e22327eb263b148574825eb Mon Sep 17 00:00:00 2001 From: Alex Sergeev Date: Fri, 12 Apr 2019 20:32:20 -0700 Subject: [PATCH 1/3] Add imported-members to the directive whitelist --- sphinx/ext/autodoc/directive.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sphinx/ext/autodoc/directive.py b/sphinx/ext/autodoc/directive.py index 8b41d7fe1..42415433b 100644 --- a/sphinx/ext/autodoc/directive.py +++ b/sphinx/ext/autodoc/directive.py @@ -30,7 +30,8 @@ logger = logging.getLogger(__name__) # common option names for autodoc directives AUTODOC_DEFAULT_OPTIONS = ['members', 'undoc-members', 'inherited-members', 'show-inheritance', 'private-members', 'special-members', - 'ignore-module-all', 'exclude-members', 'member-order'] + 'ignore-module-all', 'exclude-members', 'member-order', + 'imported-members'] class DummyOptionSpec(dict): From 4bad5bd419c56c063e75641888dd5f03bd0f9eba Mon Sep 17 00:00:00 2001 From: Alex Sergeev Date: Sat, 13 Apr 2019 20:47:05 -1000 Subject: [PATCH 2/3] Address feedback --- doc/usage/extensions/autodoc.rst | 4 ++-- tests/test_autodoc.py | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/doc/usage/extensions/autodoc.rst b/doc/usage/extensions/autodoc.rst index 6d7ba8272..e2c3b28cb 100644 --- a/doc/usage/extensions/autodoc.rst +++ b/doc/usage/extensions/autodoc.rst @@ -359,8 +359,8 @@ There are also config values that you can set: This value is a list of autodoc directive flags that should be automatically applied to all autodoc directives. The supported flags are ``'members'``, ``'undoc-members'``, ``'private-members'``, ``'special-members'``, - ``'inherited-members'``, ``'show-inheritance'``, ``'ignore-module-all'`` - and ``'exclude-members'``. + ``'inherited-members'``, ``'show-inheritance'``, ``'ignore-module-all'``, + ``'imported-members'`` and ``'exclude-members'``. .. versionadded:: 1.0 diff --git a/tests/test_autodoc.py b/tests/test_autodoc.py index 27412a9da..6512ca66c 100644 --- a/tests/test_autodoc.py +++ b/tests/test_autodoc.py @@ -1551,6 +1551,8 @@ def test_autodoc_default_options(app): assert ' .. py:attribute:: EnumCls.val4' not in actual actual = do_autodoc(app, 'class', 'target.CustomIter') assert ' .. py:method:: target.CustomIter' not in actual + actual = do_autodoc(app, 'module', 'target') + assert '.. py:function:: save_traceback(app)' not in actual # with :members: app.config.autodoc_default_options = {'members': None} @@ -1614,6 +1616,15 @@ def test_autodoc_default_options(app): assert ' .. py:method:: CustomIter.snafucate()' in actual assert ' Makes this snafucated.' in actual + # with :imported-members: + app.config.autodoc_default_options = { + 'members': None, + 'imported-members': None, + 'ignore-module-all': None, + } + actual = do_autodoc(app, 'module', 'target') + assert '.. py:function:: save_traceback(app)' in actual + @pytest.mark.sphinx('html', testroot='ext-autodoc') def test_autodoc_default_options_with_values(app): From 98691baf85745922a2f0d87a9a73a8da44e9fbc6 Mon Sep 17 00:00:00 2001 From: Alex Sergeev Date: Sun, 14 Apr 2019 10:47:50 -1000 Subject: [PATCH 3/3] Address comments --- doc/usage/extensions/autodoc.rst | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/doc/usage/extensions/autodoc.rst b/doc/usage/extensions/autodoc.rst index e2c3b28cb..0b6061e78 100644 --- a/doc/usage/extensions/autodoc.rst +++ b/doc/usage/extensions/autodoc.rst @@ -359,8 +359,8 @@ There are also config values that you can set: This value is a list of autodoc directive flags that should be automatically applied to all autodoc directives. The supported flags are ``'members'``, ``'undoc-members'``, ``'private-members'``, ``'special-members'``, - ``'inherited-members'``, ``'show-inheritance'``, ``'ignore-module-all'``, - ``'imported-members'`` and ``'exclude-members'``. + ``'inherited-members'``, ``'show-inheritance'``, ``'ignore-module-all'`` + and ``'exclude-members'``. .. versionadded:: 1.0 @@ -387,14 +387,17 @@ There are also config values that you can set: The supported options are ``'members'``, ``'member-order'``, ``'undoc-members'``, ``'private-members'``, ``'special-members'``, - ``'inherited-members'``, ``'show-inheritance'``, ``'ignore-module-all'`` and - ``'exclude-members'``. + ``'inherited-members'``, ``'show-inheritance'``, ``'ignore-module-all'``, + ``'imported-members'`` and ``'exclude-members'``. .. versionadded:: 1.8 .. versionchanged:: 2.0 Accepts ``True`` as a value. + .. versionchanged:: 2.1 + Added ``'imported-members'``. + .. confval:: autodoc_docstring_signature Functions imported from C modules cannot be introspected, and therefore the