Skip to main content

sdax-hamilton

A typed Hamilton frontend for Python SDAX's dependency execution and resource lifecycle runtime.

Import the real supported Hamilton decorators, then add execution policies and shutdown declarations. The frontend compiles Hamilton's resolved graph into one reusable SDAX plan. Each invocation gets its own values and acquisition records. SDAX owns scheduling, retries, timeouts and reverse dependency shutdown.

Documentation · Quick start · Retries, jitter and shutdown

Status: experimental release 0.2.0. The API is not frozen. Before 1.0, breaking API changes use a new minor version; patch versions preserve the documented API except for corrections to incorrect behavior. See the implementation status for validation and the compatibility limits before adopting it.

Install

Python 3.11 or later is required. This alpha pins sdax==0.7.2 and apache-hamilton==1.90.0.

python -m pip install sdax-hamilton==0.2.0

Define an application module, for example nodes.py:

from hamilton.function_modifiers import inject, value
from sdax_hamilton import execution


@execution(timeout=5.0, retries=2)
@inject(prefix=value("Hello"))
async def greeting(name: str, prefix: str) -> str:
    return f"{prefix}, {name}"

Prepare once and execute inside your application's event loop:

import nodes
from sdax_hamilton import Driver

plan = Driver(nodes).prepare(["greeting"])


async def greet(name: str) -> str:
    result = await plan.execute(inputs={"name": name})
    return result["greeting"]

Use plan.open(...) when a requested result is an owned resource: its lifetime then includes the caller's async with body. See the API guide for acquisition, cleanup, cancellation and retry contracts.

This is a whole-graph translator, not an adapter for Hamilton's AsyncDriver. The minimal SDAX core API remains unchanged. Declared parameter/result bindings are checked; this does not prove Python function bodies or give result dictionaries per-key static types.

Development

python -m pip install '.[test]'
python -m ruff check --no-cache src tests examples
python -m mypy src/sdax_hamilton tests/typing/authoring.py
python -m pytest -q -p no:cacheprovider

Public tests run from this repository without the workspace, private evidence or ignored scratch/ prototypes. The historical design and comparison documents explain the decisions; the current API guide describes the implemented surface.

MIT licensed; see LICENSE.

Metadata

Release files for sdax-hamilton 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sdax-hamilton 0.2.0
File Size Uploaded
sdax_hamilton-0.2.0.tar.gz 112.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sdax-hamilton 0.2.0
File Interpreter ABI Platform
sdax_hamilton-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 161.7 kB

Release files / sdax_hamilton-0.2.0.tar.gz

Download URL sdax_hamilton-0.2.0.tar.gz
Size 112.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d4f69c1496f1d33abe8906361fc73e2ebc0998c67c79d8fa259788ad5568926d
BLAKE2b-256 checksum
How to use checksums
2e5aa3ae8ec896ed5946eee6ce3219bfcb9db8b86afe3e2e753d279c2cee73b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / sdax_hamilton-0.2.0-py3-none-any.whl

Download URL sdax_hamilton-0.2.0-py3-none-any.whl
Size 49.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
52f71f1b8f0993ae8d1cef381175e1456ff2e5a47073845ef6f64fea16f123b9
BLAKE2b-256 checksum
How to use checksums
522418a8e0db4f740b67b93306fff4e6db0985adba84e86fd539721bdd67a905
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release 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