一个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
==
一组通用的交互式命令行用户界面。它最初名为"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