一个python模块,用于收集通用的交互式命令行用户界面,基于inquirer.js

PyInquirer的Python项目详细描述


pythoninquirer
==


一组通用的交互式命令行用户界面。它最初名为"whaaaaat<;https://github.com/finklabs/whaaaaat>;",由**finklabs**创建,但由于命名错误和需要修复,我决定重命名并对其应用一些必要的修复。原因是
因为我需要它作为一个可以通过pypi安装的工具。我需要根据自己的需要重写它。不过,不用担心,如果需要的话,main
repo上的任何新修复都会添加到其中。最后,我目前正在研究作者的todo.


pyinquirer 1.0.3错误修复更新
----

`pyinquirer 1.0.3<;https://github.com/citguru/pyinquirer/releases/tag/1.0.3>;`



`文档<;文档>;`

1.`安装`示例:示例:3。`快速启动<;快速启动>;`
4.`问题类型:类型:5。`问题属性<;属性>;`
6。`用户界面和样式。` windows平台<;windows>;`
3。`支持4。`贡献,贡献,贡献`致谢<;致谢>;`
6.` license<;license>;`


目标和理念
----

**pyinquirer**力求成为"python<;https://python.org/>"的易于嵌入和美观的命令行界面;`_.
**pyinquirer**希望现有的inquirer.js用户能够轻松地用python编写沉浸式命令行应用程序。我们确信
它的功能集对于构建沉浸式cli应用程序来说是最完整的。我们也希望**pyinquirer**能够证明自己对python用户有用。

**pyinquirer**应该简化以下过程:提供*错误
反馈*-*提问*-*解析*输入-*验证*答案
-管理*分层提示*

**注意:**pyinquirer**提供用户界面和查询会话流。>;

文档
——


代码::shell

pip install pyinquirer

代码::shell

pip install prompt_toolkit==1.0.14


,或者从这里下载wheel文件:

…代码::shell

https://pypi.org/project/prompt_toolkit/1.0.14/files

quickstart
~~~~~~~~~


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

…代码::python

from uu future_u_uu import print_u函数,unicode字符
from pyinquirer import prompt,print_json

questions=[
{
‘type’:‘input’,
‘name’:‘first_u name’,
‘message’:‘what'your first name’,
}
]


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

单个问题类型或
功能:

-`editor.py<;/examples/editor.py>;` ` ` `-`checkbox.py<;/examples/checkbox.py>;`r/>-`confirm.py<;/examples/confirm.py>;` `
-`hierarchical.py<;/examples/hierarchical.py>;` `
-`pizza.py<;/examples/pizza.py>;` ` ` ` `演示使用不同的问题类型-`rawlist.py<;/examples/rawlist.py>;`

一系列问题。每个问题都有一个类型。

list-`{type:'list'}``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

take`` type``,`` name`,`` message`,`` choices`\[,`` default`,
`` filter``]属性。(注意,默认值必须是数组中的选择``index``
或是数组中的选择``value`)


` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` br/>``filter``]属性。(注意,默认值必须是
数组中的"index"选项)

…图::https://raw.githubusercontent.com/citguru/pyinquirer/master/docs/images/raw list.png
:alt:raw list prompt


raw list prompt
----


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

此参数必须是单个
(小写)字符。"h"选项是由提示添加的,用户不应定义它。


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

"checkbox"}``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

采用``type``,``name`,``message`,``choices``\[,``filter`,
``validate`,``default`]属性。``默认的``应该是checked choices值的
数组。默认情况下,将选中标记为`{checked:true}`的选项。

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

…图::https://raw.githubusercontent.com/citguru/pyinquirer/master/docs/images/checkbox prompt.png
:alt:checkbox prompt


----


confirm-`{type:'confirm'}`
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

``消息``\[,``默认``属性。
``默认``如果使用,则应为布尔值。

…图::https://raw.githubusercontent.com/citguru/pyinquirer/master/docs/images/confirm prompt.png
:alt:confirm prompt


----


input-`{type:'input'}`
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

``默认的``,``filter`,
``validate`]属性。

…图::https://raw.githubusercontent.com/citguru/pyinquirer/master/docs/images/input prompt.png
:alt:input prompt


----


``消息`\[,``默认`,``筛选`,
``验证``]属性。

…图::https://raw.githubusercontent.com/citguru/pyinquirer/master/docs/images/password prompt.png
:alt:password prompt


----

editor-`{type:'editor'}````
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

取`` type``,`` name``,``消息```````\[,```` eargs``]属性

如果给定编辑器
(应该是可执行文件的完整路径,但使用常规操作
系统搜索路径查找可执行文件),则它将覆盖检测到的编辑器。可选地,可以使用一些环境变量
。如果编辑器未经更改而关闭,则返回"none"。在
直接编辑文件的情况下,返回值始终为"none",忽略"save"和"ext"。

但是
您还可以提供编辑器的路径,例如"vi"。
-ext:要告诉编辑器的扩展名。默认为".txt"
,但更改此选项可能会更改突出显示的语法,例如".py"
-save:接受"true"或"false"以确定要保存文件。
-filename:接受要编辑的文件的路径。
-env:接受要传递给editor

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


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

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

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


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

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

github todo link上的问题


待办事项链接代码::shell

$git clone git@github.com:citguru/pyinquirer.git
$cd pyinquirer
$python-m venv venv
$source venv/bin/activate
$pip install--升级pip
$pip install-r requirements.txt
$pip install-rrequirements_dev.txt


在环境就绪的情况下,您可以添加新功能并检查所有工作是否正常


。代码::shell

$pytest-sv tests/



许可证
----


由于我不是所有者,所有许可证都归finklab


版权所有(c)2016-2017 Mark Fink(twitter:@mark fink)


版权所有(c)2018 Oyetoke Toby(twitter:@Oyetoket)

根据麻省理工学院许可证授权。

|列表提示image::https://raw.githubusercontent.com/citguru/pyinquirer/master/docs/images/input prompt.png
…|展开提示关闭image::https://raw.githubusercontent.com/citguru/pyinquirer/master/docs/images/expand-prompt-1.png
…|展开提示展开image::https://raw.githubusercontent.com/citguru/pyinquirer/master/docs/images/expand-prompt-2.png

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

推荐PyPI第三方库


热门话题
java OpenGL着色器可在桌面上编译,但不能在Android上编译   java调度器。forward()生成HTTP 500   java从另一个类访问类   java EasyModBus Modbus客户端。ReadHoldingRegisters()返回意外的0   java 安卓bitmap低质量问题   带有signaturePropFile的java Axis2/rampart加密问题   Java,解析xml属性的原始未转换值。Jaxson或jaxb   爪哇太阳报。网inetaddr。ttl属性导致AccessControlException   java简单计算器无法通过println   线程安全java servlet   java从文本文件中获取特定信息   java打包具有字符串数组的哈希映射   java SQL合并以更新值或将值插入到同一个表中   java springrabitmq和线程本地何时是调用clean方法的好时机   windows java在我的64位计算机的任务管理器中显示为32位   java不确定使用什么值来初始化我的神经网络   java Maven插件下载文件