From 64465cc4cbf978715a527e343ea3c4ff6b0906c5 Mon Sep 17 00:00:00 2001 From: Bart Broere Date: Thu, 15 Jan 2026 10:49:43 +0100 Subject: [PATCH 1/2] Add a smoke test for thousands and compact currency formats --- tests/test_smoke.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/test_smoke.py b/tests/test_smoke.py index c36151e7e..316979885 100644 --- a/tests/test_smoke.py +++ b/tests/test_smoke.py @@ -17,6 +17,7 @@ 1.2 - 1.0, # Inaccurate float 10, # Plain old integer 0, # Zero + 1000, # A thousand (previously raised KeyError in the nl locale for compact currencies) ) @@ -46,6 +47,8 @@ def test_smoke_numbers(locale): assert numbers.format_decimal(number, locale=locale, numbering_system="default") assert numbers.format_currency(number, "EUR", locale=locale) assert numbers.format_currency(number, "EUR", locale=locale, numbering_system="default") + assert numbers.format_compact_currency(number, "EUR", locale=locale) + assert numbers.format_compact_currency(number, "EUR", locale=locale, numbering_system="default") assert numbers.format_scientific(number, locale=locale) assert numbers.format_scientific(number, locale=locale, numbering_system="default") assert numbers.format_percent(number / 100, locale=locale) From 7034ca1138eeeff2d1e1ec5d8b200eeed276aeee Mon Sep 17 00:00:00 2001 From: Bart Broere Date: Thu, 15 Jan 2026 10:50:49 +0100 Subject: [PATCH 2/2] Fall back to other when formatting compact currencies --- babel/numbers.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/babel/numbers.py b/babel/numbers.py index c4b3c5d06..fbc7eece9 100644 --- a/babel/numbers.py +++ b/babel/numbers.py @@ -690,6 +690,8 @@ def _get_compact_format( plural_form = "other" if number == 1 and "1" in compact_format: plural_form = "1" + if str(magnitude) not in compact_format[plural_form]: + plural_form = "other" # fall back to other as the implicit default format = compact_format[plural_form][str(magnitude)] number = rounded break