从函数自动创建argparser

arger的Python项目详细描述


概述

argparser的包装器,可帮助从函数构建CLI。广泛使用类型提示:蛇:。在

PyPi VersionPython VersionPyPI License

设置

:齿轮:安装

将其直接安装到激活的虚拟环境中:

$ 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。在

推荐的备选方案

我强烈建议你结帐的项目。在

  1. clize
  2. nuclear
  3. defopt

此项目是用cookiecutter使用jacebrowning/template-python生成的。在

Argparser增强功能

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaSwing:如何读取组件下面的图形信息?   JAVAutil。scanner Java scanner为什么跳过代码中的nextLine()?   html如何在jsp文件中使用内联java比较器?   编组时单个元素组的java JAXB元素包装器   java如何使SeleniumWebDriver动态选择客户端证书,而无需直观地检测弹出窗口   java定位服务。FusedLocationApi。getLastLocation(mGoogleApiClient)获取null   java如何快速创建指向Eclipse中元素的Javadoc链接?   如何使用Java语言填充MS Word模板?   java 安卓应用程序不显示来自服务器的值   java有没有办法解决这个问题:第45行第7列path$处的预期名称。客户端[0]。服务   java如何使用ASM仅从switch中删除break语句?   java LOOK else if语句:我把它放在哪里   无效的Java语句   java输出不应包含0值   java遇到意外文本时要抛出什么异常?   java如何将文本文件数组中的数字添加到2d int数组中?   java如何从列表中的对象访问属性?   对象的oop锁方法(Java)   java字符串连接concat()和+运算符的有效使用