Skip to main content

Lazy, Python-first, alternative to make, just, doit, and invoke

Project description

shoal

Python function and shell command task runner.

This package started as a completely standalone runner, but became a wrapper of invoke. I chose Invoke over doit because Invoke allows more control over namespace creation and task discovery, which allows for partial and lazy loading of the tasks as needed.

Alternatives to shoal and/or Invoke are make, just, doit, duty, taskipy, pypyr, and many more.

For examples for how shoal is Used, take a look at calcipy and recipes

Installation

poetry add shoal

Usage

shoal is a wrapper of Invoke where the app is run as a package. This means that you can either re-vendor the tasks as a new CLI or import them piecemeal to a task.py file.

Create a <package>/tasks.py file with:

from shoal import shoalling  # noqa: F401

Add the file to your pyproject.toml scripts:

[tool.poetry.scripts]
shoal = "package.tasks:shoalling"

Then test with:

poetry run shoal --help

For more example code, see the scripts directory or the tests.

Project Status

See the Open Issues and/or the CODE_TAG_SUMMARY. For release history, see the CHANGELOG.

Contributing

We welcome pull requests! For your pull request to be accepted smoothly, we suggest that you first open a GitHub issue to discuss your idea. For resources on getting started with the code base, see the below documentation:

Code of Conduct

We follow the Contributor Covenant Code of Conduct.

Open Source Status

We try to reasonably meet most aspects of the "OpenSSF scorecard" from Open Source Insights

Responsible Disclosure

If you have any security issue to report, please contact the project maintainers privately. You can reach us at dev.act.kyle@gmail.com.

License

LICENSE

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

shoal-0.5.1.tar.gz (8.8 kB view hashes)

Uploaded Source

Built Distribution

shoal-0.5.1-py3-none-any.whl (9.5 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