Skip to main content

Input for command line questions with options

Project description

PromptWithOptions

Command line input with options for Python

Example

from promptwithoptions import (
    set_prompt_defaults,
    promptwithoptions,
)

clr_yellow = "\u001b[33m"
clr_l_green = "\u001b[32;1m"
clr_blue = "\u001b[34m"
clr_l_blue = "\u001b[34;1m"

my_options = ('one', 'two', 'three')

set_prompt_defaults(options_line_color=clr_yellow, options_number_color=clr_l_green, input_line_color=clr_blue, confirm_line_color=clr_l_blue)

promptwithoptions('How many', options=my_options, default=1, show_confirmation=True)

Available settings

These are all optional named arguments (in this order) of set_prompt_defaults and promptwithoptions.

prompt: prompt string - this appears as a question with a ? appended as long as hide_questionmark is not True

options: list of available options, without this

data_type: a callable that raises an exception if the input is invalid (e.g. int, bool)

default: default in case of empty input

allow_empty: boolean, if True then prompt doesn't repeat with empty input

allow_multiple: boolean, if True then comma-separated values are accepted and the return value is always a list (in fact a tuple)

allow_repetitive: boolean, if True then the same values can be added multiple times - only considered if allow_multiple is True

show_confirmation: boolean, if True then the accepted input is reprinted with the selected option (if options are given)

hide_key: boolean, if True the first item of each option doesn't get printed on the screen (if an option has multiple items like keys and values)

hide_questionmark: boolean, if True then '?' is not attached to prompt text (neither a ':' to the confirmation if shown)

hide_mandatory_sign: boolean, if True then '*' doesn't appear after the question if allow_empty is not True

hide_multiple_choice_sign: boolean, if True then '…' doesn't appear after the question if allow_multiple is True

no_interaction: boolean, if True default is applied automatically (if given) and no input is required (this is to apply --yes)

options_line_color: if given, options are displayed as a numbered list - this is the colour of the list items

options_number_color: if given, options are displayed as a numbered list - this is the colour of the numbers

input_line_color: as is

confirm_line_color: as is

Setting and resetting defaults

set_prompt_defaults() can be called multiple times.
A default value can be removed (set back to None) when _None_ is passed down like set_prompt_defaults(allow_empty="_None_"). Argument defaults can be removed at once by calling reset_defaults (from promptwithoptions import reset_defaults).

Options list

It's a plain list of strings, a list of keys and values or a dict.
If there are keys and values only a key is returned at the end. In that case keys can be stopped from printing by hide_key.

Multiple Choice

When allow_multiple is True then multiple values can be added if separated by ,s. Commas can be escaped by quotation marks similarly to CSV escape rules.

Entering empty value when default is given

Use '-' to explicitely get empty even when default is given and allow_empty=True.
Escape it as '-' if you need a literal hyphen.

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

promptwithoptions-1.0.3.tar.gz (8.2 kB view details)

Uploaded Source

Built Distribution

promptwithoptions-1.0.3-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file promptwithoptions-1.0.3.tar.gz.

File metadata

  • Download URL: promptwithoptions-1.0.3.tar.gz
  • Upload date:
  • Size: 8.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.8.6 Linux/5.10.10-051010-generic

File hashes

Hashes for promptwithoptions-1.0.3.tar.gz
Algorithm Hash digest
SHA256 97797be8652d449e8ef2b65c0bd9202de85f2d1a884d1f0c0e64abbbaa31de14
MD5 cbc7f9ac26b7f157f2c5b4a228a2a974
BLAKE2b-256 eed255863085d90a4321b4ec07cf5eac19e94de707626eca67b7c1bd519cd961

See more details on using hashes here.

File details

Details for the file promptwithoptions-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: promptwithoptions-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.8.6 Linux/5.10.10-051010-generic

File hashes

Hashes for promptwithoptions-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ac64e56be230c612c89d6a5bf43e869629f9b4b57ab53f097198a71c636a88a9
MD5 000e5db45719ff9762934e7569b3d26f
BLAKE2b-256 ec840ed3bdd1da579b0f4be2571b6d60dd43ef78174add09eb6b89333a92e1be

See more details on using hashes here.

Supported by

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