1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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`.
|