Skip to main content

pipen-cli-require

Checking the requirements for processes of a pipen 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:
        pipen: Run `pip install -U pipen` to install
          - check: |
            {{proc.lang}} -c "import pipen"
        liquidpy: Run `pip install -U liquidpy` to install
          - check: |
            {{proc.lang}} -c "import liquid"
        nonexist: Run `pip install -U nonexist` to install
          - check: |
            {{proc.lang}} -c "import nonexist"
        conditional:
          - if: {{envs.require_conditional}}
          - check:
            {{proc.lang}} -c "import optional"

    """
    input = "a"
    output = "outfile:file:out.txt"
    envs = {"require_conditional": False}
    lang = "python"

# Setup the pipeline
# Must be outside __main__
# Or define a function to return the pipeline
class Pipeline(Pipen):
    starts = P1


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

Parsing process requirements using API

from pipen_cli_require import parse_proc_requirements


def parse_proc_requirements(
    proc: Type[Proc]
) -> Tuple[OrderedDiot, OrderedDiot]:
    """Parse the requirements of a process

    Args:
        proc: The process class

    Returns:
        A tuple of two OrderedDiot's.
        The first one is the annotated sections by pipen_annotate
        The second one is the requirements. The key is the name of the
            requirement, the value is a dict with message, check and if_ keys.
    """

Checking the requirements via the CLI

> pipen require --verbose --ncores 2 -p example_pipeline.py:pipeline

Checking requirements for pipeline: PIPEN-0
│
└── P1: Process 1
    ├──  pipen
    ├──  liquidpy
    ├──  nonexist: Run `pip install -U nonexist` to install
       └── Traceback (most recent call last):
             File "<string>", line 1, in <module>
           ModuleNotFoundError: No module named 'nonexist'
        └──  conditional (skipped by if-statement)

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:

import pipen_args

See also tests/pipen_args_pipeline.py

Then specify the path of the python to use:

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

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-1.1.0.tar.gz (100.0 kB view details)

Uploaded Source

Built Distribution

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

pipen_cli_require-1.1.0-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file pipen_cli_require-1.1.0.tar.gz.

File metadata

  • Download URL: pipen_cli_require-1.1.0.tar.gz
  • Upload date:
  • Size: 100.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pipen_cli_require-1.1.0.tar.gz
Algorithm Hash digest
SHA256 a97bd3b8acd6a7cdd59b7db8967baf62b9712270fc88414c1ba61a4f81777ef2
MD5 6a2b4b2a3332f44c3c02b65701efdb6e
BLAKE2b-256 41c453652683c80e58ea4410c34f6b65fc6e5deaf4840d781bcded802e7afca7

See more details on using hashes here.

File details

Details for the file pipen_cli_require-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: pipen_cli_require-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pipen_cli_require-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1085b767e272b9ffdd1c5bf539ca51f261b78de26ab6718f5bf3405a64a01f57
MD5 239cbcff779d375f195cd93c8362ae57
BLAKE2b-256 7d46fb0683a64c1d15c3c9db0bc14e36eb9298de2d6f1b7b20ef2042c85d76a9

See more details on using hashes here.

Supported by

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