wove.integrations

wove.integrations registers built-in backend adapters and provides the adapter base interface. Backend libraries remain optional; Wove includes adapter code but imports third-party packages only when an adapter is selected.

When selected Wove tasks should run through an existing task system, wove.integrations provides the adapter registry, the base adapter contract, and the worker entrypoints those systems call to return results to Wove.

All built-in backend adapters are dispatch features. Install wove[dispatch] plus the selected backend library in the process that submits work and in any worker environment that executes Wove payloads.

Adapter Registry

Built-in adapter names:

  • celery

  • temporal

  • ray

  • rq

  • taskiq

  • arq

  • dask

  • kubernetes_jobs

  • aws_batch

  • slurm

Adapter Contract

A BackendAdapter receives a JSON-safe payload and submits it to a backend. The adapter does not run the task itself. The backend worker must call Wove’s worker entrypoint so the result can be posted back to the callback URL.

Required method:

  • submit(payload, frame): submit one task payload and return a backend submission handle.

Optional methods:

  • start(): create clients, queues, pools, or connections.

  • cancel(run_id, submission, frame): ask the backend to cancel work.

  • close(): release adapter-owned clients or pools.

Worker Entrypoints

  • wove.integrations.worker.run(payload): synchronous worker entrypoint.

  • wove.integrations.worker.arun(payload): async worker entrypoint.

API Details

class wove.integrations.ARQAdapter(**kwargs)[source]

Bases: BackendAdapter

Parameters:

kwargs (Any)

async close()[source]
Return type:

None

install_hint: str | None = 'arq'
required_modules: Tuple[str, ...] = ('arq',)
async start()[source]
Return type:

None

async submit(payload, frame)[source]
Parameters:
Return type:

Any

class wove.integrations.AWSBatchAdapter(**kwargs)[source]

Bases: BackendAdapter

Parameters:

kwargs (Any)

async cancel(run_id, submission, frame)[source]
Parameters:
Return type:

None

install_hint: str | None = 'boto3'
required_modules: Tuple[str, ...] = ('boto3',)
async start()[source]
Return type:

None

async submit(payload, frame)[source]
Parameters:
Return type:

Any

class wove.integrations.BackendAdapter(*, name, config, callback_url, run_config)[source]

Bases: object

Backend-specific submit/cancel bridge used by BackendAdapterEnvironmentExecutor.

Parameters:
async cancel(run_id, submission, frame)[source]
Parameters:
Return type:

None

async close()[source]
Return type:

None

install_hint: str | None = None
classmethod missing_dependencies()[source]
Return type:

Tuple[str, …]

required_modules: Tuple[str, ...] = ()
async start()[source]
Return type:

None

async submit(payload, frame)[source]
Parameters:
Return type:

Any

class wove.integrations.CeleryAdapter(**kwargs)[source]

Bases: BackendAdapter

Parameters:

kwargs (Any)

async cancel(run_id, submission, frame)[source]
Parameters:
Return type:

None

install_hint: str | None = 'celery'
required_modules: Tuple[str, ...] = ('celery',)
async start()[source]
Return type:

None

async submit(payload, frame)[source]
Parameters:
Return type:

Any

class wove.integrations.DaskAdapter(**kwargs)[source]

Bases: BackendAdapter

Parameters:

kwargs (Any)

async cancel(run_id, submission, frame)[source]
Parameters:
Return type:

None

async close()[source]
Return type:

None

install_hint: str | None = 'dask[distributed]'
required_modules: Tuple[str, ...] = ('distributed',)
async start()[source]
Return type:

None

async submit(payload, frame)[source]
Parameters:
Return type:

Any

class wove.integrations.KubernetesJobsAdapter(*, name, config, callback_url, run_config)[source]

Bases: BackendAdapter

Parameters:
async cancel(run_id, submission, frame)[source]
Parameters:
Return type:

None

install_hint: str | None = 'kubernetes'
required_modules: Tuple[str, ...] = ('kubernetes',)
async start()[source]
Return type:

None

async submit(payload, frame)[source]
Parameters:
Return type:

Any

class wove.integrations.RQAdapter(**kwargs)[source]

Bases: BackendAdapter

Parameters:

kwargs (Any)

async cancel(run_id, submission, frame)[source]
Parameters:
Return type:

None

install_hint: str | None = 'rq'
required_modules: Tuple[str, ...] = ('rq',)
async start()[source]
Return type:

None

async submit(payload, frame)[source]
Parameters:
Return type:

Any

class wove.integrations.RayAdapter(*, name, config, callback_url, run_config)[source]

Bases: BackendAdapter

Parameters:
async cancel(run_id, submission, frame)[source]
Parameters:
Return type:

None

install_hint: str | None = 'ray'
required_modules: Tuple[str, ...] = ('ray',)
async start()[source]
Return type:

None

async submit(payload, frame)[source]
Parameters:
Return type:

Any

class wove.integrations.SlurmAdapter(*, name, config, callback_url, run_config)[source]

Bases: BackendAdapter

Parameters:
async cancel(run_id, submission, frame)[source]
Parameters:
Return type:

None

install_hint: str | None = ''
required_modules: Tuple[str, ...] = ()
async submit(payload, frame)[source]
Parameters:
Return type:

Any

class wove.integrations.TaskiqAdapter(**kwargs)[source]

Bases: BackendAdapter

Parameters:

kwargs (Any)

install_hint: str | None = 'taskiq'
required_modules: Tuple[str, ...] = ('taskiq',)
async start()[source]
Return type:

None

async submit(payload, frame)[source]
Parameters:
Return type:

Any

class wove.integrations.TemporalAdapter(**kwargs)[source]

Bases: BackendAdapter

Parameters:

kwargs (Any)

async cancel(run_id, submission, frame)[source]
Parameters:
Return type:

None

install_hint: str | None = 'temporalio'
required_modules: Tuple[str, ...] = ('temporalio',)
async start()[source]
Return type:

None

async submit(payload, frame)[source]
Parameters:
Return type:

Any

wove.integrations.get_backend_adapter_class(name)[source]
Parameters:

name (str)

Return type:

Type[BackendAdapter]

wove.integrations.get_backend_adapter_dependencies()[source]
Return type:

Dict[str, tuple]

wove.integrations.get_backend_adapter_install_hints()[source]
Return type:

Dict[str, str]

class wove.integrations.base.BackendAdapter(*, name, config, callback_url, run_config)[source]

Bases: object

Backend-specific submit/cancel bridge used by BackendAdapterEnvironmentExecutor.

Parameters:
async cancel(run_id, submission, frame)[source]
Parameters:
Return type:

None

async close()[source]
Return type:

None

install_hint: str | None = None
classmethod missing_dependencies()[source]
Return type:

Tuple[str, …]

required_modules: Tuple[str, ...] = ()
async start()[source]
Return type:

None

async submit(payload, frame)[source]
Parameters:
Return type:

Any

async wove.integrations.base.maybe_await(value)[source]
Parameters:

value (Any)

Return type:

Any

async wove.integrations.worker.arun(payload)[source]
Parameters:

payload (Dict[str, Any])

Return type:

Any

wove.integrations.worker.run(payload)[source]
Parameters:

payload (Dict[str, Any])

Return type:

Any

wove.integrations.worker.run_backend_frame(payload)
Parameters:

payload (Dict[str, Any])

Return type:

Any