From 437f6e76e461a807508c9f05beb715d59b5c4c12 Mon Sep 17 00:00:00 2001 From: ghbrown Date: Thu, 9 Mar 2023 17:16:11 -0600 Subject: [PATCH 1/4] Add warning about (python3-)discogs-client version --- beetsplug/discogs.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/beetsplug/discogs.py b/beetsplug/discogs.py index c8798db88..2be8e4613 100644 --- a/beetsplug/discogs.py +++ b/beetsplug/discogs.py @@ -22,6 +22,7 @@ from beets.util.id_extractors import extract_discogs_id_regex from beets.autotag.hooks import AlbumInfo, TrackInfo from beets.plugins import MetadataSourcePlugin, BeetsPlugin, get_distance import confuse +from discogs_client import __version__ as dc_string from discogs_client import Release, Master, Client from discogs_client.exceptions import DiscogsAPIError from requests.exceptions import ConnectionError @@ -50,6 +51,7 @@ class DiscogsPlugin(BeetsPlugin): def __init__(self): super().__init__() + self.check_discogs_client() self.config.add({ 'apikey': API_KEY, 'apisecret': API_SECRET, @@ -66,6 +68,18 @@ class DiscogsPlugin(BeetsPlugin): self.discogs_client = None self.register_listener('import_begin', self.setup) + def check_discogs_client(self): + """Ensure python3-discogs-client version >= 2.3.10 + """ + dc_min_version = [2,3,10] + dc_version = [int(elem) for elem in dc_string.split('.')] + min_len = min(len(dc_version),len(dc_min_version)) + gt_min = [(elem > elem_min) for elem, elem_min in + zip(dc_version[:min_len], + dc_min_version[:min_len])] + if True not in gt_min: + self._log.warning("python3-discogs-client version should be >= 2.3.10") + def setup(self, session=None): """Create the `discogs_client` field. Authenticate if necessary. """ From 566a58c8bbbe8ff0b9df3bcaec5fae0c1f0e5829 Mon Sep 17 00:00:00 2001 From: ghbrown Date: Thu, 9 Mar 2023 17:23:42 -0600 Subject: [PATCH 2/4] Edit changelog for discogs_client version check --- docs/changelog.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/changelog.rst b/docs/changelog.rst index b267e248a..9071f8831 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -43,6 +43,7 @@ New features: :bug:`4251` * :doc:`/plugins/discogs`: Permit appending style to genre. * :doc:`plugins/discogs`: Implement item_candidates for matching singletons. +* :doc:`plugins/discogs`: Check for compliant discogs_client module. * :doc:`/plugins/convert`: Add a new `auto_keep` option that automatically converts files but keeps the *originals* in the library. :bug:`1840` :bug:`4302` From bad541e2c4984d5add9ce9bf16187d2e089bea0c Mon Sep 17 00:00:00 2001 From: ghbrown Date: Thu, 9 Mar 2023 17:38:47 -0600 Subject: [PATCH 3/4] Address lint errors for discogs_client version check --- beetsplug/discogs.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/beetsplug/discogs.py b/beetsplug/discogs.py index 2be8e4613..ef3eba852 100644 --- a/beetsplug/discogs.py +++ b/beetsplug/discogs.py @@ -71,14 +71,15 @@ class DiscogsPlugin(BeetsPlugin): def check_discogs_client(self): """Ensure python3-discogs-client version >= 2.3.10 """ - dc_min_version = [2,3,10] + dc_min_version = [2, 3, 10] dc_version = [int(elem) for elem in dc_string.split('.')] - min_len = min(len(dc_version),len(dc_min_version)) + min_len = min(len(dc_version), len(dc_min_version)) gt_min = [(elem > elem_min) for elem, elem_min in zip(dc_version[:min_len], dc_min_version[:min_len])] if True not in gt_min: - self._log.warning("python3-discogs-client version should be >= 2.3.10") + self._log.warning(('python3-discogs-client version should be ' + '>= 2.3.10')) def setup(self, session=None): """Create the `discogs_client` field. Authenticate if necessary. From f1b7832d52fd41bd9f9867a312e2c7c849d2585c Mon Sep 17 00:00:00 2001 From: ghbrown Date: Fri, 10 Mar 2023 15:28:29 -0600 Subject: [PATCH 4/4] Change minimum discogs_client version to 2.3.15 --- beetsplug/discogs.py | 6 +++--- setup.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/beetsplug/discogs.py b/beetsplug/discogs.py index ef3eba852..3e12b47c2 100644 --- a/beetsplug/discogs.py +++ b/beetsplug/discogs.py @@ -69,9 +69,9 @@ class DiscogsPlugin(BeetsPlugin): self.register_listener('import_begin', self.setup) def check_discogs_client(self): - """Ensure python3-discogs-client version >= 2.3.10 + """Ensure python3-discogs-client version >= 2.3.15 """ - dc_min_version = [2, 3, 10] + dc_min_version = [2, 3, 15] dc_version = [int(elem) for elem in dc_string.split('.')] min_len = min(len(dc_version), len(dc_min_version)) gt_min = [(elem > elem_min) for elem, elem_min in @@ -79,7 +79,7 @@ class DiscogsPlugin(BeetsPlugin): dc_min_version[:min_len])] if True not in gt_min: self._log.warning(('python3-discogs-client version should be ' - '>= 2.3.10')) + '>= 2.3.15')) def setup(self, session=None): """Create the `discogs_client` field. Authenticate if necessary. diff --git a/setup.py b/setup.py index 185f4f752..a5c57cc7d 100755 --- a/setup.py +++ b/setup.py @@ -111,7 +111,7 @@ setup( 'requests_oauthlib', 'reflink', 'rarfile', - 'python3-discogs-client', + 'python3-discogs-client>=2.3.15', 'py7zr', ], 'lint': [ @@ -139,7 +139,7 @@ setup( 'embedart': ['Pillow'], 'embyupdate': ['requests'], 'chroma': ['pyacoustid'], - 'discogs': ['python3-discogs-client>=2.3.10'], + 'discogs': ['python3-discogs-client>=2.3.15'], 'beatport': ['requests-oauthlib>=0.6.1'], 'kodiupdate': ['requests'], 'lastgenre': ['pylast'],