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:
Anna Schumaker 2019-04-22 09:30:45 -04:00
parent c834359cdb
commit b9ad790abf
10 changed files with 81 additions and 77 deletions

View File

@ -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():

View File

@ -1,3 +1,7 @@
# Copyright 2019 (c) Anna Schumaker.
from . import playlist
from . import manager
Library = library.LibraryPlaylist
Node = node.PlaylistNode
Manager = manager.Manager

View File

@ -76,3 +76,6 @@ class PlaylistManager(node.PlaylistNode):
self.current.insert(0, plist)
self.current_changed(old)
Manager = PlaylistManager()

View File

@ -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()

View File

@ -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")

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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()):

View File

@ -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())