in data_validation/schema_validation.py [0:0]
def split_allow_list_str(allow_list_str: str) -> list:
"""Split the allow list string into a list of datatype:datatype tuples."""
# I've not moved this patter to a compiled constant because it should only
# happen once per command and I felt splitting the pattern into variables
# aided readability.
nullable_pattern = r"!?"
precision_scale_pattern = r"(?:\((?:[0-9 ,\-]+|'UTC')\))?"
data_type_pattern = nullable_pattern + r"[a-z0-9 ]+" + precision_scale_pattern
csv_split_pattern = data_type_pattern + r":" + data_type_pattern
data_type_pairs = [
_.replace(" ", "").split(":")
for _ in re.findall(csv_split_pattern, allow_list_str, re.I)
]
invalid_pairs = [_ for _ in data_type_pairs if len(_) != 2]
if invalid_pairs:
raise exceptions.SchemaValidationException(
f"Invalid data type pairs: {invalid_pairs}"
)
return data_type_pairs