Browse Source

create BloomFilter class

master
wes 8 years ago
parent
commit
11ae799f82
  1. 22
      bfilter.py

22
bfilter.py

@ -46,18 +46,16 @@ int bfilter_get(bit_array_t *, const char*, int);
int getbit(bit_array_t *, int); int getbit(bit_array_t *, int);
""") """)
bfilter = lib.empty_bfilter(1900) class BloomFilter:
def __init__(self, m=40000, k=10):
self.m = m
self.k = k
k = 1 self.bitset = lib.empty_bfilter(m)
with open("./roadnottaken") as rnt: def add(self, key):
words = rnt.read().split(" ") lib.bfilter_set(self.bitset, key.encode("UTF-8"), self.k)
for word in words: return True
lib.bfilter_set(bfilter, word.encode("UTF-8"), k)
for word in words: def __getitem__(self, key):
lib.bfilter_get(bfilter, word.encode("UTF-8"), k) return lib.bfilter_get(self.bitset, key.encode("UTF-8"), self.k) == 1
print(lib.bfilter_get(bfilter, b"wes", k))
# lib.print_barray(bfilter)

Loading…
Cancel
Save