| 15 | self.errors = {} |
| 16 | |
| 17 | def store_error(self, messages, field_name=SCHEMA, index=None): |
| 18 | # field error -> store/merge error messages under field name key |
| 19 | # schema error -> if string or list, store/merge under _schema key |
| 20 | # -> if dict, store/merge with other top-level keys |
| 21 | messages = copy_containers(messages) |
| 22 | if field_name != SCHEMA or not isinstance(messages, dict): |
| 23 | messages = {field_name: messages} |
| 24 | if index is not None: |
| 25 | messages = {index: messages} |
| 26 | self.errors = merge_errors(self.errors, messages) |
| 27 | |
| 28 | |
| 29 | def copy_containers(errors): |