def __init__(self, tag, width, suffix, options): attr_table = { "a": (_('Bitrate(s)'), lambda adir, **kw: adir.audiolist_format), "A": (_('Artist'), self._get_artist), "b": (_('Bitrate'), lambda adir, **kw: adir.bitrate), "B": (_('Bitrate'), lambda adir, **kw: adir.bitrate), "C": (_('Album'), self._get_album), "D": (_('Depth'), lambda adir, **kw: kw['depth']), "f": (_('Files'), lambda adir, **kw: adir.num_files), "l": (_('Length'), lambda adir, **kw: adir.length), "L": (_('Length'), lambda adir, **kw: adir.length), "m": (_('Modified'), lambda adir, **kw: adir.modified), "M": (_('Modified'), lambda adir, **kw: adir.modified), "n": (_('Album/Artist'), lambda adir, **kw: adir.name), "N": (_('Album/Artist'), lambda adir, **kw: adir.name), "p": (_('Profile'), self._get_profile), "P": (_('Path'), lambda adir, **kw: adir.path), "q": (_('Quality'), lambda adir, **kw: adir.quality), "s": (_('Size'), lambda adir, **kw: adir.size), "S": (_('Size'), lambda adir, **kw: adir.size), "t": (_('Type'), lambda adir, **kw: adir.mediatype), "T": (_('BR Type'), lambda adir, **kw: adir.brtype), "V": (_('Encoder'), lambda adir, **kw: adir.vendor), "Y": (_('Year'), self._get_year), } formatter_table = { "b": lambda data, depth: to_human(int(data), 1000.0), "B": lambda data, depth: locale.format('%d', data), "l": lambda data, depth: to_minutes(int(data)), "L": lambda data, depth: locale.format('%d', data), "m": lambda data, depth: time.ctime(data), "n": lambda data, depth: self.indent(data, depth), "s": lambda data, depth: to_human(data), } self.width, self.suffix = width, suffix if tag in formatter_table: self.formatter = formatter_table[tag] else: self.formatter = lambda x, y: x self.name, self.get = attr_table[tag] self._encoding = ('utf-8', ) self._prefer_tag = options.prefer_tag
def __init__(self, tag, width, suffix, options): attr_table = { "a": (_('Bitrate(s)'), lambda adir, **kw: adir.audiolist_format), "A": (_('Artist'), self._get_artist), "b": (_('Bitrate'), lambda adir, **kw: adir.bitrate), "B": (_('Bitrate'), lambda adir, **kw: adir.bitrate), "C": (_('Album'), self._get_album), "D": (_('Depth'), lambda adir, **kw: kw['depth']), "f": (_('Files'), lambda adir, **kw: adir.num_files), "l": (_('Length'), lambda adir, **kw: adir.length), "L": (_('Length'), lambda adir, **kw: adir.length), "m": (_('Modified'), lambda adir, **kw: adir.modified), "M": (_('Modified'), lambda adir, **kw: adir.modified), "n": (_('Album/Artist'), lambda adir, **kw: adir.name), "N": (_('Album/Artist'), lambda adir, **kw: adir.name), "p": (_('Profile'), self._get_profile), "P": (_('Path'), lambda adir, **kw: adir.path), "q": (_('Quality'), lambda adir, **kw: adir.quality), "s": (_('Size'), lambda adir, **kw: adir.size), "S": (_('Size'), lambda adir, **kw: adir.size), "t": (_('Type'), lambda adir, **kw: adir.mediatype), "T": (_('BR Type'), lambda adir, **kw: adir.brtype), "V": (_('Encoder'), lambda adir, **kw: adir.vendor), "Y": (_('Year'), self._get_year), } formatter_table = { "b": lambda data, depth: to_human(int(data), 1000.0), "B": lambda data, depth: locale.format('%d', data), "l": lambda data, depth: to_minutes(int(data)), "L": lambda data, depth: locale.format('%d', data), "m": lambda data, depth: time.ctime(data), "n": lambda data, depth: self.indent(data, depth), "s": lambda data, depth: to_human(data), } self.width, self.suffix = width, suffix if tag in formatter_table: self.formatter = formatter_table[tag] else: self.formatter = lambda x, y: x self.name, self.get = attr_table[tag] self._encoding = ('utf-8',) self._prefer_tag = options.prefer_tag
def indicate_progress(dir_pairs, sizes, outs=sys.stderr): """Indicate progress. Yields an unchanged iteration of dirs with an added side effect. Total size in sizes is updated to stderr every step throughout the iteration. """ for adir, root in dir_pairs: print >> outs, _('%sB processed\r') % to_human(sizes["Total"]), yield adir, root print >> outs, "\r \r",