Skip to main content

A task runner that works well with poetry.

Project description

Poe the Poet

Poe the Poet

PyPI version PyPI version PyPI version PyPI version

A batteries included task runner that works well with poetry.

Read the docs


Features

  • ✅ Straight forward declaration of project tasks in your pyproject.toml

  • ✅ Tasks are run in poetry's virtualenv (or another env you specify)

  • ✅ Shell completion of task names (and global options too for zsh)

  • ✅ The poe CLI can be used standalone, or as a plugin for the poetry

  • ✅ Tasks can be commands, shell scripts, python expressions, or references to python functions

  • ✅ Concise commands with extra arguments passed to the task poe [options] task [task_args]

  • ✅ Easily define CLI arguments for your tasks

  • ✅ Tasks can specify and reference environment variables, even without a shell

  • ✅ Tasks are self documenting, with optional help messages (just run poe with no arguments)

  • ✅ Tasks can be composed into sequences or DAGs

  • ✅ Works with .env files

Quick start

  1. Install the Poe the Poet via pipx or another method.
pipx install poethepoet
  1. Define some tasks in your pyproject.toml
[tool.poe.tasks]
test         = "pytest --cov=my_app"                         # a simple command task
serve.script = "my_app.service:run(debug=True)"              # python script based task
tunnel.shell = "ssh -N -L 0.0.0.0:8080:$PROD:8080 $PROD &"   # (posix) shell based task
  1. Run your tasks via the CLI
$ poe test -v tests/unit # extra CLI arguments are appended to the underlying command
Poe => pytest --cov=my_app
...

If you're using poetry, then poe will automatically use CLI tools and libraries from your poetry managed virtualenv without you having to run poetry run or poetry shell

Poe can also be used without poetry.

Contributing

There's plenty to do, come say hi in the discussions or open an issue! 👋

Also check out the CONTRIBUTING.MD 🤓

License

MIT

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

poethepoet-0.20.0.tar.gz (43.4 kB view hashes)

Uploaded Source

Built Distribution

poethepoet-0.20.0-py3-none-any.whl (57.1 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