[Python-Dev] PEP 461 Final?
Ethan Furman
ethan at stoneleaf.us
Sun Jan 19 03:34:49 CET 2014
On 01/18/2014 05:21 PM, Neil Schemenauer wrote:
> Ethan Furman <ethan at stoneleaf.us> wrote:
>> So, if %a is added it would act like:
>>
>> ---------
>> "%a" % some_obj
>> ---------
>> tmp = str(some_obj)
>> res = b''
>> for ch in tmp:
>> if ord(ch) < 256:
>> res += bytes([ord(ch)]
>> else:
>> res += unicode_escape(ch)
>> ---------
>>
>> where 'unicode_escape' would yield something like "\u0440" ?
>
> My patch on the tracker already implements %a, it's simple.
Before one implements a patch it is good to know the specifications.
> Just call PyObject_ASCII() (same as ascii()) then call
> PyUnicode_AsLatin1String(s) to convert it to bytes and stick it in.
> PyObject_ASCII does not return non-ASCII characters, no decode error
> is possible. We could call _PyUnicode_AsASCIIString(s, "strict")
> instead if we are afraid for non-ASCII bytes coming out of
> PyObject_ASCII.
I appreciate that this is the behavior you want, but I'm not sure it's the behavior Nick was describing.
--
~Ethan~
More information about the Python-Dev
mailing list