Skip to content

Update babel to 2.18.0#2436

Open
pyup-bot wants to merge 1 commit intomasterfrom
pyup-update-babel-2.15.0-to-2.18.0
Open

Update babel to 2.18.0#2436
pyup-bot wants to merge 1 commit intomasterfrom
pyup-update-babel-2.15.0-to-2.18.0

Conversation

@pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Feb 1, 2026

This PR updates Babel from 2.15.0 to 2.18.0.

Changelog

2.18.0

--------------

Happy 2026! This release is, coincidentally, also being made from FOSDEM.

We will aspire for a slightly less glacial release cadence in this year;
there are interesting features in the pipeline.

Features
~~~~~~~~

* Core: Add `babel.core.get_cldr_version()` by akx in :gh:`1242`
* Core: Use CLDR 47 by tomasr8 in :gh:`1210`
* Core: Use canonical IANA zone names in zone_territories by akx in :gh:`1220`
* Messages: Improve extract performance via ignoring directories early during os.walk by akx in :gh:`968`
* Messages: Merge in per-format keywords and auto_comments by akx in :gh:`1243`
* Messages: Update keywords for extraction of dpgettext and dnpgettext by mardiros in :gh:`1235`
* Messages: Validate all plurals in Python format checker by tomasr8 in :gh:`1188`
* Time: Use standard library `timezone` instead of `FixedOffsetTimezone` by akx in :gh:`1203`

Bugfixes
~~~~~~~~

* Core: Fix formatting for "Empty locale identifier" exception added in 1164 by akx in :gh:`1184`
* Core: Improve handling of no-inheritance-marker in timezone data by akx in :gh:`1194`
* Core: Make the number pattern regular expression more efficient by akx in :gh:`1213`
* Messages: Keep translator comments next to the translation function call by akx in :gh:`1196`
* Numbers: Fix KeyError that occurred when formatting compact currencies of exactly one thousand in several locales  by bartbroere in :gh:`1246`

Other improvements
~~~~~~~~~~~~~~~~~~

* Core: Avoid unnecessary uses of `map()` by akx in :gh:`1180`
* Messages: Have init-catalog create directories too by akx in :gh:`1244`
* Messages: Optimizations for read_po by akx in :gh:`1200`
* Messages: Use pathlib.Path() in catalog frontend; improve test coverage by akx in :gh:`1204`


Infrastructure and documentation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* CI: Renovate CI & lint tools by akx in :gh:`1228`
* CI: Tighten up CI with Zizmor by akx in :gh:`1230`
* CI: make job permissions explicit by akx in :gh:`1227`
* Docs: Add SECURITY.md by akx in :gh:`1229`
* Docs: Remove u string prefix from docs by verhovsky in :gh:`1174`
* Docs: Update dates.rst with current unicode.org tr35 link by clach04 in :gh:`1189`
* General: Add some PyPI classifiers by tomasr8 in :gh:`1186`
* General: Apply reformatting by hand and with Ruff by akx in :gh:`1202`
* General: Test on and declare support for Python 3.14 by akx in :gh:`1233`
* Tests: Convert Unittest testcases with setup/teardown to fixtures by akx in :gh:`1240`
* Tests: Mark PyPy CI flake as xfail by akx in :gh:`1197`
* Tests: Move pytest config to `pyproject.toml` by tomasr8 in :gh:`1187`
* Tests: Unwrap most `unittest` test cases to bare functions by akx in :gh:`1241`

2.17.0

--------------

Happy 2025! This release is being made from FOSDEM 2025, in Brussels, Belgium.

Thank you to all contributors, new and old,
and here's to another great year of internationalization and localization!

Features
~~~~~~~~

* CLDR: Babel now uses CLDR 46, by tomasr8 in :gh:`1145`
* Dates: Allow specifying an explicit format in parse_date/parse_time by tomasr8 in :gh:`1131`
* Dates: More alternate characters are now supported by `format_skeleton`. By tomasr8 in :gh:`1122`
* Dates: Support short and narrow formats for format_timedelta when using `add_direction`, by akx in :gh:`1163`
* Messages: .po files now enclose white spaces in filenames like GNU gettext does. By Dunedan in :gh:`1105`, and tomasr8 in :gh:`1120`
* Messages: Initial support for `Message.python_brace_format`, by tomasr8 in :gh:`1169`
* Numbers: LC_MONETARY is now preferred when formatting currencies, by akx in :gh:`1173`

Bugfixes
~~~~~~~~

* Dates: Make seconds optional in `parse_time` time formats by tomasr8 in :gh:`1141`
* Dates: Replace `str.index` with `str.find` by tomasr8 in :gh:`1130`
* Dates: Strip extra leading slashes in `/etc/localtime` by akx in :gh:`1165`
* Dates: Week numbering and formatting of dates with week numbers was repaired by jun66j5 in :gh:`1179`
* General: Improve handling for `locale=None` by akx in :gh:`1164`
* General: Remove redundant assignment in `Catalog.__setitem__` by tomasr8 in :gh:`1167`
* Messages: Fix extracted lineno with nested calls, by dylankiss in :gh:`1126`
* Messages: Fix of list index out of range when translations is empty, by gabe-sherman in :gh:`1135`
* Messages: Fix the way obsolete messages are stored by tomasr8 in :gh:`1132`
* Messages: Simplify `read_mo` logic regarding `catalog.charset` by tomasr8 in :gh:`1148`
* Messages: Use the first matching method & options, rather than first matching method & last options, by jpmckinney in :gh:`1121`

Deprecation and compatibility
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Dates: Fix deprecation warnings for `datetime.utcnow()` by tomasr8 in :gh:`1119`
* Docs: Adjust docs/conf.py to add compatibility with sphinx 8 by hrnciar in :gh:`1155`
* General: Import `Literal` from the typing module by tomasr8 in :gh:`1175`
* General: Replace `OrderedDict` with just `dict` by tomasr8 in :gh:`1149`
* Messages: Mark `wraptext` deprecated; use `TextWrapper` directly in `write_po` by akx in :gh:`1140`

Infrastructure
~~~~~~~~~~~~~~

* Add tzdata as dev dependency and sync with tox.ini by wandrew004 in :gh:`1159`
* Duplicate test code was deleted by mattdiaz007 in :gh:`1138`
* Increase test coverage of the `python_format` checker by tomasr8 in :gh:`1176`
* Small cleanups by akx in :gh:`1160`, :gh:`1166`, :gh:`1170` and :gh:`1172`
* Update CI to use python 3.13 and Ubuntu 24.04 by tomasr8 in :gh:`1153`

2.16.0

--------------

Features
~~~~~~~~

* CLDR: Upgrade to CLDR 45 by tomasr8 in :gh:`1077`
* Lists: Support list format fallbacks by akx in :gh:`1099`
* Messages: Initial support for reading mapping configuration as TOML by akx in :gh:`1108`

Bugfixes
~~~~~~~~

* CLDR: Do not allow substituting alternates or drafts in derived locales by akx in :gh:`1113`
* Core: Allow falling back to modifier-less locale data by akx in :gh:`1104`
* Core: Allow use of importlib.metadata for finding entrypoints by akx in :gh:`1102`
* Dates: Avoid crashing on importing localtime when TZ is malformed by akx in :gh:`1100`
* Messages: Allow parsing .po files that have an extant but empty Language header by akx in :gh:`1101`
* Messages: Fix ``--ignore-dirs`` being incorrectly read (1094) by john-psina and Edwin18 in :gh:`1052` and :gh:`1095`
* Messages: Make pgettext search plurals when translation is not found by tomasr8 in :gh:`1085`

Infrastructure
~~~~~~~~~~~~~~

* Replace deprecated `ast.Str` with `ast.Constant` by tomasr8 in :gh:`1083`
* CI fixes by akx in :gh:`1080`, :gh:`1097`, :gh:`1103`, :gh:`1107`
* Test on Python 3.13 beta releases by akx in
* Normalize package name to lower-case in setup.py by akx in :gh:`1110`

Documentation
~~~~~~~~~~~~~

* Add a mention to the docs that `format_skeleton(..., fuzzy=True)` may raise by tomasr8 in :gh:`1106`
* Two hyperlinks (to CLDR) and some typos by buhtz in :gh:`1115`
Links

@pyup-bot pyup-bot mentioned this pull request Feb 1, 2026
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.

1 participant