(location: str)
| 612 | |
| 613 | |
| 614 | def parse_location(location: str) -> tuple[str, list[int]]: |
| 615 | if location.count(":") < 2: |
| 616 | raise ValueError("Format should be file:line:column[:end_line:end_column]") |
| 617 | parts = location.rsplit(":", maxsplit=2) |
| 618 | start, *rest = parts |
| 619 | # Note: we must allow drive prefix like `C:` on Windows. |
| 620 | if start.count(":") < 2: |
| 621 | return start, [int(p) for p in rest] |
| 622 | parts = start.rsplit(":", maxsplit=2) |
| 623 | start, *start_rest = parts |
| 624 | if start.count(":") < 2: |
| 625 | return start, [int(p) for p in start_rest + rest] |
| 626 | raise ValueError("Format should be file:line:column[:end_line:end_column]") |
searching dependent graphs…