iro/model/pool.py
author Sandro Knauß <knauss@netzguerilla.net>
Mon, 27 Feb 2012 22:21:22 +0100
branchdevel
changeset 193 e5ec4bfa4929
parent 151 ff8448fb07e7
child 258 0a5eb5aac0be
permissions -rw-r--r--
adding allowString and allowList to vEmail to make sure, if a list is allowd or a string.

from decorator import decorator
import sqlalchemy
class Data:
    def __init__(self):
        self.pool =  None

data = Data()
#a valid dbDefer decorator

def setPool(pool): 
    data.pool = pool

@decorator
def runInDBPool(f,*args,**kwargs):
    """Decorator to run DB queries in Twisted's thread pool"""
    if isinstance(args[-1],sqlalchemy.orm.session.Session):
        return f(*args,**kwargs)
    else:
        return data.pool.run(f, *args, **kwargs)