基于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开发工具方面做得很好。
一组常见的交互式命令行用户界面。
[文件](文件)
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开发工具方面做得很好。