要添加带有argparse对象的logique的yaml文件。
argparse-graph的Python项目详细描述
AGRParseGraph
摘要
说明
使用argpargraph在argpars对象中添加逻辑。
这个包可以帮助您避免在使用argparse
安装
安装程序包:
pip install argparse-graph
卸载程序包:
pip uninstall argparse-graph
手动:
安装软件包:
make install
卸载程序包:
make uninstall
使用它
The parameter defined with argparse must be named (dest="argsName")if not, it will
be impossible to find some link between the variable name and the name in the yaml file.
argparse对象示例:
python脚本
fromargparseGraph.argparseGraphimportargparseGraphasaggdefparsarg():parser=argparse.ArgumentParser(description="random options for differents cenarios")parser.add_argument("-q",dest="argv1",help="test",type=int)parser.add_argument("-w",dest="argv2",help="test",type=int,action='append')parser.add_argument("-e",dest="argv3",help="test",type=str,default="test3")parser.add_argument("-t",dest="argv4",help="test",type=str,default=False)parser.add_argument("-a",dest="argv5",help="test",type=str)parser.add_argument("-s",dest="argv6",help="test",type=bool)parser.add_argument("-d",dest="argv7",help="test",type=str,action='append')args=parser.parse_args()returnargsres=parsarg()agg=agg("scenarios.yml",res_args,verbose=False)
scenario.yml
# if all parameters are not None# cmd: ./main.py -q 1 -w 1 -w 2 -e t -t o -a o -s t -d "Hello" -d "World"scenario_1:options:"all"# if argv3, argv4 are not None and other are None# format list [v1, v2]# cmd: ./main.py -e toto -t okscenario_2:options:[argv3,argv4]# if argv3, argv4, argv5, argv6, argv7 are not None and other are None# format list # - argv3# - argv4# - argv5# - argv6# - argv7# cmd: ./main.py -e toto -t ok -a ok -s True -d "Hello" -d "World"scenario_3:options:-argv3-argv4-argv5-argv6-argv7# if argv3, argv4, argv6, argv7 are not None and other are None# format str argv3, argv4, argv6, argv7# cmd: ./main.py -s False -t True -d "Test"scenario_4:options:argv3, argv4, argv6, argv7
使用argparseGraph
对象可以得到3种不同的结果格式,
使用这些方法:
# Return the name of the strategie in the yaml file.agg.get_one()# example:# 'scenario_test'# Return a dictagg.get_dict()# { 'scenario': 'scenario_test', 'options': ['argv3', 'argv4', 'argv5', 'argv6', 'argv7'], 'status': None}agg.get_all()# {# 'scenario_1': {'options': 'all', 'name': 'scenario_1', 'status': 'Fail'},# 'scenario_2': {'options': ['argv3', 'argv4'], 'name': 'scenario_2', 'status': 'Fail'},# 'scenario_3': {'options': ['argv3', 'argv4'], 'name': 'scenario_3', 'status': 'Fail'},# 'scenario_4': {'options': ['argv3', 'argv4', 'argv6', 'argv7'], 'name': 'scenario_4', 'status': 'Fail'},# 'scenario_test': {'options': ['argv3', 'argv4', 'argv5', 'argv6', 'argv7'], 'name': 'scenario_test', 'status': None},# 'scenario_5': {'options': '', 'name': 'scenario_5', 'status': 'Fail'}# }
测试
有两种测试可用,第一种是在项目目录中的源上运行, 第二个运行在系统上的软件包安装上。
对未安装的包运行测试:
make test
对安装的软件包运行测试:
make test_install
文件
makefile命令可用:
Commands name | Description |
---|---|
^{ | install ^{ |
^{ | uninstall ^{ |
^{ | run test on sources not installed |
^{ | run test on the package installed |
^{ | run example |
^{ | run example with a specifique scenarios |
您可以指定makefile选项:
Define name | Default | Description |
---|---|---|
^{ | pytest | Tools to run tests |
^{ | python3 | Use Python to run tests and install package |
credit idea gael rottier
引用: