Skip to main content

Collection of pyflow tools for ecflow suites

Project description


ESEE Production Chain Maturity Incubating License: Apache 2.0 Latest Release Documentation Status

Quick StartInstallationContributingDocumentation

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-quickstart starting 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyflow_wellies-1.2.0.tar.gz (185.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyflow_wellies-1.2.0-py3-none-any.whl (179.8 kB view details)

Uploaded Python 3

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

Hashes for pyflow_wellies-1.2.0.tar.gz
Algorithm Hash digest
SHA256 20468a1c6263f94fb2b5213d24fd06fa63a54014d0c0c8b62b1476d463cb1201
MD5 a801a6154a658029530f8a5231c4e63a
BLAKE2b-256 c85915c9626db0d386eada1db2bee99b029656977f3ce12398e74b064591cf44

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyflow_wellies-1.2.0.tar.gz:

Publisher: cd.yml on ecmwf/pyflow-wellies

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for pyflow_wellies-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b4810591026dc9ba8e1e9935261ed1322ecf5bcc5444cb8ad85f9df4c1158a83
MD5 ea237ec55f43d91335eea872291a8044
BLAKE2b-256 9f4ba60b9bafd1716028a6e6ec6f16ae83f54e2b558f60456c00ce334be1c902

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyflow_wellies-1.2.0-py3-none-any.whl:

Publisher: cd.yml on ecmwf/pyflow-wellies

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page