Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def ensure_no_nulls(self, in_data, **kwargs):
- # TODO: Refactor this function to recursively search for None values
- for field, value in in_data.items():
- if value is None:
- raise ma.ValidationError(f"'{field}' can not be None/null")
- elif isinstance(value, dict):
- for d_field, d_value in value.items():
- if isinstance(d_value, dict):
- for dd_field, dd_value in d_value.items():
- if dd_value is None:
- raise ma.ValidationError(f"'{field}.{d_field}.{dd_field}' can not be None/null")
- elif isinstance(d_value, list):
- for y, l_item in enumerate(d_value):
- if isinstance(l_item, dict):
- for dd_field, dd_value in l_item.items():
- if dd_value is None:
- raise ma.ValidationError(f"'{field}.{d_field}[{y}].{dd_field}' can not be None/null")
- elif l_item is None:
- raise ma.ValidationError(f"'{field}.{d_field}[{y}]' can not be None/null")
- elif d_value is None:
- raise ma.ValidationError(f"'{field}.{d_field}' can not be None/null")
- elif isinstance(value, list):
- for x, l_item in enumerate(value):
- if isinstance(l_item, dict):
- for d_field, d_value in l_item.items():
- if isinstance(d_value, list):
- for y, l_item in enumerate(d_value):
- if l_item is None:
- raise ma.ValidationError(f"'{field}[{x}].{d_field}[{y}]' can not be None/null")
- elif d_value is None:
- raise ma.ValidationError(f"'{field}[{x}].{d_field}' can not be None/null")
- elif l_item is None:
- raise ma.ValidationError(f"'{field}[{x}]' can not be None/null")
- return in_data
Add Comment
Please, Sign In to add comment