Fix #4260: autodoc: keyword only argument separator is not disappeared

This commit is contained in:
Takeshi KOMIYA
2018-02-12 22:44:16 +09:00
parent 419021e82f
commit 795ca7a0c9
4 changed files with 34 additions and 1 deletions

View File

@@ -16,6 +16,9 @@ Features added
Bugs fixed Bugs fixed
---------- ----------
* #4260: autodoc: keyword only argument separator is not disappeared if it is
appeared at top of the argument list
Testing Testing
-------- --------

View File

@@ -390,7 +390,8 @@ class Signature(object):
# insert '*' between POSITIONAL args and KEYWORD_ONLY args:: # insert '*' between POSITIONAL args and KEYWORD_ONLY args::
# func(a, b, *, c, d): # func(a, b, *, c, d):
if param.kind == param.KEYWORD_ONLY and last_kind in (param.POSITIONAL_OR_KEYWORD, if param.kind == param.KEYWORD_ONLY and last_kind in (param.POSITIONAL_OR_KEYWORD,
param.POSITIONAL_ONLY): param.POSITIONAL_ONLY,
None):
args.append('*') args.append('*')
if param.kind in (param.POSITIONAL_ONLY, if param.kind in (param.POSITIONAL_ONLY,

View File

@@ -21,6 +21,9 @@ pytest_plugins = 'sphinx.testing.fixtures'
collect_ignore = ['roots'] collect_ignore = ['roots']
# Disable Python version-specific # Disable Python version-specific
if sys.version_info < (3,):
collect_ignore += ['py3']
if sys.version_info < (3, 5): if sys.version_info < (3, 5):
collect_ignore += ['py35'] collect_ignore += ['py35']

View File

@@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-
"""
py3/test_util_inspect
~~~~~~~~~~~~~~~~~~~~~
Tests util.inspect functions.
:copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
from sphinx.util import inspect
def test_Signature_keyword_only_arguments():
def func1(arg1, arg2, *, arg3=None, arg4=None):
pass
def func2(*, arg3, arg4):
pass
sig = inspect.Signature(func1).format_args()
assert sig == '(arg1, arg2, *, arg3=None, arg4=None)'
sig = inspect.Signature(func2).format_args()
assert sig == '(*, arg3, arg4)'