Collection of common interactive command line user interfaces, based on Inquirer.js

## Project description

Collection of common interactive command line user interfaces, based on Inquirer.js.

## Goal and Philosophy

Born as a Inquirer.js clone, it shares part of the goals and philosophy.

So, Inquirer should ease the process of asking end user questions, parsing, validating answers, managing hierarchical prompts and providing error feedback.

### Platforms support

Python-inquirer supports mainly UNIX-based platforms (eq. Mac OS, Linux, etc.). Windows has experimental support, please let us know if there are any problems!

## Installation

pip install inquirer


## Documentation

Documentation has been moved to magmax.org/python-inquirer.

But here you have a couple of usage examples:

### Text

import re

import inquirer
questions = [
validate=lambda _, x: re.match('\+?\d[\d ]+\d', x),
)
]


### Editor

Like a Text question, but used for larger answers. It opens external text editor which is used to collect the answer.

The environment variables $VISUAL and$EDITOR, can be used to specify which editor should be used. If not present inquirer fallbacks to vim -> emacs -> nano in this order based on availability in the system.

External editor handling is done using great library python-editor.

Example:

import inquirer
questions = [
inquirer.Editor('long_text', message="Provide long text")
]


### List

Shows a list of choices, and allows the selection of one of them.

Example:

import inquirer
questions = [
inquirer.List('size',
message="What size do you need?",
choices=['Jumbo', 'Large', 'Standard', 'Medium', 'Small', 'Micro'],
),
]


List questions can take one extra argument carousel=False. If set to true, the answers will rotate (back to first when pressing down on last choice, and down to last choice when pressing up on first choice)

### Checkbox

Shows a list of choices, with multiple selection.

Example:

import inquirer
questions = [
inquirer.Checkbox('interests',
message="What are you interested in?",
choices=['Computers', 'Books', 'Science', 'Nature', 'Fantasy', 'History'],
),
]


Checkbox questions can take one extra argument carousel=False. If set to true, the answers will rotate (back to first when pressing down on last choice, and down to last choice when pressing up on first choice)

### Path

Like Text question, but with builtin validations for working with paths.

Example:

import inquirer
questions = [
inquirer.Path('log_file',
message="Where logs should be located?",
path_type=inquirer.Path.DIRECTORY,
),
]


## Contributing

Copyright (c) 2014-2021 Miguel Ángel García (@magmax_en), based on Inquirer.js, by Simon Boudrias (@vaxilart)

## Project details

Uploaded source
Uploaded py3