curds: Reorganize the imports
And instantiate the PlaylistManager instance a little earlier Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
c834359cdb
commit
b9ad790abf
|
@ -5,21 +5,17 @@ from . import playlist
|
|||
from . import tags
|
||||
from . import threadqueue
|
||||
|
||||
Album = tags.Album
|
||||
DataFile = data.DataFile
|
||||
LibraryPlaylist = playlist.library.LibraryPlaylist
|
||||
Playlist = playlist.playlist.Playlist
|
||||
PlaylistNode = playlist.node.PlaylistNode
|
||||
ThreadQueue = threadqueue.ThreadQueue
|
||||
Track = tags.Track
|
||||
|
||||
PlaylistManager = playlist.manager.PlaylistManager()
|
||||
Album = tags.Album
|
||||
DataFile = data.DataFile
|
||||
Playlist = playlist.playlist.Playlist
|
||||
ThreadQueue = threadqueue.ThreadQueue
|
||||
Track = tags.Track
|
||||
|
||||
|
||||
def reset():
|
||||
notify.queued.clear()
|
||||
tags.tag_map.clear()
|
||||
PlaylistManager.reset()
|
||||
playlist.Manager.reset()
|
||||
playlist.library.reset()
|
||||
|
||||
def stop():
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
# Copyright 2019 (c) Anna Schumaker.
|
||||
from . import playlist
|
||||
from . import manager
|
||||
|
||||
Library = library.LibraryPlaylist
|
||||
Node = node.PlaylistNode
|
||||
Manager = manager.Manager
|
||||
|
|
|
@ -76,3 +76,6 @@ class PlaylistManager(node.PlaylistNode):
|
|||
|
||||
self.current.insert(0, plist)
|
||||
self.current_changed(old)
|
||||
|
||||
|
||||
Manager = PlaylistManager()
|
||||
|
|
14
rind/gst.py
14
rind/gst.py
|
@ -56,7 +56,7 @@ class EmmentalAudio:
|
|||
|
||||
def about_to_finish(self, playbin):
|
||||
if self.pause_count != 0 and self.have_next == False:
|
||||
track = curds.PlaylistManager.next()
|
||||
track = curds.playlist.Manager.next()
|
||||
if track:
|
||||
self.playbin.set_property("uri", f"file://{track.path}")
|
||||
self.pause_dec()
|
||||
|
@ -92,9 +92,9 @@ class EmmentalAudio:
|
|||
|
||||
def next(self, *args):
|
||||
if self.have_next == False:
|
||||
self.load(curds.PlaylistManager.next())
|
||||
self.load(curds.playlist.Manager.next())
|
||||
else:
|
||||
self.load(curds.PlaylistManager.track)
|
||||
self.load(curds.playlist.Manager.track)
|
||||
|
||||
def on_key_press(self, widget, event):
|
||||
key = Gdk.keyval_name(event.keyval)
|
||||
|
@ -111,7 +111,7 @@ class EmmentalAudio:
|
|||
self.state_changed(message.src, state[1])
|
||||
elif message.type == Gst.MessageType.EOS:
|
||||
state = Gst.State.PAUSED if self.pause_dec() else Gst.State.PLAYING
|
||||
self.load(curds.PlaylistManager.next(), state)
|
||||
self.load(curds.playlist.Manager.next(), state)
|
||||
curds.notify.notify("eos")
|
||||
elif message.type == Gst.MessageType.STATE_CHANGED:
|
||||
(old, new, pending) = message.parse_state_changed()
|
||||
|
@ -192,8 +192,8 @@ class EmmentalAudio:
|
|||
return GLib.SOURCE_REMOVE
|
||||
|
||||
def pause_time(self):
|
||||
tracks = curds.PlaylistManager.peek(self.pause_count)
|
||||
tracks.append(curds.PlaylistManager.track)
|
||||
tracks = curds.playlist.Manager.peek(self.pause_count)
|
||||
tracks.append(curds.playlist.Manager.track)
|
||||
length = [ t.length for t in tracks if t is not None ]
|
||||
(m, s) = divmod(sum(length) - self.position(), 60)
|
||||
if s >= 30:
|
||||
|
@ -210,7 +210,7 @@ class EmmentalAudio:
|
|||
return cur / Gst.SECOND if res == True else 0
|
||||
|
||||
def previous(self, *args):
|
||||
self.load(curds.PlaylistManager.previous())
|
||||
self.load(curds.playlist.Manager.previous())
|
||||
|
||||
def progress(self):
|
||||
pos = self.position()
|
||||
|
|
|
@ -52,7 +52,7 @@ class ManagerModel(GObject.GObject, Gtk.TreeModel):
|
|||
def do_get_playlist_value(self, plist, column):
|
||||
if column == 1:
|
||||
text = GLib.markup_escape_text(str(plist))
|
||||
if plist == curds.PlaylistManager.current[0]:
|
||||
if plist == curds.playlist.Manager.current[0]:
|
||||
return f"<b>{text}</b>"
|
||||
return text
|
||||
elif column == 2:
|
||||
|
@ -105,12 +105,12 @@ class ManagerModel(GObject.GObject, Gtk.TreeModel):
|
|||
def iter_playlist(self, iter):
|
||||
if iter and iter.user_data > 0:
|
||||
path = self.get_path(iter)
|
||||
return curds.PlaylistManager.get_node(path.get_indices())
|
||||
return curds.PlaylistManager
|
||||
return curds.playlist.Manager.get_node(path.get_indices())
|
||||
return curds.playlist.Manager
|
||||
|
||||
def iter_valid(self, iter):
|
||||
plist = self.iter_playlist(iter)
|
||||
valid = plist != None and plist != curds.PlaylistManager
|
||||
valid = plist != None and plist != curds.playlist.Manager
|
||||
return (True, iter) if valid else (False, None)
|
||||
|
||||
def on_playlist_changed(self, plist):
|
||||
|
@ -122,16 +122,16 @@ class ManagerModel(GObject.GObject, Gtk.TreeModel):
|
|||
if not plist.has_sibling():
|
||||
path = Gtk.TreePath(plist.parent.get_path())
|
||||
self.row_has_child_toggled(path, self.get_iter(path))
|
||||
if isinstance(plist, curds.LibraryPlaylist):
|
||||
if isinstance(plist, curds.playlist.Library):
|
||||
path = Gtk.TreePath(plist.get_path())
|
||||
fpath = self.filter.convert_child_path_to_path(path)
|
||||
Treeview.expand_to_path(fpath)
|
||||
|
||||
def on_row_activated(self, treeview, path, column):
|
||||
child = self.filter.convert_path_to_child_path(path)
|
||||
plist = curds.PlaylistManager.get_node(child)
|
||||
plist = curds.playlist.Manager.get_node(child)
|
||||
if isinstance(plist, curds.Playlist):
|
||||
curds.PlaylistManager.select(plist)
|
||||
curds.playlist.Manager.select(plist)
|
||||
|
||||
def on_selection_changed(self, selection):
|
||||
(model, rows) = selection.get_selected_rows()
|
||||
|
@ -174,7 +174,7 @@ def library_cancel_clicked(self, *args):
|
|||
def library_ok_clicked(self, *args):
|
||||
path = LibraryChooser.get_filename()
|
||||
LibraryPopover.popdown()
|
||||
curds.PlaylistManager.lookup("Libraries").lookup(path)
|
||||
curds.playlist.Manager.lookup("Libraries").lookup(path)
|
||||
|
||||
|
||||
LibraryAdd = gtk.Builder.get_object("library_add")
|
||||
|
|
|
@ -12,7 +12,7 @@ cols = [ "tracknumber", "title", "length", "artist", "album", "date", "genre" ]
|
|||
class PlaylistModel(GObject.GObject, Gtk.TreeModel):
|
||||
def __init__(self, *args, **kwargs):
|
||||
GObject.GObject.__init__(self)
|
||||
self.set_playlist(curds.PlaylistManager.lookup("Collection"))
|
||||
self.set_playlist(curds.playlist.Manager.lookup("Collection"))
|
||||
curds.notify.register("add-track", self.on_add_track, queue=True)
|
||||
curds.notify.register("playlist-changed", self.on_playlist_changed, queue=True)
|
||||
RandomButton.connect("toggled", self.on_random_toggled)
|
||||
|
|
|
@ -148,31 +148,31 @@ class TestGst(unittest.TestCase):
|
|||
|
||||
def test_gst_controls(self):
|
||||
gst.NextButton.clicked()
|
||||
self.assertIsNone(curds.PlaylistManager.track)
|
||||
self.assertIsNone(curds.playlist.Manager.track)
|
||||
gst.PrevButton.clicked()
|
||||
self.assertIsNone(curds.PlaylistManager.track)
|
||||
self.assertIsNone(curds.playlist.Manager.track)
|
||||
|
||||
curds.PlaylistManager.lookup("Libraries").lookup(test_album)
|
||||
curds.playlist.Manager.lookup("Libraries").lookup(test_album)
|
||||
curds.playlist.library.join()
|
||||
self.assertEqual(curds.PlaylistManager.lookup("Collection").current, -1)
|
||||
self.assertEqual(curds.playlist.Manager.lookup("Collection").current, -1)
|
||||
|
||||
self.assertEqual(gst.PauseEntry.get_text(), "Paused")
|
||||
self.assertEqual(gst.PauseEntry.get_icon_name(gst.PauseIcon), "media-playback-pause")
|
||||
|
||||
gst.NextButton.clicked()
|
||||
track1 = curds.PlaylistManager.track
|
||||
track1 = curds.playlist.Manager.track
|
||||
self.assertIsNotNone(track1)
|
||||
self.assertEqual(curds.PlaylistManager.lookup("Collection").current, 0)
|
||||
self.assertEqual(curds.playlist.Manager.lookup("Collection").current, 0)
|
||||
|
||||
gst.NextButton.clicked()
|
||||
self.assertNotEqual(track1, curds.PlaylistManager.track)
|
||||
track2 = curds.PlaylistManager.track
|
||||
self.assertEqual(curds.PlaylistManager.lookup("Collection").current, 1)
|
||||
self.assertNotEqual(track1, curds.playlist.Manager.track)
|
||||
track2 = curds.playlist.Manager.track
|
||||
self.assertEqual(curds.playlist.Manager.lookup("Collection").current, 1)
|
||||
|
||||
self.main_loop_until(Gst.State.PLAYING)
|
||||
self.assertTrue( gst.PauseButton.is_visible())
|
||||
self.assertFalse(gst.PlayButton.is_visible())
|
||||
self.assertEqual(curds.PlaylistManager.track, track2)
|
||||
self.assertEqual(curds.playlist.Manager.track, track2)
|
||||
self.assertEqual(gst.PauseEntry.get_text(), "Keep Playing")
|
||||
self.assertEqual(gst.PauseEntry.get_icon_name(gst.PauseIcon), "media-playback-start")
|
||||
|
||||
|
@ -180,7 +180,7 @@ class TestGst(unittest.TestCase):
|
|||
self.main_loop_until(Gst.State.PAUSED)
|
||||
self.assertFalse(gst.PauseButton.is_visible())
|
||||
self.assertTrue( gst.PlayButton.is_visible())
|
||||
self.assertEqual(curds.PlaylistManager.track, track2)
|
||||
self.assertEqual(curds.playlist.Manager.track, track2)
|
||||
self.assertEqual(gst.PauseEntry.get_text(), "Paused")
|
||||
self.assertEqual(gst.PauseEntry.get_icon_name(gst.PauseIcon), "media-playback-pause")
|
||||
|
||||
|
@ -193,26 +193,26 @@ class TestGst(unittest.TestCase):
|
|||
|
||||
gst.NextButton.clicked()
|
||||
self.main_loop_until(Gst.State.PLAYING)
|
||||
self.assertNotEqual(curds.PlaylistManager.track, track2)
|
||||
track3 = curds.PlaylistManager.track
|
||||
self.assertEqual(curds.PlaylistManager.lookup("Collection").current, 2)
|
||||
self.assertNotEqual(curds.playlist.Manager.track, track2)
|
||||
track3 = curds.playlist.Manager.track
|
||||
self.assertEqual(curds.playlist.Manager.lookup("Collection").current, 2)
|
||||
|
||||
gst.PrevButton.clicked()
|
||||
self.main_loop_until(Gst.State.PLAYING, next=True)
|
||||
self.assertEqual(curds.PlaylistManager.track, track2)
|
||||
self.assertEqual(curds.PlaylistManager.lookup("Collection").current, 2)
|
||||
self.assertEqual(curds.PlaylistManager.lookup("Previous").current, 1)
|
||||
self.assertEqual(curds.playlist.Manager.track, track2)
|
||||
self.assertEqual(curds.playlist.Manager.lookup("Collection").current, 2)
|
||||
self.assertEqual(curds.playlist.Manager.lookup("Previous").current, 1)
|
||||
|
||||
self.main_loop_until(Gst.State.PLAYING, next=True)
|
||||
self.assertEqual(curds.PlaylistManager.lookup("Collection").current, 3)
|
||||
self.assertNotEqual(curds.PlaylistManager.track, track2)
|
||||
self.assertEqual(curds.playlist.Manager.lookup("Collection").current, 3)
|
||||
self.assertNotEqual(curds.playlist.Manager.track, track2)
|
||||
|
||||
def sort_key(self, track):
|
||||
return track.tracknumber
|
||||
|
||||
def test_gst_automatic_pause_up(self):
|
||||
plist = curds.PlaylistManager.lookup("Collection")
|
||||
curds.PlaylistManager.lookup("Libraries").lookup(test_album)
|
||||
plist = curds.playlist.Manager.lookup("Collection")
|
||||
curds.playlist.Manager.lookup("Libraries").lookup(test_album)
|
||||
curds.playlist.library.join()
|
||||
plist.list.sort(key=self.sort_key)
|
||||
|
||||
|
@ -261,8 +261,8 @@ class TestGst(unittest.TestCase):
|
|||
self.audio.pause_popdown()
|
||||
|
||||
def test_gst_automatic_pause_down(self):
|
||||
plist = curds.PlaylistManager.lookup("Collection")
|
||||
curds.PlaylistManager.lookup("Libraries").lookup(test_album)
|
||||
plist = curds.playlist.Manager.lookup("Collection")
|
||||
curds.playlist.Manager.lookup("Libraries").lookup(test_album)
|
||||
curds.playlist.library.join()
|
||||
plist.list.sort(key=self.sort_key)
|
||||
|
||||
|
@ -309,8 +309,8 @@ class TestGst(unittest.TestCase):
|
|||
self.assertEqual(gst.PauseLabel.get_text(), self.audio.pause_time())
|
||||
|
||||
def test_gst_automatic_pause_entry(self):
|
||||
plist = curds.PlaylistManager.lookup("Collection")
|
||||
curds.PlaylistManager.lookup("Libraries").lookup(test_album)
|
||||
plist = curds.playlist.Manager.lookup("Collection")
|
||||
curds.playlist.Manager.lookup("Libraries").lookup(test_album)
|
||||
curds.playlist.library.join()
|
||||
|
||||
gst.PauseEntry.set_text("3")
|
||||
|
@ -338,42 +338,42 @@ class TestGst(unittest.TestCase):
|
|||
self.assertEqual(self.audio.pause_time(), "About 0 seconds")
|
||||
|
||||
def test_gst_about_to_finish(self):
|
||||
plist = curds.PlaylistManager.lookup("Collection")
|
||||
curds.PlaylistManager.lookup("Libraries").lookup(test_album)
|
||||
plist = curds.playlist.Manager.lookup("Collection")
|
||||
curds.playlist.Manager.lookup("Libraries").lookup(test_album)
|
||||
curds.playlist.library.join()
|
||||
|
||||
self.audio.next()
|
||||
self.assertFalse(self.audio.have_next)
|
||||
self.assertEqual(curds.PlaylistManager.track, plist[0])
|
||||
self.assertEqual(curds.playlist.Manager.track, plist[0])
|
||||
|
||||
self.audio.pause_count = 2
|
||||
self.audio.about_to_finish(self.audio.playbin)
|
||||
self.assertEqual(curds.PlaylistManager.track, plist[1])
|
||||
self.assertEqual(curds.playlist.Manager.track, plist[1])
|
||||
self.assertTrue(self.audio.have_next)
|
||||
self.assertEqual(self.audio.pause_count, 1)
|
||||
|
||||
self.audio.about_to_finish(self.audio.playbin)
|
||||
self.assertEqual(curds.PlaylistManager.track, plist[1])
|
||||
self.assertEqual(curds.playlist.Manager.track, plist[1])
|
||||
self.assertTrue(self.audio.have_next)
|
||||
self.assertEqual(self.audio.pause_count, 1)
|
||||
|
||||
self.main_loop_until(Gst.State.PLAYING, next=True)
|
||||
self.assertFalse(self.audio.have_next)
|
||||
self.assertEqual(curds.PlaylistManager.track, plist[1])
|
||||
self.assertEqual(curds.playlist.Manager.track, plist[1])
|
||||
|
||||
self.audio.about_to_finish(self.audio.playbin)
|
||||
self.assertEqual(curds.PlaylistManager.track, plist[2])
|
||||
self.assertEqual(curds.playlist.Manager.track, plist[2])
|
||||
self.assertTrue(self.audio.have_next)
|
||||
self.assertEqual(self.audio.pause_count, 0)
|
||||
|
||||
self.audio.next()
|
||||
self.main_loop_until(Gst.State.PLAYING)
|
||||
self.assertEqual(curds.PlaylistManager.track, plist[2])
|
||||
self.assertEqual(curds.playlist.Manager.track, plist[2])
|
||||
self.assertFalse(self.audio.have_next)
|
||||
self.assertEqual(self.audio.pause_count, 0)
|
||||
|
||||
self.audio.about_to_finish(self.audio.playbin)
|
||||
self.assertEqual(curds.PlaylistManager.track, plist[2])
|
||||
self.assertEqual(curds.playlist.Manager.track, plist[2])
|
||||
self.assertFalse(self.audio.have_next)
|
||||
self.assertEqual(self.audio.pause_count, 0)
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ import time
|
|||
import unittest
|
||||
from gi.repository import Gtk, GObject, GLib
|
||||
|
||||
plist_mgr = curds.PlaylistManager
|
||||
plist_mgr = curds.playlist.Manager
|
||||
test_album1 = os.path.abspath("./trier/Test Library/Test Artist 02/Test Album 1")
|
||||
test_album2 = os.path.abspath("./trier/Test Library/Test Artist 02/Test Album 2")
|
||||
|
||||
|
@ -19,9 +19,9 @@ class TestManager(unittest.TestCase):
|
|||
curds.notify.register("node-inserted", manager.MgrModel.on_node_inserted)
|
||||
|
||||
self.model = manager.ManagerModel()
|
||||
self.artist = curds.PlaylistManager.lookup("Artists")
|
||||
self.decade = curds.PlaylistManager.lookup("Decades")
|
||||
self.genre = curds.PlaylistManager.lookup("Genres")
|
||||
self.artist = curds.playlist.Manager.lookup("Artists")
|
||||
self.decade = curds.playlist.Manager.lookup("Decades")
|
||||
self.genre = curds.playlist.Manager.lookup("Genres")
|
||||
curds.Track.lookup(os.path.join(test_album1, "01 - Test Track 01.ogg"))
|
||||
curds.Track.lookup(os.path.join(test_album2, "01 - Test Track 01.ogg"))
|
||||
|
||||
|
@ -196,8 +196,8 @@ class TestManager(unittest.TestCase):
|
|||
def test_model_iter_playlist(self):
|
||||
iter = Gtk.TreeIter()
|
||||
|
||||
self.assertEqual(self.model.iter_playlist(None), curds.PlaylistManager)
|
||||
self.assertEqual(self.model.iter_playlist(iter), curds.PlaylistManager)
|
||||
self.assertEqual(self.model.iter_playlist(None), plist_mgr)
|
||||
self.assertEqual(self.model.iter_playlist(iter), plist_mgr)
|
||||
|
||||
for i, node in enumerate(plist_mgr.children):
|
||||
iter.user_data = i + 1
|
||||
|
|
|
@ -23,7 +23,7 @@ class TestPlaylist(unittest.TestCase):
|
|||
|
||||
def test_model_init(self):
|
||||
model = playlist.PlaylistModel()
|
||||
self.assertEqual(model.playlist, curds.PlaylistManager.lookup("Collection"))
|
||||
self.assertEqual(model.playlist, curds.playlist.Manager.lookup("Collection"))
|
||||
self.assertEqual(model.get_n_columns(), 7)
|
||||
self.assertEqual(model.get_flags(), Gtk.TreeModelFlags.LIST_ONLY)
|
||||
for col in range(model.get_n_columns()):
|
||||
|
|
|
@ -6,16 +6,17 @@ import unittest
|
|||
|
||||
class TestEmmental(unittest.TestCase):
|
||||
def test_import_curds(self):
|
||||
self.assertEqual(curds.Album, curds.tags.Album)
|
||||
self.assertEqual(curds.DataFile, curds.data.DataFile)
|
||||
self.assertEqual(curds.LibraryPlaylist, curds.playlist.library.LibraryPlaylist)
|
||||
self.assertEqual(curds.Playlist, curds.playlist.playlist.Playlist)
|
||||
self.assertEqual(curds.PlaylistNode, curds.playlist.node.PlaylistNode)
|
||||
self.assertEqual(curds.ThreadQueue, curds.threadqueue.ThreadQueue)
|
||||
self.assertEqual(curds.Track, curds.tags.Track)
|
||||
self.assertEqual(curds.Album, curds.tags.Album)
|
||||
self.assertEqual(curds.DataFile, curds.data.DataFile)
|
||||
self.assertEqual(curds.ThreadQueue, curds.threadqueue.ThreadQueue)
|
||||
self.assertEqual(curds.Track, curds.tags.Track)
|
||||
|
||||
self.assertEqual(curds.Playlist, curds.playlist.playlist.Playlist)
|
||||
self.assertEqual(curds.playlist.Library, curds.playlist.library.LibraryPlaylist)
|
||||
self.assertEqual(curds.playlist.Node, curds.playlist.node.PlaylistNode)
|
||||
|
||||
self.assertIsNotNone(curds.notify)
|
||||
self.assertIsInstance(curds.PlaylistManager, curds.playlist.manager.PlaylistManager)
|
||||
self.assertIsInstance(curds.playlist.Manager, curds.playlist.manager.PlaylistManager)
|
||||
|
||||
def test_import_rind(self):
|
||||
self.assertEqual(rind.Application, rind.gtk.Application)
|
||||
|
@ -37,8 +38,8 @@ class TestEmmental(unittest.TestCase):
|
|||
curds.reset()
|
||||
self.assertEqual(curds.tags.tag_map, {})
|
||||
self.assertTrue(curds.playlist.library.library_thread.is_alive())
|
||||
self.assertEqual(len(curds.PlaylistManager.lookup("Collection")), 0)
|
||||
self.assertEqual(curds.PlaylistManager.lookup("Libraries").n_children(), 0)
|
||||
self.assertEqual(len(curds.playlist.Manager.lookup("Collection")), 0)
|
||||
self.assertEqual(curds.playlist.Manager.lookup("Libraries").n_children(), 0)
|
||||
|
||||
curds.stop()
|
||||
self.assertFalse(curds.playlist.library.library_thread.is_alive())
|
||||
|
|
Loading…
Reference in New Issue