本文整理汇总了Python中quodlibet.formats._audio.AudioFile.sort_by_func方法的典型用法代码示例。如果您正苦于以下问题:Python AudioFile.sort_by_func方法的具体用法?Python AudioFile.sort_by_func怎么用?Python AudioFile.sort_by_func使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类quodlibet.formats._audio.AudioFile
的用法示例。
在下文中一共展示了AudioFile.sort_by_func方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _sort_songs
# 需要导入模块: from quodlibet.formats._audio import AudioFile [as 别名]
# 或者: from quodlibet.formats._audio.AudioFile import sort_by_func [as 别名]
def _sort_songs(self, songs):
"""Sort passed songs in place based on the column sort orders"""
last_tag = None
last_order = None
first = True
for tag, reverse in self.get_sort_orders():
tag = get_sort_tag(tag)
# always sort using the default sort key first
if first:
first = False
songs.sort(key=lambda s: s.sort_key, reverse=reverse)
last_order = reverse
last_tag = ""
# no need to sort twice in a row with the same key/order
if tag == last_tag and last_order == reverse:
continue
last_order = reverse
last_tag = tag
if tag == "":
songs.sort(key=lambda s: s.sort_key, reverse=reverse)
else:
sort_func = AudioFile.sort_by_func(tag)
songs.sort(key=sort_func, reverse=reverse)
示例2: set_songs
# 需要导入模块: from quodlibet.formats._audio import AudioFile [as 别名]
# 或者: from quodlibet.formats._audio.AudioFile import sort_by_func [as 别名]
def set_songs(self, songs, sorted=False):
model = self.get_model()
if not sorted:
tag, reverse = self.get_sort_by()
tag = self.__get_sort_tag(tag)
#try to set a sort indicator that matches the default order
if not self.is_sorted():
self.set_sort_by_tag(tag, reverse)
if not tag:
songs.sort(key=lambda s: s.sort_key, reverse=reverse)
else:
sort_func = AudioFile.sort_by_func(tag)
songs.sort(key=lambda s: s.sort_key)
songs.sort(key=sort_func, reverse=reverse)
else:
self.set_sort_by(None, refresh=False)
# Doing set_model(None) resets the sort indicator, so we need to
# remember it before doing that.
sorts = map(gtk.TreeViewColumn.get_sort_indicator, self.get_columns())
print_d("Detaching model.", context=self)
self.set_model(None)
model.set(songs)
print_d("Attaching model.", context=self)
self.set_model(model)
print_d("Model attached.", context=self)
map(gtk.TreeViewColumn.set_sort_indicator, self.get_columns(), sorts)
示例3: add_songs
# 需要导入模块: from quodlibet.formats._audio import AudioFile [as 别名]
# 或者: from quodlibet.formats._audio.AudioFile import sort_by_func [as 别名]
def add_songs(self, songs):
"""Add songs to the list in the right order and position"""
if not songs: return
model = self.get_model()
if not len(model):
self.set_songs(songs)
return
tag, reverse = self.get_sort_by()
tag = self.__get_sort_tag(tag)
if not self.is_sorted():
self.set_sort_by_tag(tag, reverse)
# FIXME: Replace with something fast
old_songs = self.get_songs()
old_songs.extend(songs)
if not tag:
old_songs.sort(key=lambda s: s.sort_key, reverse=reverse)
else:
sort_func = AudioFile.sort_by_func(tag)
old_songs.sort(key=lambda s: s.sort_key)
old_songs.sort(key=sort_func, reverse=reverse)
for index, song in sorted(zip(map(old_songs.index, songs), songs)):
model.insert(index, row=[song])
示例4: test_sort_func
# 需要导入模块: from quodlibet.formats._audio import AudioFile [as 别名]
# 或者: from quodlibet.formats._audio.AudioFile import sort_by_func [as 别名]
def test_sort_func(self):
tags = [lambda s: s("foo"), "artistsort", "albumsort", "~filename", "~format", "discnumber", "~#track"]
for tag in tags:
f = AudioFile.sort_by_func(tag)
f(bar_1_1)
f(bar_1_2)
f(bar_2_1)
示例5: test_invalid_fs_encoding
# 需要导入模块: from quodlibet.formats._audio import AudioFile [as 别名]
# 或者: from quodlibet.formats._audio.AudioFile import sort_by_func [as 别名]
def test_invalid_fs_encoding(self):
# issue 798
a = AudioFile()
a.sanitize("/\xf6\xe4\xfc/\xf6\xe4\xfc.ogg") # latin 1 encoded
a.sort_by_func("~filename")(a)
a.sort_by_func("~basename")(a)
a.sort_by_func("~dirname")(a)
# windows
a.sanitize("/\xf6\xe4\xfc/\xf6\xe4\xfc.ogg".decode("latin-1"))
a.sort_by_func("~filename")(a)
a.sort_by_func("~basename")(a)
a.sort_by_func("~dirname")(a)
示例6: test_invalid_fs_encoding
# 需要导入模块: from quodlibet.formats._audio import AudioFile [as 别名]
# 或者: from quodlibet.formats._audio.AudioFile import sort_by_func [as 别名]
def test_invalid_fs_encoding(self):
# issue 798
a = AudioFile()
if os.name != "nt":
a["~filename"] = "/\xf6\xe4\xfc/\xf6\xe4\xfc.ogg" # latin 1 encoded
a.sort_by_func("~filename")(a)
a.sort_by_func("~basename")(a)
else:
# windows
a["~filename"] = "/\xf6\xe4\xfc/\xf6\xe4\xfc.ogg".decode("latin-1")
a.sort_by_func("~filename")(a)
a.sort_by_func("~basename")(a)
a.sort_by_func("~dirname")(a)