本文整理汇总了Python中quodlibet.compat.itervalues函数的典型用法代码示例。如果您正苦于以下问题:Python itervalues函数的具体用法?Python itervalues怎么用?Python itervalues使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了itervalues函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: masked
def masked(self, item):
"""Return true if the item is in the library but masked."""
try:
point = item.mountpoint
except AttributeError:
# Checking a key.
for point in itervalues(self._masked):
if item in point:
return True
else:
# Checking a full item.
return item in itervalues(self._masked.get(point, {}))
开发者ID:LudoBike,项目名称:quodlibet,代码行数:12,代码来源:libraries.py
示例2: __invoke
def __invoke(self, librarian, event, *args):
args = list(args)
if args and args[0]:
if isinstance(args[0], dict):
args[0] = SongWrapper(args[0])
elif isinstance(args[0], (set, list)):
args[0] = ListWrapper(args[0])
for plugin in itervalues(self.__plugins):
method_name = 'plugin_on_' + event.replace('-', '_')
handler = getattr(plugin, method_name, None)
def overridden(obj, name):
return name in type(obj).__dict__
if overridden(plugin, method_name):
try:
handler(*args)
except Exception:
print_e("Error during %s on %s" %
(method_name, type(plugin)))
util.print_exc()
if event not in ["removed", "changed"] and args:
from quodlibet import app
songs = args[0]
if not isinstance(songs, (set, list)):
songs = [songs]
songs = filter(None, songs)
check_wrapper_changed(librarian, app.window, songs)
开发者ID:ZDBioHazard,项目名称:quodlibet,代码行数:29,代码来源:events.py
示例3: __contains__
def __contains__(self, item):
"""Check if a key or item is in the library."""
for library in itervalues(self.libraries):
if item in library:
return True
else:
return False
开发者ID:bossjones,项目名称:quodlibet,代码行数:7,代码来源:librarians.py
示例4: __init__
def __init__(self, library, users):
DBusIntrospectable.__init__(self)
DBusProperty.__init__(self)
MediaObject.__init__(self, None)
MediaItem.__init__(self, optional=SUPPORTED_SONG_PROPERTIES)
bus = dbus.SessionBus()
self.ref = dbus.service.BusName(BUS_NAME, bus)
dbus.service.FallbackObject.__init__(self, bus, self.PATH)
self.__library = library
self.__map = dict((id(v), v) for v in itervalues(self.__library))
self.__reverse = dict((v, k) for k, v in iteritems(self.__map))
self.__song = DummySongObject(self)
self.__users = users
signals = [
("changed", self.__songs_changed),
("removed", self.__songs_removed),
("added", self.__songs_added),
]
self.__sigs = map(
lambda x: self.__library.connect(x[0], x[1]), signals)
开发者ID:ZDBioHazard,项目名称:quodlibet,代码行数:25,代码来源:mediaserver.py
示例5: __update
def __update(self, songs, total, model, save, revert):
if songs is None:
songs = [e.song for e in itervalues(model)]
else:
songs = list(songs)
def sort_key(song):
return song("~#track", 0), song("~basename"), song
songs.sort(key=sort_key)
model.clear()
total.set_value(len(songs))
for song in songs:
if not song.can_change("tracknumber"):
self.set_sensitive(False)
break
else:
self.set_sensitive(True)
for song in songs:
model.append([Entry(song)])
save.set_sensitive(False)
revert.set_sensitive(False)
开发者ID:LudoBike,项目名称:quodlibet,代码行数:25,代码来源:tracknumbers.py
示例6: Query
def Query(self, text):
if text is not None:
query = Query(text, star=SongList.star)
if query.is_parsable:
return [self.__dict(s) for s in itervalues(self.library)
if query.search(s)]
return None
开发者ID:LudoBike,项目名称:quodlibet,代码行数:7,代码来源:dbus_.py
示例7: __save_files
def __save_files(self, parent, model, library):
win = WritingWindow(parent, len(model))
was_changed = set()
all_done = False
for entry in itervalues(model):
song, track = entry.song, entry.tracknumber
if song.get("tracknumber") == track:
win.step()
continue
if not song.valid():
win.hide()
dialog = OverwriteWarning(self, song)
resp = dialog.run()
win.show()
if resp != OverwriteWarning.RESPONSE_SAVE:
break
song["tracknumber"] = track
try:
song.write()
except AudioFileError:
util.print_exc()
WriteFailedError(self, song).run()
library.reload(song, changed=was_changed)
break
was_changed.add(song)
if win.step():
break
else:
all_done = True
library.changed(was_changed)
win.destroy()
self.save.set_sensitive(not all_done)
self.revert.set_sensitive(not all_done)
开发者ID:LudoBike,项目名称:quodlibet,代码行数:34,代码来源:tracknumbers.py
示例8: changed
def changed(self, items):
"""Triage the items and inform their real libraries."""
for library in itervalues(self.libraries):
in_library = set(item for item in items if item in library)
if in_library:
library._changed(in_library)
开发者ID:bossjones,项目名称:quodlibet,代码行数:7,代码来源:librarians.py
示例9: changed
def changed(self, items):
"""Alert other users that these items have changed.
This causes a 'changed' signal. If a librarian is available
this function will call its changed method instead, and all
libraries that librarian manages may fire a 'changed' signal.
The item list may be filtered to those items actually in the
library. If a librarian is available, it will handle the
filtering instead. That means if this method is delegated to
the librarian, this library's changed signal may not fire, but
another's might.
"""
if not items:
return
if self.librarian and self in itervalues(self.librarian.libraries):
print_d("Changing %d items via librarian." % len(items), self)
self.librarian.changed(items)
else:
items = {item for item in items if item in self}
if not items:
return
print_d("Changing %d items directly." % len(items), self)
self._changed(items)
开发者ID:LudoBike,项目名称:quodlibet,代码行数:25,代码来源:libraries.py
示例10: rename
def rename(self, song, newname, changed=None):
"""Rename the song in all libraries it belongs to.
The 'changed' signal will fire for any library the song is in
except if a set() is passed as changed.
"""
# This needs to poke around inside the library directly. If
# it uses add/remove to handle the songs it fires incorrect
# signals. If it uses the library's rename method, it breaks
# the call for future libraries because the item's key has
# changed. So, it needs to reimplement the method.
re_add = []
print_d("Renaming %r to %r" % (song.key, newname), self)
for library in itervalues(self.libraries):
try:
del library._contents[song.key]
except KeyError:
pass
else:
re_add.append(library)
song.rename(newname)
for library in re_add:
library._contents[song.key] = song
if changed is None:
library._changed({song})
else:
print_d("Delaying changed signal for %r." % library, self)
changed.add(song)
开发者ID:bossjones,项目名称:quodlibet,代码行数:28,代码来源:librarians.py
示例11: _plugins
def _plugins(self):
"""All registered plugins"""
plugins = []
for module in itervalues(self.__modules):
for plugin in module.plugins:
plugins.append(plugin)
return plugins
开发者ID:mistotebe,项目名称:quodlibet,代码行数:8,代码来源:__init__.py
示例12: test_values
def test_values(self):
items = []
for i in range(20):
items.append(self.Fake(i))
items[-1].key = i + 100
self.library.add(items)
self.failUnlessEqual(sorted(self.library.values()), list(range(20)))
self.failUnlessEqual(
sorted(itervalues(self.library)), list(range(20)))
开发者ID:ZDBioHazard,项目名称:quodlibet,代码行数:9,代码来源:test_library_libraries.py
示例13: mask
def mask(self, point):
print_d("Masking %r." % point, self)
removed = {}
for item in itervalues(self):
if item.mountpoint == point:
removed[item.key] = item
if removed:
self.remove(removed.values())
self._masked.setdefault(point, {}).update(removed)
开发者ID:LudoBike,项目名称:quodlibet,代码行数:9,代码来源:libraries.py
示例14: __getitem__
def __getitem__(self, key):
"""Find a item given its key."""
for library in itervalues(self.libraries):
try:
return library[key]
except KeyError:
pass
else:
raise KeyError(key)
开发者ID:bossjones,项目名称:quodlibet,代码行数:9,代码来源:librarians.py
示例15: _get_all
def _get_all(sub, found=None):
if found is None:
found = set()
if isinstance(sub, list):
found.update(sub)
return found
for v in itervalues(sub):
_get_all(v, found)
return found
开发者ID:elfalem,项目名称:quodlibet,代码行数:9,代码来源:models.py
示例16: list
def list(self, tag):
"""Return a list of unique values for the given tag. This needs to be
here since not all browsers pull from the default library.
"""
library = app.library
bg = background_filter()
if bg:
songs = filter(bg, itervalues(library))
return list({value for song in songs for value in song.list(tag)})
return list(library.tag_values(tag))
开发者ID:piotrdrag,项目名称:quodlibet,代码行数:10,代码来源:_base.py
示例17: Query
def Query(self, query):
if query is not None:
try:
results = Query(query, star=SongList.star).search
except Query.error:
pass
else:
return [self.__dict(s) for s in itervalues(self.library)
if results(s)]
return None
开发者ID:ZDBioHazard,项目名称:quodlibet,代码行数:10,代码来源:dbus_.py
示例18: __save
def __save(self, addreplace, library):
pattern_text = gdecode(self.combo.get_child().get_text())
pattern = TagsFromPattern(pattern_text)
model = self.view.get_model()
add = bool(addreplace.get_active())
win = WritingWindow(self, len(model))
win.show()
was_changed = set()
all_done = False
for entry in ((model and itervalues(model)) or []):
song = entry.song
changed = False
if not song.valid():
win.hide()
dialog = OverwriteWarning(self, song)
resp = dialog.run()
win.show()
if resp != OverwriteWarning.RESPONSE_SAVE:
break
for i, h in enumerate(pattern.headers):
text = entry.get_match(h)
if text:
can_multiple = song.can_multiple_values(h)
if not add or h not in song or not can_multiple:
song[h] = text
changed = True
else:
for val in text.split("\n"):
if val not in song.list(h):
song.add(h, val)
changed = True
if changed:
try:
song.write()
except AudioFileError:
util.print_exc()
WriteFailedError(self, song).run()
library.reload(song, changed=was_changed)
break
was_changed.add(song)
if win.step():
break
else:
all_done = True
win.destroy()
library.changed(was_changed)
self.save.set_sensitive(not all_done)
开发者ID:elfalem,项目名称:quodlibet,代码行数:53,代码来源:tagsfrompath.py
示例19: __rename
def __rename(self, library):
model = self.view.get_model()
win = WritingWindow(self, len(model))
win.show()
was_changed = set()
skip_all = False
self.view.freeze_child_notify()
for entry in itervalues(model):
song = entry.song
new_name = entry.new_name
old_name = entry.name
if new_name is None:
continue
try:
library.rename(song, text2fsn(new_name), changed=was_changed)
except Exception:
util.print_exc()
if skip_all:
continue
RESPONSE_SKIP_ALL = 1
msg = qltk.Message(
Gtk.MessageType.ERROR, win, _("Unable to rename file"),
_("Renaming <b>%(old-name)s</b> to <b>%(new-name)s</b> "
"failed. Possibly the target file already exists, "
"or you do not have permission to make the "
"new file or remove the old one.") % {
"old-name": util.escape(old_name),
"new-name": util.escape(new_name),
},
buttons=Gtk.ButtonsType.NONE)
msg.add_button(_("Ignore _All Errors"), RESPONSE_SKIP_ALL)
msg.add_icon_button(_("_Stop"), Icons.PROCESS_STOP,
Gtk.ResponseType.CANCEL)
msg.add_button(_("_Continue"), Gtk.ResponseType.OK)
msg.set_default_response(Gtk.ResponseType.OK)
resp = msg.run()
skip_all |= (resp == RESPONSE_SKIP_ALL)
# Preserve old behavior: shift-click is Ignore All
mods = Gdk.Display.get_default().get_pointer()[3]
skip_all |= mods & Gdk.ModifierType.SHIFT_MASK
library.reload(song, changed=was_changed)
if resp != Gtk.ResponseType.OK and resp != RESPONSE_SKIP_ALL:
break
if win.step():
break
self.view.thaw_child_notify()
win.destroy()
library.changed(was_changed)
self.save.set_sensitive(False)
开发者ID:elfalem,项目名称:quodlibet,代码行数:52,代码来源:renamefiles.py
示例20: compile
def compile(self, song_func, text_formatter=None):
tags = []
queries = {}
content = ["def f(s):", " x = s." + song_func, " r = []", " a = r.append"]
content.extend(self.__tag(self.__root, {}, {}, tags, queries, text_formatter))
content.append(" return r")
code = "\n".join(content)
scope = dict(itervalues(queries))
if text_formatter:
scope["_format"] = text_formatter
exec_(compile(code, "<string>", "exec"), scope)
return scope["f"], tags
开发者ID:MikeiLL,项目名称:quodlibet,代码行数:13,代码来源:_pattern.py
注:本文中的quodlibet.compat.itervalues函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论