initial commit with barebones project structure
This commit is contained in:
51
core/correctness/validation.py
Normal file
51
core/correctness/validation.py
Normal file
@ -0,0 +1,51 @@
|
||||
|
||||
def check_input(variable, expected_type, or_none=False):
|
||||
"""
|
||||
Checks if a given variable is of the expected type. Raises TypeError or
|
||||
ValueError as appropriate if any issues are encountered.
|
||||
|
||||
:param variable: (any) variable to check type of
|
||||
|
||||
:param expected_type: (type) expected type of the provided variable
|
||||
|
||||
:param or_none: (optional) boolean of if the variable can be unset.
|
||||
Default value is False.
|
||||
|
||||
:return: No return.
|
||||
"""
|
||||
|
||||
if not or_none:
|
||||
if not isinstance(variable, expected_type):
|
||||
raise TypeError(
|
||||
'Expected type was %s, got %s'
|
||||
% (expected_type, type(variable))
|
||||
)
|
||||
else:
|
||||
if not isinstance(variable, expected_type) \
|
||||
and not isinstance(variable, type(None)):
|
||||
raise TypeError(
|
||||
'Expected type was %s or None, got %s'
|
||||
% (expected_type, type(variable))
|
||||
)
|
||||
|
||||
def valid_string(variable, valid_chars):
|
||||
"""
|
||||
Checks that all characters in a given string are present in a provided
|
||||
list of characters. Will raise an ValueError if unexpected character is
|
||||
encountered.
|
||||
|
||||
:param variable: (str) variable to check.
|
||||
|
||||
:param valid_chars: (str) collection of valid characters.
|
||||
|
||||
:return: No return.
|
||||
"""
|
||||
check_input(variable, str)
|
||||
check_input(valid_chars, str)
|
||||
|
||||
for char in variable:
|
||||
if char not in valid_chars:
|
||||
raise ValueError(
|
||||
"Invalid character '%s'. Only valid characters are: "
|
||||
"%s" % (char, valid_chars)
|
||||
)
|
Reference in New Issue
Block a user