[Python-Dev] Inconsistency in 2.4.3 for __repr__() returning unicode
Anthony Baxter
anthony at interlink.com.au
Tue Mar 28 08:24:38 CEST 2006
On Monday 27 March 2006 21:14, M.-A. Lemburg wrote:
> Change PyObject_Repr() to use the default encoding (again)
> which is also consistent with how PyObject_Str() works.
For 2.4.3, I plan to just revert the following patch (and supply a
test case)
Index: Objects/object.c
===================================================================
--- Objects/object.c (revision 16197)
+++ Objects/object.c (revision 16198)
@@ -267,7 +267,7 @@
return NULL;
if (PyUnicode_Check(res)) {
PyObject* str;
- str = PyUnicode_AsEncodedString(res, NULL,
NULL);
+ str = PyUnicode_AsUnicodeEscapeString(res);
Py_DECREF(res);
if (str)
res = str;
Does anyone have any objections to this? The test suite passes with
this (including the new test) as do various random tests I could
string together.
I need to apply this in the next short while, so if you have an issue
with it, please speak up now!
Thanks,
Anthony
> To make repr() conversion more robust, we could have
> PyObject_Repr() apply the conversion using the 'replace'
> error strategy - after all, repr() is usually only
> used for debugging, where it's more important that
> you do get an output rather than an exception.
--
Anthony Baxter <anthony at interlink.com.au>
It's never too late to have a happy childhood.
More information about the Python-Dev
mailing list