Module

validation.rules

Built-in validation rules for chirp forms.

Each validator is a callable with the signature::

def rule(value: str) -> str | None:
    '''Return error message, or None if valid.'''

Parameterized validators are factory functions that return a validator::

def max_length(n: int) -> Callable[[str], str | None]:
    def check(value: str) -> str | None:
        if len(value) > n:
            return f"Must be at most {n} characters"
        return None
    return check

Custom validators follow the same protocol — any callable matching (str) -> str | None works with validate().

Functions

required 1 str | None
Field must be present and non-empty.
def required(value: str) -> str | None
Parameters
Name Type Description
value str
Returns
str | None
max_length 1 Validator
String must be at most *n* characters.
def max_length(n: int) -> Validator
Parameters
Name Type Description
n int
Returns
Validator
min_length 1 Validator
String must be at least *n* characters.
def min_length(n: int) -> Validator
Parameters
Name Type Description
n int
Returns
Validator
email 1 str | None
Value must be a valid email address (basic format check).
def email(value: str) -> str | None
Parameters
Name Type Description
value str
Returns
str | None
url 1 str | None
Value must be a valid URL (http/https).
def url(value: str) -> str | None
Parameters
Name Type Description
value str
Returns
str | None
matches 2 Validator
Value must match the given regex pattern.
def matches(pattern: str, message: str | None = None) -> Validator
Parameters
Name Type Description
pattern str
message str | None Default:None
Returns
Validator
one_of 1 Validator
Value must be one of the given choices.
def one_of(*choices: str) -> Validator
Parameters
Name Type Description
*choices str
Returns
Validator
integer 1 str | None
Value must be a valid integer.
def integer(value: str) -> str | None
Parameters
Name Type Description
value str
Returns
str | None
number 1 str | None
Value must be a valid number (int or float).
def number(value: str) -> str | None
Parameters
Name Type Description
value str
Returns
str | None