创建cli应用程序的库
pikli的Python项目详细描述
pikli:用于制作cli应用程序的库
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<6c692e7376673f62716e63683d6d6173746572" /><一个简单的python库来构建命令行接口。深受眼镜蛇的启发。
安装
啊!开始
pikli是一个命令行解析器。它分析命令提示符上提供的参数,并决定其命令、标志或命令参数是否相应地起作用。命令可以有:标志、参数和子命令。在以下示例中:
啊!我们有两个命令root
&;code>serve。root
顾名思义就是根命令。这个决定是通过提供父子关系来做出的。基本上是树状结构。而位于树顶部的命令是根。service
命令由command
类的add command
方法生成根的子/子命令,
add command
方法将任意数量的命令作为子命令添加。然后执行命令。现在转到创建对象时提供的参数:
使用
:确定命令的名称。必须的。short
命令的简短说明。long
命令的详细说明。运行
:调用命令的执行
方法时触发的函数。关于run
函数有一件事需要记住。要用作运行
函数的函数(在本例中为启动服务器),必须有一个用作列表的参数。
标志
标志是与命令一起使用的额外选项。例如:git commit-m"initial commit"
这里,git是根命令,commit是子命令,是标志&;后面的字符串是它的值。现在让我们看一个picli示例:
命令的
标志
方法返回标志
对象,该对象处理该命令的每个与标志相关的活动。intp是该对象的一种方法,它创建一个整数标志。第一个参数是标志的名称(在长版本中使用),第二个参数是标志的可用名称,如-p
。第三个参数是标志的默认值。bool标志没有默认值。默认为false。第四个应该很明显国旗的说明。现在,让我们使用到目前为止看到的一切:
python main.py serve -p 8080
< BR>或
< BR>python main.py serve --port=8080
< BR>
输出应为:HTTP server running on port: 8080
< BR>当调用pikli.get廑int("port")
时,在不使用p
标志的情况下执行SERVE命令将返回默认值,这是一个pikli核心函数,用于检索整数标志的值。类似地,还有get-str
&;get-bool
来获取字符串&;bool标志值。
帮助标志
pikli提供自动帮助标志生成和识别。每当执行不带run函数的命令时,将自动执行
帮助标志。或者,可以像任何其他标志一样显式地提到它,如
-h
或--help
。尝试:
python main.py serve --help
< BR>简单地运行python main.py将触发它的帮助标志,因为它没有run函数。帮助标志应该显示类似的内容:
hello is a cli app
Usage:
hello [args] [flags] [sub commands]
Available Commands:
serve starts the http server
Flags:
-h, --help Shows info regarding the command
持久标志
pikli提供对持久标志的支持。 这里,将verbose 除了 只要保持 最后,您可以使用pikli获取字符串或整数环境变量。这两个函数是 按如下方式运行: 完全接受建议。请参阅贡献指南 pikli是根据麻省理工学院许可证获得许可的。
持久标志
与normal标志
类似,除非您将其分配给命令
它会自动分配给它在命令树底部拥有的每个子项。因此,如果给根命令指定了一个持久标志,那么每个命令都会得到这个标志。< < < > > >
importpiklidefstart_server(arg):ifpikli.get_bool("verbose"):print("showing details")print("HTTP server running on port: {}".format(pikli.get_int("port")))root=pikli.Command(use="hello",short="hello is a cli app")serve=pikli.Command(use="serve",short="starts the http server",run=start_server)serve.flags().intp("port","p",8000,"the port on which the server runs")root.add_command(serve)root.persistent_flags().boolp("verbose","v","shows details regarding the operation")root.execute()
标志
分配给根命令
使此标志成为全局标志。分配持久标志时,不要忘记首先添加所有子命令。参数
子命令之外,还可以在pikli中使用
标志
普通参数。所需的只是用作run
函数参数的arg
列表。让我们看一个例子:
0
< BR>pip install pikli
参数的索引顺序就行了。
参数的索引号
并不关心标志
。例如,python main.py-v"john doe"参数作为索引0进行计数。输出应为:
1
pip install pikli
Env
get_str_env
&;get_int_env
:
2
< BR>pip install pikli
3
pip install pikli
贡献
许可证
推荐PyPI第三方库