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)
| File | Size | Uploaded | |
|---|---|---|---|
| sdax_hamilton-0.2.0.tar.gz | 112.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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