# retoor from __future__ import annotations import contextvars import os from typing import Any import httpx from devplacepy import stealth INTERNAL_CALLS: contextvars.ContextVar[int] = contextvars.ContextVar( "internal_calls", default=0 ) REQUEST_ID: contextvars.ContextVar[str] = contextvars.ContextVar("request_id", default="") _POOL: httpx.AsyncClient | None = None def bump_internal_calls() -> None: INTERNAL_CALLS.set(INTERNAL_CALLS.get() + 1) def current_internal_calls() -> int: return INTERNAL_CALLS.get() def current_request_id() -> str: return REQUEST_ID.get() async def startup_pool() -> None: global _POOL if _POOL is None: _POOL = httpx.AsyncClient( limits=httpx.Limits(max_connections=32, max_keepalive_connections=32), timeout=httpx.Timeout(30.0), http2=False, ) async def shutdown_pool() -> None: global _POOL if _POOL is not None: await _POOL.aclose() _POOL = None def stealth_async_client(**kwargs: Any) -> httpx.AsyncClient: return stealth.stealth_async_client(**kwargs) async def internal_request( method: str, url: str, *, json: dict | None = None, params: dict | None = None, headers: dict[str, str] | None = None, timeout: float = 30.0, ) -> httpx.Response: await startup_pool() assert _POOL is not None bump_internal_calls() merged: dict[str, str] = {} request_id = current_request_id() if request_id: merged["X-Request-Id"] = request_id internal_key = os.environ.get("DEVPLACE_GATEWAY_INTERNAL_KEY", "").strip() if internal_key: merged["X-Internal-Key"] = internal_key if headers: merged.update(headers) return await _POOL.request( method, url, json=json, params=params, headers=merged, timeout=timeout )