HomePhabricator

dateutil: correct default for Ymd in parsedate

Authored by quark.

Description

dateutil: correct default for Ymd in parsedate

The code uses 0 for the default value of Ymd (year, month, and day), which
seems suboptimal. For example, these will fail to parse:

dateutil.parsedate('2000', formats=dateutil.extendeddateformats)
dateutil.parsedate('Jan 2000', formats=dateutil.extendeddateformats)

Fix it by providing sane defaults (1 instead of 0) for year, month, and day.

The suboptimal behavior was introduced by 91bc001a592 (2010-12-29,
"date: fix matching of underspecified date ranges"), which does not seem to
justify the current behavior.

Note end-users should not notice the subtle issue, because there are no formats
in defaultdateformats that allow an explicit year with omitted month, or an
explicit month with omitted day.

Differential Revision: https://phab.mercurial-scm.org/D7520

Details

Committed
quarkNov 25 2019, 3:44 PM
Differential Revision
D7520: dateutil: correct default for Ymd in parsedate
Parents
rHG92518ca66c76: test-doctest: include dateutil
Branches
Unknown
Tags
Unknown