Extract a numeric X/10 quality rating from critique text. Matches patterns like "Quality: 8/10", "7/10", "9 / 10". Returns None if no rating found.
(critique: str)
| 164 | # ── Quality gate helpers ────────────────────────────────────────────────────── |
| 165 | |
| 166 | def extract_rating(critique: str) -> Optional[float]: |
| 167 | """ |
| 168 | Extract a numeric X/10 quality rating from critique text. |
| 169 | |
| 170 | Matches patterns like "Quality: 8/10", "7/10", "9 / 10". |
| 171 | Returns None if no rating found. |
| 172 | """ |
| 173 | # "8/10", "8 / 10", "8.5/10" |
| 174 | m = re.search(r'(\d+(?:\.\d+)?)\s*/\s*10', critique) |
| 175 | if m: |
| 176 | return float(m.group(1)) |
| 177 | # "8 out of 10" |
| 178 | m = re.search(r'(\d+(?:\.\d+)?)\s+out\s+of\s+10', critique, re.IGNORECASE) |
| 179 | if m: |
| 180 | return float(m.group(1)) |
| 181 | return None |
| 182 | |
| 183 | |
| 184 | def extract_doc_needs(critique: str) -> Optional[str]: |
no test coverage detected