def _hashes(self, item):
        """
        To create the hash functions we use the SHA-1 hash of the
        string and chop that up into 20 bit values and then
        mod down to the length of the Bloom filter.
        """
        item = self._binary(item)

        m = hashlib.sha1()
        m.update(item)
        digits = m.hexdigest()

        # Add another 160 bits for every 8 (20-bit long) hashes we need
        for i in range(int(self.num_hashes // 8)):
            m.update(self._binary(str(i)))
            digits += m.hexdigest()

        hashes = [int(digits[i*5:i*5+5], 16) % self.hashbits for i in range(self.num_hashes)]
        return hashes
To create the hash functions we use the SHA-1 hash of the
        string and chop that up into 20 bit values and then
        mod down to the length of the Bloom filter.