Skip to content

Commit 45405ae

Browse files
committed
✨ feat(sqla): Model as pydantic dataclass
1 parent 687b54e commit 45405ae

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

nonebot_plugin_orm/model.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22

33
import sys
44
from inspect import Parameter, Signature
5-
from typing import TYPE_CHECKING, Any, ClassVar
5+
from typing import TYPE_CHECKING, Any, Callable, ClassVar, cast
66

77
from sqlalchemy import Table, MetaData
8+
from pydantic.dataclasses import dataclass
89
from nonebot import get_plugin_by_module_name
910
from pydantic.typing import get_args, get_origin
10-
from sqlalchemy.orm import Mapped, DeclarativeBase
11+
from sqlalchemy.orm import Mapped, DeclarativeBase, MappedAsDataclass
1112

1213
from .utils import DependsInner, get_annotations
1314

@@ -28,7 +29,11 @@
2829
}
2930

3031

31-
class Model(DeclarativeBase):
32+
class Model(
33+
MappedAsDataclass,
34+
DeclarativeBase,
35+
dataclass_callable=cast(Callable[..., type], dataclass),
36+
):
3237
metadata = MetaData(naming_convention=NAMING_CONVENTION)
3338

3439
if TYPE_CHECKING:

0 commit comments

Comments
 (0)