Skip to main content

Python port of Inquirer.js — a collection of common interactive command-line user interfaces (community-maintained fork of InquirerPy)

Project description

InquirerPy (published as InquirerPrompt)

🍴 Community-Maintained Fork

This is a community fork of kazhala/InquirerPy, maintained at tobiashochguertel/InquirerPy.

The original project is a fantastic library that we rely on and deeply appreciate. Unfortunately the upstream has been quiet for some time, and the community has accumulated valuable bug fixes, compatibility updates, and feature contributions that have not been reviewed or merged. Rather than letting those improvements go to waste, we decided to maintain this fork so that InquirerPy stays healthy and up-to-date for everyone.

Our goal is to contribute all improvements back upstream — if the original author becomes active again we will happily defer to them. Until then, we are keeping the lights on here. 🙏

Item Detail
Upstream kazhala/InquirerPy @ 0.3.4 (last commit Nov 2022)
This fork tobiashochguertel/InquirerPy
Install pip install InquirerPrompt (import still: import InquirerPy)
Docs InquirerPrompt.readthedocs.io

If you are the original author and would like to resume ownership or collaborate, please open an issue — we would love to work together!


CI Coverage Version PyPi Upstream

Documentation: InquirerPrompt.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.9

Getting Started

Checkout full documentation here.

Install

pip3 install InquirerPrompt

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.

  • kazhala/InquirerPy — the original InquirerPy library by @kazhala. This fork exists solely because the upstream project has been inactive since 2022. All improvements here are intended to be contributed back upstream if the original author becomes active again. The MIT licence and original copyright are preserved in full.
  • PyInquirer
  • prompt_toolkit

License

This project is licensed under MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

inquirerprompt-0.3.1.tar.gz (42.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

inquirerprompt-0.3.1-py3-none-any.whl (68.5 kB view details)

Uploaded Python 3

File details

Details for the file inquirerprompt-0.3.1.tar.gz.

File metadata

  • Download URL: inquirerprompt-0.3.1.tar.gz
  • Upload date:
  • Size: 42.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for inquirerprompt-0.3.1.tar.gz
Algorithm Hash digest
SHA256 d2f5ec9d88c624079cb3665f056907e08a91b5578b4d256b95587ac5f4f6540d
MD5 471296079f710cfcb8a4e6c84e00743e
BLAKE2b-256 252d9ee6bc2784a2bae2ba4c4fb7c4484ecc33ed44190770c655f7d2b4da292a

See more details on using hashes here.

File details

Details for the file inquirerprompt-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: inquirerprompt-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 68.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for inquirerprompt-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7d449fd0ec2a40b728b75fb3f1bf2d34c40e8e89a8aa966c63f6bc5e221c832f
MD5 7b090884acad954767fb8e3ed3af8ef1
BLAKE2b-256 3329c334de301fb46a6c82d7a8875e807595842f3e833f67b1185add339e6e94

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page