| 305 | |
| 306 | @wraps(func) |
| 307 | def wrapper(*args: P.args, **kwargs: P.kwargs) -> Ret: |
| 308 | assert self._log.level == logging.NOTSET |
| 309 | |
| 310 | verbosity = beets.config["verbose"].get(int) |
| 311 | log_level = max(logging.DEBUG, base_log_level - 10 * verbosity) |
| 312 | self._log.setLevel(log_level) |
| 313 | if argspec.varkw is None: |
| 314 | kwargs = {k: v for k, v in kwargs.items() if k in argspec.args} # type: ignore[assignment] |
| 315 | |
| 316 | try: |
| 317 | return func(*args, **kwargs) |
| 318 | finally: |
| 319 | self._log.setLevel(logging.NOTSET) |
| 320 | |
| 321 | return wrapper |
| 322 | |