2
3 """
4 Mix-in for sets. You must define __iter__, add, remove
5 """
6
9
11 for has_item in self:
12 if item == has_item:
13 return True
14 return False
15
17 for item in other:
18 if item not in self:
19 return False
20 return True
21
22 __le__ = issubset
23
25 for item in self:
26 if item not in other:
27 return False
28 return True
29
30 __ge__ = issuperset
31
34
36 new = self.copy()
37 new |= other
38 return new
39
42
44 new = self.copy()
45 new &= other
46 return new
47
50
52 new = self.copy()
53 new -= other
54 return new
55
58
60 new = self.copy()
61 new ^= other
62 return new
63
66
68 for item in other:
69 self.add(item)
70
71 __ior__ = update
72
74 for item in self:
75 if item not in other:
76 self.remove(item)
77
78 __iand__ = intersection_update
79
81 for item in other:
82 if item in self:
83 self.remove(item)
84
85 __isub__ = difference_update
86
88 for item in other:
89 if item in self:
90 self.remove(item)
91 else:
92 self.add(item)
93
94 __ixor__ = symmetric_difference_update
95
97 try:
98 self.remove(item)
99 except KeyError:
100 pass
101
103 for item in list(self):
104 self.remove(item)
105