| Metadata-Version: 2.1 |
| Name: inquirerpy |
| Version: 0.3.4 |
| Summary: Python port of Inquirer.js (A collection of common interactive command-line user interfaces) |
| Home-page: https://github.com/kazhala/InquirerPy |
| License: MIT |
| Keywords: cli,prompt-toolkit,commandline,inquirer,development |
| Author: Kevin Zhuang |
| Author-email: kevin7441@gmail.com |
| Maintainer: Kevin Zhuang |
| Maintainer-email: kevin7441@gmail.com |
| Requires-Python: >=3.7,<4.0 |
| Classifier: Development Status :: 2 - Pre-Alpha |
| Classifier: Environment :: Console |
| Classifier: Intended Audience :: Developers |
| Classifier: License :: OSI Approved :: MIT License |
| Classifier: Operating System :: Microsoft |
| Classifier: Operating System :: Unix |
| Classifier: Programming Language :: Python :: 3 |
| Classifier: Programming Language :: Python :: 3.10 |
| Classifier: Programming Language :: Python :: 3.7 |
| Classifier: Programming Language :: Python :: 3.8 |
| Classifier: Programming Language :: Python :: 3.9 |
| Classifier: Topic :: Software Development |
| Classifier: Topic :: Software Development :: Libraries |
| Classifier: Topic :: Software Development :: Libraries :: Application Frameworks |
| Classifier: Topic :: Software Development :: User Interfaces |
| Provides-Extra: docs |
| Requires-Dist: Sphinx (>=4.1.2,<5.0.0); extra == "docs" |
| Requires-Dist: furo (>=2021.8.17-beta.43,<2022.0.0); extra == "docs" |
| Requires-Dist: myst-parser (>=0.15.1,<0.16.0); extra == "docs" |
| Requires-Dist: pfzy (>=0.3.1,<0.4.0) |
| Requires-Dist: prompt-toolkit (>=3.0.1,<4.0.0) |
| Requires-Dist: sphinx-autobuild (>=2021.3.14,<2022.0.0); extra == "docs" |
| Requires-Dist: sphinx-copybutton (>=0.4.0,<0.5.0); extra == "docs" |
| Project-URL: Documentation, https://inquirerpy.readthedocs.io |
| Project-URL: Repository, https://github.com/kazhala/InquirerPy |
| Description-Content-Type: text/markdown |
|
|
| |
|
|
| [](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 --> |
|
|
| |
|
|
| `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 --> |
|
|
|  |
|
|
| |
|
|
| [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. |
|
|
| |
|
|
| |
|
|
| 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 >= 3.7 |
| ``` |
|
|
| |
|
|
| Checkout full documentation **[here](https://inquirerpy.readthedocs.io/)**. |
|
|
| |
|
|
| ```sh |
| pip3 install InquirerPy |
| ``` |
|
|
| |
|
|
| |
|
|
| ```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"] |
| ``` |
|
|
| |
|
|
| ```python |
| from InquirerPy import inquirer |
|
|
| name = inquirer.text(message="What's your name:").execute() |
| confirm = inquirer.confirm(message="Confirm?").execute() |
| ``` |
|
|
| <!-- start migration --> |
|
|
| |
|
|
| 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. |
|
|
| |
|
|
| `InquirerPy` does not support [editor](https://github.com/CITGuru/PyInquirer |
|
|
| |
|
|
| The following table contains the mapping of incompatible parameters. |
|
|
| | PyInquirer | InquirerPy | |
| | --------------- | --------------- | |
| | pointer_sign | pointer | |
| | selected_sign | enabled_symbol | |
| | unselected_sign | disabled_symbol | |
|
|
| |
|
|
| 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 --> |
|
|
| |
|
|
| |
|
|
| [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 even more customisation options in styles, UI as well as key bindings. `InquirerPy` also provides a new |
| and powerful [fuzzy](https://inquirerpy.readthedocs.io/en/latest/pages/prompts/fuzzy.html) prompt. |
|
|
| |
|
|
| [python-inquirer](https://github.com/magmax/python-inquirer) is another great Python port of [Inquirer.js](https://github.com/SBoudrias/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](https://github.com/CITGuru/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]( |
|
|
| Comparing with [python-inquirer](https://github.com/magmax/python-inquirer), `InquirerPy` offers a slightly better UI, |
| more customisation options in key bindings and styles, providing pagination as well as more prompts. |
|
|
| |
|
|
| This project is based on the great work done by the following projects & their authors. |
|
|
| - [PyInquirer](https://github.com/CITGuru/PyInquirer) |
| - [prompt_toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) |
|
|
| |
|
|
| This project is licensed under [MIT](https://github.com/kazhala/InquirerPy/blob/master/LICENSE). |
|
|
|
|