跳转到主要内容

从函数自动创建argparser

项目描述

概述

argparser的包装器,用于帮助从函数构建命令行界面。广泛使用类型提示 :snake:。

PyPi Version Python Version PyPI License

设置

:齿轮: 安装

直接安装到已激活的虚拟环境

$ 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的更多使用情况。它支持任何级别的子命令。

功能

  • 使用文档字符串解析帮助注释中的参数。支持

  • 标志将从参数名生成。

    1. 例如: def main(param: ...) -> -p, --param
    2. 如果需要,您可以在文档字符串内声明它,如 :param arg1: -a --arg this is the document
  • 可以使用Argument类将任何值传递给parser.add_argument函数

  • 装饰函数可以组合成任意级别的嵌套子命令。

  • 支持大多数标准类型 支持。请参阅示例以获取更多示例和支持类型。

注意

  • *args受支持,但尚不支持**kwargs
  • 所有以下划线开头的可选参数都不会传递给 Parser。它们被视为函数实现的私有参数。一些具有特殊含义的参数名称
    • _namespace_ -> 用于获取 ArgumentParser.parse_args() 的输出
    • _arger_ -> 用于获取解析器实例

Argparser 增强功能

项目详情


下载文件

下载适合您平台文件的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分发

arger-1.4.8.tar.gz (16.4 kB 查看哈希值)

上传时间

构建分发

arger-1.4.8-py3-none-any.whl (12.2 kB 查看哈希值)

上传时间 Python 3

支持者

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面