history mempool counter.
[electrum-server.git] / backends / libbitcoin / multimap.py
1 class MultiMap:
2
3     def __init__(self):
4         self.multi = {}
5
6     def __getitem__(self, key):
7         return self.multi[key]
8
9     def __setitem__(self, key, value):
10         if not self.multi.has_key(key):
11             self.multi[key] = []
12         self.multi[key].append(value)
13
14     def delete(self, key, value):
15         for i, item in enumerate(self.multi[key]):
16             if item == value:
17                 del self.multi[key][i]
18                 if not self.multi[key]:
19                     del self.multi[key]
20                 return
21         raise IndexError
22
23     def __repr__(self):
24         return repr(self.multi)
25     def __str__(self):
26         return str(self.multi)
27
28     def has_key(self, key):
29         return self.multi.has_key(key)
30
31 if __name__ == "__main__":
32     m = MultiMap()
33     m["foo"] = 1
34     m["foo"] = 1
35     m["bar"] = 2
36     print m["foo"]
37     m.delete("foo", 1)
38     m.delete("bar", 2)
39     print m.multi
40