mirror of
https://github.com/beetbox/beets.git
synced 2025-12-06 08:39:17 +01:00
Merge pull request #3897 from wisp3rwind/py310
plugins: Python 3.10 compatibility
This commit is contained in:
commit
854b4ab483
1 changed files with 13 additions and 12 deletions
|
|
@ -130,29 +130,30 @@ class BeetsPlugin(object):
|
|||
be sent for backwards-compatibility.
|
||||
"""
|
||||
if six.PY2:
|
||||
func_args = inspect.getargspec(func).args
|
||||
argspec = inspect.getargspec(func)
|
||||
func_args = argspec.args
|
||||
has_varkw = argspec.keywords is not None
|
||||
else:
|
||||
func_args = inspect.getfullargspec(func).args
|
||||
argspec = inspect.getfullargspec(func)
|
||||
func_args = argspec.args
|
||||
has_varkw = argspec.varkw is not None
|
||||
|
||||
@wraps(func)
|
||||
def wrapper(*args, **kwargs):
|
||||
assert self._log.level == logging.NOTSET
|
||||
|
||||
verbosity = beets.config['verbose'].get(int)
|
||||
log_level = max(logging.DEBUG, base_log_level - 10 * verbosity)
|
||||
self._log.setLevel(log_level)
|
||||
if not has_varkw:
|
||||
kwargs = dict((k, v) for k, v in kwargs.items()
|
||||
if k in func_args)
|
||||
|
||||
try:
|
||||
try:
|
||||
return func(*args, **kwargs)
|
||||
except TypeError as exc:
|
||||
if exc.args[0].startswith(func.__name__):
|
||||
# caused by 'func' and not stuff internal to 'func'
|
||||
kwargs = dict((arg, val) for arg, val in kwargs.items()
|
||||
if arg in func_args)
|
||||
return func(*args, **kwargs)
|
||||
else:
|
||||
raise
|
||||
return func(*args, **kwargs)
|
||||
finally:
|
||||
self._log.setLevel(logging.NOTSET)
|
||||
|
||||
return wrapper
|
||||
|
||||
def queries(self):
|
||||
|
|
|
|||
Loading…
Reference in a new issue