pipen-args


Namepipen-args JSON
Version 0.16.0 PyPI version JSON
download
home_pagehttps://github.com/pwwang/pipen-args
SummaryCommand-line argument parser for pipen.
upload_time2024-08-11 06:32:12
maintainerNone
docs_urlNone
authorpwwang
requires_python<4.0,>=3.9
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pipen-args

Command line argument parser for [pipen][1]

## Usage

```python
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()
```

```shell
$ 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.

```python
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.

[1]: https://github.com/pwwang/pipen

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/pwwang/pipen-args",
    "name": "pipen-args",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.9",
    "maintainer_email": null,
    "keywords": null,
    "author": "pwwang",
    "author_email": "pwwang@pwwang.com",
    "download_url": "https://files.pythonhosted.org/packages/11/c7/f02716adbe63b2efac3a3b5207038432477d8328da3d81641c0cbbb81c6e/pipen_args-0.16.0.tar.gz",
    "platform": null,
    "description": "# pipen-args\n\nCommand line argument parser for [pipen][1]\n\n## Usage\n\n```python\nfrom pipen import Proc, Pipen\n\n\nclass Process(Proc):\n    \"\"\"My process\n\n    Input:\n        a: Input data\n    \"\"\"\n    input = 'a'\n    input_data = range(10)\n    script = 'echo {{in.a}}'\n\nPipen().set_start(Process).run()\n```\n\n```shell\n$ python example.py --help\nUsage: test.py [-h | -h+] [options]\n\nUndescribed process.\nUse `@configfile` to load default values for the options.\n\nPipeline Options:\n  --name NAME           The name for the pipeline, will affect the default workdir and\n                        outdir. [default: pipen-0]\n  --profile PROFILE     The default profile from the configuration to run the pipeline.\n                        This profile will be used unless a profile is specified in the\n                        process or in the .run method of pipen. You can check the\n                        available profiles by running `pipen profile`\n  --outdir OUTDIR       The output directory of the pipeline [default: ./<name>-output]\n  --forks FORKS         How many jobs to run simultaneously by the scheduler\n  --scheduler SCHEDULER\n                        The scheduler to run the jobs\n\nNamespace <in>:\n  --in.a A [A ...]      Input data\n\nOptional Arguments:\n  -h, --help, -h+, --help+\n                        show help message (with + to show more options) and exit\n```\n\nSee more examples in `tests/pipelines/` folder.\n\n## Plugin options\n\n- `args_hide`: (process level) Hide the arguments in the help message. Default: `False`\n- `args_group`: (pipeline level) The group name for the arguments. Default: `pipeline options`\n- `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)\n\n\n## Metadata for Proc envs items\n\nThe metadata in the docstring of env items determines how the arguments are defined.\n\n```python\nclass Process(Proc):\n    \"\"\"My process\n\n    # other docstring sections\n\n    Envs:\n        a (<metadata>): ...\n    \"\"\"\n```\n\nThe metadata could be key-value pairs separated by `;`. The separator `:` or `=` is used to\nseparate the key and value. The value is optional. If the value is not specified, it\nwill 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.\n\n[1]: https://github.com/pwwang/pipen\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Command-line argument parser for pipen.",
    "version": "0.16.0",
    "project_urls": {
        "Homepage": "https://github.com/pwwang/pipen-args",
        "Repository": "https://github.com/pwwang/pipen-args"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a3e30d4041e229e3ddb1128dcdbcfe0c073094ded0816ec29f73bbb9d9b80aea",
                "md5": "2e698aa210ebe30cf47fa8b9abb707bb",
                "sha256": "7d02cd4de99340c8ca073d793579f123d56f0292e3aa4f815bc120b53d1dba55"
            },
            "downloads": -1,
            "filename": "pipen_args-0.16.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2e698aa210ebe30cf47fa8b9abb707bb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 12343,
            "upload_time": "2024-08-11T06:32:10",
            "upload_time_iso_8601": "2024-08-11T06:32:10.827704Z",
            "url": "https://files.pythonhosted.org/packages/a3/e3/0d4041e229e3ddb1128dcdbcfe0c073094ded0816ec29f73bbb9d9b80aea/pipen_args-0.16.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "11c7f02716adbe63b2efac3a3b5207038432477d8328da3d81641c0cbbb81c6e",
                "md5": "a5c269dbde2213032dca6ce4f887da9a",
                "sha256": "19564c41f45fb181c953e79485830981d7468545b852800df29b0cb07f67dcb1"
            },
            "downloads": -1,
            "filename": "pipen_args-0.16.0.tar.gz",
            "has_sig": false,
            "md5_digest": "a5c269dbde2213032dca6ce4f887da9a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 11402,
            "upload_time": "2024-08-11T06:32:12",
            "upload_time_iso_8601": "2024-08-11T06:32:12.657044Z",
            "url": "https://files.pythonhosted.org/packages/11/c7/f02716adbe63b2efac3a3b5207038432477d8328da3d81641c0cbbb81c6e/pipen_args-0.16.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-11 06:32:12",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "pwwang",
    "github_project": "pipen-args",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "pipen-args"
}
        
Elapsed time: 0.51193s