def validate(self, value): if self.min_value is not None and value < self.min_value: raise ValidationError( f"Min-value constraint not satisfied: '{value}'") if self.max_value is not None and value > self.max_value: raise ValidationError( f"Max-value constraint not satisfied: '{value}'") return super().validate(value)
def validate(self, value): result = urllib.parse.urlparse(value) if not result.scheme: raise ValidationError(f"no scheme provided for url: {value}") if not result.path: raise ValidationError(f"no path provided for url: {value}") if not result.netloc: raise ValidationError(f"no domain provided for url: {value}") return True
def __set__(self, instance, value): if self.validate(value): instance._values[self] = value else: # Usually validate should have raised already. # Let's do it again. Just in case... raise ValidationError( f"'{value}' is not a valid value for {self.__class__.__name__}")
def validate(self): for fieldname in self.get_fieldnames(): field = self.get_field(fieldname) value = self[fieldname] if field.required and value is None: raise ValidationError(f"Required field is empty: {fieldname}") return True
def __setattr__(self, fieldname, value): if fieldname not in ("_values", ): fieldnames = self.get_fieldnames() if fieldname not in fieldnames: raise ConfigurationError( f"'{fieldname}' can not be set for configuration {self}") try: super().__setattr__(fieldname, value) except ValidationError as exception: raise ValidationError( f"Validation failed for '{fieldname}'") from exception
def validate(self, value): if value not in self.choices: raise ValidationError(f"{value} is not a valid choice for field {self}") return super().validate(value)
def _raise_validation(self, value): raise ValidationError( f"{value} is not valid for {self.__class__.__name__}")
def validate(self, value): if self.required and value is None: raise ValidationError("Cannot set required field to None") return True
def validate(self, value): if not os.path.isdir(value): raise ValidationError(f"Not a directory: '{value}'") return True
def validate(self, value): if not os.path.isfile(value): raise ValidationError(f"Not a file: '{value}'") return True
def validate(self, value): _name, addr = parseaddr(value) if self.rex.match(addr.upper()): return True raise ValidationError(f"Not a valid email address: '{addr}'")