From bfdd295ac5462fbacbf72cb50dbed8384dab225a Mon Sep 17 00:00:00 2001 From: John Lancaster <32917998+jsl12@users.noreply.github.com> Date: Sat, 21 Feb 2026 00:01:35 -0600 Subject: [PATCH] iadd --- src/daglib/set.py | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/daglib/set.py b/src/daglib/set.py index fce1cbd..954c931 100644 --- a/src/daglib/set.py +++ b/src/daglib/set.py @@ -56,16 +56,26 @@ class DAGSet(MutableSet[T]): # --- in-place operator support --- - # def __ior__(self, other: Iterable[T]) -> DAGSet[T]: - # # a |= b => add everything in other - # return self - - # def __iadd__(self, other: Iterable[T]) -> DAGSet[T]: - # # a += b => update/extend - # return self + def __iadd__(self, other: Iterable[T]) -> DAGSet[T]: + # a += b => update/extend + match other: + case set(): + self |= other + case str(): + self |= {other} + case Iterable(): + self |= set(other) + case _: + self |= {other} + return self # def __isub__(self, other: Iterable[T]) -> DAGSet[T]: # # a -= b => remove those in other + # match other: + # case set(): + # self -= other + # case _: + # self -= set(other) # return self # def __iand__(self, other: Iterable[T]) -> DAGSet[T]: