|
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). |
|
|
|
|