本文整理汇总了Python中quodlibet.compat.iteritems函数的典型用法代码示例。如果您正苦于以下问题:Python iteritems函数的具体用法?Python iteritems怎么用?Python iteritems使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了iteritems函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: init_defaults
def init_defaults():
"""Fills in the defaults, so they are guaranteed to be available"""
_config.defaults.clear()
for section, values in iteritems(INITIAL):
_config.defaults.add_section(section)
for key, value in iteritems(values):
_config.defaults.set(section, key, value)
开发者ID:bp0,项目名称:quodlibet,代码行数:8,代码来源:config.py
示例2: _fill_stream
def _fill_stream(self, tags, librarian):
# get a new remote file
new_info = self.__info_buffer
if not new_info:
new_info = type(self.song)(self.song["~filename"])
new_info.multisong = False
new_info.streamsong = True
# copy from the old songs
# we should probably listen to the library for self.song changes
new_info.update(self.song)
new_info.update(self.info)
changed = False
info_changed = False
tags = TagListWrapper(tags, merge=True)
tags = parse_gstreamer_taglist(tags)
for key, value in iteritems(sanitize_tags(tags, stream=False)):
if self.song.get(key) != value:
changed = True
self.song[key] = value
for key, value in iteritems(sanitize_tags(tags, stream=True)):
if new_info.get(key) != value:
info_changed = True
new_info[key] = value
if info_changed:
# in case the title changed, make self.info a new instance
# and emit ended/started for the the old/new one
if self.info.get("title") != new_info.get("title"):
if self.info is not self.song:
self.emit('song-ended', self.info, False)
self.info = new_info
self.__info_buffer = None
self.emit('song-started', self.info)
else:
# in case title didn't changed, update the values of the
# old instance if there is one and tell the library.
if self.info is not self.song:
self.info.update(new_info)
librarian.changed([self.info])
else:
# So we don't loose all tags before the first title
# save it for later
self.__info_buffer = new_info
if changed:
librarian.changed([self.song])
开发者ID:piotrdrag,项目名称:quodlibet,代码行数:51,代码来源:player.py
示例3: __load_tags
def __load_tags(self, tags, expected):
m = OggVorbis(self.filename)
for key, value in iteritems(tags):
m.tags[key] = value
m.save()
song = OggFile(self.filename)
for key, value in iteritems(expected):
self.failUnlessEqual(song(key), value)
if self.MAIN not in expected:
self.failIf(self.MAIN in song)
if self.SINGLE not in expected:
self.failIf(self.SINGLE in song)
if self.FALLBACK not in expected:
self.failIf(self.FALLBACK in song)
开发者ID:bernd-wechner,项目名称:quodlibet,代码行数:14,代码来源:test_formats_xiph.py
示例4: __init__
def __init__(self, parent, library):
DBusIntrospectable.__init__(self)
DBusPropertyFilter.__init__(self)
MediaObject.__init__(self, parent)
MediaContainer.__init__(self)
bus = dbus.SessionBus()
self.ref = dbus.service.BusName(BUS_NAME, bus)
dbus.service.FallbackObject.__init__(self, bus, self.PATH)
parent.register_child(self)
self.__library = library.albums
self.__library.load()
self.__map = dict((id(v), v) for v in itervalues(self.__library))
self.__reverse = dict((v, k) for k, v in iteritems(self.__map))
signals = [
("changed", self.__albums_changed),
("removed", self.__albums_removed),
("added", self.__albums_added),
]
self.__sigs = map(
lambda x: self.__library.connect(x[0], x[1]), signals)
self.__dummy = DummyAlbumObject(self)
开发者ID:ZDBioHazard,项目名称:quodlibet,代码行数:27,代码来源:mediaserver.py
示例5: test_handles_albums
def test_handles_albums(self):
for id_, plugin in iteritems(self.plugins):
if isinstance(plugin, SongsMenuPlugin):
ha = plugin.handles_albums
self.failIf(hasattr(plugin, "plugin_single_album") and not ha)
self.failIf(hasattr(plugin, "plugin_plugin_album") and not ha)
self.failIf(hasattr(plugin, "plugin_albums") and not ha)
开发者ID:LudoBike,项目名称:quodlibet,代码行数:7,代码来源:test_songsmenu.py
示例6: emit_properties_changed
def emit_properties_changed(self, interface, properties, path="/"):
"""Emits PropertiesChanged for the specified properties"""
combos = {}
for prop in properties:
iface = self.get_interface(interface, prop)
if iface is None:
raise ValueError("Property %s not registered" % prop)
combos.setdefault(iface, []).append(prop)
for iface, props in iteritems(combos):
values = {}
inval = []
for prop in props:
emit = self.__props[iface][prop]["emit"]
if emit == "false":
raise ValueError("Can't emit changed signal for %s" % prop)
elif emit == "true":
values[prop] = self.get_value(iface, prop, path)
elif emit == "invalidates":
inval.append(prop)
if self.SUPPORTS_MULTIPLE_OBJECT_PATHS:
self.PropertiesChanged(iface, values, inval, rel=path)
else:
self.PropertiesChanged(iface, values, inval)
开发者ID:ZDBioHazard,项目名称:quodlibet,代码行数:26,代码来源:dbusutils.py
示例7: enum
def enum(cls):
"""Class decorator for enum types::
@enum
class SomeEnum(int):
FOO = 0
BAR = 1
Result is an int subclass and all attributes are instances of it.
"""
type_ = cls.__bases__[0]
d = dict(cls.__dict__)
new_type = type(cls.__name__, (type_,), d)
new_type.__module__ = cls.__module__
map_ = {}
for key, value in iteritems(d):
if key.upper() == key:
value_instance = new_type(value)
setattr(new_type, key, value_instance)
map_[value] = key
def repr_(self):
if self in map_:
return "%s.%s" % (type(self).__name__, map_[self])
else:
return "%s(%s)" % (type(self).__name__, self)
setattr(new_type, "__repr__", repr_)
return new_type
开发者ID:bernd-wechner,项目名称:quodlibet,代码行数:33,代码来源:enum.py
示例8: test_player
def test_player(self):
args = {"reply_handler": self._reply, "error_handler": self._error}
piface = "org.mpris.MediaPlayer2.Player"
props = {
"PlaybackStatus": dbus.String("Stopped"),
"LoopStatus": dbus.String("None"),
"Rate": dbus.Double(1.0),
"Shuffle": dbus.Boolean(False),
"Volume": dbus.Double(1.0),
"Position": dbus.Int64(0),
"MinimumRate": dbus.Double(1.0),
"MaximumRate": dbus.Double(1.0),
"CanGoNext": dbus.Boolean(True),
"CanGoPrevious": dbus.Boolean(True),
"CanPlay": dbus.Boolean(True),
"CanPause": dbus.Boolean(True),
"CanSeek": dbus.Boolean(True),
"CanControl": dbus.Boolean(True),
}
for key, value in iteritems(props):
self._prop().Get(piface, key, **args)
resp = self._wait(msg="for key '%s'" % key)[0]
self.failUnlessEqual(resp, value)
self.failUnless(isinstance(resp, type(value)))
开发者ID:ZDBioHazard,项目名称:quodlibet,代码行数:26,代码来源:test_mpris.py
示例9: test_main
def test_main(self):
args = {"reply_handler": self._reply, "error_handler": self._error}
piface = "org.mpris.MediaPlayer2"
app.window.hide()
self.failIf(app.window.get_visible())
self._main_iface().Raise(**args)
self.failIf(self._wait())
self.failUnless(app.window.get_visible())
app.window.hide()
props = {
"CanQuit": dbus.Boolean(True),
"CanRaise": dbus.Boolean(True),
"CanSetFullscreen": dbus.Boolean(False),
"HasTrackList": dbus.Boolean(False),
"Identity": dbus.String("Quod Libet"),
"DesktopEntry": dbus.String("quodlibet"),
"SupportedUriSchemes": dbus.Array(),
}
for key, value in iteritems(props):
self._prop().Get(piface, key, **args)
resp = self._wait()[0]
self.failUnlessEqual(resp, value)
self.failUnless(isinstance(resp, type(value)))
self._prop().Get(piface, "SupportedMimeTypes", **args)
self.failUnless("audio/vorbis" in self._wait()[0])
开发者ID:ZDBioHazard,项目名称:quodlibet,代码行数:29,代码来源:test_mpris.py
示例10: _text_to_song
def _text_to_song(self, text, song):
assert isinstance(text, text_type)
# parse
tags = {}
for line in text.splitlines():
if not line.strip() or line.startswith(u"#"):
continue
try:
key, value = line.split(u"=", 1)
except ValueError:
continue
tags.setdefault(key, []).append(value)
# apply changes, sort to always have the same output
for key in sorted(song.realkeys(), key=sortkey):
new = tags.pop(key, [])
old = song.list(key)
for value in old:
if value not in new:
self.log("Remove %s=%s" % (key, value))
song.remove(key, value)
for value in new:
if value not in old:
self.log("Add %s=%s" % (key, value))
song.add(key, value)
for key, values in iteritems(tags):
if not song.can_change(key):
raise CommandError(
"Can't change key '%(key-name)s'." % {"key-name": key})
for value in values:
self.log("Add %s=%s" % (key, value))
song.add(key, value)
开发者ID:LudoBike,项目名称:quodlibet,代码行数:35,代码来源:commands.py
示例11: _get_role_map
def _get_role_map(tags):
roles = {}
for (name, tag) in iteritems(tags):
if tag.role:
roles[name] = tag.role
if tag.has_sort:
roles[name + "sort"] = tag.role
return roles
开发者ID:Muges,项目名称:quodlibet,代码行数:8,代码来源:tags.py
示例12: _get_standard_tags
def _get_standard_tags(tags, machine=False):
stags = []
for name, tag in iteritems(tags):
if tag.user and tag.machine == machine:
stags.append(name)
if tag.has_sort:
stags.append("%ssort" % name)
return stags
开发者ID:Muges,项目名称:quodlibet,代码行数:8,代码来源:tags.py
示例13: plugin_album
def plugin_album(self, songs):
songs.sort(key=sort_key_for)
chooser = filechooser(save=False, title=songs[0]('album'))
box = Gtk.HBox()
rename = Gtk.CheckButton("Rename Files")
rename.set_active(False)
box.pack_start(rename, True, True, 0)
append = Gtk.CheckButton("Append Metadata")
append.set_active(True)
box.pack_start(append, True, True, 0)
box.show_all()
chooser.set_extra_widget(box)
resp = chooser.run()
append = append.get_active()
rename = rename.get_active()
fn = chooser.get_filename()
chooser.destroy()
if resp != Gtk.ResponseType.ACCEPT:
return
global lastfolder
lastfolder = dirname(fn)
metadata = []
names = []
index = 0
for line in open(fn, 'r', encoding="utf-8"):
if index == len(metadata):
names.append(line[:line.rfind('.')])
metadata.append({})
elif line == '\n':
index = len(metadata)
else:
key, value = line[:-1].split('=', 1)
try:
metadata[index][key].append(value)
except KeyError:
metadata[index][key] = [value]
if not (len(songs) == len(metadata) == len(names)):
ErrorMessage(None, "Songs mismatch",
"There are %(select)d songs selected, but %(meta)d "
"songs in the file. Aborting." %
dict(select=len(songs), meta=len(metadata))).run()
return
for song, meta, name in zip(songs, metadata, names):
for key, values in iteritems(meta):
if append and key in song:
values = song.list(key) + values
song[key] = '\n'.join(values)
if rename:
origname = song['~filename']
newname = name + origname[origname.rfind('.'):]
app.library.rename(origname, newname)
开发者ID:LudoBike,项目名称:quodlibet,代码行数:58,代码来源:importexport.py
示例14: Introspect
def Introspect(self):
parts = []
parts.append("<node>")
for iface, intros in iteritems(self.__ispec):
parts.append("<interface name=\"%s\">" % iface)
parts.extend(intros)
parts.append("</interface>")
parts.append("</node>")
return ("\n".join(parts)).encode("utf-8")
开发者ID:ZDBioHazard,项目名称:quodlibet,代码行数:9,代码来源:dbusutils.py
示例15: apply_to_song
def apply_to_song(meta, song):
"""Applies the tags to a AudioFile instance"""
for key, value in iteritems(meta):
if not value:
song.remove(key)
else:
assert isinstance(value, text_type)
song[key] = value
开发者ID:faubiguy,项目名称:quodlibet,代码行数:9,代码来源:widgets.py
示例16: headers
def headers(self, new_headers):
for button, headers in iteritems(self.__headers):
if headers == new_headers:
button.set_active(True)
button.emit("toggled")
break
else:
self.__headers[self.__custom] = new_headers
self.__custom.set_active(True)
开发者ID:LudoBike,项目名称:quodlibet,代码行数:9,代码来源:prefs.py
示例17: test_items
def test_items(self):
items = []
for i in range(20):
items.append(self.Fake(i))
items[-1].key = i + 100
self.library.add(items)
expected = list(zip(range(100, 120), range(20)))
self.failUnlessEqual(sorted(self.library.items()), expected)
self.failUnlessEqual(sorted(iteritems(self.library)), expected)
开发者ID:ZDBioHazard,项目名称:quodlibet,代码行数:9,代码来源:test_library_libraries.py
示例18: has_changed
def has_changed(self, dep_paths):
if set(self.deps.keys()) != set(dep_paths):
return True
for path, old_mtime in iteritems(self.deps):
if mtime(path) != old_mtime:
return True
return False
开发者ID:ZDBioHazard,项目名称:quodlibet,代码行数:9,代码来源:modulescanner.py
示例19: __save_tags
def __save_tags(self, tags, expected):
#return
song = OggFile(self.filename)
for key, value in iteritems(tags):
song[key] = value
song.write()
m = OggVorbis(self.filename)
# test if all values ended up where we wanted
for key, value in iteritems(expected):
self.failUnless(key in m.tags)
self.failUnlessEqual(m.tags[key], [value])
# test if not specified are not there
if self.MAIN not in expected:
self.failIf(self.MAIN in m.tags)
if self.FALLBACK not in expected:
self.failIf(self.FALLBACK in m.tags)
if self.SINGLE not in expected:
self.failIf(self.SINGLE in m.tags)
开发者ID:bernd-wechner,项目名称:quodlibet,代码行数:19,代码来源:test_formats_xiph.py
示例20: test_handle_single
def test_handle_single(self):
self.skipTest("Pops up windows and needs user input.. so disabled."
"Still worth keeping whilst we don't have unit tests "
"for all plugins.")
# Ignored...
for id_, plugin in iteritems(self.plugins):
if self.h.plugin_handle(plugin):
self.h.plugin_enable(plugin, None)
self.h.handle(id_, self.lib, self.parent, SONGS)
self.h.plugin_disable(plugin)
开发者ID:LudoBike,项目名称:quodlibet,代码行数:10,代码来源:test_songsmenu.py
注:本文中的quodlibet.compat.iteritems函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论