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 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`.