Repository navigation
Conversation
Author
|
Hi @pganssle, could you take a look at this when you have a chance? Happy to make changes if anything needs work. Thanks! |
Member
|
The parser's behavior is too poorly specified for me to feel confident making any changes to the behavior, since it is unclear what the blast radius will be. |
Author
|
Thanks for taking a look, understood. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1447.
parser.parsemishandled colon-separated dates whose first component cannot be an hour:The
:branch of_parse_numeric_tokenunconditionally treated anAA:BB:CCtriple asHH:MM:SS. This adds a branch ahead of it: when the first component is larger than 23 (so it cannot be an hour), all three components are plain integers, and no date has been collected yet, the triple is appended toymdlike the-///.-separated date branches, soresolve_ymdapplies the usual year/month/day heuristics (includingdayfirst/yearfirst).Genuine times are untouched (a first component of 0-23 still takes the time branch, so ambiguous strings like
12:05:06parse exactly as before), as are all other separators.Tests: 6 new cases in
tests/test_parser.py.tests/test_parser.pyfully passes (237 passed, 14 xfailed). Full suite: 5049 passed; the only failures are 3 pre-existing tzdata-environment failures (test_tz.py::test_gettz_link[tzpath-...],test_tzfile.py::test_gettz_local_abbreviation_without_time_zone_data,test_tzpath_data.py::test_dst_matches_tzdata_zi[tzpath]), which fail identically on unmodified master in this environment and are unrelated to the parser.