Skip to content

Fix tab-separated PO locations with enclosed filenames - #1384

Open
Aurantium-47 wants to merge 2 commits into
python-babel:masterfrom
Aurantium-47:fix/po-tab-separated-locations
Open

Aurantium-47 wants to merge 2 commits into
python-babel:masterfrom
Aurantium-47:fix/po-tab-separated-locations

Conversation

@Aurantium-47

@Aurantium-47 Aurantium-47 commented Oct 12, 2026 •

Copy link
Copy Markdown

When a PO location comment contains an FSI/PDI-enclosed filename, the parser only treats spaces as separators. A tab between references is then retained as part of a filename (or becomes a spurious reference when surrounded by spaces). Comments without enclosed filenames already accept tab separators.

Treat tabs outside the filename enclosure as separators too, while preserving tabs inside enclosed filenames. The regression tests exercise read_po with plain and enclosed filenames, tab-only separators, and mixed space/tab separators.

Validation on Windows with Python 3.12:

  • Both new regression cases fail on the unmodified base.
  • python -m pytest tests/messages -q: 389 passed, one existing pytest deprecation warning, with CLDR 48.2 imported using the repository script.
  • Ruff 0.14.10 (the pinned hook version) passes for both changed files; git diff --check passes.

AI assistance: implementation, tests, and this description were prepared with OpenAI Codex; the patch received a separate AI code review.

Validation after upstream conflict resolution (2026-11-02)

At 5684a928191b7807722111e02df64fcabb33f791, both the original tab-separator regression tests and the new upstream source-reference tests are retained. The change against master 7576e5da9747336b5702f4414aff0bb84690450a remains two files, 21 additions and one deletion.

On Linux with Python 3.12.14 and CLDR 48.2:

  • python -m pytest -q: 7,944 passed, 7 skipped, 2 xfailed; one existing pytest parametrization deprecation warning.
  • python -m pytest tests/messages -q: 451 passed.
  • Ruff 0.14.10 and git diff --check pass.
  • Independent AI review confirmed both regression cases still fail against the current upstream parser and pass after the fix, with upstream tests preserved unchanged.

The remote tree was verified against the locally tested tree. GitHub CI and Security workflows currently await maintainer approval; the local results above are not a claim that upstream CI has passed.

Assisted-by: OpenAI GPT-6 <noreply@openai.com>

This branch has not been deployed

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants