[Email-SIG] fixing the current email module

Barry Warsaw barry at python.org
Thu Oct 8 15:14:05 CEST 2009


On Oct 8, 2009, at 5:18 AM, Oleg Broytman wrote:

>   Are you going to parse any garbage and create a Message (probably an
> empty Message) with one defect "cannot parse it at all"?

Yes, although the most pathological stream of bytes will probably  
produce a message with no headers and an undecodeable body of  
gibberish bytes, with a .defects list possible one or two items long.

>   What I disagree with is that if a parser cannot parse input  
> garbage at
> all it must raise an exception. And if a parser can raise an  
> exception any
> calling program must be prepared to catch such exceptions.

Python 2.6.3 (r263:75183, Oct  4 2009, 19:57:34)
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
 >>> from email import message_from_string
 >>> with open('/dev/urandom') as wire:
...   data = wire.read(1024)
...
 >>> msg = message_from_string(data)
 >>> # number of headers
... len(msg)
0
 >>> len(msg.get_payload())
1024
 >>> msg.defects
[]

This actually makes perfect sense.  A message with no headers and a  
mass of 1024 bytes in its payload is RFC valid!

-Barry


-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 832 bytes
Desc: This is a digitally signed message part
URL: <http://mail.python.org/pipermail/email-sig/attachments/20091008/c89d9243/attachment.pgp>


More information about the Email-SIG mailing list