# 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"
}