Is it a bug (or a feature)?

Michael Foord fuzzyman at gmail.com
Fri Aug 27 13:05:59 CEST 2004


Roman Suzi <rnd at onego.ru> wrote in message news:<mailman.2348.1093434827.5135.python-list at python.org>...
> In Python2.3.4:
> 
> >>> em = email.message_from_file(open('MAILMESSAGE'))
> >>> for i in em:
> ...   print i
> ...
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
>   File "/usr/lib/python2.3/email/Message.py",
> line
> 304, in __getitem__
>   File "/usr/lib/python2.3/email/Message.py",
> line
> 370, in get
> AttributeError: 'int' object has no attribute 'lower'
> 
> However items() does work:
> 
> >>> for i in em.items():
> ...   print i
> ...
> ('Date', '24 Aug 2004 16:06:01 +0400')
> ('From', 'Mail System Internal Data <MAILER-DAEMON at mydomain.ru>')
> ('Subject', "DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA")
> ('Message-ID', '<1095549161 at mydomain.ru>')
> ('X-IMAP', '1095527634 0000000005')
> ('Status', 'RO')
> 
> I can probably guess why this happens ('cause multiple fields with the
> same names are possible), but .items() is broken by this... It needn't
> be!
> 
> 
> Sincerely yours, Roman A.Suzi

It's very similar to a 'feature' in the urllib2 module. (Python 2.3.4)

>>> from urllib2 import urlopen
>>> a = urlopen('http://www.voidspace.org.uk')
>>> print a
>>> i = a.info()
>>> for entry in i: print entry
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in -toplevel-
    for entry in i: print entry
  File "D:\PYTHON23\lib\rfc822.py", line 390, in __getitem__
    return self.dict[name.lower()]
AttributeError: 'int' object has no attribute 'lower'


Regards,


Fuzzy

http://www.voidspace.org.uk/atlantibots/pythonutils.html



More information about the Python-list mailing list