[Python-Dev] Dropping bytes "support" in json
glyph at divmod.com
glyph at divmod.com
Fri Apr 10 07:19:02 CEST 2009
On 02:38 am, barry at python.org wrote:
>So, what I'm really asking is this. Let's say you agree that there
>are use cases for accessing a header value as either the raw encoded
>bytes or the decoded unicode. What should this return:
>
> >>> message['Subject']
>
>The raw bytes or the decoded unicode?
My personal preference would be to just get deprecate this API, and get
rid of it, replacing it with a slightly more explicit one.
message.headers['Subject']
message.bytes_headers['Subject']
>Now, setting headers. Sometimes you have some unicode thing and
>sometimes you have some bytes. You need to end up with bytes in the
>ASCII range and you'd like to leave the header value unencoded if so.
>But in both cases, you might have bytes or characters outside that
>range, so you need an explicit encoding, defaulting to utf-8 probably.
message.headers['Subject'] = 'Some text'
should be equivalent to
message.headers['Subject'] = Header('Some text')
My preference would be that
message.headers['Subject'] = b'Some Bytes'
would simply raise an exception. If you've got some bytes, you should
instead do
message.bytes_headers['Subject'] = b'Some Bytes'
or
message.headers['Subject'] = Header(bytes=b'Some Bytes',
encoding='utf-8')
Explicit is better than implicit, right?
More information about the Python-Dev
mailing list