Skip to main content

A pipen cli plugin to check requirements for processes of a pipeline

Project description

pipen-cli-require

Checking the requirements for processes of a pipeline

Install

pip install -U pipen-cli-require

Usage

Defining requirements of a process

# example_pipeline.py
from pipen import Pipen, Proc

class P1(Proc):
    """Process 1

    Requires:
        - name: pipen
          message: Run `pip install -U pipen` to install
          check: |
            {{proc.lang}} -c "import pipen"
        - name: liquidpy
          message: Run `pip install -U liquidpy` to install
          check: |
            {{proc.lang}} -c "import liquid"
        - name: nonexist
          message: Run `pip install -U nonexist` to install
          check: |
            {{proc.lang}} -c "import nonexist"
    """
    input = "a"
    output = "outfile:file:out.txt"
    lang = "python"

# Setup the pipeline
# Must be outside __main__
# Or define a function to return the pipeline
pipeline = Pipen(...)

if __name__ == '__main__':
    # Pipeline must be executed with __main__
    pipeline.run()

Checking the requirements via the CLI

> pipen require -v -n 2 tests/example_pipeline.py:example_pipeline

Checking requirements for pipeline: EXAMPLE_PIPELINE
│
└── P1: Process 1
    ├── ✔️ pipen
    ├── ✔️ liquidpy
    └── x nonexist: Run `pip install -U nonexist` to install
        └── Traceback (most recent call last):
              File "<string>", line 1, in <module>
            ModuleNotFoundError: No module named 'nonexist'

Checking requirements with runtime arguments

For example, when I use a different python to run the pipeline:

Add this to the head of example_pipeline.py:

from pipen_args import args as _

See also tests/pipen_args_pipeline.py

Then specify the path of the python to use:

pipen require tests/example_pipeline.py:example_pipeline --P1.lang /path/to/another/python

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

pipen-cli-require-0.1.0.tar.gz (5.9 kB view hashes)

Uploaded Source

Built Distribution

pipen_cli_require-0.1.0-py3-none-any.whl (6.4 kB view hashes)

Uploaded Python 3

Supported by

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