1
2
3
4
5
6 import warnings
7 warnings.warn("The module Bio.Pathway.Rep.HashSet is now deprecated, "
8 "and will be removed in a future release of Biopython. "
9 "Use Python's built in set object instead.",
10 DeprecationWarning)
11
12
14 """A set abstraction supporting the basic set operations.
15
16 This implementation requires that all elements are hashable,
17 which implies that elements must not mutate while contained.
18 """
20 """Initializes a new HashSet."""
21 self._elements = {}
22 for e in elements:
23 self._elements[e] = 1
24
26 """Returns true iff this set contains element."""
27 return element in self._elements
28
30 """Returns true iff x == y for all elements in self, set."""
31 if not isinstance(set, HashSet):
32 return 0
33 for x in self.list():
34 if not (x in set):
35 return 0
36 for x in set.list():
37 if not (x in self):
38 return 0
39 return 1
40
42 """Returns the number of elements in this set."""
43 return len(self._elements)
44
46 """Returns true iff this set is not equal to set."""
47 return not self.__eq__(set)
48
50 """Returns a debugging string representation of this set."""
51 return "HashSet(" + repr(self.list()) + ")"
52
54 """Returns a string representation of this set."""
55 return "{" + ",".join(map(str, self.list())) + "}"
56
57
58
59 - def add(self, element):
60 """Adds element to this set."""
61 self._elements[element] = 1
62
64 """Returns true iff this set contains element."""
65 return self.__contains__(element)
66
68 """Removes element from this set."""
69 try:
70 del self._elements[element]
71 except KeyError:
72 pass
73
75 """Returns the elements of this set in a list."""
76 return self._elements.keys()
77
78
79
81 """Returns true iff this set is empty."""
82 return len(self._elements) == 0
83
84
85
87 """Returns the union of this set and s."""
88 return HashSet(self.list() + s.list())
89
91 """Returns the intersection of this set and s."""
92 return HashSet(filter(lambda e,s=s: e in s, self.list()))
93
95 """Returns the difference of this set and s."""
96 return HashSet(filter(lambda e,s=s: e not in s, self.list()))
97
99 """Returns the Cartesian product of this set and s."""
100 p = []
101 for i in self.list():
102 for j in s.list():
103 p.append((i,j))
104 return HashSet(p)
105