Fix Windows CI failures with zoneinfo timezone parsing #1214
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.
Summary
This PR fixes the Windows CI failures caused by timezone parsing issues, specifically with
America/Coyhaique
which fails on Windows due to differences in the system timezone database.Problem:
tz.gettz('America/Coyhaique')
returnsNone
on Windows, causingParserError: Could not parse timezone expression 'America/Coyhaique'
Solution: Implement hybrid timezone parsing that uses
zoneinfo.ZoneInfo()
first (which provides consistent cross-platform timezone support), then falls back todateutil.tz.gettz()
for backward compatibility.Changes Made
arrow/parser.py
: UpdatedTzinfoParser.parse()
to use zoneinfo first, with dateutil fallbacktests/utils.py
: Addedget_timezone()
helper that mirrors parser logictests/test_parser.py
: Updated tests to use consistent timezone resolutiontests/test_formatter.py
: Updated formatter tests for consistencyBenefits
backports.zoneinfo
already available)Test Plan
This is a DRAFT PR for testing the fix - the Windows CI should now pass for all Python versions.
🤖 Generated with Claude Code