X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=hooke%2Fplaylist.py;h=8d889a3da3cd91c9eebb54eba745cc7dc198ea16;hb=09dfd027d5fc3ed0f9f262abab1fdb99508adc7e;hp=8444c9aac883f151e274a9810e7ef7ee4976326f;hpb=20a27a8810f5bdaa3c16ddf3af5d729f8d679f4b;p=hooke.git diff --git a/hooke/playlist.py b/hooke/playlist.py index 8444c9a..8d889a3 100644 --- a/hooke/playlist.py +++ b/hooke/playlist.py @@ -45,7 +45,13 @@ class NoteIndexList (list): self._index = 0 def __str__(self): - return '<%s %s>' % (self.__class__.__name__, self.name) + return str(self.__unicode__()) + + def __unicode__(self): + return u'<%s %s>' % (self.__class__.__name__, self.name) + + def __repr__(self): + return self.__str__() def _setup_item(self, item): """Perform any required initialization before returning an item. @@ -113,8 +119,6 @@ class Playlist (NoteIndexList): self._max_loaded = 100 # curves to hold in memory simultaneously. def append_curve_by_path(self, path, info=None, identify=True): - if self.path != None: - path = os.path.join(os.path.dirname(self.path), path) path = os.path.normpath(path) c = curve.Curve(path, info=info) if identify == True: @@ -140,6 +144,7 @@ class FilePlaylist (Playlist): def __init__(self, drivers, name=None, path=None): super(FilePlaylist, self).__init__(drivers, name) + self.path = None self.set_path(path) self._digest = None self._ignored_keys = [ @@ -154,6 +159,11 @@ class FilePlaylist (Playlist): if self.name == None: self.name = os.path.basename(path) + def append_curve_by_path(self, path, *args, **kwargs): + if self.path != None: + path = os.path.join(os.path.dirname(self.path), path) + super(FilePlaylist, self).append_curve_by_path(path, *args, **kwargs) + def is_saved(self): return self.digest() == self._digest @@ -338,6 +348,6 @@ class FilePlaylist (Playlist): """Saves the playlist in a XML file. """ self.set_path(path) - f = file(self.path, 'w') - f.write(self.flatten()) - f.close() + with open(self.path, 'w') as f: + f.write(self.flatten()) + self._digest = self.digest()