mirror of
https://github.com/beetbox/beets.git
synced 2025-12-15 13:07:09 +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.
|
be sent for backwards-compatibility.
|
||||||
"""
|
"""
|
||||||
if six.PY2:
|
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:
|
else:
|
||||||
func_args = inspect.getfullargspec(func).args
|
argspec = inspect.getfullargspec(func)
|
||||||
|
func_args = argspec.args
|
||||||
|
has_varkw = argspec.varkw is not None
|
||||||
|
|
||||||
@wraps(func)
|
@wraps(func)
|
||||||
def wrapper(*args, **kwargs):
|
def wrapper(*args, **kwargs):
|
||||||
assert self._log.level == logging.NOTSET
|
assert self._log.level == logging.NOTSET
|
||||||
|
|
||||||
verbosity = beets.config['verbose'].get(int)
|
verbosity = beets.config['verbose'].get(int)
|
||||||
log_level = max(logging.DEBUG, base_log_level - 10 * verbosity)
|
log_level = max(logging.DEBUG, base_log_level - 10 * verbosity)
|
||||||
self._log.setLevel(log_level)
|
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:
|
||||||
try:
|
return func(*args, **kwargs)
|
||||||
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
|
|
||||||
finally:
|
finally:
|
||||||
self._log.setLevel(logging.NOTSET)
|
self._log.setLevel(logging.NOTSET)
|
||||||
|
|
||||||
return wrapper
|
return wrapper
|
||||||
|
|
||||||
def queries(self):
|
def queries(self):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue