自动参数分析
autoargs的Python项目详细描述
##autoargs argparse是不是很简单
你有没有想过用argparse把你从你的Python舒适区拉出来?argparse允许您在向命令行生成api时跳过样板文件:
>>;>from autoargs import autocall,cmdable
>;>def str\u repeat(s:str,n:int):
…打印((s*n.strip())
>>gt;自动调用(str_repeat,[“args很简单!\ n,“3”])
参数很容易!
args很简单!
args很简单!
>;@cmdable
>;>def product(*args:float):
…return functools.reduce(operator.mul,args,1.0)
>;>product.cmd([“5”,“10”,“0.5”])
25.0
>;@cmdable
>;>def aggregate(*args:float,op:{'sum','mul}):
…如果op==“sum”:
…返回和(args)
…elif op==“mul”:
…返回乘积(*ARGs)
& gt;& [g];[BR/>用法:聚合[OH],MUL}[ARGs[ARGS]…< BR/> BR/>位置参数:
ARGSUBS
BR/>可选参数:
-H,帮助显示此帮助消息并退出
-Op{{,B}/BR/>< BR/> & Gt;>;aggregate.cmd(“--op mul 1 2 3 4”)
24.0
那应该很容易,对吧?
并且“所有”中的每个函数都公开为一个子parser。
如果您还需要其他内容,请使用一个函数来注释arg,该函数接受一个字符串并返回所需的类型。
-var kwargs当前不受支持(如果您对它们的预期行为有任何想法,请评论github)
todo:
-完成文档
-尤其是递归自动调用和分派器(它很酷,但有点神秘)
-添加更多示例
-更好的自述文件…
-用于注释参数的自定义类,使您可以同时执行多个操作
-如果您有任何理想,在github上https://github.com/metaperture/autoargs向我发送通知或打开问题
你有没有想过用argparse把你从你的Python舒适区拉出来?argparse允许您在向命令行生成api时跳过样板文件:
>>;>from autoargs import autocall,cmdable
>;>def str\u repeat(s:str,n:int):
…打印((s*n.strip())
>>gt;自动调用(str_repeat,[“args很简单!\ n,“3”])
参数很容易!
args很简单!
args很简单!
>;@cmdable
>;>def product(*args:float):
…return functools.reduce(operator.mul,args,1.0)
>;>product.cmd([“5”,“10”,“0.5”])
25.0
>;@cmdable
>;>def aggregate(*args:float,op:{'sum','mul}):
…如果op==“sum”:
…返回和(args)
…elif op==“mul”:
…返回乘积(*ARGs)
& gt;& [g];[BR/>用法:聚合[OH],MUL}[ARGs[ARGS]…< BR/> BR/>位置参数:
ARGSUBS
BR/>可选参数:
-H,帮助显示此帮助消息并退出
-Op{{,B}/BR/>< BR/> & Gt;>;aggregate.cmd(“--op mul 1 2 3 4”)
24.0
那应该很容易,对吧?
并且“所有”中的每个函数都公开为一个子parser。
如果您还需要其他内容,请使用一个函数来注释arg,该函数接受一个字符串并返回所需的类型。
-var kwargs当前不受支持(如果您对它们的预期行为有任何想法,请评论github)
todo:
-完成文档
-尤其是递归自动调用和分派器(它很酷,但有点神秘)
-添加更多示例
-更好的自述文件…
-用于注释参数的自定义类,使您可以同时执行多个操作
-如果您有任何理想,在github上https://github.com/metaperture/autoargs向我发送通知或打开问题