Source code for lxml.html._setmixin

try:
    from collections.abc import MutableSet
except ImportError:
    from collections.abc import MutableSet


[docs] 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__
[docs] def copy(self): return set(self)
[docs] def update(self, other): self |= other
[docs] def intersection_update(self, other): self &= other
[docs] def difference_update(self, other): self -= other
[docs] def symmetric_difference_update(self, other): self ^= other
[docs] def discard(self, item): try: self.remove(item) except KeyError: pass
[docs] @classmethod def _from_iterable(cls, it): return set(it)