import pydantic.json import json from sqlmodel import SQLModel, create_engine, Session, select sqlite_file_name = "database.db" sqlite_url = f"sqlite:///{sqlite_file_name}" def _custom_json_serializer(*args, **kwargs) -> str: """ Encodes json in the same way that pydantic does. """ print('JSON SERIALIZATION') return json.dumps(*args, default=pydantic.json.pydantic_encoder, **kwargs) engine = create_engine(sqlite_url, echo=False, connect_args={"check_same_thread": False}, json_serializer=_custom_json_serializer) def create_db_and_tables(): SQLModel.metadata.create_all(engine) def get_session(): with Session(engine) as s: yield s