From 9f9a680ad71d9662e95bd8ea31a32ec727376dc6 Mon Sep 17 00:00:00 2001 From: Belissimo_T Date: Sun, 19 Nov 2023 00:25:57 +0100 Subject: [PATCH] fix exception caused by malformed "Teacher (Stunde)" --- backend/vplan_utils.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/backend/vplan_utils.py b/backend/vplan_utils.py index 932748a..abb3aee 100644 --- a/backend/vplan_utils.py +++ b/backend/vplan_utils.py @@ -221,16 +221,19 @@ def periods_to_block_label(periods: typing.Iterable[int]) -> str: def _parse_periods(period_str: str) -> list[int]: - def period_str_to_int(string: str) -> int: - return int(string.replace("Stunde", "").replace(".", "")) + try: + def period_str_to_int(string: str) -> int: + return int(string.replace("Stunde", "").replace(".", "")) - if not period_str: + if not period_str: + return [] + elif "-" not in period_str: + return [period_str_to_int(period_str)] + else: + begin, end = period_str.split("-") + return list(range(period_str_to_int(begin), period_str_to_int(end) + 1)) + except ValueError: return [] - elif "-" not in period_str: - return [period_str_to_int(period_str)] - else: - begin, end = period_str.split("-") - return list(range(period_str_to_int(begin), period_str_to_int(end) + 1)) def parse_periods(period_str: str) -> set[int]: