Collection of pyflow tools for ecflow suites
Project description
Quick Start • Installation • Contributing • Documentation
pyflow-wellies
[!IMPORTANT] This software is Incubating and subject to ECMWF's guidelines on Software Maturity.
Wellies provides extra features to help you build consistent and configurable pyflow suites. This guide assumes a good level of familiarity with ecflow suites and using pyflow for its design and generation. Please refer to these projects' documentantion if some point about them is not clear.
Features
- YAML-based configuration for your suites: wellies provides simple patterns to help configuring your suite, making them more flexible and suitable for different use cases and environments.
- Simple template to start your suite design from scratch: Don't get blocked
by a blanck page; with
wellies-quickstartstarting to code a new workflow is one command away. - Git-tracked suite deployment from tracksuite: Wellies comes fully integrated with tracksuite providing git-based changes control for multi-users and remote deployment environments.
- Extended pyflow nodes for improved suite design, configuration and monitoring.
- Template scripts for improved reproducibility and support to D-R-Y design when it comes to scripting, like when dealing with datetime objects, MARS requests and others.
Quick Start
To create an empty suite with the default wellies structure, simply run
wellies-quickstart /path/to/project -p mysuite
Once created the suite can be build with:
cd /path/to/project
./mysuite.py configs/*.yaml
which is equivalent to
./mysuite.py configs/config.yaml config/tools.yaml configs/data.yaml config/execution_contexts.yaml
You can also cherry pick your configuration files following your needs:
cd /path/to/project
./mysuite.py configs/config.yaml config/tools.yaml
Alternatively you use named preset groups of configurations defined in a default Makefile and just use
make
Installation
First you need to assure you have ecFlow installed on your system. The simplest way is to create a conda environment. We recommend using mamba to speed up the environment creation process:
mamba create -c conda-forge -n wellies-env python=3.10 ecflow
conda activate wellies-env
Install from the Github repository directly:
python -m pip install https://github.com/ecmwf/pyflow-wellies
or from PyPI:
python -m pip install pyflow-wellies
License
See LICENSE
In applying this licence, ECMWF does not waive the privileges and immunities
granted to it by virtue of its status as an intergovernmental organisation
nor does it submit to any jurisdiction.
Copyright
© 2023 ECMWF. All rights reserved.
Contributing
First build a development conda environment
mamba env create -f ./environment.yml -n wellies-env
conda activate wellies-env
Then install with development dependencies
git clone https://github.com/ecmwf/pyflow-wellies.git
cd pyflow-wellies
pip install -e .[dev]
Building package
To build source distributions, build is required. With that the source distribution can be built from any environment with
git clone https://github.com/ecmwf/pyflow-wellies.git
cd pyflow-wellies
python -m build
Testing
To run tests, first install testing dependencies:
git clone https://github.com/ecmwf/pyflow-wellies.git
cd pyflow-wellies
pip install .[test]
Then to run all tests
python -m pytest
Documentation
To build your own local documentation you need mkdocs and a few entra plugins. As there are many auto-generated parts in the documentation, you will need a environment with wellies and all of its dependencies installed to build the documentation. To install the documentation-only dependencies:
git clone https://github.com/ecmwf/pyflow-wellies.git
cd pyflow-wellies
pip install .[docs]
Then to build it
mkdocs build
To build and make it available in a local server
mkdocs serve
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyflow_wellies-1.2.0.tar.gz.
File metadata
- Download URL: pyflow_wellies-1.2.0.tar.gz
- Upload date:
- Size: 185.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20468a1c6263f94fb2b5213d24fd06fa63a54014d0c0c8b62b1476d463cb1201
|
|
| MD5 |
a801a6154a658029530f8a5231c4e63a
|
|
| BLAKE2b-256 |
c85915c9626db0d386eada1db2bee99b029656977f3ce12398e74b064591cf44
|
Provenance
The following attestation bundles were made for pyflow_wellies-1.2.0.tar.gz:
Publisher:
cd.yml on ecmwf/pyflow-wellies
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyflow_wellies-1.2.0.tar.gz -
Subject digest:
20468a1c6263f94fb2b5213d24fd06fa63a54014d0c0c8b62b1476d463cb1201 - Sigstore transparency entry: 259625286
- Sigstore integration time:
-
Permalink:
ecmwf/pyflow-wellies@520af7251179f4bc142e06fe9bb815c83f940ba8 -
Branch / Tag:
refs/tags/1.2.0 - Owner: https://github.com/ecmwf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cd.yml@520af7251179f4bc142e06fe9bb815c83f940ba8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyflow_wellies-1.2.0-py3-none-any.whl.
File metadata
- Download URL: pyflow_wellies-1.2.0-py3-none-any.whl
- Upload date:
- Size: 179.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4810591026dc9ba8e1e9935261ed1322ecf5bcc5444cb8ad85f9df4c1158a83
|
|
| MD5 |
ea237ec55f43d91335eea872291a8044
|
|
| BLAKE2b-256 |
9f4ba60b9bafd1716028a6e6ec6f16ae83f54e2b558f60456c00ce334be1c902
|
Provenance
The following attestation bundles were made for pyflow_wellies-1.2.0-py3-none-any.whl:
Publisher:
cd.yml on ecmwf/pyflow-wellies
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyflow_wellies-1.2.0-py3-none-any.whl -
Subject digest:
b4810591026dc9ba8e1e9935261ed1322ecf5bcc5444cb8ad85f9df4c1158a83 - Sigstore transparency entry: 259625291
- Sigstore integration time:
-
Permalink:
ecmwf/pyflow-wellies@520af7251179f4bc142e06fe9bb815c83f940ba8 -
Branch / Tag:
refs/tags/1.2.0 - Owner: https://github.com/ecmwf
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
cd.yml@520af7251179f4bc142e06fe9bb815c83f940ba8 -
Trigger Event:
push
-
Statement type: