thinwrap-llm
OpenAI, Azure OpenAI, Anthropic, Google Gemini, AWS Bedrock, Mistral, +12
Thinwrap publishes three Python packages on PyPI. The claims below hold for Python only — they're the developer-honest version of the umbrella "zero deps, BYO HTTP" pitch, narrowed to what's true on the standard library's urllib.
OpenAI, Azure OpenAI, Anthropic, Google Gemini, AWS Bedrock, Mistral, +12
Google Maps Platform, Mapbox, HERE, ESRI ArcGIS, TomTom, OSRM (self-hosted)
SendGrid, AWS SES, Mailgun, Postmark, Resend, Brevo (Sendinblue), +29
The unified facade surface includes only features that ≥90% of providers natively support. Sub-baseline fields stay accessible via thePassthrough escape hatch (body deep-merged into the request body; consumer values win). Cross-language parity with the TypeScript, PHP, and Go packages is tracked as a design goal — not a hard release gate — so a connector can land in one language ahead of the others.
Every operation failure raises a ConnectorError carrying a typed ProviderCode; misusing the API (a config for the wrong channel, a value outside a closed vocabulary) raises the nativeTypeError or ValueError instead. Because the wrapper holds no state, retry strategy, token caching, and connection pooling live with the consumer — pass any object withsend(HttpRequest) -> HttpResponse astransport=. The wrapper performs no automatic retry; the raw Retry-After header and its parsed seconds ride inConnectorError.cause. There is noretry_after_seconds attribute — by design.