Skip to content

Releases: python-babel/babel

v2.17.0

01 Feb 15:15
@akx akx
b50a1d2
Compare
Choose a tag to compare

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!


The changelog below is auto-generated by GitHub.

Please see CHANGELOG.rst for additional details.


What's Changed

  • Fix deprecation warnings for datetime.utcnow() by @tomasr8 in #1119
  • Enclose white spaces in references by @Dunedan in #1105
  • Replace str.index with str.find by @tomasr8 in #1130
  • Replace more alternate characters in format_skeleton by @tomasr8 in #1122
  • Fix extracted lineno with nested calls by @dylankiss in #1126
  • "Deleted duplicate code in test" by @mattdiaz007 in #1138
  • Fix of list index out of range error in PoFileParser.add_message when translations is empty by @gabe-sherman in #1135
  • Make seconds optional in parse_time time formats by @tomasr8 in #1141
  • Mark wraptext deprecated; use TextWrapper directly in write_po by @akx in #1140
  • Fix the way obsolete messages are stored by @tomasr8 in #1132
  • Replace OrderedDict with just dict by @tomasr8 in #1149
  • Use CLDR 46 by @tomasr8 in #1145
  • Update CI to use python 3.13 and Ubuntu 24.04 by @tomasr8 in #1153
  • Adjust docs/conf.py to add compatibility with sphinx 8 by @hrnciar in #1155
  • Allow specifying an explicit format in parse_date/parse_time by @tomasr8 in #1131
  • Simplify read_mo logic regarding catalog.charset by @tomasr8 in #1148
  • Bump CI/tool versions by @akx in #1160
  • fix: check_and_call_extract_file uses the first matching method and options, instead of the first matching method and last matching options by @jpmckinney in #1121
  • Prevent wrapping file locations containing white space by @tomasr8 in #1120
  • Add tzdata as dev dependency and sync with tox.ini by @wandrew004 in #1159
  • Support short and narrow formats for format_timedelta when using add_direction by @akx in #1163
  • Improve handling for locale=None by @akx in #1164
  • Use pytest.raises(match=...) by @akx in #1166
  • Strip extra leading slashes in /etc/localtime by @akx in #1165
  • Remove redundant assignment in Catalog.__setitem__ by @tomasr8 in #1167
  • Small cleanups by @akx in #1170
  • Small test cleanup by @akx in #1172
  • Add Message.python_brace_format by @tomasr8 in #1169
  • Import Literal from the typing module by @tomasr8 in #1175
  • Prefer LC_MONETARY when formatting currencies by @akx in #1173
  • Fix dates formatting Y, w and W symbols for week-numbering by @jun66j5 in #1179
  • Increase test coverage of the python_format checker by @tomasr8 in #1176
  • Prepare for 2.17.0 by @akx in #1182

New Contributors

Full Changelog: v2.16.0...v2.17.0

Version 2.16.0

08 Aug 12:46
@akx akx
cf7d223
Compare
Choose a tag to compare

The changelog below is auto-generated by GitHub.

Please see CHANGELOG.rst for additional details.

What's Changed

  • Upgrade GitHub Actions versions to avoid deprecation warnings by @akx in #1080
  • Replace deprecated ast.Str with ast.Constant by @tomasr8 in #1083
  • Fix #1094 by @john-psina in #1095
  • CI fixes by @akx in #1097
  • Upgrade to CLDR 45 by @tomasr8 in #1077
  • Make pgettext search plurals when translation is not found by @tomasr8 in #1085
  • Fix for #832 by @Edwin18 in #1052
  • Support list format fallbacks by @akx in #1099
  • Improve Codecov configuration by @akx in #1103
  • Avoid crashing on importing localtime when TZ is malformed by @akx in #1100
  • Allow parsing .po files that have an extant but empty Language header by @akx in #1101
  • Add a mention to the docs that format_skeleton(..., fuzzy=True) may raise by @tomasr8 in #1106
  • Allow falling back to modifier-less locale data by @akx in #1104
  • Allow use of importlib.metadata for finding entrypoints by @akx in #1102
  • Test on Python 3.13 beta releases by @akx in #1107
  • Normalize package name to lower-case in setup.py by @akx in #1110
  • Do not allow substituting alternates or drafts in derived locales by @akx in #1113
  • Two hyperlinks (to CLDR) and some typos by @buhtz in #1115
  • Initial support for reading mapping configuration as TOML by @akx in #1108
  • Prepare for 2.16.0 release by @akx in #1116

New Contributors

Full Changelog: v2.15.0...v2.16.0

v2.15.0

05 May 13:51
@akx akx
40b194f
Compare
Choose a tag to compare

The changelog below is auto-generated by GitHub.

The binary artifacts attached to this GitHub release were generated by the GitHub Actions workflow.

Please see CHANGELOG.rst for additional details.


What's Changed

  • Drop support for Python 3.7 (EOL since June 2023) by @akx in #1048
  • Upgrade GitHub Actions by @cclauss in #1054
  • Improve .po IO by @akx in #1068
  • Use CLDR 44 by @akx in #1071
  • Allow alternative space characters as group separator when parsing numbers by @ronnix in #1007
  • Include Unicode license in locale-data and in documentation by @akx in #1074
  • Encode support for the "fall back to short format" logic for time delta formatting by @akx in #1075
  • Prepare for 2.15.0 release by @akx in #1079

New Contributors

Full Changelog: v2.14.0...v2.15.0

Version 2.14.0

12 Dec 13:21
@akx akx
a8505a4
Compare
Choose a tag to compare

Upcoming deprecation

  • This version, Babel 2.14, is the last version of Babel to support Python 3.7. Babel 2.15 will require Python 3.8 or newer.
    We had previously announced Babel 2.13 to have been the last version to support Python 3.7, but being able to use CLDR 43 with Python 3.7 was deemed important enough to keep supporting the EOL Python version for one more release.

Possibly backwards incompatible changes

  • Locale.number_symbols will now have first-level keys for each numbering system. Since the implicit default numbering system still is "latn", what had previously been e.g. Locale.number_symbols['decimal'] is now Locale.number_symbols['latn']['decimal'].
  • Babel no longer directly depends on either distutils or setuptools; if you had been using the Babel setuptools command extensions, you would need to explicitly depend on setuptools – though given you're running setup.py you probably already do.

The changelog below is auto-generated by GitHub.

Please see CHANGELOG.rst for additional details.

What's Changed

  • Upgrade to CLDR 43 by @rix0rrr in #1043
  • Decouple pybabel frontend from distutils/setuptools; remove dependency by @akx in #1041
  • Enforce trailing commas (enable Ruff COM rule and autofix) by @akx in #1045
  • CI: use GitHub output formats by @akx in #1046
  • Allow last_translator to be passed as an option to extract_message by @AivGitHub in #1044
  • Add support of local numbering systems for number symbols by @kajte in #1036
  • fix(numbers): correctly determine malformed decimals by @olunusib in #1042
  • Prepare for 2.14.0 release by @akx in #1047

New Contributors

Full Changelog: v2.13.1...v2.14.0

Version 2.13.1

24 Oct 14:35
@akx akx
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2.13.0...v2.13.1


PyPI: https://pypi.org/project/Babel/2.13.1/

v2.13.0

03 Oct 07:09
@akx akx
Compare
Choose a tag to compare

PyPI: https://pypi.org/project/Babel/2.13.0/

Upcoming deprecation

  • This version, Babel 2.13, is the last version of Babel to support Python 3.7.
    Babel 2.14 will require Python 3.8 or newer.

(This changelog is auto-generated by GitHub; please see CHANGES.rst for a less verbose listing.)

What's Changed

  • Mypy fixes, prep by @akx in #979
  • Note that Locale.parse() does not accept None by @akx in #978
  • Misc. mypy-discovered fixes by @akx in #981
  • babel.messages.catalog: deduplicate _to_fuzzy_match_key logic by @akx in #980
  • Improve type annotation for babel.support.Translations.load by @akx in #983
  • Improve contributing instructions by @akx in #986
  • Freeze format_time() tests to a specific date to fix test failures by @mgorny in #998
  • Spelling and grammar fixes by @scop in #1008
  • Renovate lint tools by @akx in #1017
  • Use SPDX license identifier by @vargenau in #994
  • Use aware UTC datetimes internally by @scop in #1009
  • Add flag to ignore POT-Creation-Date for updates by @joeportela in #999
  • Support 't' specifier in keywords by @jeanas in #1015
  • Add f-string parsing for Python 3.12 (PEP 701) by @encukou in #1027
  • Renovate CI & tools by @akx in #1028
  • Prepare for 2.13.0 release by @akx in #1029

New Contributors

Full Changelog: v2.12.1...v2.13.0

v2.12.1

28 Feb 14:11
@akx akx
Compare
Choose a tag to compare

Tiny packaging bugfix: py.typed wasn't included.

What's Changed

New Contributors

Full Changelog: v2.12.0...v2.12.1

Version 2.12.0

28 Feb 08:19
@akx akx
Compare
Choose a tag to compare

The below release notes are auto-generated; please see CHANGES.rst for a human-crafted one.

Thank you to all contributors!

What's Changed

New Contributors

Full Changelog: v2.11.0...v2.12.0

Version 2.11.0

01 Nov 10:41
@akx akx
Compare
Choose a tag to compare

The below release notes are auto-generated; please see CHANGES.rst for a human-crafted one.

Thank you to all contributors!

What's Changed

New Contributors

Full Changelog: v2.10.3...v2.11.0

v2.10.2

14 Jun 07:25
@akx akx
Compare
Choose a tag to compare

This is a bugfix release for Babel 2.10.1.

What's Changed

  • chore(docs/typo): Fixes a minor typo in a function comment by @doublethefish in #864
  • Fallback count="other" format in format_currency() by @jun66j5 in #872
  • Fix get_period_id() with dayPeriodRule across 0:00 by @jun66j5 in #871
  • Fix up some Python2-isms using pyupgrade by @akx in #874
  • Add support for b and B period symbols in time format by @jun66j5 in #869

New Contributors

Full Changelog: v2.10.1...v2.10.2