Support for augmented assignment in the UserList, UserDict, UserString and
rfc822 (Addresslist) modules. Also a preliminary testcase for augmented
assignment, which should actually be merged with the test_class testcase I
added last week.
diff --git a/Lib/rfc822.py b/Lib/rfc822.py
index 6473149..42aac1c 100644
--- a/Lib/rfc822.py
+++ b/Lib/rfc822.py
@@ -763,6 +763,13 @@
newaddr.addresslist.append(x)
return newaddr
+ def __iadd__(self, other):
+ # Set union, in-place
+ for x in other.addresslist:
+ if not x in self.addresslist:
+ self.addresslist.append(x)
+ return self
+
def __sub__(self, other):
# Set difference
newaddr = AddressList(None)
@@ -771,6 +778,13 @@
newaddr.addresslist.append(x)
return newaddr
+ def __isub__(self, other):
+ # Set difference, in-place
+ for x in other.addresslist:
+ if x in self.addresslist:
+ self.addresslist.remove(x)
+ return self
+
def __getitem__(self, index):
# Make indexing, slices, and 'in' work
return self.addresslist[index]