基于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使用(BluetoothGattCharacteristic)特性中的数据创建、写入和保存csv文件。getValue()   java如何使用groupBy创建一个值为BigDecimal字段平均值的映射?   日期时间Java将iso_即时格式的字符串转换为日期   java如何检索和显示Android firebase的配置文件?   scala AWSJAVASDK:解压缩大小必须小于262144000字节   要应用于列表的java JSTL if条件   java在3个点之间画一个正方形   Kotlin java抽象类IllegaAccessError   java原语双值相等取决于大小?   java有没有一种方法可以对数据集使用compareTo()方法,而不必遍历数据集的每个元素?   java为什么我发送的每个UDP消息都会改变端口源?   重新选择文件时swing Java JTree冻结   java不知道我的游戏是怎么回事   Motif L&F中自定义组合框渲染器中的Java Swing消失文本   java Trade Me API访问前的OAuth