Skip to main content

InquirerPy

Test Lint Build Coverage Version PyPi

Documentation: inquirerpy.readthedocs.io

Introduction

InquirerPy is a Python port of the famous Inquirer.js (A collection of common interactive command line user interfaces). This project is a re-implementation of the PyInquirer project, with bug fixes of known issues, new prompts, backward compatible APIs as well as more customisation options.

Demo

Motivation

PyInquirer is a great Python port of Inquirer.js, however, the project is slowly reaching to an unmaintained state with various issues left behind and no intention to implement more feature requests. I was heavily relying on this library for other projects but could not proceed due to the limitations.

Some noticeable ones that bother me the most:

  • hard limit on prompt_toolkit version 1.0.3
  • various color issues
  • various cursor issues
  • No options for VI/Emacs navigation key bindings
  • Pagination option doesn't work

This project uses python3.7+ type hinting with focus on resolving above issues while providing greater customisation options.

Requirements

OS

Leveraging prompt_toolkit, InquirerPy works cross platform for all OS. Although Unix platform may have a better experience than Windows.

Python

python >= 3.7

Getting Started

Checkout full documentation here.

Install

pip3 install InquirerPy

Quick Start

Classic Syntax (PyInquirer)

from InquirerPy import prompt

questions = [
    {"type": "input", "message": "What's your name:", "name": "name"},
    {"type": "confirm", "message": "Confirm?", "name": "confirm"},
]
result = prompt(questions)
name = result["name"]
confirm = result["confirm"]

Alternate Syntax

from InquirerPy import inquirer

name = inquirer.text(message="What's your name:").execute()
confirm = inquirer.confirm(message="Confirm?").execute()

Migrating from PyInquirer

Most APIs from PyInquirer should be compatible with InquirerPy. If you have discovered more incompatible APIs, please create an issue or directly update README via a pull request.

EditorPrompt

InquirerPy does not support editor prompt as of now.

CheckboxPrompt

The following table contains the mapping of incompatible parameters.

PyInquirer InquirerPy
pointer_sign pointer
selected_sign enabled_symbol
unselected_sign disabled_symbol

Style

Every style keys from PyInquirer is present in InquirerPy except the ones in the following table.

PyInquirer InquirerPy
selected pointer

Although InquirerPy support all the keys from PyInquirer, the styling works slightly different. Please refer to the Style documentation for detailed information.

Similar projects

questionary

questionary is a fantastic fork which supports prompt_toolkit 3.0.0+ with performance improvement and more customisation options. It's already a well established and stable library.

Comparing with questionary, InquirerPy offers even more customisation options in styles, UI as well as key bindings. InquirerPy also provides a new and powerful fuzzy prompt.

python-inquirer

python-inquirer is another great Python port of Inquirer.js. Instead of using prompt_toolkit, it leverages the library blessed to implement the UI.

Before implementing InquirerPy, this library came up as an alternative. It's a more stable library comparing to the original PyInquirer, however it has a rather limited customisation options and an older UI which did not solve the issues I was facing described in the Motivation section.

Comparing with python-inquirer, InquirerPy offers a slightly better UI, more customisation options in key bindings and styles, providing pagination as well as more prompts.

Credit

This project is based on the great work done by the following projects & their authors.

License

This project is licensed under MIT.

Release files for inquirerpy 0.3.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for inquirerpy 0.3.4
File Size Uploaded
InquirerPy-0.3.4.tar.gz 44.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for inquirerpy 0.3.4
File Interpreter ABI Platform
InquirerPy-0.3.4-py3-none-any.whl Python 3 none any Details

Total release size: 112.1 kB

Release files / InquirerPy-0.3.4.tar.gz

Download URL InquirerPy-0.3.4.tar.gz
Size 44.4 kB
Tags Source
SHA-256 checksum
How to use checksums
89d2ada0111f337483cb41ae31073108b2ec1e618a49d7110b0d7ade89fc197e
BLAKE2b-256 checksum
How to use checksums
64737570847b9da026e07053da3bbe2ac7ea6cde6bb2cbd3c7a5a950fa0ae40b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.13 CPython/3.9.12 Linux/4.14.275-207.503.amzn2.x86_64

Release files / InquirerPy-0.3.4-py3-none-any.whl

Download URL InquirerPy-0.3.4-py3-none-any.whl
Size 67.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c65fdfbac1fa00e3ee4fb10679f4d3ed7a012abf4833910e63c295827fe2a7d4
BLAKE2b-256 checksum
How to use checksums
ceff3b59672c47c6284e8005b42e84ceba13864aa0f39f067c973d1af02f5d91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.13 CPython/3.9.12 Linux/4.14.275-207.503.amzn2.x86_64

Release history Release notifications | RSS feed

This release

0.3.4 This release

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page