From e981fb1aea53daa367c09eaa068026346e8225e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0ar=C5=ABnas=20Nejus?= Date: Tue, 22 Apr 2025 15:12:59 +0100 Subject: [PATCH] Deprecate musicbrainz.enabled configuration --- beets/ui/__init__.py | 18 +++++++++++++++--- docs/changelog.rst | 1 + docs/plugins/musicbrainz.rst | 3 +++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/beets/ui/__init__.py b/beets/ui/__init__.py index fef2ae0c5..a6f615b45 100644 --- a/beets/ui/__init__.py +++ b/beets/ui/__init__.py @@ -17,6 +17,8 @@ interface. To invoke the CLI, just call beets.ui.main(). The actual CLI commands are implemented in the ui.commands module. """ +from __future__ import annotations + import errno import optparse import os.path @@ -27,7 +29,7 @@ import sys import textwrap import traceback from difflib import SequenceMatcher -from typing import Any, Callable +from typing import TYPE_CHECKING, Any, Callable import confuse @@ -37,6 +39,9 @@ from beets.dbcore import query as db_query from beets.util import as_string from beets.util.functemplate import template +if TYPE_CHECKING: + from types import ModuleType + # On Windows platforms, use colorama to support "ANSI" terminal colors. if sys.platform == "win32": try: @@ -569,7 +574,7 @@ COLOR_NAMES = [ "text_diff_removed", "text_diff_changed", ] -COLORS = None +COLORS: dict[str, list[str]] | None = None def _colorize(color, text): @@ -1622,7 +1627,9 @@ optparse.Option.ALWAYS_TYPED_ACTIONS += ("callback",) # The main entry point and bootstrapping. -def _load_plugins(options, config): +def _load_plugins( + options: optparse.Values, config: confuse.LazyConfig +) -> ModuleType: """Load the plugins specified on the command line or in the configuration.""" paths = config["pluginpath"].as_str_seq(split=False) paths = [util.normpath(p) for p in paths] @@ -1647,6 +1654,11 @@ def _load_plugins(options, config): ) else: plugin_list = config["plugins"].as_str_seq() + # TODO: Remove in v2.4 or v3 + if "musicbrainz" in config and config["musicbrainz"].get().get( + "enabled" + ): + plugin_list.append("musicbrainz") # Exclude any plugins that were specified on the command line if options.exclude is not None: diff --git a/docs/changelog.rst b/docs/changelog.rst index aef033c56..0f84f2473 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -40,6 +40,7 @@ New features: a separate plugin. The default :ref:`plugins-config` includes `musicbrainz`, but if you've customized your `plugins` list in your configuration, you'll need to explicitly add `musicbrainz` to continue using this functionality. + Configuration option `musicbrainz.enabled` has thus been deprecated. :bug:`2686` :bug:`4605` * :doc:`plugins/lastgenre`: The new configuration option, ``keep_existing``, diff --git a/docs/plugins/musicbrainz.rst b/docs/plugins/musicbrainz.rst index c624ae57e..ef10be66d 100644 --- a/docs/plugins/musicbrainz.rst +++ b/docs/plugins/musicbrainz.rst @@ -71,6 +71,9 @@ to one request per second. enabled ~~~~~~~ +.. deprecated:: 2.3 + Add `musicbrainz` to the `plugins` list instead. + This option allows you to disable using MusicBrainz as a metadata source. This applies if you use plugins that fetch data from alternative sources and should make the import process quicker.