TypeError Exception in email lib
MRAB
python at mrabarnett.plus.com
Mon Feb 15 14:21:17 EST 2010
BJ Swope wrote:
> File "/usr/lib/python2.5/email/_parseaddr.py", line 142, in mktime_tz
> if data[9] is None:
> TypeError: 'NoneType' object is unsubscriptable
>
> I'm parsing a bunch of spam and using the date field from the spams
> for a date-time stamp.
>
> I've fixed the lib on my box to place the call inside a try/except
> clause to catch the exception now, but it seems the module has a bug
> in it.
>
> How would I go about recommending a change the module?
>
> Original code:
> def mktime_tz(data):
> """Turn a 10-tuple as returned by parsedate_tz() into a UTC timestamp."""
> if data[9] is None:
> # No zone info, so localtime is better assumption than GMT
> return time.mktime(data[:8] + (-1,))
> else:
> t = time.mktime(data[:8] + (0,))
> return t - data[9] - time.timezone
>
> Patched code:
> def mktime_tz(data):
> """Turn a 10-tuple as returned by parsedate_tz() into a UTC timestamp."""
> try:
> if data[9] is None:
> # No zone info, so localtime is better assumption than GMT
> return time.mktime(data[:8] + (-1,))
> else:
> t = time.mktime(data[:8] + (0,))
> return t - data[9] - time.timezone
> except TypeError:
> return time.mktime(data[:8] + (-1,))
>
The traceback is saying that 'data' is None, not that it's too short
(that would raise an IndexError).
More information about the Python-list
mailing list