[Python-Dev] headers api for email package
barry at python.org
Mon Apr 13 16:28:32 CEST 2009
On Apr 11, 2009, at 8:39 AM, Chris Withers wrote:
> Barry Warsaw wrote:
>> >>> message['Subject']
>> The raw bytes or the decoded unicode?
> A header object.
Yep. You got there before I did. :)
>> Okay, so you've picked one. Now how do you spell the other way?
Yes for unstructured headers like Subject. For structured headers...
>> 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.set_header('Subject', 'Some text', encoding='utf-8')
>> >>> Message.set_header('Subject', b'Some bytes')
> Where you just want "a damned valid email and stop making my life
> Message['Subject']='Some text'
Yes. In which case I propose we guess the encoding as 1) ascii, 2)
utf-8, 3) wtf?
> Where you care about what encoding is used:
> Message['Subject']=Header('Some text',encoding='utf-8')
> If you have bytes, for whatever reason:
> Message['Subject']=b'some bytes'.decode('utf-8')
> ...because only you know what encoding those bytes use!
So you're saying that __setitem__() should not accept raw bytes?
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 304 bytes
Desc: This is a digitally signed message part
More information about the Python-Dev