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.
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 some from the (roadmap)[#Roadmap], other ones that are still lacking, or bugfixes.
Also please encounter any issues and bugs you might find!
Authors
- Currently this entire project is just by me.
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.