Dagger Python SDK
A client package for running Dagger pipelines.
What is the Dagger Python SDK?
The Dagger Python SDK contains everything you need to develop CI/CD pipelines in Python, and run them on any OCI-compatible container runtime.
Requirements
- Python 3.10 or later
- Docker, or another OCI-compatible container runtime
A compatible version of the Dagger CLI is automatically downloaded and run by the SDK for you, although it’s possible to manage it manually.
Installation
From PyPI, using pip:
pip install dagger-io
You can also install via Conda, from the conda-forge channel:
conda install dagger-io
Example
Create a main.py file:
import sys
import anyio
import dagger
from dagger import dag
async def main(args: list[str]):
async with dagger.connection():
# build container with cowsay entrypoint
ctr = (
dag.container()
.from_("python:alpine")
.with_exec(["pip", "install", "cowsay"])
)
# run cowsay with requested message
result = await ctr.with_exec(["cowsay", *args]).stdout()
print(result)
anyio.run(main, sys.argv[1:])
Run with:
$ python main.py "Simple is better than complex"
_____________________________
| Simple is better than complex |
=============================
\
\
^__^
(oo)\_______
(__)\ )\/\
||----w |
|| ||
Note It may take a while for it to finish, especially on first run with cold cache.
If you need to debug, you can stream the logs from the engine with the log_output config:
config = dagger.Config(log_output=sys.stderr)
async with dagger.connection(config):
...
Learn more
Development
The SDK is managed with a Dagger module in ./dev. To see which tasks are
available run:
dagger call -m dev
Common tasks
Run pytest in supported Python versions:
dagger call -m dev test default
Check for linting violations:
dagger call -m dev lint
Re-format code following common styling conventions:
dagger call -m dev format export --path=.
Update pinned development dependencies (run from this directory, ./sdk/python, or adjust export path accordingly):
dagger call -m ../../toolchains/python-sdk-dev dev-container with-exec --args uv,lock,-U directory --path . export --path .
Update a single pinned development dependency (run from this directory, ./sdk/python, or adjust export path accordingly):
dagger call -m ../../toolchains/python-sdk-dev dev-container with-exec --args uv,lock,-P,<DEPNAME> directory --path . export --path .
Build and preview the reference documentation:
dagger call -m dev docs preview up
Add --help to any command to check all the available options.
Metadata
Release files for dagger-io 0.21.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| dagger_io-0.21.11.tar.gz | 124.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dagger_io-0.21.11-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 236.9 kB
Release files / dagger_io-0.21.11.tar.gz
| Download URL | dagger_io-0.21.11.tar.gz |
|---|---|
| Size | 124.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4a779b8497f5a79b7a6e2aa47b7a3ad09c24bb92281fc19f6646a95c8ec7328c
|
|
BLAKE2b-256 checksum How to use checksums |
2e0baacad0e98fb186ad8be87f388e1da26e7760ea651a103373a92c3a4627b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Wolfi","version":"20230201","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / dagger_io-0.21.11-py3-none-any.whl
| Download URL | dagger_io-0.21.11-py3-none-any.whl |
|---|---|
| Size | 112.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
91df626199b5028832253c523977ab6f97046dbd29926d7b462b38c3621b627e
|
|
BLAKE2b-256 checksum How to use checksums |
4cfeed89b39ab5ac37d2816f8ced5ab9c2730a6fab7457296710c038c2b18727
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Wolfi","version":"20230201","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for dagger-io 0.21.11
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.