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
File details
Details for the file plumpy-0.18.6.tar.gz
.
File metadata
- Download URL: plumpy-0.18.6.tar.gz
- Upload date:
- Size: 68.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.7.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c729f3cf6ff85254d1cf75259b1b01e176668b5c83d8223c715e3a2ffd5a6df |
|
MD5 | 89eab2365f8d73dd3f6cb6653284da54 |
|
BLAKE2b-256 | 8e7885fb829d9b5df678e257a45f7d10c515c7df443a14e06e8979902f8769b3 |
Provenance
File details
Details for the file plumpy-0.18.6-py3-none-any.whl
.
File metadata
- Download URL: plumpy-0.18.6-py3-none-any.whl
- Upload date:
- Size: 60.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.7.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d0014f590d06c1907a1fd7e0e9c1f005cb80f3a8dae8c891c9dc02d6fdfbadd |
|
MD5 | ad69f435b2aa7cc29cb59cf88af127dd |
|
BLAKE2b-256 | 23e3ffc538b8da98473be697f947f2bdf3e10670fe6d19de5df0a51b1d917d1d |