def _safe_validate(self: DictField, value): if not isinstance(value, dict): self.error("Only dictionaries may be used in a DictField") if key_not_string(value): msg = "Invalid dictionary key - documents must have only string keys" self.error(msg) if key_starts_with_dollar(value): self.error( 'Invalid dictionary key name - keys may not startswith "$" characters' ) super(DictField, self).validate(value)
def validate(self, value): """Make sure that a list of valid fields is being used.""" if not isinstance(value, dict): self.error('Only dictionaries may be used in a PipelineField') if fields.key_not_string(value): msg = ('Invalid dictionary key - documents must ' 'have only string keys') self.error(msg) if key_has_dollar(value): self.error('Invalid dictionary key name - keys may not start with ' '"$" character') super(fields.DictField, self).validate(value)