Source code for pydarkstar.auction.worker

from ..darkobject import DarkObject
from ..database import Database
import contextlib


[docs]class Worker(DarkObject): """ Base class for Auction House objects. :param db: database object """ def __init__(self, db, rollback=True, fail=False): super(Worker, self).__init__() assert isinstance(db, Database) self._rollback = bool(rollback) self._fail = bool(fail) self._db = db
[docs] def session(self, **kwargs): """ Create database session. """ return self._db.session(**kwargs)
[docs] @contextlib.contextmanager def scopped_session(self, **kwargs): """ Create scoped database session. """ _kwargs = dict(rollback=self.rollback, fail=self.fail) _kwargs.update(**kwargs) try: with self._db.scoped_session(**_kwargs) as session: yield session finally: pass
@property def db(self): return self._db @property def rollback(self): return self._rollback @rollback.setter def rollback(self, value): self._rollback = bool(value) @property def fail(self): return self._fail @fail.setter def fail(self, value): self._fail = bool(value)
if __name__ == '__main__': pass