Skip to content

Catch IndexError in DateTimeParser.parse for malformed format strings#1245

Open
karthiksai109 wants to merge 1 commit intoarrow-py:masterfrom
karthiksai109:fix-parser-indexerror-malformed-format
Open

Catch IndexError in DateTimeParser.parse for malformed format strings#1245
karthiksai109 wants to merge 1 commit intoarrow-py:masterfrom
karthiksai109:fix-parser-indexerror-malformed-format

Conversation

@karthiksai109
Copy link

When a malformed format string with certain bracket patterns is passed to DateTimeParser.parse, the bracket-escaping logic in _generate_pattern_re can strip out named groups from the final regex while still keeping those tokens in the token list. This causes match.group(token) to raise an IndexError instead of a proper ParserMatchError.

This wraps the match.group() calls in a try/except so that an IndexError from a missing group gets converted into a ParserMatchError, consistent with how other parse failures are reported.

Includes a regression test using the format string from the original report.

Fixes #1191

@codecov
Copy link

codecov bot commented Feb 18, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (master@b247ad0). Learn more about missing BASE report.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             master     #1245   +/-   ##
==========================================
  Coverage          ?   100.00%           
==========================================
  Files             ?        10           
  Lines             ?      2318           
  Branches          ?       358           
==========================================
  Hits              ?      2318           
  Misses            ?         0           
  Partials          ?         0           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

IndexError in DateTimeParser.parse

1 participant

Comments