class FileBloomFilterDeduper(Deduper): def __init__(self, working_dir, capacity, false_positive_rate=0.01): super(FileBloomFilterDeduper, self).__init__(working_dir) sync_file = os.path.join(self.working_dir, BLOOM_FILETER_STATUS_FILENAME) self.filter = FileBloomFilter(sync_file, capacity, false_positive_rate=false_positive_rate) self.is_shutdown = False def exist(self, key): return self.filter.verify(key) def shutdown(self): if self.is_shutdown is True: return self.is_shutdown = True try: self.filter.sync() finally: self.filter.close() def __del__(self): self.shutdown()
class FileBloomFilterDeduper(Deduper): def __init__(self, sync_file, capacity): self.filter = FileBloomFilter(sync_file, capacity) def exist(self, key): return self.filter.verify(key) def __del__(self): try: self.filter.sync() finally: self.filter.close()