基于inquirer.js的通用交互命令行用户界面的集合

form的Python项目详细描述


#inquirerpy

一组常见的交互式命令行用户界面。


[文件](文件)
1.[安装](安装)
2.[示例](示例)
3.[快速启动](快速启动)
4.[问题类型](类型)
5。[问题属性](属性)
6.[用户界面和样式](样式)
2.[Windows平台](Windows)
3.[支持](支持)
4.[贡献](贡献)
5.[确认](确认)
6.[许可证](许可证)



\**`inquirerpy`**想让现有的inquirer.js用户更容易用python编写沉浸式命令行应用程序。我们确信,它的功能集对于构建沉浸式cli应用程序来说是最完整的。我们也希望**`inquirerpy`**对python用户有用。

**`inquirerpy`**应该简化
-提供*错误反馈*
-*提问*
-*解析*输入
-*验证*答案
-管理*分层提示*

**注意:*****`inquirerpy`**提供用户界面和查询会话流。
>;
如果您正在搜索脚手架实用程序,请查看inquirerpy的姊妹实用程序[香蕉](https://github.com/finklabs/banana)。



/a>;



只需使用pip安装inquirerpy包,就像inquirer.js一样,使用inquirer有两个简单的步骤:

*定义一个**问题列表**,并将它们交给**提示**
*promt返回**答案列表**

``python
from future_u import print_函数,unicode_literals
from inquirer import prompt,print_json

answers=prompt(questions)
print_json(answers)将答案用作应用程序的输入
````


>从这里开始,一个很好的起点可能就是示例部分。



examples
<;a name="examples">;


演示单个问题类型或功能:

*底部栏.py
*expand.py
*list.py
*password.py
*recursive.py
*when.py
*checkbox.py
*hierarchical.py
*long list.py
*pizza.py-演示使用不同问题类型的*rx observate array.py
*editor.py
*input.py
*nested call.py
*rawlist.py
*rx observate create.py



\rawlist.py
<;a name="types">;

`questions`是一个问题列表。每个问题都有一个类型。

(注意
默认值必须是数组中的"index"选项或"value"选项)

![列表提示](/docs/images/list-prompt.png)raw=true)

--

(注意
默认值必须是数组中的"index"选项)

![原始列表提示](/docs/images/raw-list.png?)raw=true)

--

(注意
默认值必须是数组中的"index"选项。如果未提供"default"键,则"help"将用作默认选项

请注意,"choices"对象将在"expand"提示中使用名为"key"的额外参数。这个参数m必须是单个(小写)字符。"h"选项是由提示添加的,不应由用户定义。


有关运行示例,请参见"examples/expand.py"。

![展开提示关闭](/docs/images/expand-prompt-1.png?原始=真)
![展开提示展开](/docs/images/expand-prompt-2.png?)raw=true)

--

` default`应该是checked choices值的数组。

如果"disabled"是一个字符串,则该字符串将被输出到disabled选项旁边,否则将默认为"disabled"。"disabled"属性也可以是一个同步函数,将当前答案作为参数接收,并返回布尔值或字符串。

![复选框提示](/docs/images/checkbox-prompt.png?raw=true)

--


`如果使用default`则应为布尔值。

![确认提示](/docs/images/confirm-prompt.png)raw=true)

--


[输入提示](/docs/images/input-prompt.png)raw=true)

--


[密码提示](/docs/images/password-prompt.png)raw=true)

--

一旦用户退出编辑器,临时文件的内容就会作为结果读入。要使用的编辑器是通过读取$visual或$editor环境变量来确定的。如果两者都不存在,则使用记事本(在Windows上)或VIM(Linux或Mac上)。




默认值:input-可能的值:input、confirm、list、rawlist、expand、checkbox、password、editor
*name:(string)将答案存储在answers散列中时要使用的名称。如果名称包含句点,它将在应答哈希中定义路径。
*消息:(string函数)要打印的问题。如果定义为函数,则第一个参数将是当前的查询会话答案。
*默认值:(string number array function)未输入时要使用的默认值,或返回默认值的函数。如果定义为函数,则第一个参数将是当前的查询会话答案。
*choices:(array function)choices数组或返回choices数组的函数。如果定义为函数,第一个参数将是当前的查询会话答案。数组值可以是简单的字符串,也可以是包含名称(要显示在列表中)、值(要保存在应答哈希中)和短(要在选择后显示)属性的对象。choices数组也可以包含分隔符。
*validate:(函数)接收用户输入,如果值有效,则返回true,否则返回错误消息(字符串)。如果返回false,则提供默认错误消息。
*filter:(函数)接收用户输入并返回要在程序中使用的筛选值。返回的值将添加到answers散列中。
*当:(function,boolean)接收当前用户answers散列时,应返回true或false,具体取决于是否应询问此问题。该值也可以是简单的布尔值。
*pagesizee:(number)更改使用list、rawlist、expand或checkbox时将呈现的行数。






**`inquirerpy`**是在跨平台的prompt_工具包上构建的,您在上面构建的所有东西都应该在unix和windows系统上运行良好。在windows上,它使用不同的事件循环(waitformultipleobjects而不是select)和另一个输入输出系统。(win32api而不是伪终端和vt100。)

unix和windows终端都有其局限性。但一般来说,unix的体验还是会好一点。

对于windows,建议使用cmder或conemu。



请查找并研究适当的示例。

github todo link上的问题


对于许多问题,例如常见的python编程问题stackoverflow可能是搜索答案的好地方。待办事项链接

访问Finklabs Slack频道以获取公告和新闻。todo link



\contribution
<;a name="contribution">;


>单元测试单元测试使用pytest编写。请为每个新功能或错误修复添加单元测试。

文档为每个api更改添加文档。请随时发送排版修复和更好的文件!

我们希望为多个提示和环境提供良好的支持。如果您需要帮助,我们希望为每个终端/操作系统保留一个测试人员列表,以便在发布之前与您联系并获得反馈。如果您想被添加到列表中,请通知我们。



我们认为他们在为nodejs开发工具方面做得很好。



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

推荐PyPI第三方库


热门话题
在数据库中存储密码的java加密方法   java正则表达式否定整个正则表达式   java为什么要得到这个Hashmap输出?   看不到玻璃鱼爪哇SE 6   类对象包装器中的Java基本数据字段   java从文本文件中读取整数并存储到单独的变量中?(扫描仪)   优化大型Java数据阵列的处理和管理   如何使用Java XML包装类创建对象   java为ExecutorService invokeAll()创建包装器   java如何在Android Studio 1.0.0中设置Facebook SDK?获取SDK位置未找到错误   java在尝试从线程启动动画时调用了FromErrorThreadException   java根据哈希确认文件内容   通过java在neo4j中获取索引值相同的所有节点?   java为什么我的Validare邮政编码(布尔)程序返回false?   java会话自动从servlet/jsp生成,尽管存在以下条件:<%@page session=“false”%>   创建新LANsocket时拒绝java连接   java如何多线程更新由sql代码更新的数据库?   安卓 Java使用类作为集合来添加项   安卓为什么我的清单文件不声明java包?