From 86e4a79f32c5be6c934729afe83fb67473335925 Mon Sep 17 00:00:00 2001 From: un-pogaz <46523284+un-pogaz@users.noreply.github.com> Date: Wed, 9 Jul 2025 19:49:44 +0200 Subject: [PATCH] allow empty suffixes --- src/calibre/utils/formatter_functions.py | 34 +++++++++++++----------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/src/calibre/utils/formatter_functions.py b/src/calibre/utils/formatter_functions.py index 841bdb254e..f19a589b3d 100644 --- a/src/calibre/utils/formatter_functions.py +++ b/src/calibre/utils/formatter_functions.py @@ -3512,22 +3512,24 @@ This can be useful to truncate a value. def repl(mo): fmt_char = mo.group(1) - suffixes = re.split(r'\|', mo.group(3) or '') - match len(suffixes): - case 1 if not suffixes[0]: - zero_suffix = one_suffix = more_suffix = fmt_char.lower() + ' ' - case 1: - zero_suffix = one_suffix = more_suffix = suffixes[0] - case 2: - zero_suffix = more_suffix = suffixes[0] - one_suffix = suffixes[1] - case 3: - zero_suffix = suffixes[0] - one_suffix = suffixes[1] - more_suffix = suffixes[2] - case _: - raise ValueError(_('The group {} has too many suffixes').format(fmt_char)) - zero_suffix = one_suffix = more_suffix = '@@too many suffixes@@' + suffixes = mo.group(3) + if suffixes is None: + zero_suffix = one_suffix = more_suffix = fmt_char.lower() + ' ' + else: + suffixes = re.split(r'\|', suffixes) + match len(suffixes): + case 1: + zero_suffix = one_suffix = more_suffix = suffixes[0] + case 2: + zero_suffix = more_suffix = suffixes[0] + one_suffix = suffixes[1] + case 3: + zero_suffix = suffixes[0] + one_suffix = suffixes[1] + more_suffix = suffixes[2] + case _: + raise ValueError(_('The group {} has too many suffixes').format(fmt_char)) + zero_suffix = one_suffix = more_suffix = '@@too many suffixes@@' def val_with_suffix(val, test_val): match val: