|
@@ -367,15 +367,11 @@ def _argsfromspec(spec, replace_defaults=True):
|
|
optional = list(zip(spec.args[-split:], defaults))
|
|
optional = list(zip(spec.args[-split:], defaults))
|
|
else:
|
|
else:
|
|
positional, optional = spec.args, []
|
|
positional, optional = spec.args, []
|
|
- if IS_PY3: # pragma: no cover
|
|
|
|
- keywords = spec.varkw
|
|
|
|
- elif IS_PY2:
|
|
|
|
- keywords = spec.keywords # noqa
|
|
|
|
return ', '.join(filter(None, [
|
|
return ', '.join(filter(None, [
|
|
', '.join(positional),
|
|
', '.join(positional),
|
|
', '.join('{0}={1}'.format(k, v) for k, v in optional),
|
|
', '.join('{0}={1}'.format(k, v) for k, v in optional),
|
|
'*{0}'.format(spec.varargs) if spec.varargs else None,
|
|
'*{0}'.format(spec.varargs) if spec.varargs else None,
|
|
- '**{0}'.format(keywords) if keywords else None,
|
|
|
|
|
|
+ '**{0}'.format(spec.varkw) if spec.varkw else None,
|
|
]))
|
|
]))
|
|
|
|
|
|
|
|
|
|
@@ -403,6 +399,6 @@ def head_from_fun(fun, bound=False, debug=False):
|
|
def fun_takes_argument(name, fun, position=None):
|
|
def fun_takes_argument(name, fun, position=None):
|
|
spec = getfullargspec(fun)
|
|
spec = getfullargspec(fun)
|
|
return (
|
|
return (
|
|
- spec.keywords or spec.varargs or
|
|
|
|
|
|
+ spec.varkw or spec.varargs or
|
|
(len(spec.args) >= position if position else name in spec.args)
|
|
(len(spec.args) >= position if position else name in spec.args)
|
|
)
|
|
)
|