Small library to get, validate and transform user input
Project description
Inputter - Just getting input
A small library to get user input in a quick and easy way.
Feel free to submit pull requests.
Usage
Use Inputter in your code
Clone or download the Inputter.py file.
import Inputter
# Inputter.get_input(prompt, f_constraint: callable = not_empty, f_additional_params=None, max_tries: int = -1) -> Optional:
in_str = Inputter.get_input("Prompt: ", constraint_function, [additional, parameters], max_tries=5)
# prompt: The prompt which is shown when input is required.
# f_constraint: Constraint function to check the input against,
# this function is also allowed to transform the output.
# f_additional_params: List of parameters to supply to the constraint function.
# max_tries: Negative for no limit, otherwise cancel after x and show error.
Flags
# Available flags are:
import Inputter
Inputter.format_prompt = (True / False) # Format the input prompt with badge and color
Inputter.silent = (True / False) # Suppresses or enables all output except prompting
Inputter.disable_colors = (True / False) # Enables / Disables colored output but keeps badges
Inputter.disable_badges = (True / False) # Enables / Disables badges in output
Creating new constraint functions
To create a custom constraint function, your function should follow some simple rules
- Accept str as first parameter, this will be the user input
- To generate warnings without crashes your function should supply parameter types
- The function should return an Optional type and return None if checking was not successful
Example:
import Inputter
def is_integer_in_range(input_str: str, min_val: int, max_val: int) -> Optional[int]:
try:
int_val = int(input_str)
if int_val < min_val or int_val > max_val:
print_warning(f"Value should be in range {min_val} - {max_val}")
return None
return int_val
except ValueError:
print_warning("Input is not an integer")
return None
user_input = Inputter.get_input("Input: ", is_integer_in_range, [0, 100])
As shown in the example to keep the look of printed text the same, you should use the print_error and print_warning function of Inputter
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
inputtr-0.0.2.tar.gz
(16.1 kB
view hashes)
Built Distribution
inputtr-0.0.2-py3-none-any.whl
(16.6 kB
view hashes)