iro/model/utils.py
branchdevel
changeset 261 6b28b135a919
parent 259 5d9c24c2cb8d
parent 260 4a03119a98c1
child 262 212a69cc4d44
equal deleted inserted replaced
259:5d9c24c2cb8d 261:6b28b135a919
     1 from sqlalchemy.orm import sessionmaker
     1 from sqlalchemy.orm import sessionmaker
     2 
     2 
     3 from .session import IroSession
       
     4 class WithSession(object):
     3 class WithSession(object):
     5     '''a with statement for a database session connection.'''
     4     '''a with statement for a database session connection.'''
     6     def __init__(self, engine, autocommit=False):
     5     def __init__(self, engine, autocommit=False):
     7         """
     6         """
     8         :param `sqlalchemy.engine.base.Engine` engine: a valid sqlalchemy engine object (normally created via :func:`sqlalchemy.create_engine`).
     7         :param `sqlalchemy.engine.base.Engine` engine: a valid sqlalchemy engine object (normally created via :func:`sqlalchemy.create_engine`).
    12         """
    11         """
    13         self.engine = engine
    12         self.engine = engine
    14         self.autocommit=autocommit
    13         self.autocommit=autocommit
    15     
    14     
    16     def __enter__(self):
    15     def __enter__(self):
    17         self.session = sessionmaker(bind=self.engine, class_ = IroSession)()
       
    18         """returns a vaild session object"""
    16         """returns a vaild session object"""
    19         self.session = sessionmaker(bind=self.engine)()
    17         self.session = sessionmaker(bind=self.engine)()
    20         return self.session
    18         return self.session
    21     
    19     
    22     def __exit__(self,exc_type, exc_value, traceback):
    20     def __exit__(self,exc_type, exc_value, traceback):