Skip to content

Commit aab3166

Browse files
committed
Catch exception on invalid alias template
1 parent 0ba5a1b commit aab3166

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

beetsplug/lastgenre/utils.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,10 @@
1717

1818
from __future__ import annotations
1919

20+
import re
2021
from typing import TYPE_CHECKING
2122

2223
if TYPE_CHECKING:
23-
import re
24-
2524
from beets.logging import BeetsLogger
2625

2726
GenreIgnorePatterns = dict[str, list[re.Pattern[str]]]
@@ -64,7 +63,16 @@ def normalize_genre(logger: BeetsLogger, aliases: Aliases, genre: str) -> str:
6463
genre_lower = genre.lower()
6564
for pattern, template in aliases:
6665
if m := pattern.fullmatch(genre_lower):
67-
expanded = m.expand(template)
66+
try:
67+
expanded = m.expand(template)
68+
except (re.error, IndexError) as exc:
69+
logger.warning(
70+
"invalid alias template {}; skipping for genre {}: {}",
71+
template,
72+
genre,
73+
exc,
74+
)
75+
continue
6876
if expanded != genre:
6977
logger.extra_debug("aliased: {} -> {}", genre, expanded)
7078
return expanded

0 commit comments

Comments
 (0)