Skip to content

pwwang/pipen-args

Repository files navigation

pipen-args

Command line argument parser for pipen

Usage

from pipen import Proc, Pipen


class Process(Proc):
    """My process

    Input:
        a: Input data
    """
    input = 'a'
    input_data = range(10)
    script = 'echo {{in.a}}'

Pipen().set_start(Process).run()
$ python example.py --help
Usage: test.py [-h | -h+] [options]

Undescribed process.
Use `@configfile` to load default values for the options.

Pipeline Options:
  --name NAME           The name for the pipeline, will affect the default workdir and
                        outdir. [default: pipen-0]
  --profile PROFILE     The default profile from the configuration to run the pipeline.
                        This profile will be used unless a profile is specified in the
                        process or in the .run method of pipen. You can check the
                        available profiles by running `pipen profile`
  --outdir OUTDIR       The output directory of the pipeline [default: ./<name>-output]
  --forks FORKS         How many jobs to run simultaneously by the scheduler
  --scheduler SCHEDULER
                        The scheduler to run the jobs

Namespace <in>:
  --in.a A [A ...]      Input data

Optional Arguments:
  -h, --help, -h+, --help+
                        show help message (with + to show more options) and exit

See more examples in tests/pipelines/ folder.

Plugin options

  • args_hide: (process level) Hide the arguments in the help message. Default: False
  • args_group: (pipeline level) The group name for the arguments. Default: pipeline options
  • args_flatten: (pipeline level) Flatten the arguments in the help message when there is only one process in the pipeline. Default: auto (flatten if single process, otherwise not)

Metadata for Proc envs items

The metadata in the docstring of env items determines how the arguments are defined.

class Process(Proc):
    """My process

    # other docstring sections

    Envs:
        a (<metadata>): ...
    """

The metadata could be key-value pairs separated by ;. The separator : or = is used to separate the key and value. The value is optional. If the value is not specified, it will be set to True. The keys are valid arguments of argx.ArgumentParser.add_argument, except that hidden will be interpreted as show=False in argx.ArgumentParser.add_argument. If the value of choices is not specified, the subkeys of the env item will be used as the choices.

About

Command line argument parser for pipen

Resources

Stars

Watchers

Forks

Packages

No packages published