API Reference¶
Complete API documentation for Flycatcher, organized by module.
📖 Overview¶
Flycatcher's API is organized into four main areas:
- Schema - Core schema definition and validation
- Fields - Field types and constraints
- Validators - Custom field-level and cross-field validation DSL
- Generators - Framework-specific output generators
🔍 Quick Navigation¶
Core Classes¶
Schema- Base class for defining schemasField- Base field classFieldRef- Field reference for validator DSL
Field Types¶
Integer- Integer field with numeric constraintsFloat- Float field with numeric constraintsString- String field with length and pattern constraintsBoolean- Boolean fieldDatetime- Datetime fieldDate- Date field
Validators¶
col()- Convenience alias for creating a field reference for validatorsmodel_validator- Decorator for cross-field validation
Generators¶
- Pydantic Generator - Generate Pydantic models
- Polars Generator - Generate Polars validators
- SQLAlchemy Generator - Generate SQLAlchemy tables
📝 Usage Pattern¶
The typical workflow is:
- Define a schema using
Schema, type hints, andField() - Add validators using
@model_validatorand thecol()DSL - Generate outputs using
.to_pydantic(),.to_polars_validator(), or.to_sqlalchemy()
from flycatcher import Schema, Field, col, model_validator
class UserSchema(Schema):
id: int = Field(primary_key=True)
name: str = Field(min_length=1, max_length=100)
age: int = Field(ge=0, le=120)
@model_validator
def check_age_name():
return col('age') >= 18, "Must be 18 or older"
# Generate outputs
UserModel = UserSchema.to_pydantic()
UserValidator = UserSchema.to_polars_validator()
UserTable = UserSchema.to_sqlalchemy()