Simon Cross wrote: > Originally Python exceptions had no __unicode__ method. In Python 2.5 > __unicode__ was added. This led to "unicode(Exception)" failing and so > the addition of __unicode__ was reverted [1]. > > This leaves Python 2.6 in a position where calls to > "unicode(Exception(u'\xe1'))" fail as they are equivalent to > "uncode(str(Exception(u'\xe1'))" which cannot convert the non-ASCII > character to ASCII (or other default encoding) [2]. > >>From here there are 3 options: > > 1) Leave things as they are. > 2) Add back __unicode__ and have "unicode(Exception)" fail. > 3) Add a tp_unicode slot to Python objects and have everything work > (at the cost of adding the slot). 4) Fix PyObject_Unicode to not retrieve __unicode__ from new-style instances, and instead only look for the method on their types (similar to the way PyObject_Format looks up the __format__ method). Cheers, Nick. -- Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia --------------------------------------------------------------- http://www.boredomandlaziness.org
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4