[Python-Dev] unicode Exception messages in py2.7 (original) (raw)
Steven D'Aprano steve at pearwood.info
Fri Nov 15 00:58:42 CET 2013
- Previous message: [Python-Dev] unicode Exception messages in py2.7
- Next message: [Python-Dev] unicode Exception messages in py2.7
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Thu, Nov 14, 2013 at 04:55:19PM -0500, Tres Seaver wrote:
Fixing any bug is "changing behavior"; 2.7 is not frozen for bugfixes.
It's not a given that the current behaviour is a bug. Exception messages in 2 are byte-strings, not Unicode. Trying to use Unicode instead is not, as far as I can tell, supported behaviour.
If the exception message cannot be converted to a byte-string, suppressing the display of the message seems like perfectly reasonable behaviour to me:
py> class NoString: ... def str(self): ... raise ValueError ... py> msg = NoString py> msg = NoString() py> print msg Traceback (most recent call last): File "", line 1, in ? File "", line 3, in str ValueError py> raise TypeError(msg) Traceback (most recent call last): File "", line 1, in ? TypeErrorpy>
although it would be nice if a newline was used so the prompt was bumped to the next line.
The point is, I'm not convinced that this is a bug at all.
The real question is whether third-party code will break when the now-empty error messages appear with '?' littered through them?
This behaviour goes back to at least Python 2.4, the oldest version I have easy access to at the moment that includes Unicode. Given that this alleged bug has been around for so long, I don't think that it effects terribly many people. That implies that fixing it won't benefit many people either.
About the only things I can think of which might break would be doctests, but people expect those to break across third-dot releases of Python
Which people? I certainly don't expect doctests to break unless I've done something silly.
(one reason why I hate them). Exception repr is explicitly not part of any backward-compatibility guarantees in Python.
Do you have a link for that explicit non-guarantee from the docs please?
-- Steven
- Previous message: [Python-Dev] unicode Exception messages in py2.7
- Next message: [Python-Dev] unicode Exception messages in py2.7
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]