simple-parsing
允许您将丑陋的argparse
脚本转换为结构良好、类型强大的精美艺术品。这不是一个花哨复杂的新命令行工具,它只是为普通的argparse添加了新功能!
使用dataclasses,simple-parsing
使共享和重用命令行参数变得更加容易 - 不再需要复制粘贴!
支持继承、嵌套、轻松序列化为json/yaml、从注释自动生成帮助字符串等等!
# examples/demo.py from dataclasses import dataclass from simple_parsing import ArgumentParser parser = ArgumentParser() parser.add_argument("--foo", type=int, default=123, help="foo帮助") @dataclass class Options: """ 这组命令行参数的帮助字符串 """ log_dir: str # 必需的str参数的帮助字符串 learning_rate: float = 1e-4 # float参数的帮助字符串 parser.add_arguments(Options, dest="options") args = parser.parse_args() print("foo:", args.foo) print("options:", args.options)
$ python examples/demo.py --log_dir logs --foo 123 foo: 123 options: Options(log_dir='logs', learning_rate=0.0001)
$ python examples/demo.py --help 用法: demo.py [-h] [--foo int] --log_dir str [--learning_rate float] 可选参数: -h, --help 显示此帮助消息并退出 --foo int foo帮助 (默认: 123) Options ['options']: 这组命令行参数的帮助字符串 --log_dir str 必需的str参数的帮助字符串 (默认: None) --learning_rate float float参数的帮助字符串 (默认: 0.0001)
对于只想解析单个dataclass的简单用例,您可以使用simple_parsing.parse
或simple_parsing.parse_known_args
函数:
options: Options = simple_parsing.parse(Options) # 或: options, leftover_args = simple_parsing.parse_known_args(Options)
pip install simple-parsing
作为开发人员,我们希望让进入我们项目的人能够轻松理解如何运行它们。然而,用户友好的--help
消息通常很难编写和维护,尤其是随着参数数量的增加。
使用simple-parsing