Made a small backward incompatible change. Instead of exclude, use allow. I changed it because:
- There was a typo anyway. It was
exludeinstead ofexclude! - I feel like
allowhas a better and clearer meaning thanexclude.excludemight be confusing sometimes.
A way of imposing restrictions in input().
For example, if you want the user to only enter numbers, you could use this. Only want uppercase letters? Works here.
It uses msvcrt.getch/alternative in *nix to get the keystroke and check it in real time.
Install restricted_input from pypi using:
pip install restricted_inputImport it
from restricted_input import r_inputr_input is the function which can be used instead of input()
It has five arguments
variable = r_input(prompt, input_type, allow, maxlength, warning)-
prompt: is the prompt to be given for the input dialog.string -
input_type: is the type of data to which the input should be restricted to.stringIt can be
-
"normal": normal text -
"string_all": Allows only string, space is not allowed -
"string_upper": Allows only uppercase string, space is not allowed -
"string_lower": Allows only lowercase string, space is not allowed -
"specials"Allows only special characters - `` ~ ! @ # $ % ^ & * ( ) - _ = + [ { ] } ; : ' " , < . > / ? \ |`. Space not included -
"integer": Allows only integers, doesn't allow-,.or space -
"float": Allows only integers, including.single time. Space or-not included -
"version": Allows only integers, including.multiple times. Space or-not included -
"nothing". Obviously allows nothing. Useful in scenarios where you need only a limited number of characters.
To get the list of input_types:
from restricted_input import get_input_types print(get_input_types)
-
-
allow: is the argument for allowing certain characters.
string or listFor example, if you want to allow hyphens in
integers, you can user_input("Enter the number: ", "integer", "-")
If you want to allow input of the character
v,a,bandgin version type input, use:r_input("Enter the version: ", "version", "vabg") # Or r_input("Enter the version: ", "version", ["v", "a", "b", "g"])
-
maxlength: is the argument for maximum length for input. Useful in scenarios where only single character is required.integer -
warning: is the argument for any warnings is the user has entered something which isn't allowed.string
-
It will not work in some IDLEs like Spyder or PyCharm. This is because some IDLEs emulate a terminal which might not work with this module. Try to run the program in external terminal.
-
You tell me!
If you need help, don't hesitate to open an issue. Pull requests are welcome, but please state the reason for it.
This project is under MIT License
