email.message.Message - as_string fails
jarausch at skynet.be
Sat Dec 29 11:26:49 CET 2012
On Fri, 28 Dec 2012 20:57:46 -0500, Terry Reedy wrote:
> On 12/28/2012 7:22 AM, Helmut Jarausch wrote:
>> I'm trying to filter an mbox file by removing some messages.
>> For that I use Parser= FeedParser(policy=policy.SMTP)
>> and 'feed' any lines to it.
>> If the mbox file contains a white line followed by '^From ',
>> I do
>> Msg= Parser.close()
>> (lateron I delete the Parser and create a new one by Parser=
>> I can access parts of the message by Msg['Message-ID'], e.g.
>> but even for the very first message, trying to print it or convert it
>> to a string by MsgStr=Msg.as_string(unixfrom=True)
>> lets Python (3.3.1_pre20121209) die with
>> Traceback (most recent call last):
>> File "Email_Parse.py", line 35, in <module>
>> File "/usr/lib64/python3.3/email/message.py", line 151, in as_string
>> g.flatten(self, unixfrom=unixfrom)
>> File "/usr/lib64/python3.3/email/generator.py", line 112, in flatten
>> File "/usr/lib64/python3.3/email/generator.py", line 171, in _write
>> File "/usr/lib64/python3.3/email/generator.py", line 198, in
>> self.write(self.policy.fold(h, v))
>> File "/usr/lib64/python3.3/email/policy.py", line 153, in fold
>> return self._fold(name, value, refold_binary=True)
>> File "/usr/lib64/python3.3/email/policy.py", line 176, in _fold
>> (len(lines)+len(name)+2 > maxlen or
>> IndexError: list index out of range
> The only list index visible is 0 in lines. If this raises, lines is
> empty. You could trace back to see where lines is defined. I suspect it
> is all or part of the Msg you started with.
> I believe that some of email was rewritten for 3.3, so it is possible
> that you found a bug based on an untrue assumption. It is also possible
> that you missed a limitation in the doc, or tripped over an intended but
> not written limitation. So I hope you do the tracing, so if doc or code
> need a fix, a tracker issue can be opened.
I've debugged it and it smells like a bug.
I have created http://bugs.python.org/issue16811
More information about the Python-list