blob: eebcd3a07ac6cea41d21dfd78f9e2160261e8bd8 [file] [log] [blame]
import sqlalchemy
import sqlalchemy.orm
class Database(object):
"""
The base engine encapsulating access to a particular database.
"""
# Get a cached database instance.
@classmethod
def get_database(cls, path):
db = cls._databases.get(path)
if db is None:
cls._databases[path] = db = Database(path)
return db
_databases = {}
def __init__(self, db_path):
self.engine = sqlalchemy.create_engine("sqlite:///" + db_path)
self.session_factory = sqlalchemy.orm.sessionmaker(bind=self.engine)