[Python-Dev] Bug or feature? Unicode vs t#
M.-A. Lemburg
mal@lemburg.com
Thu, 11 Oct 2001 10:13:49 +0200
Tim Peters wrote:
>
> Here in current CVS Python:
>
> >>> import binascii
> >>> binascii.hexlify(u'a')
> '6100'
> >>>
>
> In 2.1.1, it's '61' instead. I don't know what ought to happen, but 2.1.1
> suprised me less. binascii inherits its view of the argument via
> PyArg_ParseTuple's t# code.
Neither Unicode nor binascii has changed. For some reason the
code in Python/getargs.c was changed in a way which removes the
distinctin between "t#" and "s#" -- by delegating the actual
buffer conversion to convertbuffer() only the bf_getreadbuffer
slot gets used for both cases.
Whether this is right or wrong is a different topic (binascii.hexlify()
should probably work on the bf_getreadbuffer slot anyway since
its normal usage is to encode binary data using HEX), but
the change in getargs.c will certainly break existing code out
there...
--
Marc-Andre Lemburg
CEO eGenix.com Software GmbH
______________________________________________________________________
Consulting & Company: http://www.egenix.com/
Python Software: http://www.lemburg.com/python/