(model_name: str)
| 4949 | _sync_virtual_debug_headers() |
| 4950 | |
| 4951 | async def _spend_error_for_model(model_name: str) -> JSONResponse | None: |
| 4952 | if not is_virtual: |
| 4953 | return None |
| 4954 | _next_main_cost, total_cost = _estimated_total_cost_for(model_name) |
| 4955 | check = await _spend_reservation.update_reserve(request_id, total_cost) |
| 4956 | if check.allowed: |
| 4957 | return None |
| 4958 | _append_blocked_attempt( |
| 4959 | model_name, |
| 4960 | error_code="spend_limit_exceeded", |
| 4961 | error_message=check.reason or "Spending limit exceeded", |
| 4962 | ) |
| 4963 | return _spend_error(check, api_format=api_format, headers=debug_headers) |
| 4964 | |
| 4965 | def _should_try_fallback(status_code: int, content: bytes) -> bool: |
| 4966 | if not is_virtual or not fallback_models: |
no test coverage detected