将函数转换为cli的小实用程序

ancli的Python项目详细描述


https://i.imgur.com/5hCKc9u.png

从函数注释生成参数分析器。灵感来源于 Firedocopt。为经常使用 单一入口点。

怎么做?

使用ancli构建cli的过程非常简单。 一。用带注释的参数编写一个普通的python函数。 2.用make_cli把它包起来。 三。运行脚本。

示例

一。带注释参数的函数

函数run具有显式注释的参数,并使用其签名 实例化argparse.ArgumentParser实例,该实例接受 特定类型和默认(如果有的话)参数。如果未提供默认值, 然后认为该参数是必需的。

fromancliimportmake_clidefrun(path:str,flag:bool=True,iterations:int=1):print(f'run: path={path}, flag={flag}, iterations={iterations}')if__name__=='__main__':make_cli(run)

现在这个片段可以如下使用。

$ python script.py --path file.txt --flag 0
run: path=file.txt, flag=False, iterations=1

2.不带注释的函数

没有类型注释的函数尝试根据 它们的默认值。

fromancliimportmake_clidefrun(a,b=2,c=3.0):forparamin(a,b,c):print(type(param))if__name__=='__main__':make_cli(run)

没有默认值的参数被视为字符串。

$ python script.py --a 1 --b 2 --c 3.0
<type'str'>
<type'int'>
<type'float'>

三。作为模块运行ancli

将包作为模块运行允许从某些函数动态构建cli。 您只需要指定模块的路径和函数 作为入口。

$ python -m ancli examples.functions:compute --a 2 --b 642

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在本机安卓中嵌入多个unity模块?   Java中这两种强制转换方法的区别是什么?   java上的进程通信和对象方法wait()   swing Java:如何将框架的背景色设置为组合框中相应的选定颜色名称   java有没有办法在没有合作伙伴api的情况下发送viber品牌/商业信息?   将SQL连接到php或java   java Docx4j更新表格列表/图表列表   java codePro junit始终在junit4中生成   java使用Spring的TimeBasedRollingPolicy   带有cert.dar playConsole的java颤振标志应用程序   java如何在同一类的函数中使用构造函数中的二维数组变量   java对于一个Appium项目,我得到以下错误“构造函数URL(字符串)引用了缺少的类型MalformedURLException”   java不断地向前和向后推进索引,没有循环   SpringJava。lang.OutOfMemoryError:超出GC开销限制:应用程序部署在weblogic中