[issue42155] email.utils.parsedate_to_datetime() should return None when date cannot be parsed

Serhiy Storchaka report at bugs.python.org
Mon Oct 26 07:41:51 EDT 2020


New submission from Serhiy Storchaka <storchaka+cpython at gmail.com>:

Documentation says that parsedate_to_datetime() performs the same function as parsedata(), but on success returns a datetime.

parsedata() returns None when date cannot be parsed, but parsedate_to_datetime() raises TypeError.

>>> email.utils.parsedate("0")
>>> email.utils.parsedate_to_datetime("0")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/serhiy/py/cpython/Lib/email/utils.py", line 198, in parsedate_to_datetime
    *dtuple, tz = _parsedate_tz(data)
TypeError: cannot unpack non-iterable NoneType object

The other use case is passing None as arguments. Although it is not documented, but I seen the following code in wild:

    parsedate(header.get('Date'))

parsedate() and parsedate_tz() accept None, but parsedate_to_datetime() does not.

----------
components: Library (Lib), email
messages: 379661
nosy: barry, maxking, r.david.murray, serhiy.storchaka
priority: normal
severity: normal
status: open
title: email.utils.parsedate_to_datetime() should return None when date cannot be parsed
versions: Python 3.10

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue42155>
_______________________________________


More information about the Python-bugs-list mailing list