'Return nonempty if the object probably exists in the bloom filter.
If this function returns false, the object definitely does not exist.
If it returns true, there is a small probability that it exists
anyway, so you\'ll have to check it some other way.'

def exists(self, sha):

    global _total_searches, _total_steps
    _total_searches += 1
    if (not self.map):
        return None
    (found, steps) = bloom_contains(self.map, str(sha), self.bits, self.k)
    _total_steps += steps
    return found
