Read and parse request file. Returns: PackageRequest object if valid request exists, None otherwise
()
| 203 | |
| 204 | |
| 205 | def read_request_file() -> PackageRequest | None: |
| 206 | """Read and parse request file. |
| 207 | |
| 208 | Returns: |
| 209 | PackageRequest object if valid request exists, None otherwise |
| 210 | """ |
| 211 | if not REQUEST_FILE.exists(): |
| 212 | return None |
| 213 | |
| 214 | try: |
| 215 | with open(REQUEST_FILE, "r") as f: |
| 216 | data = json.load(f) |
| 217 | |
| 218 | # Parse into typed PackageRequest |
| 219 | return PackageRequest.from_dict(data) |
| 220 | |
| 221 | except (json.JSONDecodeError, ValueError, TypeError) as e: |
| 222 | logging.error(f"Failed to parse request file: {e}") |
| 223 | return None |
| 224 | except KeyboardInterrupt as ki: |
| 225 | handle_keyboard_interrupt(ki) |
| 226 | raise |
| 227 | except Exception as e: |
| 228 | logging.error(f"Unexpected error reading request file: {e}") |
| 229 | return None |
| 230 | |
| 231 | |
| 232 | def clear_request_file() -> None: |
no test coverage detected