gnu: Beets: Fix compatibility with Python 3.7.

* gnu/packages/patches/beets-python-3.7-fix.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
*  gnu/packages/music.scm (beets)[source]: Use it.
This commit is contained in:
Leo Famulari 2018-12-03 17:29:58 -05:00
parent 91a4863d9d
commit c05c1910db
No known key found for this signature in database
GPG key ID: 2646FA30BACA7F08
3 changed files with 59 additions and 0 deletions

View file

@ -600,6 +600,7 @@ dist_patch_DATA = \
%D%/packages/patches/bash-completion-directories.patch \
%D%/packages/patches/bastet-change-source-of-unordered_set.patch \
%D%/packages/patches/bazaar-CVE-2017-14176.patch \
%D%/packages/patches/beets-python-3.7-fix.patch \
%D%/packages/patches/beignet-correct-file-names.patch \
%D%/packages/patches/binutils-loongson-workaround.patch \
%D%/packages/patches/blast+-fix-makefile.patch \

View file

@ -2692,6 +2692,7 @@ (define-public beets
(source (origin
(method url-fetch)
(uri (pypi-uri "beets" version))
(patches (search-patches "beets-python-3.7-fix.patch"))
(sha256
(base32
"0l2vfrknwcsm6bn83m7476qrz45qwgxcb5k0h7kn96kr70irn1v2"))))

View file

@ -0,0 +1,57 @@
Fix compatibility issue with Python 3.7:
https://github.com/beetbox/beets/issues/2978
Patch copied from upstream source repository:
https://github.com/beetbox/beets/commit/15d44f02a391764da1ce1f239caef819f08beed8
From 15d44f02a391764da1ce1f239caef819f08beed8 Mon Sep 17 00:00:00 2001
From: Adrian Sampson <adrian@radbox.org>
Date: Sun, 22 Jul 2018 12:34:19 -0400
Subject: [PATCH] Fix Python 3.7 compatibility (#2978)
---
beets/autotag/hooks.py | 8 +++++++-
docs/changelog.rst | 2 ++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/beets/autotag/hooks.py b/beets/autotag/hooks.py
index 3615a9333..1c62a54c5 100644
--- a/beets/autotag/hooks.py
+++ b/beets/autotag/hooks.py
@@ -31,6 +31,12 @@
log = logging.getLogger('beets')
+# The name of the type for patterns in re changed in Python 3.7.
+try:
+ Pattern = re._pattern_type
+except AttributeError:
+ Pattern = re.Pattern
+
# Classes used to represent candidate options.
@@ -433,7 +439,7 @@ def _eq(self, value1, value2):
be a compiled regular expression, in which case it will be
matched against `value2`.
"""
- if isinstance(value1, re._pattern_type):
+ if isinstance(value1, Pattern):
return bool(value1.match(value2))
return value1 == value2
#diff --git a/docs/changelog.rst b/docs/changelog.rst
#index be6de2904..d487f31f5 100644
#--- a/docs/changelog.rst
#+++ b/docs/changelog.rst
#@@ -19,6 +19,8 @@ New features:
#
# Fixes:
#
#+* Fix compatibility Python 3.7 and its change to a name in the ``re`` module.
#+ :bug:`2978`
# * R128 normalization tags are now properly deleted from files when the values
# are missing.
# Thanks to :user:`autrimpo`.