On Apr 10, 2009, at 1:19 AM, glyph at divmod.com wrote: > 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'] This is pretty darn clever Glyph. Stop that! :) I'm not 100% sure I like the name .bytes_headers or that .headers should be the decoded header (rather than have .headers return the bytes thingie and say .decoded_headers return the decoded thingies), but I do like the general approach. >> 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') Yes, absolutely. I think we're all in general agreement that header values should be instances of Header, or subclasses thereof. > 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? Yes. Again, I really like the general idea, if I might quibble about some of the details. Thanks for a great suggestion. -Barry -------------- next part -------------- A non-text attachment was scrubbed... Name: PGP.sig Type: application/pgp-signature Size: 304 bytes Desc: This is a digitally signed message part URL: <http://mail.python.org/pipermail/python-dev/attachments/20090410/33ffffa6/attachment.pgp>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4