inquirerpy
Python port of Inquirer.js (A collection of common interactive command-line user interfaces)
Description
# InquirerPy [](https://github.com/kazhala/InquirerPy/actions?query=workflow%3ATest) [](https://github.com/kazhala/InquirerPy/actions?query=workflow%3ALint) [](https://ap-southeast-2.console.aws.amazon.com/codesuite/codebuild/378756445655/projects/InquirerPy/history?region=ap-southeast-2&builds-meta=eyJmIjp7InRleHQiOiIifSwicyI6e30sIm4iOjIwLCJpIjowfQ) [](https://coveralls.io/github/kazhala/InquirerPy?branch=master) [](https://pypi.org/project/InquirerPy/) [](https://pypi.org/project/InquirerPy/) Documentation: [inquirerpy.readthedocs.io](https://inquirerpy.readthedocs.io/) <!-- start intro --> ## Introduction `InquirerPy` is a Python port of the famous [Inquirer.js](https://github.com/SBoudrias/Inquirer.js/) (A collection of common interactive command line user interfaces). This project is a re-implementation of the [PyInquirer](https://github.com/CITGuru/PyInquirer) project, with bug fixes of known issues, new prompts, backward compatible APIs as well as more customisation options. <!-- end intro -->  ## Motivation [PyInquirer](https://github.com/CITGuru/PyInquirer) is a great Python port of [Inquirer.js](https://github.com/SBoudrias/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](https://github.com/prompt-toolkit/python-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](https://inquirerpy.readthedocs.io/)**. ### Install ```sh pip3 install InquirerPy ``` ### Quick Start #### Classic Syntax (PyInquirer) ```python 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 ```python from InquirerPy import inquirer name = inquirer.text(message="What's your name:").execute() confirm = inquirer.confirm(message="Confirm?").execute() ``` <!-- start migration --> ## Migrating from PyInquirer Most APIs from [PyInquirer](https://github.com/CITGuru/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](https://github.com/CITGuru/PyInquirer#editor---type-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](https://github.com/CITGuru/PyInquirer) is present in `InquirerPy` except the ones in the following table. | PyInquirer | InquirerPy | | ---------- | ---------- | | selected | pointer | Although `InquirerPy` support all the keys from [PyInquirer](https://github.com/CITGuru/PyInquirer), the styling works slightly different. Please refer to the [Style](https://inquirerpy.readthedocs.io/en/latest/pages/style.html) documentation for detailed information. <!-- end migration --> ## Similar projects ### questionary [questionary](https://github.com/tmbo/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](https://github.com/tmbo/questionary), `InquirerPy` offers ev
Release History
| Version | Changes | Urgency | Date |
|---|---|---|---|
| 0.3.4 | Imported from PyPI (0.3.4) | Low | 4/21/2026 |
| 0.3.3 | ## 0.3.3 (04/02/2021) - Fixed windows filepath completion [#32](https://github.com/kazhala/InquirerPy/issues/32) | Low | 2/3/2022 |
| 0.3.2 | ## 0.3.2 (28/01/2021) - Added exact match option for fuzzy prompt [#34](https://github.com/kazhala/InquirerPy/issues/34) | Low | 1/28/2022 |
| 0.3.1 | ## 0.3.1 (13/12/2021) ### Fixed - Fixed InvalidArgument raised for callable default ### Added - [number prompt](https://inquirerpy.readthedocs.io/en/latest/pages/prompts/number.html) - Built for receiving number input - Supports decimal - Supports negative - Non number input is disabled - Supports thresholds - async support [#30](https://github.com/kazhala/InquirerPy/issues/30) - [classic syntax](https://inquirerpy.readthedocs.io/en/latest/pages/prompt.html#asynchr | Low | 12/13/2021 |
| 0.3.0 | ## 0.3.0 (12/10/2021) **New Documentation: [inquirerpy.readthedocs.io](https://inquirerpy.readthedocs.io/en/latest/)** ### Added - ~~Added optional spinner to display while loading choices for list prompts.~~ - This will be finalised and re-implement in the next release as a separate prompt. - Added parameter `border` for list prompts to display a border around the choices. - Added parameter `long_instruction` to display longer instructions such as keybinding instructions at the bo | Low | 10/12/2021 |
