| 81 | |
| 82 | |
| 83 | class TrackerSet(set): |
| 84 | def __init__(self, *args, casing=None, **kwargs): |
| 85 | """ A Custom Set that changes the casing of it's keys |
| 86 | |
| 87 | :param func casing: a function to convert into specified case |
| 88 | """ |
| 89 | self.cc = casing |
| 90 | super().__init__(*args, **kwargs) |
| 91 | |
| 92 | def add(self, value): |
| 93 | value = self.cc(value) |
| 94 | super().add(value) |
| 95 | |
| 96 | def remove(self, value): |
| 97 | value = self.cc(value) |
| 98 | super().remove(value) |
| 99 | |
| 100 | |
| 101 | class Recipient: |