From 639df39bf0b7e1172ebc4df84c1ae097ea7c0c22 Mon Sep 17 00:00:00 2001 From: Petr Viktorin Date: Wed, 13 Aug 2025 09:03:05 +0200 Subject: [PATCH] gh-131146: Fall back to `month_name` if `standalone_month_name`s aren't distinct (GH-137674) Some systems reportedly don't expand '%OB' and '%Ob'. In this case (and similar theoretically possible ones, like expanding to empty string or 'OB'), fall back to the month_name & month_abbr. --- Lib/calendar.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Lib/calendar.py b/Lib/calendar.py index 45bb265a6560..fd6c561a9d39 100644 --- a/Lib/calendar.py +++ b/Lib/calendar.py @@ -149,6 +149,14 @@ try: except ValueError: standalone_month_name = month_name standalone_month_abbr = month_abbr +else: + # Some systems that do not support '%OB' will keep it as-is (i.e., + # we get [..., '%OB', '%OB', '%OB']), so for non-distinct names, + # we fall back to month_name/month_abbr. + if len(set(standalone_month_name)) != len(set(month_name)): + standalone_month_name = month_name + if len(set(standalone_month_abbr)) != len(set(month_abbr)): + standalone_month_abbr = month_abbr def isleap(year): -- 2.47.3