domain.validators.functions¶
src.domain.validators.functions
¶
Centralized validation functions (DRY principle).
All validation logic defined once, reused everywhere via Annotated types. Validators are pure functions that raise ValueError on validation failure.
As of F8.4, all validators are cataloged in the Validation Rules Registry (src/domain/validators/registry.py) with complete metadata.
Reference
- docs/architecture/validation-registry-architecture.md (F8.4)
- docs/architecture/registry-pattern-architecture.md
- clean-slate-reference.md §1.5 (Annotated Types)
Functions¶
validate_email
¶
Validate email format.
Uses email-validator library pattern for consistency with Email value object.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
v
|
str
|
Email address to validate. |
required |
Returns:
| Type | Description |
|---|---|
str
|
Normalized email (lowercase). |
Raises:
| Type | Description |
|---|---|
ValueError
|
If email format is invalid. |
Example
validate_email("User@Example.COM") 'user@example.com' validate_email("invalid") ValueError: Invalid email format
Source code in src/domain/validators/functions.py
validate_strong_password
¶
Validate password strength.
Requirements match Password value object validation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
v
|
str
|
Password to validate. |
required |
Returns:
| Type | Description |
|---|---|
str
|
Password unchanged (validation only). |
Raises:
| Type | Description |
|---|---|
ValueError
|
If password doesn't meet requirements. |
Example
validate_strong_password("SecurePass123!") 'SecurePass123!' validate_strong_password("weak") ValueError: Password must be at least 8 characters
Source code in src/domain/validators/functions.py
validate_token_format
¶
Validate token format (hex string).
Used for email verification and password reset tokens.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
v
|
str
|
Token string to validate. |
required |
Returns:
| Type | Description |
|---|---|
str
|
Token unchanged (validation only). |
Raises:
| Type | Description |
|---|---|
ValueError
|
If token format is invalid. |
Example
validate_token_format("abc123def456") 'abc123def456' validate_token_format("not-hex!") ValueError: Token must be hexadecimal
Source code in src/domain/validators/functions.py
validate_refresh_token_format
¶
Validate refresh token format (urlsafe base64).
Used for opaque refresh tokens.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
v
|
str
|
Refresh token to validate. |
required |
Returns:
| Type | Description |
|---|---|
str
|
Token unchanged (validation only). |
Raises:
| Type | Description |
|---|---|
ValueError
|
If token format is invalid. |
Example
validate_refresh_token_format("dGhpcyBpcyBh") 'dGhpcyBpcyBh' validate_refresh_token_format("") ValueError: Refresh token cannot be empty