On approximately 10/10/2009 2:20 PM, came the following characters from the keyboard of R. David Murray:
On Fri, 9 Oct 2009 at 11:59, Glenn Linderman wrote:
On approximately 10/9/2009 5:05 AM, came the following characters from the keyboard of Barry Warsaw:
 On Oct 8, 2009, at 6:39 PM, Glenn Linderman wrote:
> 1) wire format. Either what came in, in the parser case, or what would > be generated.
>  2) internal headers from the MIME part
> 3) decoded BLOB. This means that quopri and base64 are decoded, no more > and no less. This is bytes. No headers, only payload. For > Content-Transfer-Encoding: binary, this is mostly a noop. > 4) text/* parts should also be obtainable as str()/unicode(), payload > only. This is where charset decoding is done. > > I think your talk in the next paragraph about hooks and other object > types being produced is a generalization of 4, not 3, and generally no > additional decoding needs to be done, just conversion to the right > object type (or file, or file-like object). I mostly agree with that. I've always called #4 the "decoded payload" and #3 I've usually called the "raw payload". Maybe we can bikeshed on better
 terms to help inform us about the API's method/attribute names.

It would be good though to have standardized terms for easier communication. Maybe as they are chosen, they could be added to that Wiki RDM set up?

I didn't set it up, Barry did.  I just started adding stuff ;)

OK.  I seem to have an account there, so made some edits.

My only problem with "raw" and "decoded" payload, is that there are 3 payload formats, not 2, so there needs to be a 3rd term, corresponding to #1, #3, and #4, above. #2 is somewhat orthogonal from the payload.

To me, "raw" conjures up #1, not #3.

I think I understand why Barry uses it for #3: it's the 'raw data' that
went in to get transfer-encoded in the first place.  But clearly the
term is ambiguous.

I found it so.

I have set up two more documents on the wiki. One is UseCases[1], and I've
tried to copy into it all of the use cases that have been mentioned in
this discussion, plus a few more.  Edits welcome.

I hadn't seen UTF-16/-32/-BE/-LE mentioned in this discussion, but the MIME RFCs do mention use cases that require them, so I added it to RFC822 handling, but it might be better in HTTP handling? Or maybe elsewhere?

The other is a Glossary[2].  I think most of it accurately reflects the
consensus here, but in it I'm proposing to use the term 'transfer-decoded'
for #3, and 'transfer-encoded' as an alternative to 'wire-format' just
for symmetry.  Comments and suggestions welcome.

I like the distinction you made that 'wire format' is "in the wild", not known to be RFC compliant, and 'transfer-encoded' be the generated type, and compliant. I would think that if we get data as far as 'transfer-decoded', that we've (mostly) proven that the received 'wire format' is compliant, or can be made compliant. (I switched conformant to compliant, not finding the former at dictionary.com, and not liking conformable which I found there, as it seems to imply able to be changed to conform, in my head, although not in the definition).

Any other terms of art we should record?

--David

[1] http://wiki.python.org/moin/Email%20SIG/UseCases
[2] http://wiki.python.org/moin/Email%20SIG/Glossary



--
Glenn -- http://nevcal.com/
===========================
A protocol is complete when there is nothing left to remove.
-- Stuart Cheshire, Apple Computer, regarding Zero Configuration Networking

_______________________________________________
Email-SIG mailing list
Email-SIG@python.org
Your options: 
http://mail.python.org/mailman/options/email-sig/archive%40mail-archive.com

Reply via email to