Format selected numbers as compact ranges such as 01-03, 07, 09.
(numbers: Set[int])
| 342 | def format_number_ranges(numbers: Set[int]) -> str: |
| 343 | """Format selected numbers as compact ranges such as 01-03, 07, 09.""" |
| 344 | if not numbers: |
| 345 | return "无" |
| 346 | |
| 347 | sorted_numbers = sorted(numbers) |
| 348 | ranges = [] |
| 349 | start = end = sorted_numbers[0] |
| 350 | |
| 351 | for number in sorted_numbers[1:]: |
| 352 | if number == end + 1: |
| 353 | end = number |
| 354 | continue |
| 355 | ranges.append((start, end)) |
| 356 | start = end = number |
| 357 | ranges.append((start, end)) |
| 358 | |
| 359 | formatted = [] |
| 360 | for start, end in ranges: |
| 361 | if start == end: |
| 362 | formatted.append(f"{start:02d}") |
| 363 | else: |
| 364 | formatted.append(f"{start:02d}-{end:02d}") |
| 365 | return ", ".join(formatted) |
| 366 | |
| 367 | |
| 368 | def get_existing_selected_numbers(user_id: str, push_id: str, papers: List[Dict]) -> Set[int]: |
| 369 | """Return paper numbers already selected for this user/push. |
| 370 |
no outgoing calls
no test coverage detected