Explorar el Código

Message on type error for hasing. Do not check isinstance long, because long does not exist in Python 3.x

dstromberg hace 13 años
padre
commit
4003b4047f
Se han modificado 1 ficheros con 4 adiciones y 2 borrados
  1. 4 2
      bloom_filter_mod.py

+ 4 - 2
bloom_filter_mod.py

@@ -14,6 +14,7 @@ import math
 import array
 import random
 #mport hashlib
+#mport numbers
 
 # In the literature:
 # k is the number of probes - we call this num_probes_k
@@ -60,7 +61,8 @@ def get_index_bitmask_lin_comb(bloom_filter, key):
 
 	# This one assumes key is either bytes or str (or other list of integers)
 
-	if isinstance(key, int) or isinstance(key, long):
+	# I'd love to check for long too, but that doesn't exist in 3.2, and 2.5 doesn't have the numbers.Integral base type
+	if isinstance(key, int):
 		int_list = []
 		temp = key
 		while temp:
@@ -71,7 +73,7 @@ def get_index_bitmask_lin_comb(bloom_filter, key):
 	elif isinstance(key[0], str):
 		int_list = [ ord(char) for char in key ]
 	else:
-		raise TypeError
+		raise TypeError('Sorry, I do not know how to hash this type')
 
 	hash_value1 = hash1(int_list)
 	hash_value2 = hash2(int_list)