__and__ = Set.__and__ __or__ = Set.__or__ __sub__ = Set.__sub__ __xor__ = Set.__xor__ issubset = __le__ issuperset = __ge__ union = __or__ intersection = __and__ difference = __sub__ symmetric_difference = __xor__ isdisjoint = Set.isdisjoint Set.register(PSet) Hashable.register(PSet) _EMPTY_PSET = PSet(pmap()) def pset(iterable=(), pre_size=8): """ Creates a persistent set from iterable. Optionally takes a sizing parameter equivalent to that used for :py:func:`pmap`. >>> s1 = pset([1, 2, 3, 2]) >>> s1 pset([1, 2, 3]) """ if not iterable:
__and__ = Set.__and__ __or__ = Set.__or__ __sub__ = Set.__sub__ __xor__ = Set.__xor__ issubset = __le__ issuperset = __ge__ union = __or__ intersection = __and__ difference = __sub__ symmetric_difference = __xor__ isdisjoint = Set.isdisjoint Set.register(PSet) Hashable.register(PSet) _EMPTY_PSET = PSet(pmap()) def pset(iterable=(), pre_size=8): """ Creates a persistent set from iterable. Optionally takes a sizing parameter equivalent to that used for :py:func:`pmap`. >>> s1 = pset([1, 2, 3, 2]) >>> s1 pset([1, 2, 3]) """ if not iterable:
x in self """ return _intervals(self.wrapped) def reversed_intervals(self): """Iterator over the reverse of intervals()""" return _reversed_intervals(self.wrapped) def __reversed__(self): for start, end in self.reversed_intervals(): for i in range(end - 1, start - 1, -1): yield i Sequence.register(IntSet) Set.register(IntSet) def _new_maybe_empty_interval(start, end): if end <= start: return () return _new_interval(start, end) _START = 0 _END = 1 _SIZE = 2 _PREFIX = 3 _MASK = 4 _LEFT = 5 _RIGHT = 6
) # Force scans to ensure __new__ is set correctly # FIXME: This shouldn't be necessary! NSArray.__new__ = nsarray_new NSMutableArray.__new__ = nsmutablearray_new NSMutableArray.alloc().init() # NSMutableSet.set() NSSet = lookUpClass("NSSet") NSMutableSet = lookUpClass("NSMutableSet") try: from collections import Set Set.register(NSSet) except: Set = (set, frozenset, NSSet) def nsset_isdisjoint(self, other): for item in self: if item in other: return False return True def nsset_union(self, *other): result = NSMutableSet() result.unionSet_(self) for val in other:
x in self """ return _intervals(self.wrapped) def reversed_intervals(self): """Iterator over the reverse of intervals()""" return _reversed_intervals(self.wrapped) def __reversed__(self): for start, end in self.reversed_intervals(): for i in range(end - 1, start - 1, -1): yield i Sequence.register(IntSet) Set.register(IntSet) def _new_maybe_empty_interval(start, end): if end <= start: return () return _new_interval(start, end) _START = 0 _END = 1 _SIZE = 2 _PREFIX = 3 _MASK = 4 _LEFT = 5 _RIGHT = 6
('__rmul__', nsarray_mul), ) # Force scans to ensure __new__ is set correctly # FIXME: This shouldn't be necessary! NSArray.__new__ = nsarray_new NSMutableArray.__new__ = nsmutablearray_new NSMutableArray.alloc().init() #NSMutableSet.set() NSSet = lookUpClass('NSSet') NSMutableSet = lookUpClass('NSMutableSet') try: from collections import Set Set.register(NSSet) except: Set = (set, frozenset, NSSet) def nsset_isdisjoint(self, other): for item in self: if item in other: return False return True def nsset_union(self, *other): result = NSMutableSet() result.unionSet_(self) for val in other: