in data_validation/schema_validation.py [0:0]
def expand_precision_or_scale_range(data_type: str) -> list:
"""Take a data type and example any precision/scale range.
For example "decimal(1-3,0)" becomes:
["decimal(1,0)", "decimal(2,0)", "decimal(3,0)"]"""
m = DECIMAL_PRECISION_SCALE_PATTERN.match(data_type.replace(" ", ""))
if not m:
return [data_type]
if len(m.groups()) != 3:
raise exceptions.SchemaValidationException(
f"Badly formatted data type: {data_type}"
)
type_name, p, s = m.groups()
p_list = expand_precision_range(p)
if s:
s_list = expand_precision_range(s)
return_list = [
f"{type_name}({p},{s})" for p, s in itertools.product(p_list, s_list)
]
else:
return_list = [f"{type_name}({_})" for _ in p_list]
return return_list