[Python-Dev] Dict suppressing exceptions (original) (raw)

M.-A. Lemburg mal at egenix.com
Thu Aug 10 17:05:27 CEST 2006


Guido van Rossum wrote:

On 8/10/06, M.-A. Lemburg <mal at egenix.com> wrote:

I'd suggest that we still inform the programmers of the problem by issuing a warning (which they can then silence at will), maybe a new PyExcUnicodeWarning. Hmm... Here's an idea... How about we change unicode-vs-str eq to issue a warning (and return False) instead of raising UnicodeException? That won't break much code (it's unlikely that people depend on this exception since it's generally a symptom of insane mixing of str and unicode). Then no further changes to dictobject.c are necessary (except fixing that one misleading comment).

Good idea.

Note that these exceptions help programmers making their applications Unicode compatible, so silencing them completely would remove the possibility to detect the case of mixing strings and Unicode as keys in a dictionary. A warning would arguably have the same helping effect. (I suspect actually that we would have used warnings all along except we didn't have the warning framework when unicode was first introduced.)

Probably, yes.

These days, I believe that we should have not gone for the string-Unicode integration magic at all and instead done the same of what's planned for Py3k. Sometimes a clean cut is better than trying to muddle along.

BTW, in Py3k, this case would not trigger at all, since all text would be Unicode and bytes wouldn't be comparable to Unicode anyway. However, that's a different discussion which we can have after Python 2.5 is out the door. Which is why I said I would have gladly waited until Py3k to fix this.

-- Marc-Andre Lemburg eGenix.com

Professional Python Services directly from the Source (#1, Aug 10 2006)

Python/Zope Consulting and Support ... http://www.egenix.com/ mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/


::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! ::::



More information about the Python-Dev mailing list