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

inquirerp的Python项目详细描述


##问题类型

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

###列表-{type:'list'}

类型名称消息选项`[,`default筛选器]属性。(注意 默认值必须是数组中的选项索引或选项

< P>![列表提示](/docs/images/list-prompt.png)原始=真)

-

###原始列表-{type:'raw list'}

类型名称消息选项`[,`default筛选器]属性。(注意 默认值必须是数组中的选项索引

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

-

###展开-{type:'expand'}

类型名称消息选项`[,`default]属性。(注意 默认值必须是数组中的选项index。如果未提供默认值键,则帮助将用作默认选项)

请注意,选项对象将为展开提示使用一个名为键的额外参数。此参数必须是单个(小写)字符。h选项由提示添加,不应由用户定义。

有关运行示例,请参见examples/expand.js

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

-

###复选框-{type:'checkbox'}

类型名称消息选项`[,`filter验证默认]属性。默认值应该是选中选项值的数组。

默认情况下,标记为{checked:true}的选项将被选中。

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

< P>![复选框提示](/docs/images/checkbox-prompt.png?原始=真)

-

###确认-{type:'confirm'}

获取类型名称消息`[,`default]属性。默认值如果使用,则应为布尔值。

< P>![确认提示](/docs/images/confirm-prompt.png)原始=真)

-

###输入-{type:'input'}

获取类型名称消息`[,`default筛选器验证]属性。

< P>![输入提示](/docs/images/input-prompt.png)原始=真)

-

###密码-{type:'password'}

获取类型名称消息`[,`default筛选器验证]属性。

< P>![密码提示](/docs/images/password-prompt.png)原始=真)

-

###编辑器-{type:'editor'}

类型名称消息`[,`default筛选器验证]属性

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

##问题值

问题是包含与问题相关的值的字典:

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

##贡献

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

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

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

##关于Windows支持

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

值得注意的是,实现是"尽可能的最大努力"。unix和windows终端都有其局限性。但一般来说,unix的体验还是会好一点。

对于Windows,建议使用Cmder或Conemu。

##致谢

非常感谢我们在Inquirer.js的朋友。我们认为他们在为nodejs开发工具方面做得很好。

##许可证

版权所有(c)2016 Mark Fink(Twitter:@MarkFink)根据麻省理工学院许可证获得许可。

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

推荐PyPI第三方库


热门话题
java搜索大数组中的最小数   java如何将数组变量用于IF语句?   多线程如何在java中使用多核?   java实现中的数据结构单链表,无限打印输出?   java检查命令行参数是否按有效顺序传递   爪哇点火。ignite返回“网格实例未正确启动或已停止”   java如何同时使用toString()或print()等显示两个输出?   在Java中使用LinkedList列出两个多项式的加法   Java中并行流的正确使用   mac上的java Eclipse:单击Eclipse图标后崩溃,重新安装,但无法为pyDev创建视图   java如何在sqlite4java中禁用自动提交?   java这样行吗?Synchronized(线程),然后synch块中的thread=null   java方法。调用它可以接受的参数?