diff options
Diffstat (limited to 'qc_app')
-rw-r--r-- | qc_app/input_validation.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/qc_app/input_validation.py b/qc_app/input_validation.py new file mode 100644 index 0000000..96c2f05 --- /dev/null +++ b/qc_app/input_validation.py @@ -0,0 +1,27 @@ +"""Input validation utilities""" +from typing import Any + +def is_empty_string(value: str) -> bool: + """Check whether as string is empty""" + return (isinstance(value, str) and value.strip() == "") + +def is_empty_input(value: Any) -> bool: + """Check whether user provided an empty value.""" + return (value is None or is_empty_string(value)) + +def is_integer_input(value: Any) -> bool: + """ + Check whether user provided a value that can be parsed into an integer. + """ + def __is_int__(val, base): + try: + int(val, base=10) + except ValueError as verr: + return False + return True + return isinstance(value, int) or ( + (not is_empty_input(value)) and ( + isinstance(str) and ( + __is_int__(value, 10) + or __is_int__(value, 8) + or __is_int__(value, 16)))) |