iro/model/utils.py
branchdevel
changeset 259 5d9c24c2cb8d
parent 122 b55754aa4f96
child 261 6b28b135a919
equal deleted inserted replaced
258:0a5eb5aac0be 259:5d9c24c2cb8d
     1 from sqlalchemy.orm import sessionmaker
     1 from sqlalchemy.orm import sessionmaker
     2 
     2 
     3 from .session import IroSession
     3 from .session import IroSession
       
     4 class WithSession(object):
       
     5     '''a with statement for a database session connection.'''
       
     6     def __init__(self, engine, autocommit=False):
       
     7         """
       
     8         :param `sqlalchemy.engine.base.Engine` engine: a valid sqlalchemy engine object (normally created via :func:`sqlalchemy.create_engine`).
       
     9         :param boolean autocommit: autocommit after running the function.
     4 
    10 
     5 class WithSession(object):
    11         .. automethod:: __enter__
     6     '''a with statement for a database session connection'''
    12         """
     7     def __init__(self, engine, autocommit=False):
       
     8         self.engine = engine
    13         self.engine = engine
     9         self.autocommit=autocommit
    14         self.autocommit=autocommit
    10     
    15     
    11     def __enter__(self):
    16     def __enter__(self):
    12         self.session = sessionmaker(bind=self.engine, class_ = IroSession)()
    17         self.session = sessionmaker(bind=self.engine, class_ = IroSession)()
       
    18         """returns a vaild session object"""
       
    19         self.session = sessionmaker(bind=self.engine)()
    13         return self.session
    20         return self.session
    14     
    21     
    15     def __exit__(self,exc_type, exc_value, traceback):
    22     def __exit__(self,exc_type, exc_value, traceback):
    16         if exc_type is None:
    23         if exc_type is None:
    17             if self.autocommit:
    24             if self.autocommit: