跳转到主要内容

基于Inquirer.js的常用交互式命令行用户界面集合

项目描述

PyPI Status Python Version License Black
Read the documentation at https://python-inquirer.readthedocs.io/ Tests Codecov pre-commit

python-inquirer

基于Inquirer.js的常用交互式命令行用户界面集合。

目标和哲学

作为Inquirer.js的克隆版本,它共享部分目标和哲学。

因此,Inquirer 应该简化用户提问、解析验证答案、管理层次提示和提供错误反馈的过程。

您可以从GitHub下载python-inquirer代码,或从Pypi下载轮子。

平台支持

Python-inquirer主要支持基于UNIX的平台(例如Mac OS、Linux等)。Windows有实验性支持,如果遇到任何问题,请告诉我们!

安装

pip install inquirer

文档

文档已迁移至python-inquirer.readthedocs.io

以下是一些使用示例

文本

import re

import inquirer
questions = [
  inquirer.Text('name', message="What's your name"),
  inquirer.Text('surname', message="What's your surname"),
  inquirer.Text('phone', message="What's your phone number",
                validate=lambda _, x: re.match('\+?\d[\d ]+\d', x),
                )
]
answers = inquirer.prompt(questions)

编辑器

与文本问题类似,但用于较大答案。它打开外部文本编辑器以收集答案。

环境变量$VISUAL$EDITOR可用于指定应使用哪个编辑器。如果不存在,inquirer将按照系统中的可用性顺序回退到vim -> emacs -> nano

使用优秀的库python-editor进行外部编辑器处理。

示例

import inquirer
questions = [
  inquirer.Editor('long_text', message="Provide long text")
]
answers = inquirer.prompt(questions)

列表

显示选择列表,并允许选择其中之一。

示例

import inquirer
questions = [
  inquirer.List('size',
                message="What size do you need?",
                choices=['Jumbo', 'Large', 'Standard', 'Medium', 'Small', 'Micro'],
            ),
]
answers = inquirer.prompt(questions)

列表问题可以接受一个额外的参数carousel=False。如果设置为true,答案将旋转(按下最后一个选择时回到第一个,按下第一个选择时转到最后一个)。

复选框

显示选择列表,允许多选。

示例

import inquirer
questions = [
  inquirer.Checkbox('interests',
                    message="What are you interested in?",
                    choices=['Computers', 'Books', 'Science', 'Nature', 'Fantasy', 'History'],
                    ),
]
answers = inquirer.prompt(questions)

复选框问题可以接受额外的参数carousel=False。如果设置为true,答案将旋转(按下最后一个选择时回到第一个,按下第一个选择时转到最后一个)。

另一个可用的参数是locked=<List>。locked参数中给出的选择不能被删除。如果您想明确指出必须从选择中选择特定选项,这很有用。

路径

与文本问题类似,但具有内置路径验证。

示例

import inquirer
questions = [
  inquirer.Path('log_file',
                 message="Where logs should be located?",
                 path_type=inquirer.Path.DIRECTORY,
                ),
]
answers = inquirer.prompt(questions)

贡献

欢迎贡献。有关更多信息,请参阅贡献指南

许可证

版权(c)2014-2023 Miguel Ángel García (@magmax_en), 基于Inquirer.js,由Simon Boudrias (@vaxilart)开发

根据MIT许可证分发。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

inquirer-3.4.0.tar.gz (14.5 kB 查看哈希值)

上传时间 源代码

构建分发

inquirer-3.4.0-py3-none-any.whl (18.1 kB 查看哈希值)

上传时间 Python 3

支持者