| author | Sandro Knauß <knauss@netzguerilla.net> |
| Mon, 05 Mar 2012 23:52:29 +0100 | |
| branch | devel |
| changeset 218 | 91f87ad13540 |
| parent 151 | ff8448fb07e7 |
| child 258 | 0a5eb5aac0be |
| permissions | -rw-r--r-- |
| 117 | 1 |
from decorator import decorator |
|
151
ff8448fb07e7
runInDBThread and dbdefer can now handle if a valid session is an arg
Sandro Knauß <knauss@netzguerilla.net>
parents:
132
diff
changeset
|
2 |
import sqlalchemy |
| 117 | 3 |
class Data: |
4 |
def __init__(self): |
|
|
132
80a334e2aae7
moving pool to controller
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
5 |
self.pool = None |
| 117 | 6 |
|
7 |
data = Data() |
|
8 |
#a valid dbDefer decorator |
|
9 |
||
|
132
80a334e2aae7
moving pool to controller
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
10 |
def setPool(pool): |
|
80a334e2aae7
moving pool to controller
Sandro Knauß <knauss@netzguerilla.net>
parents:
117
diff
changeset
|
11 |
data.pool = pool |
| 117 | 12 |
|
13 |
@decorator |
|
14 |
def runInDBPool(f,*args,**kwargs): |
|
15 |
"""Decorator to run DB queries in Twisted's thread pool""" |
|
|
151
ff8448fb07e7
runInDBThread and dbdefer can now handle if a valid session is an arg
Sandro Knauß <knauss@netzguerilla.net>
parents:
132
diff
changeset
|
16 |
if isinstance(args[-1],sqlalchemy.orm.session.Session): |
|
ff8448fb07e7
runInDBThread and dbdefer can now handle if a valid session is an arg
Sandro Knauß <knauss@netzguerilla.net>
parents:
132
diff
changeset
|
17 |
return f(*args,**kwargs) |
|
ff8448fb07e7
runInDBThread and dbdefer can now handle if a valid session is an arg
Sandro Knauß <knauss@netzguerilla.net>
parents:
132
diff
changeset
|
18 |
else: |
|
ff8448fb07e7
runInDBThread and dbdefer can now handle if a valid session is an arg
Sandro Knauß <knauss@netzguerilla.net>
parents:
132
diff
changeset
|
19 |
return data.pool.run(f, *args, **kwargs) |
| 117 | 20 |
|
21 |