This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author mark.dickinson
Recipients georg.brandl, mark.dickinson, rhettinger, terry.reedy
Date 2008-10-10.08:56:14
SpamBayes Score 6.048384e-12
Marked as misclassified No
Message-id <1223629056.86.0.678536778673.issue4090@psf.upfronthosting.co.za>
In-reply-to
Content
[Raymond]
> I don't think this is necessary.

I disagree.  I think some sort of warning is necessary;  it doesn't need
to be particularly prominent, but it should be there.

Almost *all* expectations are broken for sets in the absence of
transitivity of equality for the set elements.  Consider the following
(Python 2.6) snippet involving a set s:

>>> s.remove(17)
>>> 17 in s
True

An element is removed from a set s, and yet it's still present after the
removal!  Doesn't this deserve an explanation somewhere?

In case you haven't guessed, here's what s is:

>>> s
set([Fraction(17, 1), Decimal('17')])

Regardless of whether one wants to call this a bug or not, I think it's
sufficiently unintuitive and surprising that it should be documented.

Terry's suggestion and wordings for the reference and library warnings
look good to me.
History
Date User Action Args
2008-10-10 08:57:37mark.dickinsonsetrecipients: + mark.dickinson, georg.brandl, rhettinger, terry.reedy
2008-10-10 08:57:36mark.dickinsonsetmessageid: <1223629056.86.0.678536778673.issue4090@psf.upfronthosting.co.za>
2008-10-10 08:56:15mark.dickinsonlinkissue4090 messages
2008-10-10 08:56:14mark.dickinsoncreate