equal
deleted
inserted
replaced
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: |