| class multidict: | |
| def __init__(self, elts=()): | |
| self.data = {} | |
| for key, value in elts: | |
| self[key] = value | |
| def __contains__(self, item): | |
| return item in self.data | |
| def __getitem__(self, item): | |
| return self.data[item] | |
| def __setitem__(self, key, value): | |
| if key in self.data: | |
| self.data[key].append(value) | |
| else: | |
| self.data[key] = [value] | |
| def items(self): | |
| return self.data.items() | |
| def values(self): | |
| return self.data.values() | |
| def keys(self): | |
| return self.data.keys() | |
| def __len__(self): | |
| return len(self.data) | |
| def get(self, key, default=None): | |
| return self.data.get(key, default) |