Skip to content

Tutorial

Validate application settings

python
from validkit import v, validate, ValidationError

config_schema = {
    "host": v.str().default("127.0.0.1"),
    "port": v.int().coerce().range(1, 65535).env("APP_PORT").default(8000),
    "debug": v.bool().coerce().default(False),
}

try:
    config = validate({"port": "8080"}, config_schema)
except ValidationError as exc:
    print(exc.path, exc.message)

Use class-style schemas

python
from typing import Optional
from validkit import validate

class User:
    name: str
    age: int = 18
    nickname: Optional[str]

user = validate({"name": "Nana"}, User)

Collect multiple errors

python
from validkit import v, validate

schema = {"id": v.int(), "name": v.str().min(3)}
result = validate({"id": "x", "name": "Al"}, schema, collect_errors=True)

if result.has_errors:
    for error in result.errors:
        print(error.path, error.message)