本文整理汇总了Python中quodlibet.util.string.decode函数的典型用法代码示例。如果您正苦于以下问题:Python decode函数的具体用法?Python decode怎么用?Python decode使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了decode函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: from_dump
def from_dump(self, text):
"""Parses the text created with to_dump and adds the found tags.
Args:
text (bytes)
"""
for line in text.split(b"\n"):
if not line:
continue
parts = line.split(b"=")
key = decode(parts[0])
val = b"=".join(parts[1:])
if key == "~format":
pass
elif key in FILESYSTEM_TAGS:
self.add(key, bytes2fsn(val, "utf-8"))
elif key.startswith("~#"):
try:
self.add(key, int(val))
except ValueError:
try:
self.add(key, float(val))
except ValueError:
pass
else:
self.add(key, decode(val))
开发者ID:zsau,项目名称:quodlibet,代码行数:27,代码来源:_audio.py
示例2: decode_key
def decode_key(key):
"""str if ascii, otherwise decode using utf-8"""
if PY3:
return decode(key)
try:
key.decode("ascii")
except ValueError:
return decode(key)
return key
开发者ID:elfalem,项目名称:quodlibet,代码行数:11,代码来源:_audio.py
示例3: parse_taglist
def parse_taglist(data):
"""Parses a dump file like list of tags and returns a list of IRFiles
uri=http://...
tag=value1
tag2=value
tag=value2
uri=http://...
...
"""
stations = []
station = None
for l in data.split(b"\n"):
if not l:
continue
key = l.split(b"=")[0]
value = l.split(b"=", 1)[1]
key = decode(key)
value = decode(value)
if key == "uri":
if station:
stations.append(station)
station = IRFile(value)
continue
san = list(sanitize_tags({key: value}, stream=True).items())
if not san:
continue
key, value = san[0]
if key == "~listenerpeak":
key = "~#listenerpeak"
value = int(value)
if not station:
continue
if isinstance(value, text_type):
if value not in station.list(key):
station.add(key, value)
else:
station[key] = value
if station:
stations.append(station)
return stations
开发者ID:LudoBike,项目名称:quodlibet,代码行数:50,代码来源:iradio.py
示例4: from_dump
def from_dump(self, text):
"""Parses the text created with to_dump and adds the found tags."""
def decode_key(key):
"""str if ascii, otherwise decode using utf-8"""
try:
key.decode("ascii")
except ValueError:
return decode(key)
return key
for line in text.split("\n"):
if not line:
continue
parts = line.split("=")
key = parts[0]
val = "=".join(parts[1:])
if key == "~format":
pass
elif key.startswith("~#"):
try:
self.add(key, int(val))
except ValueError:
try:
self.add(key, float(val))
except ValueError:
pass
else:
self.add(decode_key(key), decode(val))
开发者ID:vrasidas,项目名称:quodlibet,代码行数:29,代码来源:_audio.py
示例5: __init__
def __init__(self, filename):
audio = MP4(filename)
self["~format"] = "%s %s" % (
self.format, getattr(audio.info, "codec_description", "AAC"))
self["~#length"] = audio.info.length
self["~#bitrate"] = int(audio.info.bitrate / 1000)
for key, values in audio.items():
if key in self.__tupletranslate:
name = self.__tupletranslate[key]
cur, total = values[0]
if total:
self[name] = u"%d/%d" % (cur, total)
else:
self[name] = unicode(cur)
elif key in self.__translate:
name = self.__translate[key]
if key == "tmpo":
self[name] = "\n".join(map(unicode, values))
elif key.startswith("----"):
self[name] = "\n".join(
map(lambda v: decode(v).strip("\x00"), values))
else:
self[name] = "\n".join(values)
elif key == "covr":
self.has_images = True
self.sanitize(filename)
开发者ID:Tjorriemorrie,项目名称:quodlibet,代码行数:26,代码来源:mp4.py
示例6: __init__
def __init__(self, filename):
with translate_errors():
audio = MP4(filename)
self["~codec"] = audio.info.codec_description
self["~#length"] = audio.info.length
self["~#bitrate"] = int(audio.info.bitrate / 1000)
if audio.info.channels:
self["~#channels"] = audio.info.channels
self["~#samplerate"] = audio.info.sample_rate
self["~#bitdepth"] = audio.info.bits_per_sample
for key, values in audio.items():
if key in self.__tupletranslate:
if values:
name = self.__tupletranslate[key]
cur, total = values[0]
if total:
self[name] = u"%d/%d" % (cur, total)
else:
self[name] = text_type(cur)
elif key in self.__translate:
name = self.__translate[key]
if key == "tmpo":
self[name] = u"\n".join(map(text_type, values))
elif key.startswith("----"):
self[name] = "\n".join(
map(lambda v: decode(v).strip("\x00"), values))
else:
self[name] = "\n".join(values)
elif key == "covr":
self.has_images = True
self.sanitize(filename)
开发者ID:LudoBike,项目名称:quodlibet,代码行数:32,代码来源:mp4.py
示例7: parse_gstreamer_taglist
def parse_gstreamer_taglist(tags):
"""Takes a GStreamer taglist and returns a dict containing only
numeric and unicode values and str keys."""
merged = {}
for key in tags.keys():
value = tags[key]
# extended-comment sometimes containes a single vorbiscomment or
# a list of them ["key=value", "key=value"]
if key == "extended-comment":
if not isinstance(value, list):
value = [value]
for val in value:
if not isinstance(val, unicode):
continue
split = val.split("=", 1)
sub_key = decode(split[0])
val = split[-1]
if sub_key in merged:
sub_val = merged[sub_key]
if not isinstance(sub_val, unicode):
continue
if val not in sub_val.split("\n"):
merged[sub_key] += "\n" + val
else:
merged[sub_key] = val
elif isinstance(value, Gst.DateTime):
value = value.to_iso8601_string()
merged[key] = value
else:
if isinstance(value, (int, long, float)):
merged[key] = value
continue
if isinstance(value, str):
value = decode(value)
if not isinstance(value, unicode):
value = unicode(value)
if key in merged:
merged[key] += "\n" + value
else:
merged[key] = value
return merged
开发者ID:Konzertheld,项目名称:quodlibet,代码行数:46,代码来源:util.py
示例8: __init__
def __init__(self, track):
super(IPodSong, self).__init__()
self.sanitize(gpod.itdb_filename_on_ipod(track))
# String keys
for key in ['artist', 'album', 'title', 'genre', 'grouping',
'composer', 'albumartist']:
# albumartist since libgpod-0.4.2
value = getattr(track, key, None)
if value:
self[key] = decode(value)
# Sort keys (since libgpod-0.5.0)
for key in ['artist', 'album', 'albumartist']:
value = getattr(track, 'sort_' + key, None)
if value:
self[key + 'sort'] = decode(value)
# Numeric keys
for key in ['bitrate', 'playcount']:
value = getattr(track, key)
if value:
self['~#' + key] = value
try:
self["date"] = unicode(track.year)
except AttributeError:
pass
if track.cds:
self["discnumber"] = u"%d/%d" % (track.cd_nr, track.cds)
elif track.cd_nr:
self["discnumber"] = u"%d" % track.cd_nr
if track.tracks:
self['tracknumber'] = u"%d/%d" % (track.track_nr, track.tracks)
elif track.track_nr:
self['tracknumber'] = u"%d" % track.track_nr
for key, value in {
'~#rating': min(1.0, track.rating / 100.0),
'~#length': track.tracklen / 1000.0,
}.items():
if value != 0:
self[key] = value
self['~format'] = u"iPod: %s" % track.filetype
开发者ID:brunob,项目名称:quodlibet,代码行数:44,代码来源:ipod.py
示例9: list_input_plugins
def list_input_plugins(self):
"""
Returns:
List[str]
"""
plugins = []
for plugin in xine_list_input_plugins(self._xine):
if not plugin:
break
plugins.append(decode(plugin))
return plugins
开发者ID:zsau,项目名称:quodlibet,代码行数:12,代码来源:player.py
示例10: fsdecode
def fsdecode(s, note=True):
"""Takes a native path and returns unicode for displaying it.
Can not fail and can't be reversed.
"""
if isinstance(s, unicode):
return s
elif note:
return decode(s, _FSCODING)
else:
return s.decode(_FSCODING, 'replace')
开发者ID:bossjones,项目名称:quodlibet,代码行数:12,代码来源:path.py
示例11: __init__
def __init__(self, track):
super(IPodSong, self).__init__()
self.sanitize(gpod.itdb_filename_on_ipod(track))
# String keys
for key in ["artist", "album", "title", "genre", "grouping", "composer", "albumartist"]:
# albumartist since libgpod-0.4.2
value = getattr(track, key, None)
if value:
self[key] = decode(value)
# Sort keys (since libgpod-0.5.0)
for key in ["artist", "album", "albumartist"]:
value = getattr(track, "sort_" + key, None)
if value:
self[key + "sort"] = decode(value)
# Numeric keys
for key in ["bitrate", "playcount"]:
value = getattr(track, key)
if value:
self["~#" + key] = value
try:
self["date"] = unicode(track.year)
except AttributeError:
pass
if track.cds:
self["discnumber"] = u"%d/%d" % (track.cd_nr, track.cds)
elif track.cd_nr:
self["discnumber"] = u"%d" % track.cd_nr
if track.tracks:
self["tracknumber"] = u"%d/%d" % (track.track_nr, track.tracks)
elif track.track_nr:
self["tracknumber"] = u"%d" % track.track_nr
for key, value in {"~#rating": min(1.0, track.rating / 100.0), "~#length": track.tracklen / 1000.0}.items():
if value != 0:
self[key] = value
self["~format"] = u"iPod: %s" % track.filetype
开发者ID:faubiguy,项目名称:quodlibet,代码行数:40,代码来源:ipod.py
示例12: __init__
def __init__(self, driver, librarian):
"""May raise PlayerError"""
super(XinePlaylistPlayer, self).__init__()
self.name = "xine"
self.version_info = "xine-lib: " + decode(xine_get_version_string())
self._volume = 1.0
self._handle = XineHandle()
self._supports_gapless = xine_check_version(1, 1, 1) == 1
self._event_queue = None
self._new_stream(driver)
self._librarian = librarian
self._destroyed = False
开发者ID:zsau,项目名称:quodlibet,代码行数:14,代码来源:player.py
示例13: _config
def _config(section, option, label, tooltip, getter):
def on_changed(entry, *args):
config.set(section, option, entry.get_text())
entry = UndoEntry()
entry.set_tooltip_text(tooltip)
entry.set_text(decode(config.get(section, option)))
entry.connect("changed", on_changed)
def on_reverted(*args):
config.reset(section, option)
entry.set_text(decode(config.get(section, option)))
revert = Gtk.Button()
revert.add(Gtk.Image.new_from_icon_name(Icons.DOCUMENT_REVERT, Gtk.IconSize.BUTTON))
revert.connect("clicked", on_reverted)
return (Gtk.Label(label=label), entry, revert)
开发者ID:MikeiLL,项目名称:quodlibet,代码行数:18,代码来源:advanced_preferences.py
示例14: from_dump
def from_dump(self, text):
"""Parses the text created with to_dump and adds the found tags.
Args:
text (bytes)
"""
def decode_key(key):
"""str if ascii, otherwise decode using utf-8"""
if PY3:
return decode(key)
try:
key.decode("ascii")
except ValueError:
return decode(key)
return key
for line in text.split(b"\n"):
if not line:
continue
parts = line.split(b"=")
key = decode_key(parts[0])
val = b"=".join(parts[1:])
if key == "~format":
pass
elif key in FILESYSTEM_TAGS:
self.add(key, bytes2fsn(val, "utf-8"))
elif key.startswith("~#"):
try:
self.add(key, int(val))
except ValueError:
try:
self.add(key, float(val))
except ValueError:
pass
else:
self.add(key, decode(val))
开发者ID:elfalem,项目名称:quodlibet,代码行数:39,代码来源:_audio.py
示例15: test_empty
def test_empty(self):
self.failUnlessEqual(decode(""), "")
开发者ID:brunob,项目名称:quodlibet,代码行数:2,代码来源:test_util.py
示例16: getter
def getter(section, option):
return decode(config.get(section, option))
开发者ID:zsau,项目名称:quodlibet,代码行数:2,代码来源:advanced_preferences.py
示例17: on_reverted
def on_reverted(*args):
config.reset(section, option)
entry.set_text(decode(config.get(section, option)))
开发者ID:akdor1154,项目名称:quodlibet,代码行数:3,代码来源:advanced_preferences.py
示例18: main
def main(argv):
import quodlibet
quodlibet.init_cli()
try:
# we want basic commands not to import gtk (doubles process time)
assert "gi.repository.Gtk" not in sys.modules
sys.modules["gi.repository.Gtk"] = None
startup_actions, cmds_todo = process_arguments(argv)
finally:
sys.modules.pop("gi.repository.Gtk", None)
quodlibet.init()
from quodlibet import app
from quodlibet.qltk import add_signal_watch, Icons
add_signal_watch(app.quit)
import quodlibet.player
import quodlibet.library
from quodlibet import config
from quodlibet import browsers
from quodlibet import util
from quodlibet.util.string import decode
app.name = "Quod Libet"
app.id = "quodlibet"
quodlibet.set_application_info(Icons.QUODLIBET, app.id, app.name)
config.init(os.path.join(quodlibet.get_user_dir(), "config"))
library_path = os.path.join(quodlibet.get_user_dir(), "songs")
print_d("Initializing main library (%s)" % (
quodlibet.util.path.unexpand(library_path)))
library = quodlibet.library.init(library_path)
app.library = library
# this assumes that nullbe will always succeed
from quodlibet.player import PlayerError
wanted_backend = os.environ.get(
"QUODLIBET_BACKEND", config.get("player", "backend"))
backend_traceback = None
for backend in [wanted_backend, "nullbe"]:
try:
player = quodlibet.player.init_player(backend, app.librarian)
except PlayerError:
backend_traceback = decode(traceback.format_exc())
else:
break
app.player = player
os.environ["PULSE_PROP_media.role"] = "music"
os.environ["PULSE_PROP_application.icon_name"] = "quodlibet"
browsers.init()
from quodlibet.qltk.songlist import SongList, get_columns
from quodlibet.util.collection import Album
try:
cover_size = config.getint("browsers", "cover_size")
except config.Error:
pass
else:
if cover_size > 0:
Album.COVER_SIZE = cover_size
headers = get_columns()
SongList.set_all_column_headers(headers)
for opt in config.options("header_maps"):
val = config.get("header_maps", opt)
util.tags.add(opt, val)
in_all = ("~filename ~uri ~#lastplayed ~#rating ~#playcount ~#skipcount "
"~#added ~#bitrate ~current ~#laststarted ~basename "
"~dirname").split()
for Kind in browsers.browsers:
if Kind.headers is not None:
Kind.headers.extend(in_all)
Kind.init(library)
pm = quodlibet.init_plugins("no-plugins" in startup_actions)
if hasattr(player, "init_plugins"):
player.init_plugins()
from quodlibet.qltk import unity
unity.init("quodlibet.desktop", player)
from quodlibet.qltk.songsmenu import SongsMenu
SongsMenu.init_plugins()
from quodlibet.util.cover import CoverManager
app.cover_manager = CoverManager()
app.cover_manager.init_plugins()
#.........这里部分代码省略.........
开发者ID:mistotebe,项目名称:quodlibet,代码行数:101,代码来源:quodlibet.py
示例19: test_invalid
def test_invalid(self):
self.failUnlessEqual(
decode("fo\xde"), u'fo\ufffd [Invalid Encoding]')
开发者ID:brunob,项目名称:quodlibet,代码行数:3,代码来源:test_util.py
示例20: test_safe
def test_safe(self):
self.failUnlessEqual(decode("foo!"), "foo!")
开发者ID:brunob,项目名称:quodlibet,代码行数:2,代码来源:test_util.py
注:本文中的quodlibet.util.string.decode函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论