from __future__ import annotations import httpx _client: httpx.AsyncClient | None = None async def get_http_client() -> httpx.AsyncClient: global _client if _client is None or _client.is_closed: _client = httpx.AsyncClient(timeout=30.0) return _client async def close_http_client() -> None: global _client if _client and not _client.is_closed: await _client.aclose() _client = None