#9683: remove broken dead code dealing with nested arguments removed from Py3k, and update the docs and docstrings accordingly.

This commit is contained in:
Georg Brandl 2010-10-15 16:07:41 +00:00
parent f74cf77c8d
commit c1c4bf85c1
2 changed files with 17 additions and 33 deletions

View File

@ -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

View File

@ -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: