OfficialJev Repos & SDKs
Python Sync Client
TypeSafeClient, the synchronous Python client: ask questions, list models, and set the key, model, retry policy, and HTTP timeout.
- Format
- Docs
- Published by
- TypeSafe AI
- Last verified
- Oct 2026
Works forJev for Classification
Used inJev for Software & DevTools
- Languages
- Python
Highlights
- Explicit options override environment variables. Empty or whitespace-only environment values are ignored.
- The key comes from TYPESAFE_API_KEY. Empty keys, internal whitespace, control characters, and non-ASCII are rejected.
- RetryPolicy(max_retries=0) turns retries off. A custom transport and http_client cannot both be set.
- Logs go to the typesafe_sdk logger. Secret headers are redacted. Request and response bodies are not.
Quickstart
python
from typesafe_sdk import TypeSafeClient
with TypeSafeClient() as client:
models = client.models.list()Watch out
This client blocks the calling thread. The async client is a separate page.
Questions about this entry
Short answers drawn from the linked project or page.
Explicit options do, and empty or whitespace-only environment values are ignored. The key comes from TYPESAFE_API_KEY, and empty keys, internal whitespace, control characters, and non-ASCII are rejected.
Pass RetryPolicy(max_retries=0). A custom transport and http_client cannot both be set, and remember this client blocks the calling thread — the async client is on a separate page.
client.models is a cached property exposing the Models API resource, so client.models.list() returns the models. It is the same resource the async client exposes, called without await.
To the typesafe_sdk logger, configurable through standard logging or the TYPESAFE_LOG_LEVEL variable. Secret headers are redacted from output, but request and response bodies are not.
Yes. system_one accepts per-call retry and timeout overrides that apply to that request only, plus extra_headers. Client-level values remain for other calls.
It is shallow-merged over the body after state, model, and questions are set, last write wins. A colliding key overrides the typed value, and object values are replaced rather than deep-merged.
TypeSafeError when the API key is missing or invalid or the timeout is invalid, and ValueError when both transport and http_client are supplied.
More Jev resources like this
Release notes for the official Python SDK, from the 14 September 2026 public release through the Pydantic migration and the HTTP/2 extra.
Jev Repos & SDKsDocs#official#docs#sdk
Official
RetryPolicy for the Python SDK: attempt count, exponential backoff with jitter, which HTTP statuses retry, and a total time budget.
Jev Repos & SDKsDocs#official#docs#sdk
Official
The Python SDK error hierarchy: HTTP status classes, rate-limit wait hints, connection and timeout errors, and response-body validation failures.
Jev Repos & SDKsDocs#official#docs#sdk
Official
How the Python SDK types questions: Noul, Choice, and Score as objects or dictionaries, including optional JSON instructions and criteria.
Jev Repos & SDKsDocs#official#docs#sdk
Official
Default settings and environment variable names for the Python SDK, including the API root, model alias, and per-request timeout.
Jev Repos & SDKsDocs#official#docs#sdk
Official
Shared Python SDK types: JSONValue, a nested JSON-like value that may be None, and descriptions built from strings or JSON values.
Jev Repos & SDKsDocs#official#docs#sdk
Official
From the Jev guides
Original write-ups on what this entry is for.
Closed weights have not stopped the ecosystem from rebuilding the shape in the open. API-compatible servers, retrained heads on small models, and inference-time tricks that skip generation entirely.
Jev Repos & SDKs#open-models#research#local
Read article
From the Jev community
Posts from builders shipping with Jev right now.