(select_value: str, available_ids: set[str])
| 56 | |
| 57 | |
| 58 | def parse_selection(select_value: str, available_ids: set[str]) -> set[str]: |
| 59 | if select_value == "none": |
| 60 | return set() |
| 61 | if select_value == "all": |
| 62 | return set(available_ids) |
| 63 | |
| 64 | selected = {part.strip() for part in select_value.split(",") if part.strip()} |
| 65 | unknown = selected - available_ids |
| 66 | if unknown: |
| 67 | raise ValueError(f"Unknown candidate IDs: {', '.join(sorted(unknown))}") |
| 68 | return selected |
| 69 | |
| 70 | |
| 71 | def ensure_pr_learning_sections(content: str) -> str: |