Source code for pydarkstar.auction.cleaner
from ..tables.auctionhouse import AuctionHouse
from .worker import Worker
[docs]class Cleaner(Worker):
"""
Auction House cleaner.
:param db: database object
"""
def __init__(self, db, **kwargs):
super(Cleaner, self).__init__(db, **kwargs)
[docs] def clear(self, seller=None):
"""
Clear out auction house.
"""
# clear rows
if seller is None:
# perform query
with self.scopped_session() as session:
n = session.query(AuctionHouse).delete()
self.info('%d rows dropped', n)
# clear rows of seller
else:
# validate seller
with self.capture(fail=self.fail):
if not isinstance(seller, int) or not seller >= 0:
raise RuntimeError('invalid seller: %s', seller)
# perform query
with self.scopped_session() as session:
n = session.query(AuctionHouse).filter(
AuctionHouse.seller == seller,
).delete()
self.info('%d rows dropped', n)
if __name__ == '__main__':
pass