Removed unicode_literals from plugins

* bucket
* chroma
* convert
* discogs
This commit is contained in:
Peter Kessen 2016-02-20 12:10:01 +01:00
parent 5db57bdc01
commit 40900aa1cb
4 changed files with 35 additions and 39 deletions

View file

@ -16,8 +16,7 @@
"""Provides the %bucket{} function for path formatting. """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 from datetime import datetime
import re import re
@ -46,7 +45,7 @@ def span_from_str(span_str):
"""Convert string to a 4 digits year """Convert string to a 4 digits year
""" """
if yearfrom < 100: if yearfrom < 100:
raise BucketError("%d must be expressed on 4 digits" % yearfrom) raise BucketError(u"%d must be expressed on 4 digits" % yearfrom)
# if two digits only, pick closest year that ends by these two # if two digits only, pick closest year that ends by these two
# digits starting from yearfrom # digits starting from yearfrom
@ -59,12 +58,12 @@ def span_from_str(span_str):
years = [int(x) for x in re.findall('\d+', span_str)] years = [int(x) for x in re.findall('\d+', span_str)]
if not years: if not years:
raise ui.UserError("invalid range defined for year bucket '%s': no " raise ui.UserError(u"invalid range defined for year bucket '%s': no "
"year found" % span_str) u"year found" % span_str)
try: try:
years = [normalize_year(x, years[0]) for x in years] years = [normalize_year(x, years[0]) for x in years]
except BucketError as exc: except BucketError as exc:
raise ui.UserError("invalid range defined for year bucket '%s': %s" % raise ui.UserError(u"invalid range defined for year bucket '%s': %s" %
(span_str, exc)) (span_str, exc))
res = {'from': years[0], 'str': span_str} res = {'from': years[0], 'str': span_str}
@ -119,8 +118,8 @@ def build_year_spans(year_spans_str):
def str2fmt(s): def str2fmt(s):
"""Deduces formatting syntax from a span string. """Deduces formatting syntax from a span string.
""" """
regex = re.compile("(?P<bef>\D*)(?P<fromyear>\d+)(?P<sep>\D*)" regex = re.compile(r"(?P<bef>\D*)(?P<fromyear>\d+)(?P<sep>\D*)"
"(?P<toyear>\d*)(?P<after>\D*)") r"(?P<toyear>\d*)(?P<after>\D*)")
m = re.match(regex, s) m = re.match(regex, s)
res = {'fromnchars': len(m.group('fromyear')), res = {'fromnchars': len(m.group('fromyear')),
@ -166,8 +165,8 @@ def build_alpha_spans(alpha_spans_str, alpha_regexs):
beginIdx = ASCII_DIGITS.index(bucket[0]) beginIdx = ASCII_DIGITS.index(bucket[0])
endIdx = ASCII_DIGITS.index(bucket[-1]) endIdx = ASCII_DIGITS.index(bucket[-1])
else: else:
raise ui.UserError("invalid range defined for alpha bucket " raise ui.UserError(u"invalid range defined for alpha bucket "
"'%s': no alphanumeric character found" % u"'%s': no alphanumeric character found" %
elem) elem)
spans.append( spans.append(
re.compile( re.compile(

View file

@ -16,8 +16,7 @@
"""Adds Chromaprint/Acoustid acoustic fingerprinting support to the """Adds Chromaprint/Acoustid acoustic fingerprinting support to the
autotagger. Requires the pyacoustid library. 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 plugins
from beets import ui from beets import ui
@ -178,19 +177,19 @@ class AcoustidPlugin(plugins.BeetsPlugin):
def commands(self): def commands(self):
submit_cmd = ui.Subcommand('submit', submit_cmd = ui.Subcommand('submit',
help='submit Acoustid fingerprints') help=u'submit Acoustid fingerprints')
def submit_cmd_func(lib, opts, args): def submit_cmd_func(lib, opts, args):
try: try:
apikey = config['acoustid']['apikey'].get(unicode) apikey = config['acoustid']['apikey'].get(unicode)
except confit.NotFoundError: except confit.NotFoundError:
raise ui.UserError('no Acoustid user API key provided') raise ui.UserError(u'no Acoustid user API key provided')
submit_items(self._log, apikey, lib.items(ui.decargs(args))) submit_items(self._log, apikey, lib.items(ui.decargs(args)))
submit_cmd.func = submit_cmd_func submit_cmd.func = submit_cmd_func
fingerprint_cmd = ui.Subcommand( fingerprint_cmd = ui.Subcommand(
'fingerprint', 'fingerprint',
help='generate fingerprints for items without them' help=u'generate fingerprints for items without them'
) )
def fingerprint_cmd_func(lib, opts, args): def fingerprint_cmd_func(lib, opts, args):

View file

@ -15,8 +15,7 @@
"""Converts tracks or albums to external directory """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 os
import threading import threading
@ -138,21 +137,21 @@ class ConvertPlugin(BeetsPlugin):
self.register_listener('import_task_files', self._cleanup) self.register_listener('import_task_files', self._cleanup)
def commands(self): def commands(self):
cmd = ui.Subcommand('convert', help='convert to external location') cmd = ui.Subcommand('convert', help=u'convert to external location')
cmd.parser.add_option('-p', '--pretend', action='store_true', cmd.parser.add_option('-p', '--pretend', action='store_true',
help='show actions but do nothing') help=u'show actions but do nothing')
cmd.parser.add_option('-t', '--threads', action='store', type='int', cmd.parser.add_option('-t', '--threads', action='store', type='int',
help='change the number of threads, \ help=u'change the number of threads, \
defaults to maximum available processors') defaults to maximum available processors')
cmd.parser.add_option('-k', '--keep-new', action='store_true', cmd.parser.add_option('-k', '--keep-new', action='store_true',
dest='keep_new', help='keep only the converted \ dest='keep_new', help=u'keep only the converted \
and move the old files') and move the old files')
cmd.parser.add_option('-d', '--dest', action='store', cmd.parser.add_option('-d', '--dest', action='store',
help='set the destination directory') help=u'set the destination directory')
cmd.parser.add_option('-f', '--format', action='store', dest='format', cmd.parser.add_option('-f', '--format', action='store', dest='format',
help='set the target format of the tracks') help=u'set the target format of the tracks')
cmd.parser.add_option('-y', '--yes', action='store_true', dest='yes', cmd.parser.add_option('-y', '--yes', action='store_true', dest='yes',
help='do not ask for confirmation') help=u'do not ask for confirmation')
cmd.parser.add_album_option() cmd.parser.add_album_option()
cmd.func = self.convert_func cmd.func = self.convert_func
return [cmd] return [cmd]
@ -292,7 +291,7 @@ class ConvertPlugin(BeetsPlugin):
if self.config['embed']: if self.config['embed']:
album = item.get_album() album = item.get_album()
if album and album.artpath: if album and album.artpath:
self._log.debug('embedding album art from {}', self._log.debug(u'embedding album art from {}',
util.displayable_path(album.artpath)) util.displayable_path(album.artpath))
art.embed_item(self._log, item, album.artpath, art.embed_item(self._log, item, album.artpath,
itempath=converted) itempath=converted)
@ -349,7 +348,7 @@ class ConvertPlugin(BeetsPlugin):
if not opts.dest: if not opts.dest:
opts.dest = self.config['dest'].get() opts.dest = self.config['dest'].get()
if not opts.dest: if not opts.dest:
raise ui.UserError('no convert destination set') raise ui.UserError(u'no convert destination set')
opts.dest = util.bytestring_path(opts.dest) opts.dest = util.bytestring_path(opts.dest)
if not opts.threads: if not opts.threads:
@ -369,7 +368,7 @@ class ConvertPlugin(BeetsPlugin):
if not pretend: if not pretend:
ui.commands.list_items(lib, ui.decargs(args), opts.album) ui.commands.list_items(lib, ui.decargs(args), opts.album)
if not (opts.yes or ui.input_yn("Convert? (Y/n)")): if not (opts.yes or ui.input_yn(u"Convert? (Y/n)")):
return return
if opts.album: if opts.album:

View file

@ -16,8 +16,7 @@
"""Adds Discogs album search support to the autotagger. Requires the """Adds Discogs album search support to the autotagger. Requires the
discogs-client library. discogs-client library.
""" """
from __future__ import (division, absolute_import, print_function, from __future__ import (division, absolute_import, print_function)
unicode_literals)
import beets.ui import beets.ui
from beets import logging from beets import logging
@ -101,24 +100,24 @@ class DiscogsPlugin(BeetsPlugin):
try: try:
_, _, url = auth_client.get_authorize_url() _, _, url = auth_client.get_authorize_url()
except CONNECTION_ERRORS as e: except CONNECTION_ERRORS as e:
self._log.debug('connection error: {0}', e) self._log.debug(u'connection error: {0}', e)
raise beets.ui.UserError('communication with Discogs failed') raise beets.ui.UserError(u'communication with Discogs failed')
beets.ui.print_("To authenticate with Discogs, visit:") beets.ui.print_(u"To authenticate with Discogs, visit:")
beets.ui.print_(url) beets.ui.print_(url)
# Ask for the code and validate it. # Ask for the code and validate it.
code = beets.ui.input_("Enter the code:") code = beets.ui.input_(u"Enter the code:")
try: try:
token, secret = auth_client.get_access_token(code) token, secret = auth_client.get_access_token(code)
except DiscogsAPIError: except DiscogsAPIError:
raise beets.ui.UserError('Discogs authorization failed') raise beets.ui.UserError(u'Discogs authorization failed')
except CONNECTION_ERRORS as e: except CONNECTION_ERRORS as e:
self._log.debug(u'connection error: {0}', e) self._log.debug(u'connection error: {0}', e)
raise beets.ui.UserError('Discogs token request failed') raise beets.ui.UserError(u'Discogs token request failed')
# Save the token for later use. # Save the token for later use.
self._log.debug('Discogs token {0}, secret {1}', token, secret) self._log.debug(u'Discogs token {0}, secret {1}', token, secret)
with open(self._tokenfile(), 'w') as f: with open(self._tokenfile(), 'w') as f:
json.dump({'token': token, 'secret': secret}, f) json.dump({'token': token, 'secret': secret}, f)
@ -153,7 +152,7 @@ class DiscogsPlugin(BeetsPlugin):
else: else:
return [] return []
except CONNECTION_ERRORS: except CONNECTION_ERRORS:
self._log.debug('Connection error in album search', exc_info=True) self._log.debug(u'Connection error in album search', exc_info=True)
return [] return []
def album_for_id(self, album_id): def album_for_id(self, album_id):
@ -184,7 +183,7 @@ class DiscogsPlugin(BeetsPlugin):
return self.album_for_id(album_id) return self.album_for_id(album_id)
return None return None
except CONNECTION_ERRORS: except CONNECTION_ERRORS:
self._log.debug('Connection error in album lookup', exc_info=True) self._log.debug(u'Connection error in album lookup', exc_info=True)
return None return None
return self.get_album_info(result) return self.get_album_info(result)
@ -206,7 +205,7 @@ class DiscogsPlugin(BeetsPlugin):
releases = self.discogs_client.search(query, releases = self.discogs_client.search(query,
type='release').page(1) type='release').page(1)
except CONNECTION_ERRORS: except CONNECTION_ERRORS:
self._log.debug("Communication error while searching for {0!r}", self._log.debug(u"Communication error while searching for {0!r}",
query, exc_info=True) query, exc_info=True)
return [] return []
return [self.get_album_info(release) for release in releases[:5]] return [self.get_album_info(release) for release in releases[:5]]