Validators

Built in validators

These validators are provided with odin.

class odin.validators.RegexValidator(regex: str | Pattern = None, message: str = None, code: str = None, description: str = None)[source]

Validate a regular expression.

class odin.validators.URLValidator(regex: str | Pattern = None, message: str = None, code: str = None, description: str = None)[source]

Validate a URL.

class odin.validators.MaxValueValidator(limit_value)[source]

Validate value is less than a max value.

class odin.validators.MinValueValidator(limit_value)[source]

Validate value is greater than a min value.

class odin.validators.LengthValidator(limit_value)[source]

Validate value is has length of value.

class odin.validators.MaxLengthValidator(limit_value)[source]
class odin.validators.MinLengthValidator(limit_value)[source]

Odin also includes a helper method for generating simple validators.

odin.validators.simple_validator(assertion: _A | Callable[[_A], _A] = None, *, message: str = 'The supplied value is invalid', code: str = 'invalid', description: str = None)[source]

Create a simple validator.

Parameters:
  • assertion – A validation exception will be raised if this check returns a non-True value.

  • message – Message to raised in Validation exception if validation fails.

  • code – Code to included in Validation exception. This can be used to customise the message at the resource level.

  • description – Optional description to provide information to sphinx for documentation

Usage:

>>> none_validator = simple_validator(lambda x: x is not None, message="This value cannot be none")

This can also be used as a decorator:

@simple_validator(message="This value cannot be none")
def none_validator(v):
    return v is not None