view backend/sqlalchemy/SqlAlchemyBackend.py @ 121:510a5d00e98a backend

re-enabled AddFeed - does not work yet
author Dirk Olmes <dirk@xanthippe.ping.de>
date Sun, 21 Aug 2011 04:17:13 +0200
parents 04a730f9d07d
children f5afe0c1f4d2
line wrap: on
line source


from Preferences import Preferences
from FeedUpdater import FeedUpdater
import Database
import logging
import util
import FeedList

class SqlAlchemyBackend(object):
    '''
    Backend that uses sqlalchemy for persistence
    '''

    def __init__(self):
        self._initLogging()
        self.session = Database.createSession()
        self.prefs = Preferences(self.session)
        self.updater = None

    def _initLogging(self):
        logging.getLogger("sqlalchemy.orm").setLevel(logging.WARN)

        sqlalchemyLogLevel = logging.ERROR
        if util.databaseLoggingEnabled():
            sqlalchemyLogLevel = logging.INFO
        logging.getLogger("sqlalchemy").setLevel(sqlalchemyLogLevel)

    def preferences(self):
        return self.prefs

    def feedUpdater(self):
        if self.updater is None:
            self.updater = FeedUpdater(self.session)
        return self.updater

    def getFeeds(self):
        return FeedList.getFeeds(self.session)

    def dispose(self):
        # save all uncommitted state, just in case
        self.session.commit()