A python workflow library
Project description
plumpy
A python workflows library that supports writing Processes with a well defined set of inputs and outputs that can be strung together.
RabbitMQ is used to queue up, control and monitor running processes via the kiwipy library.
Features:
- Processes can be remotely controlled by sending messages over RabbitMQ all from a simple interface
- Progress can be saved between steps and continued later
- Optional explicit specification of inputs and outputs including their types, validation functions, help strings, etc.
Installation
pip install plumpy
or
conda install -c conda-forge plumpy
Development
This package utilises tox for unit test automation, and pre-commit for code style formatting and test automation.
To install these development dependencies:
pip install tox pre-commit
To run the unit tests:
tox
For the rmq
tests you will require a running instance of RabbitMQ.
One way to achieve this is using Docker and launching test/rmq/docker-compose.yml
.
To run the pre-commit tests:
pre-commit run --all
To build the documentation:
tox -e docs-clean
Changes should be submitted as Pull Requests (PRs) to the develop
branch.
Publishing Releases
- Create a release PR/commit to the
develop
branch, updatingplumpy/version.py
andCHANGELOG.md
. - Fast-forward merge
develop
into themaster
branch - Create a release on GitHub (https://github.com/aiidateam/plumpy/releases/new), pointing to the release commit on
master
, namedv.X.Y.Z
(identical to version inplumpy/version.py
) - This will trigger the
continuous-deployment
GitHub workflow which, if all tests pass, will publish the package to PyPi. Check this has successfully completed in the GitHub Actions tab (https://github.com/aiidateam/plumpy/actions).
(if the release fails, delete the release and tag)
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.
Source Distribution
Built Distribution
Hashes for plumpy-0.18.5a0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3c28c47b108bcb32105446768bd47238debedfa26ed1a67a53660dc3e9bcc29 |
|
MD5 | 9e3ed69ff2665f48fc5daf9c423fead3 |
|
BLAKE2b-256 | 7f12f8942a2004b5f2f15febb9e42ab116ad6df295a6c78acfdc1e27d9b0caba |