从函数自动创建argparser
项目描述
概述
argparser的包装器,用于帮助从函数构建命令行界面。广泛使用类型提示 :snake:。
设置
:齿轮: 安装
直接安装到已激活的虚拟环境
$ pip install arger
:书籍: 使用
- 创建一个名为test.py的Python文件
from arger import Arger
def main(param1: int, param2: str, kw1=None, kw2=False):
"""Example function with types documented in the docstring.
Args:
param1: The first parameter.
param2: The second parameter.
kw1: this is optional parameter.
kw2: this is boolean. setting flag sets True.
"""
print(locals())
arger = Arger(
main,
prog="pytest", # for testing purpose. otherwise not required
)
if __name__ == "__main__":
arger.run()
-
在这里,Arger只是
ArgumentParser
的一个子类。它不会阻止您使用其他argparse
库。 -
用以下命令正常运行
$ python test.py -h
usage: pytest [-h] [-k KW1] [-w] param1 param2
Example function with types documented in the docstring.
positional arguments:
param1 The first parameter.
param2 The second parameter.
optional arguments:
-h, --help show this help message and exit
-k KW1, --kw1 KW1 this is optional parameter. (default: None)
-w, --kw2 this is boolean. setting flag sets True. (default: False)
$ python test.py 100 param2
{'param1': 100, 'param2': 'param2', 'kw1': None, 'kw2': False}
- 查看示例文件夹和文档,了解
arger
的更多使用情况。它支持任何级别的子命令。
功能
-
使用文档字符串解析帮助注释中的参数。支持
-
标志将从参数名生成。
- 例如:
def main(param: ...)
->-p, --param
- 如果需要,您可以在文档字符串内声明它,如
:param arg1: -a --arg this is the document
。
- 例如:
-
可以使用
Argument
类将任何值传递给parser.add_argument函数 -
装饰函数可以组合成任意级别的嵌套子命令。
注意
*args
受支持,但尚不支持**kwargs
。- 所有以下划线开头的可选参数都不会传递给
Parser
。它们被视为函数实现的私有参数。一些具有特殊含义的参数名称
_namespace_
-> 用于获取ArgumentParser.parse_args()
的输出_arger_
-> 用于获取解析器实例
Argparser 增强功能
- web-ui : https://github.com/nirizr/argparseweb
- 额外操作 : https://github.com/kadimisetty/action-hero
- 使用 argcomplete 自动生成 shell 补全
项目详情
下载文件
下载适合您平台文件的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
arger-1.4.8.tar.gz (16.4 kB 查看哈希值)
构建分发
arger-1.4.8-py3-none-any.whl (12.2 kB 查看哈希值)