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.

classification
Title: Replace unicode.__eq__ exceptions with a warning
Type: Stage:
Components: Interpreter Core Versions: Python 2.5
process
Status: closed Resolution: accepted
Dependencies: Superseder:
Assigned To: lemburg Nosy List: arigo, lemburg, nnorwitz
Priority: critical Keywords: patch

Created on 2006-08-11 21:09 by lemburg, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
Python-Patch-2006-08-11-225957.patch lemburg, 2006-08-11 21:09
Messages (4)
msg50872 - (view) Author: Marc-Andre Lemburg (lemburg) * (Python committer) Date: 2006-08-11 21:09
The attached patch is a first version of the change
discussed on python-dev this and last week:

It replaces UnicodeDecodeErrors raised during == and !=
compares of Unicode and other objects with a new
UnicodeWarning.

All other comparisons continue to raise exceptions.
Exceptions other than UnicodeDecodeErrors are also left
untouched.

The documentation part of the patch is still
incomplete. Suggestions are welcome.

Due to the change to only the == and != comparison
operators, Unicode objects had to grow an
implementation for rich comparisons (which now replaces
the old tp_compare slot).

Tests all pass.

Aside:

During testing I found that the warning registry
defaults to only issueing warnings once per module and
line number. I suppose this is enough for debugging
code, but it feels weird when trying things in the
interactive session, as you only get the warnings once
in that context (and for the whole session), regardless
of the fact that you're entereing new lines of code all
the time.

Maybe something to change for Python 2.6.
msg50873 - (view) Author: Armin Rigo (arigo) * (Python committer) Date: 2006-08-12 10:50
Logged In: YES 
user_id=4771

Getting rid of the special case for unicodes in
default_3way_compare() - this alone would give the
whole patch a +1 from me :-)  Looks good to me.
msg50874 - (view) Author: Neal Norwitz (nnorwitz) * (Python committer) Date: 2006-08-13 00:02
Logged In: YES 
user_id=33168

I don't know the intricasies of rich comparisons, but this
looks pretty good.  There are some typos: silcence (drop the
first c, comment in unicodeobject.c).  I think the doc
(Doc/lib/libexcs.tex) is missing an \end{excdesc}.  In
Misc/NEWS, "can be then filtered" is awkward, drop the
'then'.  Misc/NEWS should mention the new public API
PyUnicode_RichCompare (and point out that UnicodeWarning is
new).

Please check this in ASAP and report to python-dev.  That
way if there are any issues, we can try to resolve them
quickly.  People are more likely to review the checkin the
patch on SF.

Improving warnings in 2.6 would definitely be nice.
msg50875 - (view) Author: Marc-Andre Lemburg (lemburg) * (Python committer) Date: 2006-08-14 10:57
Logged In: YES 
user_id=38388

Thanks for the typo-checks, Neal.

Checked in a slightly updated version as
revision 51276.
History
Date User Action Args
2022-04-11 14:56:19adminsetgithub: 43811
2006-08-11 21:09:53lemburgcreate