iro/controller/database.py
branchdevel
changeset 107 f11520354165
parent 106 d2992f011930
child 108 cadc01b2bdc0
--- a/iro/controller/database.py	Sun Jan 22 12:26:00 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-from sqlalchemy import create_engine, pool
-
-from sqlalchemy.orm import sessionmaker
-
-
-from twisted.internet import threads
-
-from ..model.schema import Base
-
-engine = create_engine('sqlite:///:memory:', echo=True)
-
-def createDatabase():
-    Base.metadata.create_all(engine)
-
-Session = sessionmaker(bind=engine)
-
-def toThread(f):
-    def wrapper(*args, **kwargs):
-        return threads.deferToThread(f, *args, **kwargs)
-    return wrapper
-
-
-class WithSession():
-    def __init__(self,autocommit=False):
-        self.autocommit=autocommit
-    
-    def __enter__(self):
-        self.conn = engine.connect()
-        self.session = Session(bind=self.conn)
-        return self.session
-    
-    def __exit__(self,exc_type, exc_value, traceback):
-        if exc_type is None:
-            if self.autocommit:
-                self.session.commit()
-        else:
-            self.session.rollback()
-        self.session.close()
-        self.conn.close()
-
-class DBDefer(object):
-    def __init__(self, dsn, poolclass = pool.SingletonThreadPool, *args, **kargs):
-        self.engine = create_engine(dsn, poolclass=poolclass, *args, **kargs)
-
-    def __call__(self, func):
-        @toThread
-        def wrapper(*args, **kwargs):
-            session = sessionmaker(bind=self.engine)()
-            try:
-                return func(*args, session=session, **kwargs)
-            except:
-                session.rollback()
-                raise
-            finally:
-                session.close()
-        return wrapper