X-Git-Url: http://git.tremily.us/?p=hooke.git;a=blobdiff_plain;f=hooke%2Fplaylist.py;h=352617ce90120c7c2afd6698300d61293535096d;hp=dfec6d72c28c65b3888f6b4d5265b43fee523d73;hb=643629fa189f2bc8d05a6d9903ccd22637bc563d;hpb=b90995fb4b6d8151df862d40edc8c369d7052cfa diff --git a/hooke/playlist.py b/hooke/playlist.py index dfec6d7..352617c 100644 --- a/hooke/playlist.py +++ b/hooke/playlist.py @@ -23,6 +23,7 @@ import copy import hashlib +import os import os.path import types import xml.dom.minidom @@ -157,6 +158,8 @@ class Playlist (NoteIndexList): class FilePlaylist (Playlist): + """A file-backed :class:`Playlist`. + """ version = '0.1' def __init__(self, drivers, name=None, path=None): @@ -240,7 +243,7 @@ class FilePlaylist (Playlist): Relative paths are interpreted relative to the location of the playlist file. - + Examples -------- @@ -362,11 +365,14 @@ class FilePlaylist (Playlist): self._digest = self.digest() for curve in self: curve.set_hooke(hooke) - - def save(self, path=None): + + def save(self, path=None, makedirs=True): """Saves the playlist in a XML file. """ self.set_path(path) + dirname = os.path.dirname(self.path) + if makedirs == True and not os.path.isdir(dirname): + os.makedirs(dirname) with open(self.path, 'w') as f: f.write(self.flatten()) self._digest = self.digest()