Skip to main content

render-lab-tasks-exa

Unreleased Python port: 12 registered tasks from render-lab/render-tasks. Python 3.12+, Render SDK 1.0.1. Requires core 0.1.1 or later.

From the repository root:

uv sync --all-packages --locked

Import render_lab_tasks_exa.tasks to register tasks. The package root is inert. Compose the exported app with Workflows.from_workflows; call tasks through ctx.run. Every operation also exports *_impl(ctx, input, *, deps=None) for injection. Client(http, env) accepts a caller-owned HTTPX client, and Deps(exa=client) injects it. Default dependencies open and close the HTTP client per invocation; credentials are read lazily at use. No HTTP retries or background vendor polling occur; retry.py owns the durable retry policies.

Task surface

Registered task Python export
exa.answer answer
exa.awaitAgent await_agent
exa.awaitWebset await_webset
exa.cancelAgent cancel_agent
exa.cancelWebset cancel_webset
exa.createWebset create_webset
exa.createWebsetMonitor create_webset_monitor
exa.deleteWebset delete_webset
exa.getContents get_contents
exa.listWebsetItems list_webset_items
exa.search search
exa.startAgent start_agent

Typed JSON inputs and results are in types.py. Task names and JSON field names match the pinned source; Python function names use snake_case.

Environment

Variable Requirement
EXA_API_KEY Required at first API call.

Behavior and limits

Uses direct HTTP matching exa-js 2.16.0 requests rather than installing a Python vendor SDK. Search defaults to text with maxCharacters 10000 when contents is omitted; answer uses model exa and stream false. Search/contents/answers enforce content-character budgets; agent results and Webset pages enforce output-byte budgets. Websets use stable externalId values and recover duplicate-create 409s by reading that ID. Missing/already-terminal cancellations normalize 404/409. Unknown agent states become queued and unknown Webset states become pending, matching the source. Answer text itself is not covered by the citation-content budget; this inherited limitation needs a separate bound before production use.

Verification

All registered tasks have hermetic contract fixtures executed independently against the pinned TS implementation. SDK-backed tasks also have explicit HTTP request fixtures. See tests/test_batch3_contracts.py and tests/test_batch3_edges.py. These are not live vendor results.

Vendor webhooks subpaths and other registration-free TS exports are outside this batch unless explicitly listed above. Full registered-task coverage does not imply all supporting exports are ported.

Pending scopes, test resources, replay, and hosted checks are in the live-testing backlog and verification tracker.

Webhook adapter

render_lab_tasks_exa.webhooks.exa_websets_adapter(on_event, ...) returns a registration-free adapter for render_lab_triggers. The callback receives the verified event and returns {"task": "namespace.task", "args": [event]} or None. The signing credential EXA_WEBHOOK_SECRET is read inside verification unless provided explicitly. Importing this module does not register tasks. Signature checks use the raw body; live delivery remains in the testing backlog.

Installation

pip install render-lab-tasks-exa==0.1.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

render_lab_tasks_exa-0.1.0.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

render_lab_tasks_exa-0.1.0-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

Details for the file render_lab_tasks_exa-0.1.0.tar.gz.

File metadata

  • Download URL: render_lab_tasks_exa-0.1.0.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for render_lab_tasks_exa-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6fe62ef0342fc93ddbf87ede26440afdd4b58166521cd03c7f5c8ec2c8773024
MD5 54454944473a2e5c9ba637f2c5cdc8bc
BLAKE2b-256 6c55bf2e61ce310d436736fbc39290fc6ef9280d7b63dca41cfe442d79827819

See more details on using hashes here.

Provenance

The following attestation bundles were made for render_lab_tasks_exa-0.1.0.tar.gz:

Publisher: publish.yml on render-lab/render-tasks-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file render_lab_tasks_exa-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for render_lab_tasks_exa-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d69787301cbea7b86c8c2413a67dcdd8253639d0e68a9be27787129ea6d9b810
MD5 3db2c7d16b5f4091e410083ceedf6111
BLAKE2b-256 67d8bad02b72616198e06ce372ee18ee175b900f0b1546840989a0d1a668feea

See more details on using hashes here.

Provenance

The following attestation bundles were made for render_lab_tasks_exa-0.1.0-py3-none-any.whl:

Publisher: publish.yml on render-lab/render-tasks-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page