diff --git a/parse_ranges/parse_ranges.py b/parse_ranges/parse_ranges.py index 447d4a5..306baab 100644 --- a/parse_ranges/parse_ranges.py +++ b/parse_ranges/parse_ranges.py @@ -92,4 +92,16 @@ def parse_ranges_v5(range_string): # à utiliser avec modération car la lisibilité compte ! -parse_ranges = parse_ranges_v5 +def parse_ranges_v6(range_string): + """Après échanges avec QT : compact et lisible ! ♥""" + ranges = range_string.replace("->", "-") + + for subrange in ranges.split(","): + begin, _, end = subrange.partition("-") + if end.isdecimal(): + yield from range(int(begin), int(end) + 1) + else: + yield int(begin) + + +parse_ranges = parse_ranges_v6