code: def _hashes(self, item):
          
          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
docs: 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.