diff --git a/beets/util/inspect.py b/beets/util/inspect.py index 9815a561a..b90c0fe45 100644 --- a/beets/util/inspect.py +++ b/beets/util/inspect.py @@ -16,35 +16,11 @@ from __future__ import division, absolute_import, print_function import inspect -from collections import namedtuple from six import PY2 -ArgSpec = namedtuple('ArgSpec', 'args varargs keywords defaults') - - def getargspec(func): if PY2: return inspect.getargspec(func) - - sig = inspect.signature(func) - args = [ - p.name for p in sig.parameters.values() - if p.kind == inspect.Parameter.POSITIONAL_OR_KEYWORD - ] - varargs = [ - p.name for p in sig.parameters.values() - if p.kind == inspect.Parameter.VAR_POSITIONAL - ] - varargs = varargs[0] if varargs else None - varkw = [ - p.name for p in sig.parameters.values() - if p.kind == inspect.Parameter.VAR_KEYWORD - ] - varkw = varkw[0] if varkw else None - defaults = tuple(p.default for p in sig.parameters.values() - if p.kind == inspect.Parameter.POSITIONAL_OR_KEYWORD - and p.default is not p.empty) or None - - return ArgSpec(args, varargs, varkw, defaults) + return inspect.getfullargspec(func) diff --git a/beetsplug/bpd/__init__.py b/beetsplug/bpd/__init__.py index 1e0d57425..086af21b3 100644 --- a/beetsplug/bpd/__init__.py +++ b/beetsplug/bpd/__init__.py @@ -750,7 +750,7 @@ class Command(object): u'unknown command "{}"'.format(self.name)) func = getattr(conn.server, func_name) argspec = inspect.getargspec(func) - max_args = len(argspec.args) - 1 + max_args = len(argspec.args) - 2 min_args = max_args if argspec.defaults: min_args -= len(argspec.defaults)