Commandline User Tools for Input Easification
Project description
CUTIE
Commandline User Tools for Input Easification
A tool for handling common user input functions in an elegant way so you don't have to write them yourself once a week. It should work on all major operating systems (Mac, Linux, Windows).
Usage
These are the main functions of cutie:
import cutie
if cutie.prompt_yes_or_no('Are you brave enough to continue?'):
names = [
'Arthur, King of the Britons',
'Sir Lancelot the Brave',
'Sir Robin the Not-Quite-So-Brave-as-Sir-Lancelot',
'Sir Bedevere the Wise',
'Sir Galahad the Pure',
'Møøse']
name = names[cutie.select(names, selected_index=5)]
print(f'Welcome, {name}')
age = cutie.get_number(
'What is your age?',
min_value=0,
allow_float=False)
quest = cutie.secure_input('What is your quest?')
print(f'{name}\'s quest (who is {age}) is {quest}.')
Are you brave enough to continue? (Y/N) Yes
[ ] Arthur, King of the Britons
[ ] Sir Lancelot the Brave
[x] Sir Robin the Not-Quite-So-Brave-as-Sir-Lancelot
[ ] Sir Bedevere the Wise
[ ] Sir Galahad the Pure
[ ] Møøse
Welcome, Sir Robin the Not-Quite-So-Brave-as-Sir-Lancelot
What is your age? 31
What is your quest?
Sir Robin the Not-Quite-So-Brave-as-Sir-Lancelot's quest (who is 31) is to seek the holy grail.
Installation
pip3 install cutie
Documentation
get_number
Get a number from user input. If an invalid number is entered the user will be prompted again.
Arguments
argument | type | default | description |
---|---|---|---|
prompt | str | The prompt asking the user to input. | |
min_value | float, optional | - infinity | The [inclusive] minimum value. |
max_value | float, optional | infinity | The [inclusive] maximum value. |
allow_float | bool, optional | True | Allow floats or force integers. |
Returns
The number input by the user.
secure_input
Get secure input without showing it in the command line.
Arguments
argument | type | description |
---|---|---|
prompt | str | The prompt asking the user to input. |
Returns
The secure input.
select
Select an option from a list.
Arguments
argument | type | default | description |
---|---|---|---|
options | List[str] | The options to select from. | |
deselected_prefix | str, optional | [ ] |
Prefix for deselected option. |
selected_prefix | str, optional | [x] |
Prefix for selected option. |
selected_index | int, optional | 0 | The index to be selected at first. |
Returns
The index that has been selected.
prompt_yes_or_no
Prompt the user to input yes or no.
Arguments
argument | type | default | description |
---|---|---|---|
question | str | The prompt asking the user to input. | |
yes_text | str, optional | Yes |
The text corresponding to 'yes'. |
no_text | str, optional | No |
The text corresponding to 'no'. |
has_to_match_case | bool, optional | False |
Does the case have to match. |
enter_empty_confirms | bool, optional | True | Does enter on empty string work. |
default_is_yes | bool, optional | False | Is yes selected by default |
deselected_prefix | str, optional | |
Prefix if something is deselected. |
selected_prefix | str, optional | > |
Prefix if something is selected |
abort_value | Optional[bool], optional | None |
The value on interrupt. |
char_prompt | bool, optional | True |
Add a [Y/N] to the prompt. |
Returns
The bool what has been selected.
Contributing
If you want to contribute, please feel free to suggest features or implement them yourself.
Also please report any issues and bugs you might find!
Authors
License
The project is licensed under the MIT-License.
Acknowledgments
- This project uses the module Readchar for direct input handling.
GNU Terry Pratchett
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.