From a5026100a3bd0e467fde01766b5cdaa7b219d9f9 Mon Sep 17 00:00:00 2001 From: Bruno Cauet Date: Tue, 20 Jan 2015 16:22:27 +0100 Subject: [PATCH] All plugins use unicode_literals Given that part of them has no test I may have broke them --- beetsplug/__init__.py | 2 +- beetsplug/bpd/__init__.py | 3 ++- beetsplug/bpd/gstplayer.py | 3 ++- beetsplug/bpm.py | 3 ++- beetsplug/bucket.py | 3 ++- beetsplug/chroma.py | 3 ++- beetsplug/convert.py | 9 +++++---- beetsplug/discogs.py | 3 ++- beetsplug/duplicates.py | 3 ++- beetsplug/echonest.py | 3 ++- beetsplug/embedart.py | 3 ++- beetsplug/fetchart.py | 7 ++++--- beetsplug/freedesktop.py | 3 ++- beetsplug/fromfilename.py | 3 ++- beetsplug/ftintitle.py | 3 ++- beetsplug/fuzzy.py | 3 ++- beetsplug/ihate.py | 3 ++- beetsplug/importfeeds.py | 3 ++- beetsplug/info.py | 3 ++- beetsplug/inline.py | 3 ++- beetsplug/keyfinder.py | 3 ++- beetsplug/lastgenre/__init__.py | 3 ++- beetsplug/lastimport.py | 3 ++- beetsplug/mbcollection.py | 3 ++- beetsplug/mbsync.py | 3 ++- beetsplug/missing.py | 3 ++- beetsplug/mpdstats.py | 3 ++- beetsplug/mpdupdate.py | 3 ++- beetsplug/permissions.py | 3 ++- beetsplug/play.py | 3 ++- beetsplug/plexupdate.py | 3 ++- beetsplug/random.py | 3 ++- beetsplug/replaygain.py | 9 +++++---- beetsplug/rewrite.py | 3 ++- beetsplug/scrub.py | 3 ++- beetsplug/smartplaylist.py | 3 ++- beetsplug/spotify.py | 3 ++- beetsplug/the.py | 3 ++- beetsplug/types.py | 3 ++- beetsplug/web/__init__.py | 9 +++++---- beetsplug/zero.py | 3 ++- 41 files changed, 92 insertions(+), 52 deletions(-) diff --git a/beetsplug/__init__.py b/beetsplug/__init__.py index 30222432b..811ee0539 100644 --- a/beetsplug/__init__.py +++ b/beetsplug/__init__.py @@ -15,7 +15,7 @@ """A namespace package for beets plugins.""" # Make this a namespace package. -from __future__ import division, absolute_import, print_function +from __future__ import absolute_import from pkgutil import extend_path __path__ = extend_path(__path__, __name__) diff --git a/beetsplug/bpd/__init__.py b/beetsplug/bpd/__init__.py index 9500bdb2e..04260d824 100644 --- a/beetsplug/bpd/__init__.py +++ b/beetsplug/bpd/__init__.py @@ -17,7 +17,8 @@ Beets library. Attempts to implement a compatible protocol to allow use of the wide range of MPD clients. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import re from string import Template diff --git a/beetsplug/bpd/gstplayer.py b/beetsplug/bpd/gstplayer.py index bb7e41960..a2872f7c4 100644 --- a/beetsplug/bpd/gstplayer.py +++ b/beetsplug/bpd/gstplayer.py @@ -16,7 +16,8 @@ music player. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import sys import time diff --git a/beetsplug/bpm.py b/beetsplug/bpm.py index 7eb3dc293..85c8d6636 100644 --- a/beetsplug/bpm.py +++ b/beetsplug/bpm.py @@ -14,7 +14,8 @@ """Determine BPM by pressing a key to the rhythm.""" -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import time diff --git a/beetsplug/bucket.py b/beetsplug/bucket.py index 530808e41..d673b0bd4 100644 --- a/beetsplug/bucket.py +++ b/beetsplug/bucket.py @@ -15,7 +15,8 @@ """Provides the %bucket{} function for path formatting. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) from datetime import datetime import re diff --git a/beetsplug/chroma.py b/beetsplug/chroma.py index 49157c413..f2af6d803 100644 --- a/beetsplug/chroma.py +++ b/beetsplug/chroma.py @@ -15,7 +15,8 @@ """Adds Chromaprint/Acoustid acoustic fingerprinting support to the autotagger. Requires the pyacoustid library. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) from beets import plugins from beets import ui diff --git a/beetsplug/convert.py b/beetsplug/convert.py index 3470132b4..c7c59e4f2 100644 --- a/beetsplug/convert.py +++ b/beetsplug/convert.py @@ -14,7 +14,8 @@ """Converts tracks or albums to external directory """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import os import threading @@ -45,7 +46,7 @@ def replace_ext(path, ext): The new extension must not contain a leading dot. """ - return os.path.splitext(path)[0] + '.' + ext + return os.path.splitext(path)[0] + b'.' + ext def get_format(format=None): @@ -177,8 +178,8 @@ class ConvertPlugin(BeetsPlugin): args = shlex.split(command) for i, arg in enumerate(args): args[i] = Template(arg).safe_substitute({ - 'source': source, - 'dest': dest, + 'source': source.decode('utf8'), + 'dest': dest.decode('utf8'), }) if pretend: diff --git a/beetsplug/discogs.py b/beetsplug/discogs.py index 0e7b25862..86af9da06 100644 --- a/beetsplug/discogs.py +++ b/beetsplug/discogs.py @@ -15,7 +15,8 @@ """Adds Discogs album search support to the autotagger. Requires the discogs-client library. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import beets.ui from beets import logging diff --git a/beetsplug/duplicates.py b/beetsplug/duplicates.py index 613eed466..683632f3b 100644 --- a/beetsplug/duplicates.py +++ b/beetsplug/duplicates.py @@ -14,7 +14,8 @@ """List duplicate tracks or albums. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import shlex diff --git a/beetsplug/echonest.py b/beetsplug/echonest.py index 82f2f4145..d34d885cb 100644 --- a/beetsplug/echonest.py +++ b/beetsplug/echonest.py @@ -14,7 +14,8 @@ """Fetch a variety of acoustic metrics from The Echo Nest. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import time import socket diff --git a/beetsplug/embedart.py b/beetsplug/embedart.py index 58bc3a06e..c8b0b6397 100644 --- a/beetsplug/embedart.py +++ b/beetsplug/embedart.py @@ -13,7 +13,8 @@ # included in all copies or substantial portions of the Software. """Allows beets to embed album art into file metadata.""" -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import os.path import imghdr diff --git a/beetsplug/fetchart.py b/beetsplug/fetchart.py index 495ed93c1..3dce3280b 100644 --- a/beetsplug/fetchart.py +++ b/beetsplug/fetchart.py @@ -14,7 +14,8 @@ """Fetches album art. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) from contextlib import closing import os @@ -182,14 +183,14 @@ class FileSystem(ArtSource): images = [] for fn in os.listdir(path): for ext in IMAGE_EXTENSIONS: - if fn.lower().endswith('.' + ext) and \ + if fn.lower().endswith(b'.' + ext.encode('utf8')) and \ os.path.isfile(os.path.join(path, fn)): images.append(fn) # Look for "preferred" filenames. images = sorted(images, key=lambda x: self.filename_priority(x, cover_names)) - cover_pat = r"(\b|_)({0})(\b|_)".format('|'.join(cover_names)) + cover_pat = br"(\b|_)({0})(\b|_)".format(b'|'.join(cover_names)) for fn in images: if re.search(cover_pat, os.path.splitext(fn)[0], re.I): self._log.debug(u'using well-named art file {0}', diff --git a/beetsplug/freedesktop.py b/beetsplug/freedesktop.py index fff80c070..c4ca24d3a 100644 --- a/beetsplug/freedesktop.py +++ b/beetsplug/freedesktop.py @@ -15,7 +15,8 @@ """Creates freedesktop.org-compliant .directory files on an album level. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) from beets.plugins import BeetsPlugin from beets.ui import Subcommand diff --git a/beetsplug/fromfilename.py b/beetsplug/fromfilename.py index 6c3f238b0..951af07c4 100644 --- a/beetsplug/fromfilename.py +++ b/beetsplug/fromfilename.py @@ -15,7 +15,8 @@ """If the title is empty, try to extract track and title from the filename. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) from beets import plugins from beets.util import displayable_path diff --git a/beetsplug/ftintitle.py b/beetsplug/ftintitle.py index a73157cac..60ae3f032 100644 --- a/beetsplug/ftintitle.py +++ b/beetsplug/ftintitle.py @@ -14,7 +14,8 @@ """Moves "featured" artists to the title from the artist field. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import re diff --git a/beetsplug/fuzzy.py b/beetsplug/fuzzy.py index 2f1ec7452..e3ba372f8 100644 --- a/beetsplug/fuzzy.py +++ b/beetsplug/fuzzy.py @@ -15,7 +15,8 @@ """Provides a fuzzy matching query. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) from beets.plugins import BeetsPlugin from beets.dbcore.query import StringFieldQuery diff --git a/beetsplug/ihate.py b/beetsplug/ihate.py index 33aa15311..b4a877fbc 100644 --- a/beetsplug/ihate.py +++ b/beetsplug/ihate.py @@ -12,7 +12,8 @@ # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) """Warns you about things you hate (or even blocks import).""" diff --git a/beetsplug/importfeeds.py b/beetsplug/importfeeds.py index 945ddeb16..bcef675dd 100644 --- a/beetsplug/importfeeds.py +++ b/beetsplug/importfeeds.py @@ -12,7 +12,8 @@ # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) """Write paths of imported files in various formats to ease later import in a music player. Also allow printing the new file locations to stdout in case diff --git a/beetsplug/info.py b/beetsplug/info.py index d015769f6..9dd78f250 100644 --- a/beetsplug/info.py +++ b/beetsplug/info.py @@ -15,7 +15,8 @@ """Shows file metadata. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import os diff --git a/beetsplug/inline.py b/beetsplug/inline.py index dcaf14d39..fb99e729a 100644 --- a/beetsplug/inline.py +++ b/beetsplug/inline.py @@ -14,7 +14,8 @@ """Allows inline path template customization code in the config file. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import traceback import itertools diff --git a/beetsplug/keyfinder.py b/beetsplug/keyfinder.py index 45a245b43..4a4225c80 100644 --- a/beetsplug/keyfinder.py +++ b/beetsplug/keyfinder.py @@ -15,7 +15,8 @@ """Uses the `KeyFinder` program to add the `initial_key` field. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import subprocess diff --git a/beetsplug/lastgenre/__init__.py b/beetsplug/lastgenre/__init__.py index acba482aa..0d15f4d02 100644 --- a/beetsplug/lastgenre/__init__.py +++ b/beetsplug/lastgenre/__init__.py @@ -12,7 +12,8 @@ # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) """Gets genres for imported music based on Last.fm tags. diff --git a/beetsplug/lastimport.py b/beetsplug/lastimport.py index b527c13ff..66da6880d 100644 --- a/beetsplug/lastimport.py +++ b/beetsplug/lastimport.py @@ -12,7 +12,8 @@ # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import requests from beets import ui diff --git a/beetsplug/mbcollection.py b/beetsplug/mbcollection.py index 8f1e7dba9..6dc724636 100644 --- a/beetsplug/mbcollection.py +++ b/beetsplug/mbcollection.py @@ -12,7 +12,8 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) from beets.plugins import BeetsPlugin from beets.ui import Subcommand diff --git a/beetsplug/mbsync.py b/beetsplug/mbsync.py index dbcac394c..c063af1c5 100644 --- a/beetsplug/mbsync.py +++ b/beetsplug/mbsync.py @@ -14,7 +14,8 @@ """Update library's tags using MusicBrainz. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) from beets.plugins import BeetsPlugin from beets import autotag, library, ui, util diff --git a/beetsplug/missing.py b/beetsplug/missing.py index d3cf8e1f7..f792fc7fb 100644 --- a/beetsplug/missing.py +++ b/beetsplug/missing.py @@ -14,7 +14,8 @@ """List missing tracks. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) from beets.autotag import hooks from beets.library import Item diff --git a/beetsplug/mpdstats.py b/beetsplug/mpdstats.py index f7af63986..c021d7465 100644 --- a/beetsplug/mpdstats.py +++ b/beetsplug/mpdstats.py @@ -13,7 +13,8 @@ # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import mpd import socket diff --git a/beetsplug/mpdupdate.py b/beetsplug/mpdupdate.py index c1543fa32..96141c567 100644 --- a/beetsplug/mpdupdate.py +++ b/beetsplug/mpdupdate.py @@ -20,7 +20,8 @@ Put something like the following in your config.yaml to configure: port: 6600 password: seekrit """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) from beets.plugins import BeetsPlugin import os diff --git a/beetsplug/permissions.py b/beetsplug/permissions.py index a8aac3075..256f09e52 100644 --- a/beetsplug/permissions.py +++ b/beetsplug/permissions.py @@ -1,4 +1,5 @@ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) """Fixes file permissions after the file gets written on import. Put something like the following in your config.yaml to configure: diff --git a/beetsplug/play.py b/beetsplug/play.py index 962b61f6c..b32d3c75b 100644 --- a/beetsplug/play.py +++ b/beetsplug/play.py @@ -14,7 +14,8 @@ """Send the results of a query to the configured music player as a playlist. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) from functools import partial diff --git a/beetsplug/plexupdate.py b/beetsplug/plexupdate.py index 2c555cc0c..9781e300e 100644 --- a/beetsplug/plexupdate.py +++ b/beetsplug/plexupdate.py @@ -5,7 +5,8 @@ Put something like the following in your config.yaml to configure: host: localhost port: 32400 """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import requests from urlparse import urljoin diff --git a/beetsplug/random.py b/beetsplug/random.py index 99a07cb83..ab03cfaa5 100644 --- a/beetsplug/random.py +++ b/beetsplug/random.py @@ -14,7 +14,8 @@ """Get a random song or album from the library. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) from beets.plugins import BeetsPlugin from beets.ui import Subcommand, decargs, print_obj diff --git a/beetsplug/replaygain.py b/beetsplug/replaygain.py index f42886632..addcc9cb2 100644 --- a/beetsplug/replaygain.py +++ b/beetsplug/replaygain.py @@ -12,7 +12,8 @@ # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import subprocess import os @@ -197,9 +198,9 @@ class CommandBackend(Backend): containing information about each analyzed file. """ out = [] - for line in text.split('\n')[1:num_lines + 1]: - parts = line.split('\t') - if len(parts) != 6 or parts[0] == 'File': + for line in text.split(b'\n')[1:num_lines + 1]: + parts = line.split(b'\t') + if len(parts) != 6 or parts[0] == b'File': self._log.debug(u'bad tool output: {0}', text) raise ReplayGainError('mp3gain failed') d = { diff --git a/beetsplug/rewrite.py b/beetsplug/rewrite.py index 8726adfdd..4663d9155 100644 --- a/beetsplug/rewrite.py +++ b/beetsplug/rewrite.py @@ -15,7 +15,8 @@ """Uses user-specified rewriting rules to canonicalize names for path formats. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import re from collections import defaultdict diff --git a/beetsplug/scrub.py b/beetsplug/scrub.py index 012c27a6d..a832c9466 100644 --- a/beetsplug/scrub.py +++ b/beetsplug/scrub.py @@ -16,7 +16,8 @@ automatically whenever tags are written. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) from beets.plugins import BeetsPlugin from beets import ui diff --git a/beetsplug/smartplaylist.py b/beetsplug/smartplaylist.py index 192756d81..47f0ad414 100644 --- a/beetsplug/smartplaylist.py +++ b/beetsplug/smartplaylist.py @@ -15,7 +15,8 @@ """Generates smart playlists based on beets queries. """ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) from beets.plugins import BeetsPlugin from beets import ui diff --git a/beetsplug/spotify.py b/beetsplug/spotify.py index d99e9970b..90791d0ad 100644 --- a/beetsplug/spotify.py +++ b/beetsplug/spotify.py @@ -1,4 +1,5 @@ -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import re import webbrowser diff --git a/beetsplug/the.py b/beetsplug/the.py index 0ede0ff0b..3fb16dcf9 100644 --- a/beetsplug/the.py +++ b/beetsplug/the.py @@ -14,7 +14,8 @@ """Moves patterns in path formats (suitable for moving articles).""" -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import re from beets.plugins import BeetsPlugin diff --git a/beetsplug/types.py b/beetsplug/types.py index 18a9af787..dad892bc9 100644 --- a/beetsplug/types.py +++ b/beetsplug/types.py @@ -12,7 +12,8 @@ # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) from beets.plugins import BeetsPlugin from beets.dbcore import types diff --git a/beetsplug/web/__init__.py b/beetsplug/web/__init__.py index f73b14ab4..1d42b899e 100644 --- a/beetsplug/web/__init__.py +++ b/beetsplug/web/__init__.py @@ -13,7 +13,8 @@ # included in all copies or substantial portions of the Software. """A Web interface to beets.""" -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) from beets.plugins import BeetsPlugin from beets import ui @@ -89,7 +90,7 @@ def resource(name): ) else: return flask.abort(404) - responder.__name__ = 'get_%s' % name + responder.__name__ = b'get_%s' % name.encode('utf8') return responder return make_responder @@ -103,7 +104,7 @@ def resource_query(name): json_generator(query_func(queries), root='results'), mimetype='application/json' ) - responder.__name__ = 'query_%s' % name + responder.__name__ = b'query_%s' % name.encode('utf8') return responder return make_responder @@ -118,7 +119,7 @@ def resource_list(name): json_generator(list_all(), root=name), mimetype='application/json' ) - responder.__name__ = 'all_%s' % name + responder.__name__ = b'all_%s' % name.encode('utf8') return responder return make_responder diff --git a/beetsplug/zero.py b/beetsplug/zero.py index 94a87edaf..48ca930ca 100644 --- a/beetsplug/zero.py +++ b/beetsplug/zero.py @@ -14,7 +14,8 @@ """ Clears tag fields in media files.""" -from __future__ import division, absolute_import, print_function +from __future__ import (division, absolute_import, print_function, + unicode_literals) import re from beets.plugins import BeetsPlugin