Skip to main content

A client package for running Dagger pipelines in Python.

Reason this release was yanked:

Mistake creating tag in forked repo

Project description

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.

Example

# say.py
import sys
import anyio

import dagger


async def main(args: list[str]):
    async with dagger.Connection() as client:
        # build container with cowsay entrypoint
        # note: this is reusable, no request is made to the server
        ctr = (
            client.container()
            .from_("python:alpine")
            .exec(["pip", "install", "cowsay"])
            .with_entrypoint(["cowsay"])
        )

        # run cowsay with requested message
        # note: methods that return a coroutine with a Result need to
        # await query execution
        result = await ctr.exec(args).stdout().contents()

        print(result)


if __name__ == "__main__":
    anyio.run(main, sys.argv[1:])

Run with:

$ python say.py "Simple is better than complex"
  _____________________________
| Simple is better than complex |
  =============================
                             \
                              \
                                ^__^
                                (oo)\_______
                                (__)\       )\/\
                                    ||----w |
                                    ||     ||

Learn more

Development

Requirements:

Start enviornment with poetry install.

Run tests with poetry run poe test.

Reformat code with poetry run poe fmt or just check with poetry run poe lint.

Re-regenerate client with poetry run poe generate.

Build reference docs with poetry run poe docs.

Tip: You don't need to prefix the previous commands with poetry run if you activate the virtualenv with poetry shell.

Project details


Download files

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

Source Distribution

dagger_io-0.1.0.tar.gz (26.7 kB view hashes)

Uploaded Source

Built Distribution

dagger_io-0.1.0-py3-none-any.whl (30.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page