def get_temporary_file(self, dir=SOUNDFOREST_CACHE_DIR, prefix='tmp', suffix=''): if not os.path.isdir(dir): try: os.makedirs(dir) except IOError, (ecode, emsg): raise SoundforestError('Error creating directory %s: %s' % (SOUNDFOREST_CACHE_DIR, emsg)) except OSError, (ecode, emsg): raise SoundforestError('Error creating directory %s: %s' % (SOUNDFOREST_CACHE_DIR, emsg))
def unregister_tree_type(self, name, description=''): existing = self.query(TreeTypeModel).filter( TreeTypeModel.name == name).first() if not existing: raise SoundforestError('Tree type was not registered: %s' % name) self.delete(existing)
def unregister_tree(self, path, description=''): """Unregister tree""" existing = self.query(TreeModel).filter(TreeModel.path == path).first() if not existing: raise SoundforestError('Tree was not registered: %s' % path) self.delete(existing)
def unregister_sync_target(self, name): existing = self.query(SyncTargetModel).filter( SyncTargetModel.name == name).first() if not existing: raise SoundforestError('Sync target was not registered: %s' % name) self.delete(existing)
def register_tree_type(self, name, description=''): existing = self.query(TreeTypeModel).filter( TreeTypeModel.name == name).first() if existing: raise SoundforestError('Tree type was already registered: %s' % name) self.add(TreeTypeModel(name=name, description=description))
def unregister_prefix(self, path): """Unregister a prefix""" existing = self.query(PrefixModel).filter( PrefixModel.path == path).first() if not existing: raise SoundforestError('Prefix was not registered: %s' % path) self.delete(existing)
def unregister_playlist_tree(self, path): existing = self.query(PlaylistTreeModel).filter( PlaylistTreeModel.path == path).first() if not existing: raise SoundforestError('Playlist source is not registered: %s' % path) self.delete(existing)
def register_playlist_tree(self, path, name='Playlists'): existing = self.query(PlaylistTreeModel).filter( PlaylistTreeModel.path == path).first() if existing: raise SoundforestError( 'Playlist source is already registered: %s' % path) self.add(PlaylistTreeModel(path=path, name=name))
def __format_item__(self, key, value): if key in FIELD_CONVERT_MAP.keys(): try: value = FIELD_CONVERT_MAP[key](value) except ValueError: raise SoundforestError( 'Invalid data in configuration for field %s' % key) return value
def unregister_tester(self, session, command): existing = session.query(TesterModel).filter( TesterModel.codec == self, TesterModel.command == command).first() if not existing: raise SoundforestError('File tester was not registered: %s' % command) session.delete(existing) session.commit()
def register_tester(self, session, command): existing = session.query(TesterModel).filter( TesterModel.codec == self, TesterModel.command == command).first() if existing: raise SoundforestError('File tester already registered: %s' % command) session.add(TesterModel(codec=self, command=command)) session.commit()
def unregister_extension(self, session, extension): existing = session.query(ExtensionModel).filter( ExtensionModel.extension == extension).first() if not existing: raise SoundforestError('ExtensionModel was not registered: %s' % extension) session.delete(existing) session.commit()
def register_extension(self, session, extension): existing = session.query(ExtensionModel).filter( ExtensionModel.extension == extension).first() if existing: raise SoundforestError('ExtensionModel already registered: %s' % extension) session.add(ExtensionModel(codec=self, extension=extension)) session.commit()
def register_tree(self, path, description='', tree_type='songs'): """Register tree""" if isinstance(path, str): path = unicode(path, 'utf-8') existing = self.query(TreeModel).filter(TreeModel.path == path).first() if existing: raise SoundforestError('Tree was already registered: %s' % path) tt = self.get_tree_type(tree_type) self.add(TreeModel(path=path, description=description, type=tt))
def register_prefix(self, path): """Register a prefix""" if isinstance(path, str): path = unicode(path, 'utf-8') existing = self.query(PrefixModel).filter( PrefixModel.path == path).first() if existing: raise SoundforestError('Prefix was already registered: %s' % path) self.add(PrefixModel(path=path))
def __init__(self, path=None, engine=None, debug=False): """ By default, use sqlite databases in file given by path. """ if engine is None: if path is None: path = DEFAULT_DATABASE config_dir = os.path.dirname(path) if not os.path.isdir(config_dir): try: os.makedirs(config_dir) except OSError, (ecode, emsg): raise SoundforestError('Error creating directory: %s' % config_dir) engine = create_engine('sqlite:///%s' % path, encoding='utf-8', echo=debug)
def register_sync_target(self, name, synctype, src, dst, flags=None, defaults=False): """Register a sync target""" existing = self.query(SyncTargetModel).filter( SyncTargetModel.name == name).first() if existing: raise SoundforestError('Sync target was already registerd: %s' % name) target = SyncTargetModel(name=name, type=synctype, src=src, dst=dst, flags=flags, defaults=defaults) self.add(target) return target.as_dict()