|
|
- from collections import MutableSet
-
- class SetMixin(MutableSet):
-
- """
- Mix-in for sets. You must define __iter__, add, remove
- """
-
- def __len__(self):
- length = 0
- for item in self:
- length += 1
- return length
-
- def __contains__(self, item):
- for has_item in self:
- if item == has_item:
- return True
- return False
-
- issubset = MutableSet.__le__
- issuperset = MutableSet.__ge__
-
- union = MutableSet.__or__
- intersection = MutableSet.__and__
- difference = MutableSet.__sub__
- symmetric_difference = MutableSet.__xor__
-
- def copy(self):
- return set(self)
-
- def update(self, other):
- self |= other
-
- def intersection_update(self, other):
- self &= other
-
- def difference_update(self, other):
- self -= other
-
- def symmetric_difference_update(self, other):
- self ^= other
-
- def discard(self, item):
- try:
- self.remove(item)
- except KeyError:
- pass
-
- @classmethod
- def _from_iterable(cls, it):
- return set(it)
|