On Thu, Oct 16, 2008 at 12:07 AM, Terry Reedy <tjreedy@udel.edu> wrote:
Guido van Rossum wrote:
On Wed, Oct 15, 2008 at 12:12 PM, Terry Reedy <tjreedy@udel.edu> wrote:

interpret the above as saying that we have already done as much as is
sensible (except for changing the docs).

I think we've done as much as I am comfortable with doing *by default*
(i.e. when inheriting from object). The rest should be provided via
mix-ins. But even those mix-ins should wait until 3.1.

After posting and then thinking some more, I came to the same conclusion, that anything more should be by explicit request. 

Can you expand on how you reached this conclusion ? For one thing, total orderings are far more common, so that alone is a strong reason to have them by default, even if it made things harder for partial orderings. Even for those though, the current behavior is not necessarily better:

class SetlikeThingie(object):
    def __init__(self, *items):
        self.items = set(items)
    def __eq__(self, other):
        return self.items == other.items
    def __ne__(self, other):
        return self.items != other.items
    def __lt__(self, other):
        return self!=other and self.items.issubset(other.items)

>>> a = SetlikeThingie(1,2,3)
>>> b = SetlikeThingie(2,3,4)
>>> assert (a<b or a==b) == (a<=b)
AssertionError

George