Skip to main content

Ask simple questions - get simple answers

Project description

enquiries aims to provide a straightforward way to get decisions from your users. It can offer multiple choice, yes/no or free text

import enquiries

options = ['thing 1', 'thing 2', 'thing 3']
choice = enquiries.choose('Choose one of these options: ', options)

if enquiries.confirm('Do you want to write something?'):
    text = enquiries.freetext('Write something interesting: ')
    print(text)

Input for these questions is fully interactive and prevents any incorrect responses. No more loops checking if the answer matches the question. No more mapping the text entered to original objects. Let users choose the objects directly.

https://asciinema.org/a/6OyuQH9H03vSP2gf79f0KwaCO.png

Multiple choice

All choices consist of letting users pick one of several items. For enquiries these can be in any iterable.

Users can pick one or many of the options offered to them.

Single Selection

For single choice, use the choose method with the list of choices.

>>> options = ['Thing 1', 'Thing 2']
>>> response = enquiries.choose('Pick a thing', options)
# interactive prompt
>>> print('You chose "{}"'.format(response))
You chose "Thing 1"
>>>

The interactive prompt here appears as list of options you can scroll through and select using the return key:

Pick a thing
> Thing 1
  Thing 2
  Thing 3

Where up/down arrow keys will scroll through the options moving the > marker. The currently selected option is also in bold typeface (if the terminal supports it).

Multiple Selections

For cases where the user can choose multiple options, the multi keyword can be used.

>>> options = ['Thing 1', 'Thing 2', 'Thing 3']
>>> response = enquiries.choose('Pick some things', options, multi=True)
# interactive prompt
>>> print('You chose "{}"'.format(response))
You chose "['Thing1', 'Thing 3']"
>>>

The interactive prompt for multiple choice is similar to that used for single choice but the > marker is replaces with ◉ and ◌ to signify chosen or not chosen. As before, the arrow keys change the selection and the current line is bold. The space key is used to mark an option as selected.:

pick a thing
◉ Thing 1
◌ Thing 2
◌ Thing 3

Yes/No Confirmation

Used to get a simple boolean response from users.

>>> if enquiries.confirm('Do you really want to do the thing')
...     print('Carrying on')
... else:
...     print('Exiting')
...
# interactive prompt
Carrying on
>>>

Results in the prompt below:

Do you really want to do the thing? [y/N]

The prompt for confirmation by default accepts y/n keys to choose and return to accept the choice. Return without choosing accepts the default value (usually False). The keys used and the default can be changed as required. By default, the user should choose y/n then hit return but single_key mode can be used to remove the need to hit return.

Freetext

enquiries free text offering is offers a slightly enhanced version of the input builtin function. It adds multi line support as well as basic readline like controls (Ctrl-a, Ctrl-w etc). The text entry area is also cleared after the text is accepted keeping terminal history clean.

>>> text = enquiries.freetext('Write some stuff')
>>> print(text)
This is the text you entered
on many lines
>>>

New lines in text can be entered using Alt-Return.

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

enquiries-0.2.0.tar.gz (15.9 kB view details)

Uploaded Source

Built Distribution

enquiries-0.2.0-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file enquiries-0.2.0.tar.gz.

File metadata

  • Download URL: enquiries-0.2.0.tar.gz
  • Upload date:
  • Size: 15.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.10.10 Linux/6.1.22-1-lts

File hashes

Hashes for enquiries-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f151d67d24371586d8f9196423c7af8849987a3e406ff1750e99cb3256fd9521
MD5 68defe346651beafcdd42b460a3a6312
BLAKE2b-256 a7ffa31e613be5d4ece22bf6f469b116f53e5c56a564540f8b32945ac30f4ba2

See more details on using hashes here.

File details

Details for the file enquiries-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: enquiries-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.10.10 Linux/6.1.22-1-lts

File hashes

Hashes for enquiries-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b8d43455256077d167945cb819e5d897bc0465074e46d54fe683e71cd6eb6bb1
MD5 dc2665694249f47e8038a660275a6d2a
BLAKE2b-256 2e1fe0ab93ace93d7f11b34e65f787e110827786a6cdf93d10dfebc997d8a65c

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