19 lines
502 B
Python
19 lines
502 B
Python
from __future__ import annotations
|
|
|
|
import httpx
|
|
|
|
|
|
def classify_response(status: int) -> tuple[bool, bool]:
|
|
"""Return (ok, permanent_failure)."""
|
|
if 200 <= status < 300:
|
|
return True, False
|
|
if 400 <= status < 500 and status not in (408, 425, 429):
|
|
return False, True
|
|
return False, False
|
|
|
|
|
|
def classify_exception(exc: Exception) -> tuple[bool, bool]:
|
|
if isinstance(exc, httpx.TimeoutException | httpx.NetworkError):
|
|
return False, False
|
|
return False, False
|