pep8 and utility cleanup
[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 key not in self.multi:
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
26     def __str__(self):
27         return str(self.multi)
28
29     def has_key(self, key):
30         return key in self.multi
31
32
33 if __name__ == "__main__":
34     m = MultiMap()
35     m["foo"] = 1
36     m["foo"] = 1
37     m["bar"] = 2
38     print m["foo"]
39     m.delete("foo", 1)
40     m.delete("bar", 2)
41     print m.multi