Coverage for snekql/mariadb/model.py: 100%
14 statements
« prev ^ index » next coverage.py v7.14.1, created at 2026-06-07 21:13 +0300
« prev ^ index » next coverage.py v7.14.1, created at 2026-06-07 21:13 +0300
1"""MariaDB table model declaration base."""
3from __future__ import annotations
5from typing import Any, ClassVar, Literal, TypeVar
7from snekql.indexes import NormalizedIndex
8from snekql.model import Model as BaseModel
9from snekql.model import ModelMeta, Table
10from snekql.storage import Attr
12StateT = TypeVar("StateT")
13ReadModelT = TypeVar("ReadModelT", bound=Table[Any])
16class Model[StateT, ReadModelT: Table[Any]](BaseModel[StateT, ReadModelT]):
17 """MariaDB table model base for backend-specific declarations.
19 >>> class User[S = Pending](Model[S, "User[Fetched]"]):
20 ... email: User.Col[str] = Text(nullable=False)
21 """
23 __snekql_backend__: ClassVar[Literal["mariadb"]] = "mariadb"
24 __snekql_columns__: ClassVar[dict[str, Attr[Any, Any, Any, Any, Any]]]
25 __snekql_indexes__: ClassVar[tuple[NormalizedIndex, ...]]
26 __tablename__: ClassVar[str]
29__all__ = ["Model", "ModelMeta"]