python3 binascii.hexlify ...

Cameron Simpson cs at zip.com.au
Sat Feb 9 15:32:20 EST 2013


On 09Feb2013 22:26, Chris Angelico <rosuav at gmail.com> wrote:
| On Sat, Feb 9, 2013 at 10:10 PM, Peter Otten <__peter__ at web.de> wrote:
| > """Return the hexadecimal representation of the binary data. Every byte of
| > data is converted into the corresponding 2-digit hex representation.
| > """
| >
| > makes it pretty clear that the function is operating on bytes, not str.

Well of course. I want a hexadecimal string representation of a chunk of
bytes. It should be producing a string.

| That doesn't necessarily mean it has to return bytes, though. It's
| taking binary data and producing something that's plausibly either
| bytes or str. It's human-readable and would definitely make sense to
| be str (for instance, hex() returns a str), so imo this should be made
| very clear in the docs. Maybe:
| 
| """Return the hexadecimal representation of the binary data. Every byte of
| data is converted into two bytes with the corresponding hex
| representation in ASCII.
| """
| 
| or somesuch?

Only if returning a string would break something relying on hexlify
returning bytes. The natural way to write this function is to have it
return a string.

_If_ there's some dependency in the stdlib, maybe a doc fix would do.
But otherwise IMO the function should be returning a string.

What is the use case for returning bytes that just _look_ like a string?
It is returning a textual representation; without a good reason, that
should be a string.
-- 
Cameron Simpson <cs at zip.com.au>

Because of its special customs, crossposting between alt.peeves and normal
newsgroups is discouraged.      - Cameron Spitzer



More information about the Python-list mailing list