Viewing file: _setmixin.py (1.16 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
try: from collections.abc import MutableSet except ImportError: 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)
|