(line_ranges: Sequence[str])
| 19 | |
| 20 | |
| 21 | def parse_line_ranges(line_ranges: Sequence[str]) -> list[tuple[int, int]]: |
| 22 | lines: list[tuple[int, int]] = [] |
| 23 | for lines_str in line_ranges: |
| 24 | parts = lines_str.split("-") |
| 25 | if len(parts) != 2: |
| 26 | raise ValueError( |
| 27 | "Incorrect --line-ranges format, expect 'START-END', found" |
| 28 | f" {lines_str!r}" |
| 29 | ) |
| 30 | try: |
| 31 | start = int(parts[0]) |
| 32 | end = int(parts[1]) |
| 33 | except ValueError: |
| 34 | raise ValueError( |
| 35 | "Incorrect --line-ranges value, expect integer ranges, found" |
| 36 | f" {lines_str!r}" |
| 37 | ) from None |
| 38 | else: |
| 39 | lines.append((start, end)) |
| 40 | return lines |
| 41 | |
| 42 | |
| 43 | def is_valid_line_range(lines: tuple[int, int]) -> bool: |
no test coverage detected