基于inquirer.js的通用交互命令行用户界面的集合
inquirerp的Python项目详细描述
##问题类型
问题
是一个问题列表。每个问题都有一种类型。
###列表-{type:'list'}
取类型
,名称
,消息
,选项`[,`default
,筛选器
]属性。(注意
默认值必须是数组中的选项索引
或选项值
)
-
###原始列表-{type:'raw list'}
取类型
,名称
,消息
,选项`[,`default
,筛选器
]属性。(注意
默认值必须是数组中的选项索引
。
-
###展开-{type:'expand'}
取类型
,名称
,消息
,选项`[,`default
]属性。(注意
默认值必须是数组中的选项index
。如果未提供默认值
键,则帮助
将用作默认选项)
请注意,选项
对象将为展开
提示使用一个名为键的额外参数。此参数必须是单个(小写)字符。
h
选项由提示添加,不应由用户定义。
有关运行示例,请参见examples/expand.js
。
-
###复选框-{type:'checkbox'}
取类型
,名称
,消息
,选项`[,`filter
,验证
,默认
]属性。默认值
应该是选中选项值的数组。
默认情况下,标记为{checked:true}
的选项将被选中。
属性已禁用
为truthy的选项将不可选择。如果disabled
是一个字符串,则该字符串将在disabled选项旁边输出,否则将默认为"disabled"
。disabled
属性也可以是一个同步函数,将当前答案作为参数接收并返回布尔值或字符串。
-
###确认-{type:'confirm'}
获取类型
,名称
,消息`[,`default
]属性。默认值
如果使用,则应为布尔值。
-
###输入-{type:'input'}
获取类型
,名称
,消息`[,`default
,筛选器
,验证
]属性。
-
###密码-{type:'password'}
获取类型
,名称
,消息`[,`default
,筛选器
,验证
]属性。
-
###编辑器-{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)根据麻省理工学院许可证获得许可。