/usr/lib/python3/dist-packages/lxml/html/_setmixin.py is in python3-lxml 3.3.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | class SetMixin(object):
"""
Mix-in for sets. You must define __iter__, add, remove
"""
def __len__(self):
length = 0
for item in self:
length += 1
return length
def __contains__(self, item):
for has_item in self:
if item == has_item:
return True
return False
def issubset(self, other):
for item in other:
if item not in self:
return False
return True
__le__ = issubset
def issuperset(self, other):
for item in self:
if item not in other:
return False
return True
__ge__ = issuperset
def union(self, other):
return self | other
def __or__(self, other):
new = self.copy()
new |= other
return new
def intersection(self, other):
return self & other
def __and__(self, other):
new = self.copy()
new &= other
return new
def difference(self, other):
return self - other
def __sub__(self, other):
new = self.copy()
new -= other
return new
def symmetric_difference(self, other):
return self ^ other
def __xor__(self, other):
new = self.copy()
new ^= other
return new
def copy(self):
return set(self)
def update(self, other):
for item in other:
self.add(item)
def __ior__(self, other):
self.update(other)
return self
def intersection_update(self, other):
for item in self:
if item not in other:
self.remove(item)
def __iand__(self, other):
self.intersection_update(other)
return self
def difference_update(self, other):
for item in other:
if item in self:
self.remove(item)
def __isub__(self, other):
self.difference_update(other)
return self
def symmetric_difference_update(self, other):
for item in other:
if item in self:
self.remove(item)
else:
self.add(item)
def __ixor__(self, other):
self.symmetric_difference_update(other)
return self
def discard(self, item):
try:
self.remove(item)
except KeyError:
pass
def clear(self):
for item in list(self):
self.remove(item)
|