|
52 | 52 | from sqlalchemy.sql.schema import MetaData |
53 | 53 | from sqlalchemy.sql.sqltypes import LargeBinary, Time, Uuid |
54 | 54 | from sqlalchemy.types import TypeEngine |
55 | | -from typing_extensions import deprecated |
| 55 | +from typing_extensions import dataclass_transform, deprecated |
56 | 56 |
|
57 | 57 | from ._compat import ( |
58 | 58 | PYDANTIC_MINOR_VERSION, |
|
82 | 82 | from pydantic_core import PydanticUndefined as Undefined |
83 | 83 | from pydantic_core import PydanticUndefinedType as UndefinedType |
84 | 84 |
|
85 | | -_T = TypeVar("_T") |
86 | 85 | NoArgAnyCallable = Callable[[], Any] |
87 | 86 | IncEx: TypeAlias = ( |
88 | 87 | set[int] |
|
101 | 100 | ) |
102 | 101 |
|
103 | 102 |
|
104 | | -def __dataclass_transform__( |
105 | | - *, |
106 | | - eq_default: bool = True, |
107 | | - order_default: bool = False, |
108 | | - kw_only_default: bool = False, |
109 | | - field_descriptors: tuple[type | Callable[..., Any], ...] = (()), |
110 | | -) -> Callable[[_T], _T]: |
111 | | - return lambda a: a |
112 | | - |
113 | | - |
114 | 103 | class FieldInfo(PydanticFieldInfo): # ty: ignore[subclass-of-final-class] |
115 | 104 | # mypy - ignore that PydanticFieldInfo is @final |
116 | 105 | def __init__(self, default: Any = Undefined, **kwargs: Any) -> None: |
@@ -565,7 +554,7 @@ def Relationship( |
565 | 554 | return relationship_info |
566 | 555 |
|
567 | 556 |
|
568 | | -@__dataclass_transform__(kw_only_default=True, field_descriptors=(Field, FieldInfo)) |
| 557 | +@dataclass_transform(kw_only_default=True, field_specifiers=(Field, FieldInfo)) |
569 | 558 | class SQLModelMetaclass(ModelMetaclass, DeclarativeMeta): |
570 | 559 | __sqlmodel_relationships__: dict[str, RelationshipInfo] |
571 | 560 | model_config: SQLModelConfig |
|
0 commit comments