argeye(argparse的一个优化)
argeye
保留了“argparse”的所有原始用法,但添加了一个yml文件,以便用户可以通过编辑yml文件来修改参数。
argparse支持使用命令行设置参数,其缺点是用户必须键入arg字符串和值。
键入是一个多余的操作,这可能会导致错误和对args的违反直觉的理解。
yml文件提供了直观的理解和更方便的设置参数的方法。
代码链接
https://github.com/llzmgjzhy/argeye
用法
(original)
保留了argparse的所有原始用法,详细信息请参阅 官方文档
(new)
第一次运行 (same as running argparse)
# examples/main.py
from argeye import ArgumentParser
parser = ArgumentParser()
parser.add_argument("equip_name", type=str, default="wired")
parser.add_argument("--model_name", default="pd", type=str)
parser.add_argument("--finetune", default=False, type=bool)
args = parser.parse_args()
print(args)
# decide whether to input arguments at the terminal based on actual needs
$ python examples/main.py
Namespace(equip_name='wired',model_name='pd',finetune=True)
执行上述命令行操作后,yml文件将在工作目录中创建。
yml文件的内容如下:
equip_name: wired
--model_name: pd
--finetune: false
现在有了yml文件,用户可以通过编辑yml文件而不是在命令行中键入字符串来更改参数值。
更改操作完成后(在yml文件中完成),只需运行python文件,无需在命令行上键入参数。
example:
# change arguments in the yml file
equip_name: wireless
--model_name: resnet
--finetune: True
# run python file directly
$ python examples/main.py
Namespace(equip_name='wireless', model_name='resnet', finetune=True)
installation
pip install argeye