Originally written for my Pydough cookiecutter project. 'Burden' uses the ridiculously usefull invoke library to automate numerous project maintenance and publishing tasks.
Invoke provides a clean, high level API for running shell commands and defining/organizing task functions from a tasks.py file:
Copy the "tasks.py.jinja" file to the root of your project (remove jinja suffix)
Burden provides the following tasks...
inv --list
Available tasks:
bandit Runs bandit against selected python files.
build Creates a new sdist & wheel build using the PyPA tool.
clean Removes all test, build, log and lint artifacts from the environment.
docs Build documentation.
lint Run all lint tasks on 'src' files only.
lint-all Run all lint tasks on all files.
lint-black (bl, black) Runs black formatter against selected python files.
lint-flake8 (fl, flake8) Run flake8 against selected files.
lint-isort (is, isort) Run isort against selected python files.
mypy Run mypy against selected python files.
psr Runs semantic-release publish.
publish Uploads a build to the PyPI-test and PyPI python repositories.
pypi Uploads a build to the PyPI python repository.
pypi-test Uploads a build to the PyPI-test python repository.
safety Runs safety to check for insecure requirements.
secure Runs all security tools.
tests Run tests using pytest.
update Updates the development environment
Stephen R A King : [email protected]
Distributed under the MIT license. See license for more information.
Created with Cookiecutter template: pydough version 1.2.1