Пример #1
0
class CachedQueryMutator(object):
    def __init__(self):
        self.mutator = Mutator(CONNECTION_POOL)
        self.to_prune = set()

    def __enter__(self):
        self.mutator.__enter__()
        return self

    def __exit__(self, type, value, traceback):
        self.mutator.__exit__(type, value, traceback)

        if self.to_prune:
            CachedQuery._prune_multi(self.to_prune)

    def insert(self, query, things):
        if not things:
            return

        query._insert(self.mutator, things)

        if (random.random() / len(things)) < PRUNE_CHANCE:
            self.to_prune.add(query)

    def delete(self, query, things):
        if not things:
            return

        query._delete(self.mutator, things)