From e87ab3fefed00618992f5fe60a95ec9487e6303f Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Sat, 24 Aug 2002 07:33:06 +0000 Subject: Removed < <= > >= from the API. Implemented as comparisons of the underlying dictionaries, there were no reasonable use cases (lexicographic sorting of a list of sets is somewhat esoteric). Frees the operators for other uses (such as strict subset and superset comparisons). Updated documentation and test suite accordingly. --- Doc/lib/libsets.tex | 5 ++--- Lib/sets.py | 19 +------------------ Lib/test/test_sets.py | 4 ++-- 3 files changed, 5 insertions(+), 23 deletions(-) diff --git a/Doc/lib/libsets.tex b/Doc/lib/libsets.tex index 5f199a0..8ce62c889 100644 --- a/Doc/lib/libsets.tex +++ b/Doc/lib/libsets.tex @@ -100,9 +100,8 @@ the following operations: \end{tableii} In addition to the above operations, both \class{Set} and \class{ImmutableSet} -support set to set comparison operators based on the contents of their -internal dictionaries. Two sets are equal if and only if every element of -each set is contained in the other. +support set to set equality comparisons. Two sets are equal if and only if +every element of each set is contained in the other. The following table lists operations available in \class{ImmutableSet} but not found in \class{Set}: diff --git a/Lib/sets.py b/Lib/sets.py index 09d9918..d422591 100644 --- a/Lib/sets.py +++ b/Lib/sets.py @@ -102,16 +102,7 @@ class BaseSet(object): """ return self._data.iterkeys() - # Comparisons. Ordering is determined by the ordering of the - # underlying dicts (which is consistent though unpredictable). - - def __lt__(self, other): - self._binary_sanity_check(other) - return self._data < other._data - - def __le__(self, other): - self._binary_sanity_check(other) - return self._data <= other._data + # Equality comparisons using the underlying dicts def __eq__(self, other): self._binary_sanity_check(other) @@ -121,14 +112,6 @@ class BaseSet(object): self._binary_sanity_check(other) return self._data != other._data - def __gt__(self, other): - self._binary_sanity_check(other) - return self._data > other._data - - def __ge__(self, other): - self._binary_sanity_check(other) - return self._data >= other._data - # Copying operations def copy(self): diff --git a/Lib/test/test_sets.py b/Lib/test/test_sets.py index 9ff98a6..65b48e2 100644 --- a/Lib/test/test_sets.py +++ b/Lib/test/test_sets.py @@ -419,12 +419,12 @@ class TestOnlySetsInBinaryOps(unittest.TestCase): def test_cmp(self): try: - self.other < self.set + self.other == self.set assert 0, "Comparison with non-set on left" except TypeError: pass try: - self.set >= self.other + self.set != self.other assert 0, "Comparison with non-set on right" except TypeError: pass -- cgit v0.12