On 2010-05-27, at 10:06 AM, Tres Seaver wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Sridhar Ratnakumar wrote:
>> For a start, how about this patch?
>> http://gist.github.com/415137
>> 
>> `email.parser` is available till 2.5; not sure about <=2.4 though.
> 
> Your patch does break with Python 2.4, which I would like to continue
> supporting.  Maybe we can add some more conditional imports and glue
> functions?  Something like the attached patch.

Sounds good.

> BTW, your patch        also breaks a unit test, due to differences in behavior
> between the rfc822 parser and the email one:
> 
> ======================================================================
> FAIL: test_parse_Description
> (pkginfo.tests.test_distribution.DistributionTests)
> - ----------------------------------------------------------------------
> Traceback (most recent call last):
>  File
> "/home/tseaver/projects/parcel/src/pkginfo/pkginfo/tests/test_distribution.py",
> line 104, in test_parse_Description
>    'This package enables integration with\n'
> AssertionError: 'This package enables integration with\n       foo
> servers.' != 'This package enables integration with\n foo servers.'


Hmm. RFC 822 (rfc822) and RFC 2822 have different "unfolding" rules for 
multiple line header. Curiously http://docs.python.org/library/rfc822.html is 
advertised as "Parse RFC 2822 mail headers," and yet it seems to unfold 
multiple lines in accordance with RFC 822.

I don't know what the solution to this problem is. I see that lines in the 
`Description` field (in PKG-INFO) are preceded with 8 spaces. So PKG-INFO is 
generated in accordance with RFC 822.

Is there a way to parse a RFC 822 message in Python 3?

-srid

_______________________________________________
Distutils-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to