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.
This commit is contained in:
Raymond Hettinger 2002-08-24 07:33:06 +00:00
parent bf935fde15
commit e87ab3fefe
3 changed files with 5 additions and 23 deletions

View File

@ -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}:

View File

@ -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):

View File

@ -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