import re from enum import Enum, IntFlag # Python 3.11 >= StrEnum from enum import auto as auto_enum from uuid import UUID as RowId from sqlmodel import SQLModel from sqlalchemy.orm import declared_attr __all__ = [ "RowId", "DocumentedStrEnum", "DocumentedIntFlag", "auto_enum", "ApiTags", "BaseSQLModel", "Message", ] # region SQLModel base class ################################################### class BaseSQLModel(SQLModel): # Generate __tablename__ automatically with snake_case # noinspection PyMethodParameters @declared_attr # type: ignore def __tablename__(cls) -> str: rx = re.compile(r"(?<=.)(((?