从函数自动创建argparser
arger的Python项目详细描述
概述
argparser的包装器,可帮助从函数构建CLI。广泛使用类型提示:蛇:。在
设置
:齿轮:安装
将其直接安装到激活的虚拟环境中:
$ pip install arger
或将其添加到您的Poetry项目中:
^{pr2}$:books:用法
- 创建一个名为测试.py在
fromargerimportArgerdefmain(param1:int,param2:str,kw1=None,kw2=False):"""Example function with types documented in the docstring. :param param1: The first parameter. :param param2: The second parameter. """print(locals())if__name__=='__main__':Arger(main).run()
- 在
这里Arger只是
在ArgumentParser
的一个子类。它不会隐藏您使用其他argparse
库。在 - 在
正常运行时使用
在
python test.py 100 param2
- 签出examples文件夹和文档,查看
arger
的更多操作。它支持任何级别的子命令。在
特点
- 使用docstring分析参数的帮助注释。支持 在
- 将从参数名生成标志。
如果需要,可以在docstring中声明它,比如
:param arg1: -a --arg this is the document
。 也可以使用def main(arg1:int=Argument(flags=('-a', '--arg'), ...): ...
- 修饰函数可以组合成任何级别的嵌套子命令。在
- 没有外部lib依赖项
- 大多数标准类型supported。 请参阅examples以获取更多支持的类型和示例。在
- 支持
ArgumentParser.add_argument
的所有参数。 它可以用arger.Argument
类更新。在 *args
支持,但还没有{}支持。在 - 所有以下划线开头的可选参数都不会传递给
Parser
。 它们被认为是函数实现的私有属性。 一些有特殊意义的参数名称_namespace_
->;从ArgumentParser.parse_args()
获取输出_arger_
->;获取解析器实例
类似项目
argh
- 有类似的目标来简化argparser的使用。在
- 不支持类型提示。在
- 没有最新版本。在
typer
- 如果您正在使用
click
,我强烈建议您检查这个库。在 - 它是整洁的,并从中提取了许多特征。在
- 不支持从DocString加载参数的帮助文本。在
invoke
- 不支持类型提示。在
cliche
- 有相似的目标。在
- 并没有像
arger
那样涵盖很多用例。在
cliar
- 帮助参数不支持docstring。在
推荐的备选方案
我强烈建议你结帐的项目。在
此项目是用cookiecutter使用jacebrowning/template-python生成的。在
Argparser增强功能
- web用户界面:https://github.com/nirizr/argparseweb
- 额外操作:https://github.com/kadimisetty/action-hero
- 使用argcomplete自动完成shell
- 项目
标签: