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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.