#9683: remove broken dead code dealing with nested arguments removed from Py3k, and update the docs and docstrings accordingly.
This commit is contained in:
parent
f74cf77c8d
commit
c1c4bf85c1
|
@ -422,19 +422,19 @@ Classes and functions
|
||||||
|
|
||||||
Get information about arguments passed into a particular frame. A
|
Get information about arguments passed into a particular frame. A
|
||||||
:term:`named tuple` ``ArgInfo(args, varargs, keywords, locals)`` is
|
:term:`named tuple` ``ArgInfo(args, varargs, keywords, locals)`` is
|
||||||
returned. *args* is a list of the argument names (it may contain nested
|
returned. *args* is a list of the argument names. *varargs* and *varkw* are
|
||||||
lists). *varargs* and *varkw* are the names of the ``*`` and ``**`` arguments
|
the names of the ``*`` and ``**`` arguments or ``None``. *locals* is the
|
||||||
or ``None``. *locals* is the locals dictionary of the given frame.
|
locals dictionary of the given frame.
|
||||||
|
|
||||||
|
|
||||||
.. function:: formatargspec(args[, varargs, varkw, defaults, formatarg, formatvarargs, formatvarkw, formatvalue, join])
|
.. function:: formatargspec(args[, varargs, varkw, defaults, formatarg, formatvarargs, formatvarkw, formatvalue])
|
||||||
|
|
||||||
Format a pretty argument spec from the four values returned by
|
Format a pretty argument spec from the four values returned by
|
||||||
:func:`getargspec`. The format\* arguments are the corresponding optional
|
:func:`getargspec`. The format\* arguments are the corresponding optional
|
||||||
formatting functions that are called to turn names and values into strings.
|
formatting functions that are called to turn names and values into strings.
|
||||||
|
|
||||||
|
|
||||||
.. function:: formatargvalues(args[, varargs, varkw, locals, formatarg, formatvarargs, formatvarkw, formatvalue, join])
|
.. function:: formatargvalues(args[, varargs, varkw, locals, formatarg, formatvarargs, formatvarkw, formatvalue])
|
||||||
|
|
||||||
Format a pretty argument spec from the four values returned by
|
Format a pretty argument spec from the four values returned by
|
||||||
:func:`getargvalues`. The format\* arguments are the corresponding optional
|
:func:`getargvalues`. The format\* arguments are the corresponding optional
|
||||||
|
|
|
@ -749,9 +749,9 @@ def getargs(co):
|
||||||
"""Get information about the arguments accepted by a code object.
|
"""Get information about the arguments accepted by a code object.
|
||||||
|
|
||||||
Three things are returned: (args, varargs, varkw), where
|
Three things are returned: (args, varargs, varkw), where
|
||||||
'args' is the list of argument names, possibly containing nested
|
'args' is the list of argument names. Keyword-only arguments are
|
||||||
lists. Keyword-only arguments are appended. 'varargs' and 'varkw'
|
appended. 'varargs' and 'varkw' are the names of the * and **
|
||||||
are the names of the * and ** arguments or None."""
|
arguments or None."""
|
||||||
args, varargs, kwonlyargs, varkw = _getfullargs(co)
|
args, varargs, kwonlyargs, varkw = _getfullargs(co)
|
||||||
return Arguments(args + kwonlyargs, varargs, varkw)
|
return Arguments(args + kwonlyargs, varargs, varkw)
|
||||||
|
|
||||||
|
@ -759,9 +759,8 @@ def _getfullargs(co):
|
||||||
"""Get information about the arguments accepted by a code object.
|
"""Get information about the arguments accepted by a code object.
|
||||||
|
|
||||||
Four things are returned: (args, varargs, kwonlyargs, varkw), where
|
Four things are returned: (args, varargs, kwonlyargs, varkw), where
|
||||||
'args' and 'kwonlyargs' are lists of argument names (with 'args'
|
'args' and 'kwonlyargs' are lists of argument names, and 'varargs'
|
||||||
possibly containing nested lists), and 'varargs' and 'varkw' are the
|
and 'varkw' are the names of the * and ** arguments or None."""
|
||||||
names of the * and ** arguments or None."""
|
|
||||||
|
|
||||||
if not iscode(co):
|
if not iscode(co):
|
||||||
raise TypeError('{!r} is not a code object'.format(co))
|
raise TypeError('{!r} is not a code object'.format(co))
|
||||||
|
@ -790,7 +789,7 @@ def getargspec(func):
|
||||||
"""Get the names and default values of a function's arguments.
|
"""Get the names and default values of a function's arguments.
|
||||||
|
|
||||||
A tuple of four things is returned: (args, varargs, varkw, defaults).
|
A tuple of four things is returned: (args, varargs, varkw, defaults).
|
||||||
'args' is a list of the argument names (it may contain nested lists).
|
'args' is a list of the argument names.
|
||||||
'args' will include keyword-only argument names.
|
'args' will include keyword-only argument names.
|
||||||
'varargs' and 'varkw' are the names of the * and ** arguments or None.
|
'varargs' and 'varkw' are the names of the * and ** arguments or None.
|
||||||
'defaults' is an n-tuple of the default values of the last n arguments.
|
'defaults' is an n-tuple of the default values of the last n arguments.
|
||||||
|
@ -815,7 +814,7 @@ def getfullargspec(func):
|
||||||
|
|
||||||
A tuple of seven things is returned:
|
A tuple of seven things is returned:
|
||||||
(args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults annotations).
|
(args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults annotations).
|
||||||
'args' is a list of the argument names (it may contain nested lists).
|
'args' is a list of the argument names.
|
||||||
'varargs' and 'varkw' are the names of the * and ** arguments or None.
|
'varargs' and 'varkw' are the names of the * and ** arguments or None.
|
||||||
'defaults' is an n-tuple of the default values of the last n arguments.
|
'defaults' is an n-tuple of the default values of the last n arguments.
|
||||||
'kwonlyargs' is a list of keyword-only argument names.
|
'kwonlyargs' is a list of keyword-only argument names.
|
||||||
|
@ -839,25 +838,12 @@ def getargvalues(frame):
|
||||||
"""Get information about arguments passed into a particular frame.
|
"""Get information about arguments passed into a particular frame.
|
||||||
|
|
||||||
A tuple of four things is returned: (args, varargs, varkw, locals).
|
A tuple of four things is returned: (args, varargs, varkw, locals).
|
||||||
'args' is a list of the argument names (it may contain nested lists).
|
'args' is a list of the argument names.
|
||||||
'varargs' and 'varkw' are the names of the * and ** arguments or None.
|
'varargs' and 'varkw' are the names of the * and ** arguments or None.
|
||||||
'locals' is the locals dictionary of the given frame."""
|
'locals' is the locals dictionary of the given frame."""
|
||||||
args, varargs, varkw = getargs(frame.f_code)
|
args, varargs, varkw = getargs(frame.f_code)
|
||||||
return ArgInfo(args, varargs, varkw, frame.f_locals)
|
return ArgInfo(args, varargs, varkw, frame.f_locals)
|
||||||
|
|
||||||
def joinseq(seq):
|
|
||||||
if len(seq) == 1:
|
|
||||||
return '(' + seq[0] + ',)'
|
|
||||||
else:
|
|
||||||
return '(' + ', '.join(seq) + ')'
|
|
||||||
|
|
||||||
def strseq(object, convert, join=joinseq):
|
|
||||||
"""Recursively walk a sequence, stringifying each element."""
|
|
||||||
if type(object) in (list, tuple):
|
|
||||||
return join(map(lambda o, c=convert, j=join: strseq(o, c, j), object))
|
|
||||||
else:
|
|
||||||
return convert(object)
|
|
||||||
|
|
||||||
def formatannotation(annotation, base_module=None):
|
def formatannotation(annotation, base_module=None):
|
||||||
if isinstance(annotation, type):
|
if isinstance(annotation, type):
|
||||||
if annotation.__module__ in ('builtins', base_module):
|
if annotation.__module__ in ('builtins', base_module):
|
||||||
|
@ -878,8 +864,7 @@ def formatargspec(args, varargs=None, varkw=None, defaults=None,
|
||||||
formatvarkw=lambda name: '**' + name,
|
formatvarkw=lambda name: '**' + name,
|
||||||
formatvalue=lambda value: '=' + repr(value),
|
formatvalue=lambda value: '=' + repr(value),
|
||||||
formatreturns=lambda text: ' -> ' + text,
|
formatreturns=lambda text: ' -> ' + text,
|
||||||
formatannotation=formatannotation,
|
formatannotation=formatannotation):
|
||||||
join=joinseq):
|
|
||||||
"""Format an argument spec from the values returned by getargspec
|
"""Format an argument spec from the values returned by getargspec
|
||||||
or getfullargspec.
|
or getfullargspec.
|
||||||
|
|
||||||
|
@ -897,7 +882,7 @@ def formatargspec(args, varargs=None, varkw=None, defaults=None,
|
||||||
if defaults:
|
if defaults:
|
||||||
firstdefault = len(args) - len(defaults)
|
firstdefault = len(args) - len(defaults)
|
||||||
for i, arg in enumerate(args):
|
for i, arg in enumerate(args):
|
||||||
spec = strseq(arg, formatargandannotation, join)
|
spec = formatargandannotation(arg)
|
||||||
if defaults and i >= firstdefault:
|
if defaults and i >= firstdefault:
|
||||||
spec = spec + formatvalue(defaults[i - firstdefault])
|
spec = spec + formatvalue(defaults[i - firstdefault])
|
||||||
specs.append(spec)
|
specs.append(spec)
|
||||||
|
@ -923,8 +908,7 @@ def formatargvalues(args, varargs, varkw, locals,
|
||||||
formatarg=str,
|
formatarg=str,
|
||||||
formatvarargs=lambda name: '*' + name,
|
formatvarargs=lambda name: '*' + name,
|
||||||
formatvarkw=lambda name: '**' + name,
|
formatvarkw=lambda name: '**' + name,
|
||||||
formatvalue=lambda value: '=' + repr(value),
|
formatvalue=lambda value: '=' + repr(value)):
|
||||||
join=joinseq):
|
|
||||||
"""Format an argument spec from the 4 values returned by getargvalues.
|
"""Format an argument spec from the 4 values returned by getargvalues.
|
||||||
|
|
||||||
The first four arguments are (args, varargs, varkw, locals). The
|
The first four arguments are (args, varargs, varkw, locals). The
|
||||||
|
@ -936,7 +920,7 @@ def formatargvalues(args, varargs, varkw, locals,
|
||||||
return formatarg(name) + formatvalue(locals[name])
|
return formatarg(name) + formatvalue(locals[name])
|
||||||
specs = []
|
specs = []
|
||||||
for i in range(len(args)):
|
for i in range(len(args)):
|
||||||
specs.append(strseq(args[i], convert, join))
|
specs.append(convert(args[i]))
|
||||||
if varargs:
|
if varargs:
|
||||||
specs.append(formatvarargs(varargs) + formatvalue(locals[varargs]))
|
specs.append(formatvarargs(varargs) + formatvalue(locals[varargs]))
|
||||||
if varkw:
|
if varkw:
|
||||||
|
|
Loading…
Reference in New Issue