예제 #1
0
    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
예제 #2
0
    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
예제 #3
0
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",
예제 #4
0
파일: __init__.py 프로젝트: shenal/dotfiles
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",