other i functions
This commit is contained in:
@@ -50,6 +50,7 @@ class DAGSet(MutableSet[T]):
|
|||||||
self.on_add(v)
|
self.on_add(v)
|
||||||
|
|
||||||
def discard(self, v: T) -> None:
|
def discard(self, v: T) -> None:
|
||||||
|
if v in self._data:
|
||||||
self._data.discard(v)
|
self._data.discard(v)
|
||||||
if self.on_remove:
|
if self.on_remove:
|
||||||
self.on_remove(v)
|
self.on_remove(v)
|
||||||
@@ -69,22 +70,38 @@ class DAGSet(MutableSet[T]):
|
|||||||
self |= {other}
|
self |= {other}
|
||||||
return self
|
return self
|
||||||
|
|
||||||
# def __isub__(self, other: Iterable[T]) -> DAGSet[T]:
|
def __isub__(self, other: Iterable[T]) -> DAGSet[T]:
|
||||||
# # a -= b => remove those in other
|
# a -= b => remove those in other
|
||||||
# match other:
|
match other:
|
||||||
# case set():
|
case str():
|
||||||
# self -= other
|
other = {other}
|
||||||
# case _:
|
case Iterable():
|
||||||
# self -= set(other)
|
other = set(other)
|
||||||
# return self
|
case _:
|
||||||
|
other = {other}
|
||||||
|
return super().__isub__(other)
|
||||||
|
|
||||||
# def __iand__(self, other: Iterable[T]) -> DAGSet[T]:
|
def __iand__(self, other: Iterable[T]) -> DAGSet[T]:
|
||||||
# # a &= b => keep only those also in other
|
# a &= b => keep only those also in other
|
||||||
# return self
|
match other:
|
||||||
|
case str():
|
||||||
|
other = {other}
|
||||||
|
case Iterable():
|
||||||
|
other = set(other)
|
||||||
|
case _:
|
||||||
|
other = {other}
|
||||||
|
return super().__iand__(other)
|
||||||
|
|
||||||
# def __ixor__(self, other: Iterable[T]) -> DAGSet[T]:
|
def __ixor__(self, other: Iterable[T]) -> DAGSet[T]:
|
||||||
# # a ^= b => symmetric difference update
|
# a ^= b => symmetric difference update
|
||||||
# return self
|
match other:
|
||||||
|
case str():
|
||||||
|
other = {other}
|
||||||
|
case Iterable():
|
||||||
|
other = set(other)
|
||||||
|
case _:
|
||||||
|
other = {other}
|
||||||
|
return super().__ixor__(other)
|
||||||
|
|
||||||
# --- nice repr for debugging ---
|
# --- nice repr for debugging ---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user