Coverage for sqlmodel / main.py: 96%
376 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-06-10 09:40 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-06-10 09:40 +0000
1from __future__ import annotations 1daebfgch
3import builtins 1daebfgch
4import ipaddress 1daebfgch
5import uuid 1daebfgch
6from collections.abc import Callable, Mapping, Sequence, Set 1daebfgch
7from dataclasses import dataclass 1daebfgch
8from datetime import date, datetime, time, timedelta 1daebfgch
9from decimal import Decimal 1daebfgch
10from enum import Enum 1daebfgch
11from pathlib import Path 1daebfgch
12from typing import ( 1daebfgch
13 TYPE_CHECKING,
14 Any,
15 ClassVar,
16 Literal,
17 TypeAlias,
18 TypeVar,
19 Union,
20 cast,
21 get_origin,
22 overload,
23)
25from pydantic import BaseModel, EmailStr 1daebfgch
26from pydantic.fields import FieldInfo as PydanticFieldInfo 1daebfgch
27from sqlalchemy import ( 1daebfgch
28 Boolean,
29 Column,
30 Date,
31 DateTime,
32 Float,
33 ForeignKey,
34 Integer,
35 Interval,
36 Numeric,
37 inspect,
38)
39from sqlalchemy import Enum as sa_Enum 1daebfgch
40from sqlalchemy.orm import ( 1daebfgch
41 Mapped,
42 RelationshipProperty,
43 registry,
44 relationship,
45)
46from sqlalchemy.orm.attributes import set_attribute 1daebfgch
47from sqlalchemy.orm.decl_api import DeclarativeMeta 1daebfgch
48from sqlalchemy.orm.instrumentation import is_instrumented 1daebfgch
49from sqlalchemy.sql.schema import MetaData 1daebfgch
50from sqlalchemy.sql.sqltypes import LargeBinary, Time, Uuid 1daebfgch
51from typing_extensions import deprecated 1daebfgch
53from ._compat import ( 1daebfgch
54 PYDANTIC_MINOR_VERSION,
55 BaseConfig,
56 ModelMetaclass,
57 Representation,
58 SQLModelConfig,
59 Undefined,
60 UndefinedType,
61 finish_init,
62 get_annotations,
63 get_field_metadata,
64 get_model_fields,
65 get_relationship_to,
66 get_sa_type_from_field,
67 init_pydantic_private_attrs,
68 is_field_noneable,
69 is_table_model_class,
70 sqlmodel_init,
71 sqlmodel_validate,
72)
73from .sql.sqltypes import AutoString 1daebfgch
75if TYPE_CHECKING: 1daebfgch
76 from pydantic._internal._model_construction import ModelMetaclass as ModelMetaclass
77 from pydantic._internal._repr import Representation as Representation
78 from pydantic_core import PydanticUndefined as Undefined
79 from pydantic_core import PydanticUndefinedType as UndefinedType
81_T = TypeVar("_T") 1daebfgch
82NoArgAnyCallable = Callable[[], Any] 1daebfgch
83IncEx: TypeAlias = ( 1daebfgch
84 set[int]
85 | set[str]
86 | Mapping[int, Union["IncEx", bool]]
87 | Mapping[str, Union["IncEx", bool]]
88)
89OnDeleteType = Literal["CASCADE", "SET NULL", "RESTRICT"] 1daebfgch
92def __dataclass_transform__( 1daebfgch
93 *,
94 eq_default: bool = True,
95 order_default: bool = False,
96 kw_only_default: bool = False,
97 field_descriptors: tuple[type | Callable[..., Any], ...] = (()),
98) -> Callable[[_T], _T]:
99 return lambda a: a 1daebfgch
102class FieldInfo(PydanticFieldInfo): # ty: ignore[subclass-of-final-class] 1daebfgch
103 # mypy - ignore that PydanticFieldInfo is @final
104 def __init__(self, default: Any = Undefined, **kwargs: Any) -> None: 1daebfgch
105 primary_key = kwargs.pop("primary_key", False) 2d zdAdPdTdQdUdO #b$bocEcVbHf7fZfak1liknfRf|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWbIf8f0fbk2ljkofSf~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbJf9f1fck3lkkpfTfbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbKf!f2fdk4llkqfUfddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbLf#f3fek5lmkrfVffdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bMf$f4ffk6lnksfWfhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bNf%f5fgk7loktfXfjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bOf'f6fhk8lpkufYfldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
106 nullable = kwargs.pop("nullable", Undefined) 2d zdAdPdTdQdUdO #b$bocEcVbHf7fZfak1liknfRf|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWbIf8f0fbk2ljkofSf~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbJf9f1fck3lkkpfTfbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbKf!f2fdk4llkqfUfddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbLf#f3fek5lmkrfVffdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bMf$f4ffk6lnksfWfhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bNf%f5fgk7loktfXfjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bOf'f6fhk8lpkufYfldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
107 foreign_key = kwargs.pop("foreign_key", Undefined) 2d zdAdPdTdQdUdO #b$bocEcVbHf7fZfak1liknfRf|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWbIf8f0fbk2ljkofSf~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbJf9f1fck3lkkpfTfbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbKf!f2fdk4llkqfUfddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbLf#f3fek5lmkrfVffdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bMf$f4ffk6lnksfWfhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bNf%f5fgk7loktfXfjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bOf'f6fhk8lpkufYfldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
108 ondelete = kwargs.pop("ondelete", Undefined) 2d zdAdPdTdQdUdO #b$bocEcVbHf7fZfak1liknfRf|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWbIf8f0fbk2ljkofSf~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbJf9f1fck3lkkpfTfbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbKf!f2fdk4llkqfUfddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbLf#f3fek5lmkrfVffdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bMf$f4ffk6lnksfWfhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bNf%f5fgk7loktfXfjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bOf'f6fhk8lpkufYfldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
109 unique = kwargs.pop("unique", False) 2d zdAdPdTdQdUdO #b$bocEcVbHf7fZfak1liknfRf|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWbIf8f0fbk2ljkofSf~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbJf9f1fck3lkkpfTfbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbKf!f2fdk4llkqfUfddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbLf#f3fek5lmkrfVffdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bMf$f4ffk6lnksfWfhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bNf%f5fgk7loktfXfjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bOf'f6fhk8lpkufYfldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
110 index = kwargs.pop("index", Undefined) 2d zdAdPdTdQdUdO #b$bocEcVbHf7fZfak1liknfRf|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWbIf8f0fbk2ljkofSf~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbJf9f1fck3lkkpfTfbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbKf!f2fdk4llkqfUfddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbLf#f3fek5lmkrfVffdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bMf$f4ffk6lnksfWfhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bNf%f5fgk7loktfXfjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bOf'f6fhk8lpkufYfldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
111 sa_type = kwargs.pop("sa_type", Undefined) 2d zdAdPdTdQdUdO #b$bocEcVbHf7fZfak1liknfRf|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWbIf8f0fbk2ljkofSf~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbJf9f1fck3lkkpfTfbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbKf!f2fdk4llkqfUfddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbLf#f3fek5lmkrfVffdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bMf$f4ffk6lnksfWfhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bNf%f5fgk7loktfXfjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bOf'f6fhk8lpkufYfldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
112 sa_column = kwargs.pop("sa_column", Undefined) 2d zdAdPdTdQdUdO #b$bocEcVbHf7fZfak1liknfRf|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWbIf8f0fbk2ljkofSf~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbJf9f1fck3lkkpfTfbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbKf!f2fdk4llkqfUfddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbLf#f3fek5lmkrfVffdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bMf$f4ffk6lnksfWfhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bNf%f5fgk7loktfXfjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bOf'f6fhk8lpkufYfldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
113 sa_column_args = kwargs.pop("sa_column_args", Undefined) 2d zdAdPdTdQdUdO #b$bocEcVbHf7fZfak1liknfRf|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWbIf8f0fbk2ljkofSf~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbJf9f1fck3lkkpfTfbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbKf!f2fdk4llkqfUfddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbLf#f3fek5lmkrfVffdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bMf$f4ffk6lnksfWfhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bNf%f5fgk7loktfXfjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bOf'f6fhk8lpkufYfldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
114 sa_column_kwargs = kwargs.pop("sa_column_kwargs", Undefined) 2d zdAdPdTdQdUdO #b$bocEcVbHf7fZfak1liknfRf|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWbIf8f0fbk2ljkofSf~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbJf9f1fck3lkkpfTfbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbKf!f2fdk4llkqfUfddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbLf#f3fek5lmkrfVffdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bMf$f4ffk6lnksfWfhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bNf%f5fgk7loktfXfjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bOf'f6fhk8lpkufYfldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
115 if sa_column is not Undefined: 2d zdAdPdTdQdUdO #b$bocEcVbHf7fZfak1liknfRf|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWbIf8f0fbk2ljkofSf~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbJf9f1fck3lkkpfTfbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbKf!f2fdk4llkqfUfddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbLf#f3fek5lmkrfVffdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bMf$f4ffk6lnksfWfhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bNf%f5fgk7loktfXfjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bOf'f6fhk8lpkufYfldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
116 if sa_column_args is not Undefined: 2VbHf7fZfak1liknfRf|c}cWbIf8f0fbk2ljkofSf~cadXbJf9f1fck3lkkpfTfbdcdYbKf!f2fdk4llkqfUfddedZbLf#f3fek5lmkrfVffdgd0bMf$f4ffk6lnksfWfhdid1bNf%f5fgk7loktfXfjdkd2bOf'f6fhk8lpkufYfldmd
117 raise RuntimeError( 21l2l3l4l5l6l7l8l
118 "Passing sa_column_args is not supported when "
119 "also passing a sa_column"
120 )
121 if sa_column_kwargs is not Undefined: 2VbHf7fZfakiknfRf|c}cWbIf8f0fbkjkofSf~cadXbJf9f1fckkkpfTfbdcdYbKf!f2fdklkqfUfddedZbLf#f3fekmkrfVffdgd0bMf$f4ffknksfWfhdid1bNf%f5fgkoktfXfjdkd2bOf'f6fhkpkufYfldmd
122 raise RuntimeError( 2ikjkkklkmknkokpk
123 "Passing sa_column_kwargs is not supported when "
124 "also passing a sa_column"
125 )
126 if primary_key is not Undefined: 2VbHf7fZfaknfRf|c}cWbIf8f0fbkofSf~cadXbJf9f1fckpfTfbdcdYbKf!f2fdkqfUfddedZbLf#f3fekrfVffdgd0bMf$f4ffksfWfhdid1bNf%f5fgktfXfjdkd2bOf'f6fhkufYfldmd
127 raise RuntimeError( 2akbkckdkekfkgkhk
128 "Passing primary_key is not supported when also passing a sa_column"
129 )
130 if nullable is not Undefined: 2VbHf7fZfnfRf|c}cWbIf8f0fofSf~cadXbJf9f1fpfTfbdcdYbKf!f2fqfUfddedZbLf#f3frfVffdgd0bMf$f4fsfWfhdid1bNf%f5ftfXfjdkd2bOf'f6fufYfldmd
131 raise RuntimeError( 27f8f9f!f#f$f%f'f
132 "Passing nullable is not supported when also passing a sa_column"
133 )
134 if foreign_key is not Undefined: 2VbHfZfnfRf|c}cWbIf0fofSf~cadXbJf1fpfTfbdcdYbKf2fqfUfddedZbLf3frfVffdgd0bMf4fsfWfhdid1bNf5ftfXfjdkd2bOf6fufYfldmd
135 raise RuntimeError( 2VbWbXbYbZb0b1b2b
136 "Passing foreign_key is not supported when also passing a sa_column"
137 )
138 if ondelete is not Undefined: 2HfZfnfRf|c}cIf0fofSf~cadJf1fpfTfbdcdKf2fqfUfddedLf3frfVffdgdMf4fsfWfhdidNf5ftfXfjdkdOf6fufYfldmd
139 raise RuntimeError( 2Zf0f1f2f3f4f5f6f
140 "Passing ondelete is not supported when also passing a sa_column"
141 )
142 if unique is not Undefined: 2HfnfRf|c}cIfofSf~cadJfpfTfbdcdKfqfUfddedLfrfVffdgdMfsfWfhdidNftfXfjdkdOfufYfldmd
143 raise RuntimeError( 2RfSfTfUfVfWfXfYf
144 "Passing unique is not supported when also passing a sa_column"
145 )
146 if index is not Undefined: 2Hfnf|c}cIfof~cadJfpfbdcdKfqfddedLfrffdgdMfsfhdidNftfjdkdOfufldmd
147 raise RuntimeError( 2HfIfJfKfLfMfNfOf
148 "Passing index is not supported when also passing a sa_column"
149 )
150 if sa_type is not Undefined: 2nf|c}cof~cadpfbdcdqfddedrffdgdsfhdidtfjdkdufldmd
151 raise RuntimeError( 2nfofpfqfrfsftfuf
152 "Passing sa_type is not supported when also passing a sa_column"
153 )
154 if ondelete is not Undefined: 2d zdAdPdTdQdUdO #b$bocEcVb|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWb~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbfdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
155 if foreign_key is Undefined: 2d 3bSei a 4bTej e 5bUek b 6bVel f 7bWem g 8bXen c 9bYeo h !bZep
156 raise RuntimeError("ondelete can only be used with foreign_key") 2SeTeUeVeWeXeYeZe
157 super().__init__(default=default, **kwargs) 2d zdAdPdTdQdUdO #b$bocEcVb|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWb~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbfdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
158 self.primary_key = primary_key 2d zdAdPdTdQdUdO #b$bocEcVb|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWb~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbfdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
159 self.nullable = nullable 2d zdAdPdTdQdUdO #b$bocEcVb|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWb~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbfdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
160 self.foreign_key = foreign_key 2d zdAdPdTdQdUdO #b$bocEcVb|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWb~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbfdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
161 self.ondelete = ondelete 2d zdAdPdTdQdUdO #b$bocEcVb|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWb~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbfdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
162 self.unique = unique 2d zdAdPdTdQdUdO #b$bocEcVb|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWb~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbfdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
163 self.index = index 2d zdAdPdTdQdUdO #b$bocEcVb|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWb~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbfdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
164 self.sa_type = sa_type 2d zdAdPdTdQdUdO #b$bocEcVb|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWb~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbfdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
165 self.sa_column = sa_column 2d zdAdPdTdQdUdO #b$bocEcVb|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWb~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbfdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
166 self.sa_column_args = sa_column_args 2d zdAdPdTdQdUdO #b$bocEcVb|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWb~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbfdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
167 self.sa_column_kwargs = sa_column_kwargs 2d zdAdPdTdQdUdO #b$bocEcVb|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWb~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbfdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
170class RelationshipInfo(Representation): 1daebfgch
171 def __init__( 1daebfgch
172 self,
173 *,
174 back_populates: str | None = None,
175 cascade_delete: bool | None = False,
176 passive_deletes: bool | Literal["all"] | None = False,
177 link_model: Any | None = None,
178 sa_relationship: RelationshipProperty | None = None,
179 sa_relationship_args: Sequence[Any] | None = None,
180 sa_relationship_kwargs: Mapping[str, Any] | None = None,
181 ) -> None:
182 if sa_relationship is not None: 2d KeCeq i a LeDer j e MeEes k b NeFet l f OeGeu m g PeHev n c QeIew o h ReJex p
183 if sa_relationship_args is not None: 2KeCeq LeDer MeEes NeFet OeGeu PeHev QeIew ReJex
184 raise RuntimeError( 2KeLeMeNeOePeQeRe
185 "Passing sa_relationship_args is not supported when "
186 "also passing a sa_relationship"
187 )
188 if sa_relationship_kwargs is not None: 2Ceq Der Ees Fet Geu Hev Iew Jex
189 raise RuntimeError( 2CeDeEeFeGeHeIeJe
190 "Passing sa_relationship_kwargs is not supported when "
191 "also passing a sa_relationship"
192 )
193 self.back_populates = back_populates 1dqiarjeskbtlfumgvncwohxp
194 self.cascade_delete = cascade_delete 1dqiarjeskbtlfumgvncwohxp
195 self.passive_deletes = passive_deletes 1dqiarjeskbtlfumgvncwohxp
196 self.link_model = link_model 1dqiarjeskbtlfumgvncwohxp
197 self.sa_relationship = sa_relationship 1dqiarjeskbtlfumgvncwohxp
198 self.sa_relationship_args = sa_relationship_args 1dqiarjeskbtlfumgvncwohxp
199 self.sa_relationship_kwargs = sa_relationship_kwargs 1dqiarjeskbtlfumgvncwohxp
202@dataclass 1daebfgch
203class FieldInfoMetadata: 1daebfgch
204 primary_key: bool | UndefinedType = Undefined 1daebfgch
205 nullable: bool | UndefinedType = Undefined 1daebfgch
206 foreign_key: Any = Undefined 1daebfgch
207 ondelete: OnDeleteType | UndefinedType = Undefined 1daebfgch
208 unique: bool | UndefinedType = Undefined 1daebfgch
209 index: bool | UndefinedType = Undefined 1daebfgch
210 sa_type: type[Any] | UndefinedType = Undefined 1daebfgch
211 sa_column: Column[Any] | UndefinedType = Undefined 1daebfgch
212 sa_column_args: Sequence[Any] | UndefinedType = Undefined 1daebfgch
213 sa_column_kwargs: Mapping[str, Any] | UndefinedType = Undefined 1daebfgch
216def _get_sqlmodel_field_metadata(field_info: Any) -> FieldInfoMetadata | None: 1daebfgch
217 metadata_items = getattr(field_info, "metadata", None) 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
218 if metadata_items: 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
219 for meta in metadata_items: 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
220 if isinstance(meta, FieldInfoMetadata): 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
221 return meta 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
222 return None 2d #b$bocVbP G Q FbGb3bR S T Ucgci V W VcWc?cxbwc@b[by a %b'bpcWbY H Z HbIb4b0 1 2 Ychcj 4 5 Zc0c@cybxc]b^bz e (b)bqcXb7 I 8 JbKb5b9 ! # 2cick % ' 3c4c[czbyc_b`bA b *b+brcYb) J * LbMb6b+ , - 6cjcl / : 7c8c]cAbzc{b|bB f ,b-bscZb= K ? NbOb7b@ [ ] !ckcm _ ` #c$c^cBbAc}b~bC g .b/btc0b| L } PbQb8b~ abbb'clcn dbeb(c)c_cCbBcacbcD c :b;buc1bgbM hbRbSb9bibjbkb+cmco mbnb,c-c`cDbCcccdcE h =b?bvc2bpbN qbTbUb!brbsbtb/cncp vbwb:c;c{cEbDcecfcF
225def _get_sqlmodel_field_value( 1daebfgch
226 field_info: Any, attribute: str, default: Any = Undefined
227) -> Any:
228 metadata = _get_sqlmodel_field_metadata(field_info) 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
229 if metadata is not None and hasattr(metadata, attribute): 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
230 return getattr(metadata, attribute) 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
231 return getattr(field_info, attribute, default) 2d #b$bocVbP G Q FbGb3bR S T Ucgci V W VcWc?cxbwc@b[by a %b'bpcWbY H Z HbIb4b0 1 2 Ychcj 4 5 Zc0c@cybxc]b^bz e (b)bqcXb7 I 8 JbKb5b9 ! # 2cick % ' 3c4c[czbyc_b`bA b *b+brcYb) J * LbMb6b+ , - 6cjcl / : 7c8c]cAbzc{b|bB f ,b-bscZb= K ? NbOb7b@ [ ] !ckcm _ ` #c$c^cBbAc}b~bC g .b/btc0b| L } PbQb8b~ abbb'clcn dbeb(c)c_cCbBcacbcD c :b;buc1bgbM hbRbSb9bibjbkb+cmco mbnb,c-c`cDbCcccdcE h =b?bvc2bpbN qbTbUb!brbsbtb/cncp vbwb:c;c{cEbDcecfcF
234# include sa_type, sa_column_args, sa_column_kwargs
235@overload 1daebfgch
236def Field( 1daebfgch
237 default: Any = Undefined, 1daebfgch
238 *,
239 default_factory: NoArgAnyCallable | None = None, 1daebfgch
240 alias: str | None = None, 1daebfgch
241 validation_alias: str | None = None, 1daebfgch
242 serialization_alias: str | None = None, 1daebfgch
243 title: str | None = None, 1daebfgch
244 description: str | None = None, 1daebfgch
245 exclude: Set[int | str] | Mapping[int | str, Any] | Any = None, 1daebfgch
246 include: Set[int | str] | Mapping[int | str, Any] | Any = None, 1daebfgch
247 const: bool | None = None, 1daebfgch
248 gt: float | None = None, 1daebfgch
249 ge: float | None = None, 1daebfgch
250 lt: float | None = None, 1daebfgch
251 le: float | None = None, 1daebfgch
252 multiple_of: float | None = None, 1daebfgch
253 max_digits: int | None = None, 1daebfgch
254 decimal_places: int | None = None, 1daebfgch
255 min_items: int | None = None, 1daebfgch
256 max_items: int | None = None, 1daebfgch
257 unique_items: bool | None = None, 1daebfgch
258 min_length: int | None = None, 1daebfgch
259 max_length: int | None = None, 1daebfgch
260 allow_mutation: bool = True, 1daebfgch
261 regex: str | None = None, 1daebfgch
262 discriminator: str | None = None, 1daebfgch
263 repr: bool = True, 1daebfgch
264 primary_key: bool | UndefinedType = Undefined, 1daebfgch
265 foreign_key: Any = Undefined, 1daebfgch
266 unique: bool | UndefinedType = Undefined, 1daebfgch
267 nullable: bool | UndefinedType = Undefined, 1daebfgch
268 index: bool | UndefinedType = Undefined, 1daebfgch
269 sa_type: type[Any] | UndefinedType = Undefined, 1daebfgch
270 sa_column_args: Sequence[Any] | UndefinedType = Undefined, 1daebfgch
271 sa_column_kwargs: Mapping[str, Any] | UndefinedType = Undefined, 1daebfgch
272 schema_extra: dict[str, Any] | None = None, 1daebfgch
273) -> Any: ... 1abc
276# When foreign_key is str, include ondelete
277# include sa_type, sa_column_args, sa_column_kwargs
278@overload 1daebfgch
279def Field( 1daebfgch
280 default: Any = Undefined, 1daebfgch
281 *,
282 default_factory: NoArgAnyCallable | None = None, 1daebfgch
283 alias: str | None = None, 1daebfgch
284 validation_alias: str | None = None, 1daebfgch
285 serialization_alias: str | None = None, 1daebfgch
286 title: str | None = None, 1daebfgch
287 description: str | None = None, 1daebfgch
288 exclude: Set[int | str] | Mapping[int | str, Any] | Any = None, 1daebfgch
289 include: Set[int | str] | Mapping[int | str, Any] | Any = None, 1daebfgch
290 const: bool | None = None, 1daebfgch
291 gt: float | None = None, 1daebfgch
292 ge: float | None = None, 1daebfgch
293 lt: float | None = None, 1daebfgch
294 le: float | None = None, 1daebfgch
295 multiple_of: float | None = None, 1daebfgch
296 max_digits: int | None = None, 1daebfgch
297 decimal_places: int | None = None, 1daebfgch
298 min_items: int | None = None, 1daebfgch
299 max_items: int | None = None, 1daebfgch
300 unique_items: bool | None = None, 1daebfgch
301 min_length: int | None = None, 1daebfgch
302 max_length: int | None = None, 1daebfgch
303 allow_mutation: bool = True, 1daebfgch
304 regex: str | None = None, 1daebfgch
305 discriminator: str | None = None, 1daebfgch
306 repr: bool = True, 1daebfgch
307 primary_key: bool | UndefinedType = Undefined, 1daebfgch
308 foreign_key: str, 1abc
309 ondelete: OnDeleteType | UndefinedType = Undefined, 1daebfgch
310 unique: bool | UndefinedType = Undefined, 1daebfgch
311 nullable: bool | UndefinedType = Undefined, 1daebfgch
312 index: bool | UndefinedType = Undefined, 1daebfgch
313 sa_type: type[Any] | UndefinedType = Undefined, 1daebfgch
314 sa_column_args: Sequence[Any] | UndefinedType = Undefined, 1daebfgch
315 sa_column_kwargs: Mapping[str, Any] | UndefinedType = Undefined, 1daebfgch
316 schema_extra: dict[str, Any] | None = None, 1daebfgch
317) -> Any: ... 1abc
320# Include sa_column, don't include
321# primary_key
322# foreign_key
323# ondelete
324# unique
325# nullable
326# index
327# sa_type
328# sa_column_args
329# sa_column_kwargs
330@overload 1daebfgch
331def Field( 1daebfgch
332 default: Any = Undefined, 1daebfgch
333 *,
334 default_factory: NoArgAnyCallable | None = None, 1daebfgch
335 alias: str | None = None, 1daebfgch
336 validation_alias: str | None = None, 1daebfgch
337 serialization_alias: str | None = None, 1daebfgch
338 title: str | None = None, 1daebfgch
339 description: str | None = None, 1daebfgch
340 exclude: Set[int | str] | Mapping[int | str, Any] | Any = None, 1daebfgch
341 include: Set[int | str] | Mapping[int | str, Any] | Any = None, 1daebfgch
342 const: bool | None = None, 1daebfgch
343 gt: float | None = None, 1daebfgch
344 ge: float | None = None, 1daebfgch
345 lt: float | None = None, 1daebfgch
346 le: float | None = None, 1daebfgch
347 multiple_of: float | None = None, 1daebfgch
348 max_digits: int | None = None, 1daebfgch
349 decimal_places: int | None = None, 1daebfgch
350 min_items: int | None = None, 1daebfgch
351 max_items: int | None = None, 1daebfgch
352 unique_items: bool | None = None, 1daebfgch
353 min_length: int | None = None, 1daebfgch
354 max_length: int | None = None, 1daebfgch
355 allow_mutation: bool = True, 1daebfgch
356 regex: str | None = None, 1daebfgch
357 discriminator: str | None = None, 1daebfgch
358 repr: bool = True, 1daebfgch
359 sa_column: Column[Any] | UndefinedType = Undefined, 1daebfgch
360 schema_extra: dict[str, Any] | None = None, 1daebfgch
361) -> Any: ... 1abc
364def Field( 1daebfgch
365 default: Any = Undefined,
366 *,
367 default_factory: NoArgAnyCallable | None = None,
368 alias: str | None = None,
369 validation_alias: str | None = None,
370 serialization_alias: str | None = None,
371 title: str | None = None,
372 description: str | None = None,
373 exclude: Set[int | str] | Mapping[int | str, Any] | Any = None,
374 include: Set[int | str] | Mapping[int | str, Any] | Any = None,
375 const: bool | None = None,
376 gt: float | None = None,
377 ge: float | None = None,
378 lt: float | None = None,
379 le: float | None = None,
380 multiple_of: float | None = None,
381 max_digits: int | None = None,
382 decimal_places: int | None = None,
383 min_items: int | None = None,
384 max_items: int | None = None,
385 unique_items: bool | None = None,
386 min_length: int | None = None,
387 max_length: int | None = None,
388 allow_mutation: bool = True,
389 regex: str | None = None,
390 discriminator: str | None = None,
391 repr: bool = True,
392 primary_key: bool | UndefinedType = Undefined,
393 foreign_key: Any = Undefined,
394 ondelete: OnDeleteType | UndefinedType = Undefined,
395 unique: bool | UndefinedType = Undefined,
396 nullable: bool | UndefinedType = Undefined,
397 index: bool | UndefinedType = Undefined,
398 sa_type: type[Any] | UndefinedType = Undefined,
399 sa_column: Column | UndefinedType = Undefined,
400 sa_column_args: Sequence[Any] | UndefinedType = Undefined,
401 sa_column_kwargs: Mapping[str, Any] | UndefinedType = Undefined,
402 schema_extra: dict[str, Any] | None = None,
403) -> Any:
404 current_schema_extra = schema_extra or {} 2d zdAdPdTdQdUdO #b$bocEcVbHf7fZfak1liknfRf|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWbIf8f0fbk2ljkofSf~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbJf9f1fck3lkkpfTfbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbKf!f2fdk4llkqfUfddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbLf#f3fek5lmkrfVffdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bMf$f4ffk6lnksfWfhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bNf%f5fgk7loktfXfjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bOf'f6fhk8lpkufYfldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
405 # Extract possible alias settings from schema_extra so we can control precedence
406 schema_validation_alias = current_schema_extra.pop("validation_alias", None) 2d zdAdPdTdQdUdO #b$bocEcVbHf7fZfak1liknfRf|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWbIf8f0fbk2ljkofSf~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbJf9f1fck3lkkpfTfbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbKf!f2fdk4llkqfUfddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbLf#f3fek5lmkrfVffdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bMf$f4ffk6lnksfWfhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bNf%f5fgk7loktfXfjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bOf'f6fhk8lpkufYfldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
407 schema_serialization_alias = current_schema_extra.pop("serialization_alias", None) 2d zdAdPdTdQdUdO #b$bocEcVbHf7fZfak1liknfRf|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWbIf8f0fbk2ljkofSf~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbJf9f1fck3lkkpfTfbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbKf!f2fdk4llkqfUfddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbLf#f3fek5lmkrfVffdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bMf$f4ffk6lnksfWfhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bNf%f5fgk7loktfXfjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bOf'f6fhk8lpkufYfldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
408 field_info_kwargs = { 2d zdAdPdTdQdUdO #b$bocEcVbHf7fZfak1liknfRf|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWbIf8f0fbk2ljkofSf~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbJf9f1fck3lkkpfTfbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbKf!f2fdk4llkqfUfddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbLf#f3fek5lmkrfVffdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bMf$f4ffk6lnksfWfhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bNf%f5fgk7loktfXfjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bOf'f6fhk8lpkufYfldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
409 "alias": alias,
410 "title": title,
411 "description": description,
412 "exclude": exclude,
413 "include": include,
414 "const": const,
415 "gt": gt,
416 "ge": ge,
417 "lt": lt,
418 "le": le,
419 "multiple_of": multiple_of,
420 "max_digits": max_digits,
421 "decimal_places": decimal_places,
422 "min_items": min_items,
423 "max_items": max_items,
424 "unique_items": unique_items,
425 "min_length": min_length,
426 "max_length": max_length,
427 "allow_mutation": allow_mutation,
428 "regex": regex,
429 "discriminator": discriminator,
430 "repr": repr,
431 "primary_key": primary_key,
432 "foreign_key": foreign_key,
433 "ondelete": ondelete,
434 "unique": unique,
435 "nullable": nullable,
436 "index": index,
437 "sa_type": sa_type,
438 "sa_column": sa_column,
439 "sa_column_args": sa_column_args,
440 "sa_column_kwargs": sa_column_kwargs,
441 **current_schema_extra,
442 }
444 # explicit params > schema_extra > alias propagation
445 field_info_kwargs["validation_alias"] = ( 2d zdAdPdTdQdUdO #b$bocEcVbHf7fZfak1liknfRf|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWbIf8f0fbk2ljkofSf~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbJf9f1fck3lkkpfTfbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbKf!f2fdk4llkqfUfddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbLf#f3fek5lmkrfVffdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bMf$f4ffk6lnksfWfhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bNf%f5fgk7loktfXfjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bOf'f6fhk8lpkufYfldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
446 validation_alias or schema_validation_alias or alias
447 )
448 field_info_kwargs["serialization_alias"] = ( 2d zdAdPdTdQdUdO #b$bocEcVbHf7fZfak1liknfRf|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWbIf8f0fbk2ljkofSf~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbJf9f1fck3lkkpfTfbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbKf!f2fdk4llkqfUfddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbLf#f3fek5lmkrfVffdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bMf$f4ffk6lnksfWfhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bNf%f5fgk7loktfXfjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bOf'f6fhk8lpkufYfldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
449 serialization_alias or schema_serialization_alias or alias
450 )
452 field_info = FieldInfo( 2d zdAdPdTdQdUdO #b$bocEcVbHf7fZfak1liknfRf|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWbIf8f0fbk2ljkofSf~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbJf9f1fck3lkkpfTfbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbKf!f2fdk4llkqfUfddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbLf#f3fek5lmkrfVffdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bMf$f4ffk6lnksfWfhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bNf%f5fgk7loktfXfjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bOf'f6fhk8lpkufYfldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
453 default,
454 default_factory=default_factory,
455 **field_info_kwargs,
456 )
457 field_metadata = FieldInfoMetadata( 2d zdAdPdTdQdUdO #b$bocEcVb|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWb~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbfdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
458 primary_key=primary_key,
459 nullable=nullable,
460 foreign_key=foreign_key,
461 ondelete=ondelete,
462 unique=unique,
463 index=index,
464 sa_type=sa_type,
465 sa_column=sa_column,
466 sa_column_args=sa_column_args,
467 sa_column_kwargs=sa_column_kwargs,
468 )
469 if hasattr(field_info, "metadata"): 2d zdAdPdTdQdUdO #b$bocEcVb|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWb~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbfdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
470 field_info.metadata.append(field_metadata) 2d zdAdPdTdQdUdO #b$bocEcVb|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWb~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbfdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
471 return field_info 2d zdAdPdTdQdUdO #b$bocEcVb|c}cKeCe*dP G Q +dFbGb3bq R S T UcU gcFcSei ,d-d9dV W VcWc?cXcxbwc@b[by a ndodDdVdEdWdX %b'bpcGcWb~cadLeDe.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcTej :d;d!d4 5 Zc0c@c1cybxc]b^bz e pdqdFdXdGdYd6 (b)bqcIcXbbdcdMeEe=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJcUek @d[d#d% ' 3c4c[c5czbyc_b`bA b BdCdRdZdSd0d( *b+brcKcYbddedNeFe]d) J * ^dLbMb6bt + , - 6c. jcLcVel _d`d$d/ : 7c8c]c9cAbzc{b|bB f rdsdHd1dId2d; ,b-bscMcZbfdgdOeGe{d= K ? |dNbOb7bu @ [ ] !c^ kcNcWem }d~d%d_ ` #c$c^c%cBbAc}b~bC g tdudJd3dKd4d{ .b/btcOc0bhdidPeHeae| L } bePbQb8bv ~ abbb'ccblcPcXen cede'ddbeb(c)c_c*cCbBcacbcD c vdwdLd5dMd6dfb:b;bucQc1bjdkdQeIeeegbM hbfeRbSb9bw ibjbkb+clbmcRcYeo gehe(dmbnb,c-c`c.cDbCcccdcE h xdydNd7dOd8dob=b?bvcSc2bldmdReJeiepbN qbjeTbUb!bx rbsbtb/cubncTcZep kele)dvbwb:c;c{c=cEbDcecfcF
474@overload 1daebfgch
475def Relationship( 1daebfgch
476 *,
477 back_populates: str | None = None, 1daebfgch
478 cascade_delete: bool | None = False, 1daebfgch
479 passive_deletes: bool | Literal["all"] | None = False, 1daebfgch
480 link_model: Any | None = None, 1daebfgch
481 sa_relationship_args: Sequence[Any] | None = None, 1daebfgch
482 sa_relationship_kwargs: Mapping[str, Any] | None = None, 1daebfgch
483) -> Any: ... 1abc
486@overload 1daebfgch
487def Relationship( 1daebfgch
488 *,
489 back_populates: str | None = None, 1daebfgch
490 cascade_delete: bool | None = False, 1daebfgch
491 passive_deletes: bool | Literal["all"] | None = False, 1daebfgch
492 link_model: Any | None = None, 1daebfgch
493 sa_relationship: RelationshipProperty[Any] | None = None, 1daebfgch
494) -> Any: ... 1abc
497def Relationship( 1daebfgch
498 *,
499 back_populates: str | None = None,
500 cascade_delete: bool | None = False,
501 passive_deletes: bool | Literal["all"] | None = False,
502 link_model: Any | None = None,
503 sa_relationship: RelationshipProperty[Any] | None = None,
504 sa_relationship_args: Sequence[Any] | None = None,
505 sa_relationship_kwargs: Mapping[str, Any] | None = None,
506) -> Any:
507 relationship_info = RelationshipInfo( 2d KeCeq i a LeDer j e MeEes k b NeFet l f OeGeu m g PeHev n c QeIew o h ReJex p
508 back_populates=back_populates,
509 cascade_delete=cascade_delete,
510 passive_deletes=passive_deletes,
511 link_model=link_model,
512 sa_relationship=sa_relationship,
513 sa_relationship_args=sa_relationship_args,
514 sa_relationship_kwargs=sa_relationship_kwargs,
515 )
516 return relationship_info 1dqiarjeskbtlfumgvncwohxp
519@__dataclass_transform__(kw_only_default=True, field_descriptors=(Field, FieldInfo)) 1daebfgch
520class SQLModelMetaclass(ModelMetaclass, DeclarativeMeta): 1daebfgch
521 __tablename__: str 1daebfgch
522 __sqlmodel_relationships__: dict[str, RelationshipInfo] 1daebfgch
523 model_config: SQLModelConfig 1daebfgch
524 model_fields: ClassVar[dict[str, FieldInfo]] 1daebfgch
526 # Replicate SQLAlchemy
527 def __setattr__(cls, name: str, value: Any) -> None: # ty: ignore[invalid-method-override] 1daebfgch
528 if is_table_model_class(cls): 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
529 DeclarativeMeta.__setattr__(cls, name, value) 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
530 else:
531 super().__setattr__(name, value) 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
533 def __delattr__(cls, name: str) -> None: # ty: ignore[invalid-method-override] 1daebfgch
534 if is_table_model_class(cls): 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dV W VcWc?cXcxbwc@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!d4 5 Zc0c@c1cybxc]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#d% ' 3c4c[c5czbyc_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$d/ : 7c8c]c9cAbzc{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%d_ ` #c$c^c%cBbAc}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'ddbeb(c)c_c*cCbBcacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dmbnb,c-c`c.cDbCcccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)dvbwb:c;c{c=cEbDcecfcF Be
535 DeclarativeMeta.__delattr__(cls, name) 2d @b[ba ]b^be _b`bb {b|bf }b~bg acbcc ccdch ecfc
536 else:
537 super().__delattr__(name) 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dV W VcWc?cXcxbwc@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!d4 5 Zc0c@c1cybxc]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#d% ' 3c4c[c5czbyc_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$d/ : 7c8c]c9cAbzc{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%d_ ` #c$c^c%cBbAc}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'ddbeb(c)c_c*cCbBcacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dmbnb,c-c`c.cDbCcccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)dvbwb:c;c{c=cEbDcecfcF Be
539 # From Pydantic
540 def __new__( 1daebfgch
541 cls,
542 name: str,
543 bases: tuple[type[Any], ...],
544 class_dict: dict[str, Any],
545 **kwargs: Any,
546 ) -> Any:
547 relationships: dict[str, RelationshipInfo] = {} 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
548 dict_for_pydantic = {} 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
549 original_annotations = get_annotations(class_dict) 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
550 pydantic_annotations = {} 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
551 relationship_annotations = {} 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
552 for k, v in class_dict.items(): 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
553 if isinstance(v, RelationshipInfo): 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
554 relationships[k] = v 1dqiarjeskbtlfumgvncwohxp
555 else:
556 dict_for_pydantic[k] = v 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
557 for k, v in original_annotations.items(): 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
558 if k in relationships: 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
559 relationship_annotations[k] = v 1dqiarjeskbtlfumgvncwohxp
560 else:
561 pydantic_annotations[k] = v 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
562 dict_used = { 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
563 **dict_for_pydantic,
564 "__weakref__": None,
565 "__sqlmodel_relationships__": relationships,
566 "__annotations__": pydantic_annotations,
567 }
568 # Set default __tablename__ before class creation so it's part of the
569 # class dict, unless the user supplied one.
570 if "__tablename__" not in class_dict: 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
571 dict_used["__tablename__"] = name.lower() 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1c1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5c2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9c3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%c4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*c5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.c6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=c7eecfcF Be
572 # Duplicate logic from Pydantic to filter config kwargs because if they are
573 # passed directly including the registry Pydantic will pass them over to the
574 # superclass causing an error
575 allowed_config_kwargs: set[str] = { 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
576 key
577 for key in dir(BaseConfig)
578 if not (
579 key.startswith("__") and key.endswith("__")
580 ) # skip dunder methods and attributes
581 }
582 config_kwargs = { 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
583 key: kwargs[key] for key in kwargs.keys() & allowed_config_kwargs
584 }
585 new_cls = cast( 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
586 "SQLModel", super().__new__(cls, name, bases, dict_used, **config_kwargs)
587 )
588 new_cls.__annotations__ = { 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
589 **relationship_annotations,
590 **pydantic_annotations,
591 **new_cls.__annotations__,
592 }
594 def get_config(name: str) -> Any: 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
595 config_class_value = new_cls.model_config.get(name, Undefined) 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
596 if config_class_value is not Undefined: 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
597 return config_class_value 2@b[b]b^b_b`b{b|b}b~bacbcccdcecfc
598 kwarg_value = kwargs.get(name, Undefined) 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
599 if kwarg_value is not Undefined: 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
600 return kwarg_value 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
601 return Undefined 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T U gcFci ,d-d9dseV W Xcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 3 hcHcj :d;d!dme4 5 1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # $ icJck @d[d#dne% ' 5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - . jcLcl _d`d$dte/ : 9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] ^ kcNcm }d~d%doe_ ` %cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbbcblcPcn cede'dpedbeb*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkblbmcRco gehe(dqembnb.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtbubncTcp kele)drevbwb=cEbDc7eecfcF Be
603 config_table = get_config("table") 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
604 if config_table is True: 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T UcU gcFci ,d-d9dseV W VcWc?cXcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 Yc3 hcHcj :d;d!dme4 5 Zc0c@c1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # 2c$ icJck @d[d#dne% ' 3c4c[c5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - 6c. jcLcl _d`d$dte/ : 7c8c]c9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] !c^ kcNcm }d~d%doe_ ` #c$c^c%cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbb'ccblcPcn cede'dpedbeb(c)c_c*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkb+clbmcRco gehe(dqembnb,c-c`c.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtb/cubncTcp kele)drevbwb:c;c{c=cEbDc7eecfcF Be
605 # If it was passed by kwargs, ensure it's also set in config
606 new_cls.model_config["table"] = config_table 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
607 for k, v in get_model_fields(new_cls).items(): 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
608 col = get_column_from_field(v) 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
609 setattr(new_cls, k, col) 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
610 # Set a config flag to tell FastAPI that this should be read with a field
611 # in orm_mode instead of preemptively converting it to a dict.
612 # This could be done by reading new_cls.model_config['table'] in FastAPI, but
613 # that's very specific about SQLModel, so let's have another config that
614 # other future tools based on Pydantic can use.
615 new_cls.model_config["read_from_attributes"] = True # ty: ignore[invalid-key] 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T U gcFci V W Xcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 3 hcHcj 4 5 1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # $ icJck % ' 5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - . jcLcl / : 9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] ^ kcNcm _ ` %cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbbcblcPcn dbeb*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkblbmcRco mbnb.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtbubncTcp vbwb=cEbDcecfcF
616 # For compatibility with older versions
617 # TODO: remove this in the future
618 new_cls.model_config["read_with_orm_mode"] = True # ty: ignore[invalid-key] 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T U gcFci V W Xcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 3 hcHcj 4 5 1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # $ icJck % ' 5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - . jcLcl / : 9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] ^ kcNcm _ ` %cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbbcblcPcn dbeb*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkblbmcRco mbnb.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtbubncTcp vbwb=cEbDcecfcF
620 config_registry = get_config("registry") 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T U gcFci ,d-d9dseV W Xcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 3 hcHcj :d;d!dme4 5 1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # $ icJck @d[d#dne% ' 5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - . jcLcl _d`d$dte/ : 9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] ^ kcNcm }d~d%doe_ ` %cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbbcblcPcn cede'dpedbeb*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkblbmcRco gehe(dqembnb.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtbubncTcp kele)drevbwb=cEbDc7eecfcF Be
621 if config_registry is not Undefined: 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T U gcFci ,d-d9dseV W Xcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 3 hcHcj :d;d!dme4 5 1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # $ icJck @d[d#dne% ' 5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - . jcLcl _d`d$dte/ : 9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] ^ kcNcm }d~d%doe_ ` %cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbbcblcPcn cede'dpedbeb*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkblbmcRco gehe(dqembnb.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtbubncTcp kele)drevbwb=cEbDc7eecfcF Be
622 config_registry = cast(registry, config_registry) 1daebfgch
623 # If it was passed by kwargs, ensure it's also set in config
624 new_cls.model_config["registry"] = config_table 1daebfgch
625 setattr(new_cls, "_sa_registry", config_registry) # noqa: B010 1daebfgch
626 setattr(new_cls, "metadata", config_registry.metadata) # noqa: B010 1daebfgch
627 setattr(new_cls, "__abstract__", True) # noqa: B010 1daebfgch
628 return new_cls 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T U gcFci ,d-d9dseV W Xcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 3 hcHcj :d;d!dme4 5 1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # $ icJck @d[d#dne% ' 5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - . jcLcl _d`d$dte/ : 9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] ^ kcNcm }d~d%doe_ ` %cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbbcblcPcn cede'dpedbeb*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkblbmcRco gehe(dqembnb.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtbubncTcp kele)drevbwb=cEbDc7eecfcF Be
630 # Override SQLAlchemy, allow both SQLAlchemy and plain Pydantic models
631 def __init__( 1daebfgch
632 cls, classname: str, bases: tuple[type, ...], dict_: dict[str, Any], **kw: Any
633 ) -> None:
634 # Only one of the base classes (or the current one) should be a table model
635 # this allows FastAPI cloning a SQLModel for the response_model without
636 # trying to create a new SQLAlchemy, for a new table, with the same name, that
637 # triggers an error
638 base_is_table = any(is_table_model_class(base) for base in bases) 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T U gcFci ,d-d9dseV W Xcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 3 hcHcj :d;d!dme4 5 1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # $ icJck @d[d#dne% ' 5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - . jcLcl _d`d$dte/ : 9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] ^ kcNcm }d~d%doe_ ` %cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbbcblcPcn cede'dpedbeb*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkblbmcRco gehe(dqembnb.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtbubncTcp kele)drevbwb=cEbDc7eecfcF Be
639 if is_table_model_class(cls) and not base_is_table: 2d zdAdPdTdQdUdO #b$bocEcVb|c}c*dP G Q +dFbGb3bq R S T U gcFci ,d-d9dseV W Xcxbwc0e@b[by uea ndodDdVdEdWdX %b'bpcGcWb~cad.dY H Z /dHbIb4br 0 1 2 3 hcHcj :d;d!dme4 5 1cybxc1e]b^bz vee pdqdFdXdGdYd6 (b)bqcIcXbbdcd=d7 I 8 ?dJbKb5bs 9 ! # $ icJck @d[d#dne% ' 5czbyc2e_b`bA web BdCdRdZdSd0d( *b+brcKcYbdded]d) J * ^dLbMb6bt + , - . jcLcl _d`d$dte/ : 9cAbzc3e{b|bB xef rdsdHd1dId2d; ,b-bscMcZbfdgd{d= K ? |dNbOb7bu @ [ ] ^ kcNcm }d~d%doe_ ` %cBbAc4e}b~bC yeg tdudJd3dKd4d{ .b/btcOc0bhdidae| L } bePbQb8bv ~ abbbcblcPcn cede'dpedbeb*cCbBc5eacbcD zec vdwdLd5dMd6dfb:b;bucQc1bjdkdeegbM hbfeRbSb9bw ibjbkblbmcRco gehe(dqembnb.cDbCc6eccdcE Aeh xdydNd7dOd8dob=b?bvcSc2bldmdiepbN qbjeTbUb!bx rbsbtbubncTcp kele)drevbwb=cEbDc7eecfcF Be
640 for rel_name, rel_info in cls.__sqlmodel_relationships__.items(): 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T U gcFci V W Xcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 3 hcHcj 4 5 1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # $ icJck % ' 5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - . jcLcl / : 9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] ^ kcNcm _ ` %cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbbcblcPcn dbeb*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkblbmcRco mbnb.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtbubncTcp vbwb=cEbDcecfcF
641 if rel_info.sa_relationship: 1dqiarjeskbtlfumgvncwohxp
642 # There's a SQLAlchemy relationship declared, that takes precedence
643 # over anything else, use that and continue with the next attribute
644 setattr(cls, rel_name, rel_info.sa_relationship) # Fix #315 1qrstuvwx
645 continue 1qrstuvwx
646 raw_ann = cls.__annotations__[rel_name] 1diajekblfmgncohp
647 origin: Any = get_origin(raw_ann) 1diajekblfmgncohp
648 if origin is Mapped: 1diajekblfmgncohp
649 ann = raw_ann.__args__[0]
650 else:
651 ann = raw_ann 1diajekblfmgncohp
652 # Plain forward references, for models not yet defined, are not
653 # handled well by SQLAlchemy without Mapped, so, wrap the
654 # annotations in Mapped here
655 cls.__annotations__[rel_name] = Mapped[ann] 1diajekblfmgncohp
656 relationship_to = get_relationship_to( 1diajekblfmgncohp
657 name=rel_name, rel_info=rel_info, annotation=ann
658 )
659 rel_kwargs: dict[str, Any] = {} 1diajekblfmgncohp
660 if rel_info.back_populates: 1diajekblfmgncohp
661 rel_kwargs["back_populates"] = rel_info.back_populates 1diajekblfmgncohp
662 if rel_info.cascade_delete: 1diajekblfmgncohp
663 rel_kwargs["cascade"] = "all, delete-orphan" 1daebfgch
664 if rel_info.passive_deletes: 1diajekblfmgncohp
665 rel_kwargs["passive_deletes"] = rel_info.passive_deletes 1diajekblfmgncohp
666 if rel_info.link_model: 1diajekblfmgncohp
667 ins = inspect(rel_info.link_model) 1daebfgch
668 local_table = getattr(ins, "local_table") # noqa: B009 1daebfgch
669 if local_table is None: 1daebfgch
670 raise RuntimeError(
671 "Couldn't find the secondary table for "
672 f"model {rel_info.link_model}"
673 )
674 rel_kwargs["secondary"] = local_table 1daebfgch
675 rel_args: list[Any] = [] 1diajekblfmgncohp
676 if rel_info.sa_relationship_args: 1diajekblfmgncohp
677 rel_args.extend(rel_info.sa_relationship_args)
678 if rel_info.sa_relationship_kwargs: 1diajekblfmgncohp
679 rel_kwargs.update(rel_info.sa_relationship_kwargs)
680 rel_value = relationship(relationship_to, *rel_args, **rel_kwargs) 1diajekblfmgncohp
681 setattr(cls, rel_name, rel_value) # Fix #315 1diajekblfmgncohp
682 # SQLAlchemy no longer uses dict_
683 # Ref: https://github.com/sqlalchemy/sqlalchemy/commit/428ea01f00a9cc7f85e435018565eb6da7af1b77
684 # Tag: 1.4.36
685 DeclarativeMeta.__init__(cls, classname, bases, dict_, **kw) 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T U gcFci V W Xcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 3 hcHcj 4 5 1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # $ icJck % ' 5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - . jcLcl / : 9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] ^ kcNcm _ ` %cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbbcblcPcn dbeb*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkblbmcRco mbnb.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtbubncTcp vbwb=cEbDcecfcF
686 else:
687 ModelMetaclass.__init__(cls, classname, bases, dict_, **kw) 2d zdAdPdTdQdUd#b$b*d+d,d-d9dse0e@b[by uea ndodDdVdEdWd%b'b.d/d:d;d!dme1e]b^bz vee pdqdFdXdGdYd(b)b=d?d@d[d#dne2e_b`bA web BdCdRdZdSd0d*b+b]d^d_d`d$dte3e{b|bB xef rdsdHd1dId2d,b-b{d|d}d~d%doe4e}b~bC yeg tdudJd3dKd4d.b/baebecede'dpe5eacbcD zec vdwdLd5dMd6d:b;beefegehe(dqe6eccdcE Aeh xdydNd7dOd8d=b?biejekele)dre7eecfcF Be
690def get_sqlalchemy_type(field: Any) -> Any: 1daebfgch
691 field_info = field 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
692 sa_type = _get_sqlmodel_field_value(field_info, "sa_type", Undefined) # noqa: B009 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
693 if sa_type is not Undefined: 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
694 return sa_type
696 type_ = get_sa_type_from_field(field) 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
697 metadata = get_field_metadata(field) 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
699 # Check enums first as an enum can also be a str, needed by Pydantic/FastAPI
700 if issubclass(type_, Enum): 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
701 return sa_Enum(type_) 2d #b$ba %b'be (b)bb *b+bf ,b-bg .b/bc :b;bh =b?b
702 if issubclass( 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
703 type_,
704 (
705 str,
706 ipaddress.IPv4Address,
707 ipaddress.IPv4Network,
708 ipaddress.IPv6Address,
709 ipaddress.IPv6Network,
710 Path,
711 EmailStr,
712 ),
713 ):
714 max_length = getattr(metadata, "max_length", None) 2d ocVbP G Q FbGb3bq R S T U gci V W xbwc@b[by a pcWbY H Z HbIb4br 0 1 2 3 hcj 4 5 ybxc]b^bz e qcXb7 I 8 JbKb5bs 9 ! # $ ick % ' zbyc_b`bA b rcYb) J * LbMb6bt + , - . jcl / : Abzc{b|bB f scZb= K ? NbOb7bu @ [ ] ^ kcm _ ` BbAc}b~bC g tc0b| L } PbQb8bv ~ abbbcblcn dbebCbBcacbcD c uc1bgbM hbRbSb9bw ibjbkblbmco mbnbDbCcccdcE h vc2bpbN qbTbUb!bx rbsbtbubncp vbwbEbDcecfcF
715 if max_length: 2d ocVbP G Q FbGb3bq R S T U gci V W xbwc@b[by a pcWbY H Z HbIb4br 0 1 2 3 hcj 4 5 ybxc]b^bz e qcXb7 I 8 JbKb5bs 9 ! # $ ick % ' zbyc_b`bA b rcYb) J * LbMb6bt + , - . jcl / : Abzc{b|bB f scZb= K ? NbOb7bu @ [ ] ^ kcm _ ` BbAc}b~bC g tc0b| L } PbQb8bv ~ abbbcblcn dbebCbBcacbcD c uc1bgbM hbRbSb9bw ibjbkblbmco mbnbDbCcccdcE h vc2bpbN qbTbUb!bx rbsbtbubncp vbwbEbDcecfcF
716 return AutoString(length=max_length)
717 return AutoString 2d ocVbP G Q FbGb3bq R S T U gci V W xbwc@b[by a pcWbY H Z HbIb4br 0 1 2 3 hcj 4 5 ybxc]b^bz e qcXb7 I 8 JbKb5bs 9 ! # $ ick % ' zbyc_b`bA b rcYb) J * LbMb6bt + , - . jcl / : Abzc{b|bB f scZb= K ? NbOb7bu @ [ ] ^ kcm _ ` BbAc}b~bC g tc0b| L } PbQb8bv ~ abbbcblcn dbebCbBcacbcD c uc1bgbM hbRbSb9bw ibjbkblbmco mbnbDbCcccdcE h vc2bpbN qbTbUb!bx rbsbtbubncp vbwbEbDcecfcF
718 if issubclass(type_, float): 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
719 return Float
720 if issubclass(type_, bool): 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
721 return Boolean 1daebfgch
722 if issubclass(type_, int): 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
723 return Integer 2d ocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a pcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e qcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b rcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f scMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g tcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c ucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h vcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
724 if issubclass(type_, datetime): 2d O #b$bUcVcWca X %b'bYcZc0ce 6 (b)b2c3c4cb ( *b+b6c7c8cf ; ,b-b!c#c$cg { .b/b'c(c)cc fb:b;b+c,c-ch ob=b?b/c:c;c
725 return DateTime
726 if issubclass(type_, date): 2d O #b$bUcVcWca X %b'bYcZc0ce 6 (b)b2c3c4cb ( *b+b6c7c8cf ; ,b-b!c#c$cg { .b/b'c(c)cc fb:b;b+c,c-ch ob=b?b/c:c;c
727 return Date
728 if issubclass(type_, timedelta): 2d O #b$bUcVcWca X %b'bYcZc0ce 6 (b)b2c3c4cb ( *b+b6c7c8cf ; ,b-b!c#c$cg { .b/b'c(c)cc fb:b;b+c,c-ch ob=b?b/c:c;c
729 return Interval
730 if issubclass(type_, time): 2d O #b$bUcVcWca X %b'bYcZc0ce 6 (b)b2c3c4cb ( *b+b6c7c8cf ; ,b-b!c#c$cg { .b/b'c(c)cc fb:b;b+c,c-ch ob=b?b/c:c;c
731 return Time
732 if issubclass(type_, bytes): 2d O #b$bUcVcWca X %b'bYcZc0ce 6 (b)b2c3c4cb ( *b+b6c7c8cf ; ,b-b!c#c$cg { .b/b'c(c)cc fb:b;b+c,c-ch ob=b?b/c:c;c
733 return LargeBinary
734 if issubclass(type_, Decimal): 2d O #b$bUcVcWca X %b'bYcZc0ce 6 (b)b2c3c4cb ( *b+b6c7c8cf ; ,b-b!c#c$cg { .b/b'c(c)cc fb:b;b+c,c-ch ob=b?b/c:c;c
735 return Numeric( 1daebfgch
736 precision=getattr(metadata, "max_digits", None),
737 scale=getattr(metadata, "decimal_places", None),
738 )
739 if issubclass(type_, uuid.UUID): 2d O #b$bUcVcWca X %b'bYcZc0ce 6 (b)b2c3c4cb ( *b+b6c7c8cf ; ,b-b!c#c$cg { .b/b'c(c)cc fb:b;b+c,c-ch ob=b?b/c:c;c
740 return Uuid 2d O #b$ba X %b'be 6 (b)bb ( *b+bf ; ,b-bg { .b/bc fb:b;bh ob=b?b
741 raise ValueError(f"{type_} has no matching SQLAlchemy type") 2UcVcWcYcZc0c2c3c4c6c7c8c!c#c$c'c(c)c+c,c-c/c:c;c
744def get_column_from_field(field: Any) -> Column: 1daebfgch
745 field_info = field 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
746 sa_column = _get_sqlmodel_field_value(field_info, "sa_column", Undefined) 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
747 if isinstance(sa_column, Column): 2d O #b$bocEcVb|c}cP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWb~cadY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXbbdcd7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYbdded) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZbfdgd= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0bhdid| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bjdkdgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bldmdpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
748 return sa_column 2|c}c~cadbdcdddedfdgdhdidjdkdldmd
749 sa_type = get_sqlalchemy_type(field) 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
750 primary_key = _get_sqlmodel_field_value(field_info, "primary_key", Undefined) 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
751 if primary_key is Undefined: 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
752 primary_key = False 2d #b$bocEcVbP G Q FbGb3bq R S T U gci V W xbwc@b[by a %b'bpcGcWbY H Z HbIb4br 0 1 2 3 hcj 4 5 ybxc]b^bz e (b)bqcIcXb7 I 8 JbKb5bs 9 ! # $ ick % ' zbyc_b`bA b *b+brcKcYb) J * LbMb6bt + , - . jcl / : Abzc{b|bB f ,b-bscMcZb= K ? NbOb7bu @ [ ] ^ kcm _ ` BbAc}b~bC g .b/btcOc0b| L } PbQb8bv ~ abbbcblcn dbebCbBcacbcD c :b;bucQc1bgbM hbRbSb9bw ibjbkblbmco mbnbDbCcccdcE h =b?bvcSc2bpbN qbTbUb!bx rbsbtbubncp vbwbEbDcecfcF
753 index = _get_sqlmodel_field_value(field_info, "index", Undefined) 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
754 if index is Undefined: 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
755 index = False 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
756 nullable = not primary_key and is_field_noneable(field) 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
757 # Override derived nullability if the nullable property is set explicitly
758 # on the field
759 field_nullable = _get_sqlmodel_field_value(field_info, "nullable", Undefined) 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
760 if field_nullable is not Undefined: 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
761 assert not isinstance(field_nullable, UndefinedType) 2U gcFc3 hcHc$ icJc. jcLc^ kcNccblcPclbmcRcubncTc
762 nullable = field_nullable 2U gcFc3 hcHc$ icJc. jcLc^ kcNccblcPclbmcRcubncTc
763 args = [] 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
764 foreign_key = _get_sqlmodel_field_value(field_info, "foreign_key", Undefined) 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
765 if foreign_key is Undefined: 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
766 foreign_key = None 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
767 unique = _get_sqlmodel_field_value(field_info, "unique", Undefined) 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
768 if unique is Undefined: 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
769 unique = False 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
770 if foreign_key: 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
771 ondelete_value = _get_sqlmodel_field_value(field_info, "ondelete", Undefined) 2d G 3bq i a H 4br j e I 5bs k b J 6bt l f K 7bu m g L 8bv n c M 9bw o h N !bx p
772 if ondelete_value is Undefined: 2d G 3bq i a H 4br j e I 5bs k b J 6bt l f K 7bu m g L 8bv n c M 9bw o h N !bx p
773 ondelete_value = None 1dGqaHreIsbJtfKugLvcMwhNx
774 if ondelete_value == "SET NULL" and not nullable: 2d G 3bq i a H 4br j e I 5bs k b J 6bt l f K 7bu m g L 8bv n c M 9bw o h N !bx p
775 raise RuntimeError('ondelete="SET NULL" requires nullable=True') 1ijklmnop
776 assert isinstance(foreign_key, str) 2d G 3bq a H 4br e I 5bs b J 6bt f K 7bu g L 8bv c M 9bw h N !bx
777 assert isinstance(ondelete_value, (str, type(None))) # for typing 2d G 3bq a H 4br e I 5bs b J 6bt f K 7bu g L 8bv c M 9bw h N !bx
778 args.append(ForeignKey(foreign_key, ondelete=ondelete_value)) 2d G 3bq a H 4br e I 5bs b J 6bt f K 7bu g L 8bv c M 9bw h N !bx
779 kwargs: dict[str, Any] = { 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
780 "primary_key": primary_key,
781 "nullable": nullable,
782 "index": index,
783 "unique": unique,
784 }
785 sa_default = Undefined 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
786 if field_info.default_factory: 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
787 sa_default = field_info.default_factory 2d O a X e 6 b ( f ; g { c fbh ob
788 elif field_info.default is not Undefined: 2d #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c :b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h =b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
789 sa_default = field_info.default 2d ocEcVbP G Q q R S T UcU gcFci V W VcWc?cXcxbwc@b[by a pcGcWbY H Z r 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e qcIcXb7 I 8 s 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b rcKcYb) J * t + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f scMcZb= K ? u @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g tcOc0b| L } v ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c ucQc1bgbM hbw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h vcSc2bpbN qbx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
790 if sa_default is not Undefined: 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
791 kwargs["default"] = sa_default 2d O ocEcVbP G Q q R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X pcGcWbY H Z r 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 qcIcXb7 I 8 s 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( rcKcYb) J * t + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; scMcZb= K ? u @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { tcOc0b| L } v ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fbucQc1bgbM hbw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h obvcSc2bpbN qbx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
792 sa_column_args = _get_sqlmodel_field_value(field_info, "sa_column_args", Undefined) 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
793 if sa_column_args is not Undefined: 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
794 args.extend(list(cast(Sequence[Any], sa_column_args))) 2ocpcqcrcsctcucvc
795 sa_column_kwargs = _get_sqlmodel_field_value( 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
796 field_info, "sa_column_kwargs", Undefined
797 )
798 if sa_column_kwargs is not Undefined: 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
799 kwargs.update(cast(dict[Any, Any], sa_column_kwargs)) 2EcGcIcKcMcOcQcSc
800 return Column(sa_type, *args, **kwargs) 2d O #b$bocEcVbP G Q FbGb3bq R S T UcU gcFci V W VcWc?cXcxbwc@b[by a X %b'bpcGcWbY H Z HbIb4br 0 1 2 Yc3 hcHcj 4 5 Zc0c@c1cybxc]b^bz e 6 (b)bqcIcXb7 I 8 JbKb5bs 9 ! # 2c$ icJck % ' 3c4c[c5czbyc_b`bA b ( *b+brcKcYb) J * LbMb6bt + , - 6c. jcLcl / : 7c8c]c9cAbzc{b|bB f ; ,b-bscMcZb= K ? NbOb7bu @ [ ] !c^ kcNcm _ ` #c$c^c%cBbAc}b~bC g { .b/btcOc0b| L } PbQb8bv ~ abbb'ccblcPcn dbeb(c)c_c*cCbBcacbcD c fb:b;bucQc1bgbM hbRbSb9bw ibjbkb+clbmcRco mbnb,c-c`c.cDbCcccdcE h ob=b?bvcSc2bpbN qbTbUb!bx rbsbtb/cubncTcp vbwb:c;c{c=cEbDcecfcF
803default_registry = registry() 1daebfgch
805_TSQLModel = TypeVar("_TSQLModel", bound="SQLModel") 1daebfgch
808class SQLModel(BaseModel, metaclass=SQLModelMetaclass, registry=default_registry): 1daebfgch
809 # SQLAlchemy needs to set weakref(s), Pydantic will set the other slots values
810 __slots__ = ("__weakref__",) 1daebfgch
811 __sqlmodel_relationships__: ClassVar[builtins.dict[str, RelationshipInfo]] 1daebfgch
812 __name__: ClassVar[str] 1daebfgch
813 metadata: ClassVar[MetaData] 1daebfgch
814 __allow_unmapped__ = True # https://docs.sqlalchemy.org/en/20/changelog/migration_20.html#migration-20-step-six 1daebfgch
815 model_config = SQLModelConfig(from_attributes=True) 1daebfgch
817 # Typing spec says `__new__` returning `Any` overrides normal constructor
818 # behavior, but a missing annotation does not:
819 def __new__(cls, *args: Any, **kwargs: Any): # type: ignore[no-untyped-def] 1daebfgch
820 new_object = super().__new__(cls) 2YoemZo0oZn0n1nPffmgmhmimjmkmqkrkskzdAdPdTd1o2o3o4o5o}l~l6oQdUdamO {lIoQo*dP G Q +dFbGbq R S T U ,d-d9dseV W xbtkukvkwkxkykzkAkBkCkDkEkFklmmmnmompmqmvfrmsmtmumwf2nxfGkyfzfAfHkIk3n4n5nJkKkLkMkNkOkPkQk6nRkSkTkUkVkWk7nXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?ky ue7ovm8o9o8n9n!nhfwmxmymzmAmBm(f)f*fndodDdVd!o#o$o%o'o(l)l(oEdWd*lX 9lJoRo.dY H Z /dHbIbr 0 1 2 3 :d;d!dme4 5 yb+f,f-f.f/f:f;f=f?f@f[f]f^fCmDmEmFmGmHm8eImJmKmLm9e#n!e_f#e$e%e`f{f$n%n'n|f}f~fagbgcgdgeg(nfggghgigjgkg)nlgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgz ve)oMm*o+o*n+n,nifNmOmPmQmRmSmPgQgRgpdqdFdXd,o-o.o/o:o+l,l;oGdYd-l6 !lKoSo=d7 I 8 ?dJbKbs 9 ! # $ @d[d#dne% ' zbSgTgUgVgWgXgYgZg0g1g2g3g4gTmUmVmWmXmYm'eZm0m1m2m(e-n)e5g*e+e,e6g7g.n/n:n8g9g!g#g$g%g'g(g;n)g*g+g,g-g.g=n/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohA we=o3m?o@o?n@n[nQf4m5m6m7m8m9m@k[k]kBdCdRdZd[o]o^o_o`obmcm{oSd0ddm( |lLoTo]d) J * ^dLbMbt + , - . _d`d$dte/ : Ab^k_k`k{k|k}k~kalblcldlelfl!m#m$m%m'm(mBf)m*m+m,mCf]nDfglEfFfGfhlil^n_n`njlklllmlnlolplql{nrlsltlulvlwl|nxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0lB xe|o-m}o~o}n~naojf.m/m:m;m=m?mphqhrhrdsdHd1dapbpcpdpep.l/lfpId2d:l; #lMoUo{d= K ? |dNbObu @ [ ] ^ }d~d%doe_ ` BbshthuhvhwhxhyhzhAhBhChDhEh@m[m]m^m_m`m-e{m|m}m~m.ebo/eFh:e;e=eGhHhcodoeoIhJhKhLhMhNhOhPhfoQhRhShThUhVhgoWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hC yegpanhpiphoiojokfbncndnenfngn?h@h[htdudJd3djpkplpmpnp;l=lopKd4d?l{ $lNoVoae| L } bePbQbv ~ abbbcbcede'dpedbebCb]h^h_h`h{h|h}h~haibicidieihninjnknlnmn?ennonpnqn@eko[efi]e^e_egihilomonoiijikiliminioipiooqirisitiuivipowixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZiD zepprnqprpqorosolfsntnunvnwnxn0i1i2ivdwdLd5dsptpupvpwp@l[lxpMd6d]lfb%lOoWoeegbM hbfeRbSbw ibjbkblbgehe(dqembnbDb3i4i5i6i7i8i9i!i#i$i%i'i(iynznAnBnCnDn`eEnFnGnHn{eto|e)i}e~eaf*i+iuovowo,i-i.i/i:i;i=i?ixo@i[i]i^i_i`iyo{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjE AeypInzpApzoAoBomfJnKnLnMnNnOnAjBjCjxdydNd7dBpCpDpEpFp^l_lGpOd8d`lob'lPoXoiepbN qbjeTbUbx rbsbtbubkele)drevbwbEbDjEjFjGjHjIjJjKjLjMjNjOjPjPnQnRnSnTnUnbfVnWnXnYncfCodfQjefffgfRjSjDoEoFoTjUjVjWjXjYjZj0jGo1j2j3j4j5j6jHo7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jF Be
821 # SQLAlchemy doesn't call __init__ on the base class when querying from DB
822 # Ref: https://docs.sqlalchemy.org/en/14/orm/constructors.html
823 # Set __fields_set__ here, that would have been set when calling __init__
824 # in the Pydantic model so that when SQLAlchemy sets attributes that are
825 # added (e.g. when querying from DB) to the __fields_set__, this already exists
826 init_pydantic_private_attrs(new_object) 2YoemZo0oZn0n1nPffmgmhmimjmkmqkrkskzdAdPdTd1o2o3o4o5o}l~l6oQdUdamO {lIoQo*dP G Q +dFbGbq R S T U ,d-d9dseV W xbtkukvkwkxkykzkAkBkCkDkEkFklmmmnmompmqmvfrmsmtmumwf2nxfGkyfzfAfHkIk3n4n5nJkKkLkMkNkOkPkQk6nRkSkTkUkVkWk7nXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?ky ue7ovm8o9o8n9n!nhfwmxmymzmAmBm(f)f*fndodDdVd!o#o$o%o'o(l)l(oEdWd*lX 9lJoRo.dY H Z /dHbIbr 0 1 2 3 :d;d!dme4 5 yb+f,f-f.f/f:f;f=f?f@f[f]f^fCmDmEmFmGmHm8eImJmKmLm9e#n!e_f#e$e%e`f{f$n%n'n|f}f~fagbgcgdgeg(nfggghgigjgkg)nlgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgz ve)oMm*o+o*n+n,nifNmOmPmQmRmSmPgQgRgpdqdFdXd,o-o.o/o:o+l,l;oGdYd-l6 !lKoSo=d7 I 8 ?dJbKbs 9 ! # $ @d[d#dne% ' zbSgTgUgVgWgXgYgZg0g1g2g3g4gTmUmVmWmXmYm'eZm0m1m2m(e-n)e5g*e+e,e6g7g.n/n:n8g9g!g#g$g%g'g(g;n)g*g+g,g-g.g=n/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohA we=o3m?o@o?n@n[nQf4m5m6m7m8m9m@k[k]kBdCdRdZd[o]o^o_o`obmcm{oSd0ddm( |lLoTo]d) J * ^dLbMbt + , - . _d`d$dte/ : Ab^k_k`k{k|k}k~kalblcldlelfl!m#m$m%m'm(mBf)m*m+m,mCf]nDfglEfFfGfhlil^n_n`njlklllmlnlolplql{nrlsltlulvlwl|nxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0lB xe|o-m}o~o}n~naojf.m/m:m;m=m?mphqhrhrdsdHd1dapbpcpdpep.l/lfpId2d:l; #lMoUo{d= K ? |dNbObu @ [ ] ^ }d~d%doe_ ` BbshthuhvhwhxhyhzhAhBhChDhEh@m[m]m^m_m`m-e{m|m}m~m.ebo/eFh:e;e=eGhHhcodoeoIhJhKhLhMhNhOhPhfoQhRhShThUhVhgoWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hC yegpanhpiphoiojokfbncndnenfngn?h@h[htdudJd3djpkplpmpnp;l=lopKd4d?l{ $lNoVoae| L } bePbQbv ~ abbbcbcede'dpedbebCb]h^h_h`h{h|h}h~haibicidieihninjnknlnmn?ennonpnqn@eko[efi]e^e_egihilomonoiijikiliminioipiooqirisitiuivipowixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZiD zepprnqprpqorosolfsntnunvnwnxn0i1i2ivdwdLd5dsptpupvpwp@l[lxpMd6d]lfb%lOoWoeegbM hbfeRbSbw ibjbkblbgehe(dqembnbDb3i4i5i6i7i8i9i!i#i$i%i'i(iynznAnBnCnDn`eEnFnGnHn{eto|e)i}e~eaf*i+iuovowo,i-i.i/i:i;i=i?ixo@i[i]i^i_i`iyo{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjE AeypInzpApzoAoBomfJnKnLnMnNnOnAjBjCjxdydNd7dBpCpDpEpFp^l_lGpOd8d`lob'lPoXoiepbN qbjeTbUbx rbsbtbubkele)drevbwbEbDjEjFjGjHjIjJjKjLjMjNjOjPjPnQnRnSnTnUnbfVnWnXnYncfCodfQjefffgfRjSjDoEoFoTjUjVjWjXjYjZj0jGo1j2j3j4j5j6jHo7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jF Be
827 return new_object 2YoemZo0oZn0n1nPffmgmhmimjmkmqkrkskzdAdPdTd1o2o3o4o5o}l~l6oQdUdamO {lIoQo*dP G Q +dFbGbq R S T U ,d-d9dseV W xbtkukvkwkxkykzkAkBkCkDkEkFklmmmnmompmqmvfrmsmtmumwf2nxfGkyfzfAfHkIk3n4n5nJkKkLkMkNkOkPkQk6nRkSkTkUkVkWk7nXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?ky ue7ovm8o9o8n9n!nhfwmxmymzmAmBm(f)f*fndodDdVd!o#o$o%o'o(l)l(oEdWd*lX 9lJoRo.dY H Z /dHbIbr 0 1 2 3 :d;d!dme4 5 yb+f,f-f.f/f:f;f=f?f@f[f]f^fCmDmEmFmGmHm8eImJmKmLm9e#n!e_f#e$e%e`f{f$n%n'n|f}f~fagbgcgdgeg(nfggghgigjgkg)nlgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgz ve)oMm*o+o*n+n,nifNmOmPmQmRmSmPgQgRgpdqdFdXd,o-o.o/o:o+l,l;oGdYd-l6 !lKoSo=d7 I 8 ?dJbKbs 9 ! # $ @d[d#dne% ' zbSgTgUgVgWgXgYgZg0g1g2g3g4gTmUmVmWmXmYm'eZm0m1m2m(e-n)e5g*e+e,e6g7g.n/n:n8g9g!g#g$g%g'g(g;n)g*g+g,g-g.g=n/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohA we=o3m?o@o?n@n[nQf4m5m6m7m8m9m@k[k]kBdCdRdZd[o]o^o_o`obmcm{oSd0ddm( |lLoTo]d) J * ^dLbMbt + , - . _d`d$dte/ : Ab^k_k`k{k|k}k~kalblcldlelfl!m#m$m%m'm(mBf)m*m+m,mCf]nDfglEfFfGfhlil^n_n`njlklllmlnlolplql{nrlsltlulvlwl|nxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0lB xe|o-m}o~o}n~naojf.m/m:m;m=m?mphqhrhrdsdHd1dapbpcpdpep.l/lfpId2d:l; #lMoUo{d= K ? |dNbObu @ [ ] ^ }d~d%doe_ ` BbshthuhvhwhxhyhzhAhBhChDhEh@m[m]m^m_m`m-e{m|m}m~m.ebo/eFh:e;e=eGhHhcodoeoIhJhKhLhMhNhOhPhfoQhRhShThUhVhgoWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hC yegpanhpiphoiojokfbncndnenfngn?h@h[htdudJd3djpkplpmpnp;l=lopKd4d?l{ $lNoVoae| L } bePbQbv ~ abbbcbcede'dpedbebCb]h^h_h`h{h|h}h~haibicidieihninjnknlnmn?ennonpnqn@eko[efi]e^e_egihilomonoiijikiliminioipiooqirisitiuivipowixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZiD zepprnqprpqorosolfsntnunvnwnxn0i1i2ivdwdLd5dsptpupvpwp@l[lxpMd6d]lfb%lOoWoeegbM hbfeRbSbw ibjbkblbgehe(dqembnbDb3i4i5i6i7i8i9i!i#i$i%i'i(iynznAnBnCnDn`eEnFnGnHn{eto|e)i}e~eaf*i+iuovowo,i-i.i/i:i;i=i?ixo@i[i]i^i_i`iyo{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjE AeypInzpApzoAoBomfJnKnLnMnNnOnAjBjCjxdydNd7dBpCpDpEpFp^l_lGpOd8d`lob'lPoXoiepbN qbjeTbUbx rbsbtbubkele)drevbwbEbDjEjFjGjHjIjJjKjLjMjNjOjPjPnQnRnSnTnUnbfVnWnXnYncfCodfQjefffgfRjSjDoEoFoTjUjVjWjXjYjZj0jGo1j2j3j4j5j6jHo7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jF Be
829 def __init__(__pydantic_self__, **data: Any) -> None: 1daebfgch
830 # Uses something other than `self` the first arg to allow "self" as a
831 # settable attribute
833 # SQLAlchemy does very dark black magic and modifies the __init__ method in
834 # sqlalchemy.orm.instrumentation._generate_init()
835 # so, to make SQLAlchemy work, it's needed to explicitly call __init__ to
836 # trigger all the SQLAlchemy logic, it doesn't work using cls.__new__, setting
837 # attributes obj.__dict__, etc. The __init__ method has to be called. But
838 # there are cases where calling all the default logic is not ideal, e.g.
839 # when calling Model.model_validate(), as the validation is done outside
840 # of instance creation.
841 # At the same time, __init__ is what users would normally call, by creating
842 # a new instance, which should have validation and all the default logic.
843 # So, to be able to set up the internal SQLAlchemy logic alone without
844 # executing the rest, and support things like Model.model_validate(), we
845 # use a contextvar to know if we should execute everything.
846 if finish_init.get(): 2YoemZo0oZn0n1nPffmgmhmimjmkmqkrkskPd1o2o3o4o5o}l~l6oQdamO {lIo*dP G Q +dFbGbq R S T U ,d-d9dseV W xbtkukvkwkxkykzkAkBkCkDkEkFklmmmnmompmqmvfrmsmtmumwf2nxfGkyfzfAfHkIk3n4n5nJkKkLkMkNkOkPkQk6nRkSkTkUkVkWk7nXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?ky 7ovm8o9o8n9n!nhfwmxmymzmAmBm(f)f*fDd!o#o$o%o'o(l)l(oEd*lX 9lJo.dY H Z /dHbIbr 0 1 2 3 :d;d!dme4 5 yb+f,f-f.f/f:f;f=f?f@f[f]f^fCmDmEmFmGmHm8eImJmKmLm9e#n!e_f#e$e%e`f{f$n%n'n|f}f~fagbgcgdgeg(nfggghgigjgkg)nlgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgz )oMm*o+o*n+n,nifNmOmPmQmRmSmPgQgRgFd,o-o.o/o:o+l,l;oGd-l6 !lKo=d7 I 8 ?dJbKbs 9 ! # $ @d[d#dne% ' zbSgTgUgVgWgXgYgZg0g1g2g3g4gTmUmVmWmXmYm'eZm0m1m2m(e-n)e5g*e+e,e6g7g.n/n:n8g9g!g#g$g%g'g(g;n)g*g+g,g-g.g=n/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohA =o3m?o@o?n@n[nQf4m5m6m7m8m9m@k[k]kRd[o]o^o_o`obmcm{oSddm( |lLo]d) J * ^dLbMbt + , - . _d`d$dte/ : Ab^k_k`k{k|k}k~kalblcldlelfl!m#m$m%m'm(mBf)m*m+m,mCf]nDfglEfFfGfhlil^n_n`njlklllmlnlolplql{nrlsltlulvlwl|nxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0lB |o-m}o~o}n~naojf.m/m:m;m=m?mphqhrhHdapbpcpdpep.l/lfpId:l; #lMo{d= K ? |dNbObu @ [ ] ^ }d~d%doe_ ` BbshthuhvhwhxhyhzhAhBhChDhEh@m[m]m^m_m`m-e{m|m}m~m.ebo/eFh:e;e=eGhHhcodoeoIhJhKhLhMhNhOhPhfoQhRhShThUhVhgoWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hC gpanhpiphoiojokfbncndnenfngn?h@h[hJdjpkplpmpnp;l=lopKd?l{ $lNoae| L } bePbQbv ~ abbbcbcede'dpedbebCb]h^h_h`h{h|h}h~haibicidieihninjnknlnmn?ennonpnqn@eko[efi]e^e_egihilomonoiijikiliminioipiooqirisitiuivipowixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZiD pprnqprpqorosolfsntnunvnwnxn0i1i2iLdsptpupvpwp@l[lxpMd]lfb%lOoeegbM hbfeRbSbw ibjbkblbgehe(dqembnbDb3i4i5i6i7i8i9i!i#i$i%i'i(iynznAnBnCnDn`eEnFnGnHn{eto|e)i}e~eaf*i+iuovowo,i-i.i/i:i;i=i?ixo@i[i]i^i_i`iyo{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjE ypInzpApzoAoBomfJnKnLnMnNnOnAjBjCjNdBpCpDpEpFp^l_lGpOd`lob'lPoiepbN qbjeTbUbx rbsbtbubkele)drevbwbEbDjEjFjGjHjIjJjKjLjMjNjOjPjPnQnRnSnTnUnbfVnWnXnYncfCodfQjefffgfRjSjDoEoFoTjUjVjWjXjYjZj0jGo1j2j3j4j5j6jHo7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jF
847 sqlmodel_init(self=__pydantic_self__, data=data) 2YoemZo0oZn0n1nPffmgmhmimjmkmqkrkskPd1o2o3o4o5o}l~l6oQdamO {lIo*dP G Q +dFbGbq R S T U ,d-d9dseV W xbtkukvkwkxkykzkAkBkCkDkEkFklmmmnmompmqmvfrmsmtmumwf2nxfGkyfzfAfHkIk3n4n5nJkKkLkMkNkOkPkQk6nRkSkTkUkVkWk7nXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?ky 7ovm8o9o8n9n!nhfwmxmymzmAmBm(f)f*fDd!o#o$o%o'o(l)l(oEd*lX 9lJo.dY H Z /dHbIbr 0 1 2 3 :d;d!dme4 5 yb+f,f-f.f/f:f;f=f?f@f[f]f^fCmDmEmFmGmHm8eImJmKmLm9e#n!e_f#e$e%e`f{f$n%n'n|f}f~fagbgcgdgeg(nfggghgigjgkg)nlgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgz )oMm*o+o*n+n,nifNmOmPmQmRmSmPgQgRgFd,o-o.o/o:o+l,l;oGd-l6 !lKo=d7 I 8 ?dJbKbs 9 ! # $ @d[d#dne% ' zbSgTgUgVgWgXgYgZg0g1g2g3g4gTmUmVmWmXmYm'eZm0m1m2m(e-n)e5g*e+e,e6g7g.n/n:n8g9g!g#g$g%g'g(g;n)g*g+g,g-g.g=n/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohA =o3m?o@o?n@n[nQf4m5m6m7m8m9m@k[k]kRd[o]o^o_o`obmcm{oSddm( |lLo]d) J * ^dLbMbt + , - . _d`d$dte/ : Ab^k_k`k{k|k}k~kalblcldlelfl!m#m$m%m'm(mBf)m*m+m,mCf]nDfglEfFfGfhlil^n_n`njlklllmlnlolplql{nrlsltlulvlwl|nxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0lB |o-m}o~o}n~naojf.m/m:m;m=m?mphqhrhHdapbpcpdpep.l/lfpId:l; #lMo{d= K ? |dNbObu @ [ ] ^ }d~d%doe_ ` BbshthuhvhwhxhyhzhAhBhChDhEh@m[m]m^m_m`m-e{m|m}m~m.ebo/eFh:e;e=eGhHhcodoeoIhJhKhLhMhNhOhPhfoQhRhShThUhVhgoWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hC gpanhpiphoiojokfbncndnenfngn?h@h[hJdjpkplpmpnp;l=lopKd?l{ $lNoae| L } bePbQbv ~ abbbcbcede'dpedbebCb]h^h_h`h{h|h}h~haibicidieihninjnknlnmn?ennonpnqn@eko[efi]e^e_egihilomonoiijikiliminioipiooqirisitiuivipowixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZiD pprnqprpqorosolfsntnunvnwnxn0i1i2iLdsptpupvpwp@l[lxpMd]lfb%lOoeegbM hbfeRbSbw ibjbkblbgehe(dqembnbDb3i4i5i6i7i8i9i!i#i$i%i'i(iynznAnBnCnDn`eEnFnGnHn{eto|e)i}e~eaf*i+iuovowo,i-i.i/i:i;i=i?ixo@i[i]i^i_i`iyo{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjE ypInzpApzoAoBomfJnKnLnMnNnOnAjBjCjNdBpCpDpEpFp^l_lGpOd`lob'lPoiepbN qbjeTbUbx rbsbtbubkele)drevbwbEbDjEjFjGjHjIjJjKjLjMjNjOjPjPnQnRnSnTnUnbfVnWnXnYncfCodfQjefffgfRjSjDoEoFoTjUjVjWjXjYjZj0jGo1j2j3j4j5j6jHo7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jF
849 def __setattr__(self, name: str, value: Any) -> None: 1daebfgch
850 if name in {"_sa_instance_state"}: 2emZn0n1nPffmgmhmimjmkmqkrkskzdAdTdUdO IoQoP G Q FbGbq R S T U V W xbtkukvkwkxkykzkAkBkCkDkEkFklmmmnmompmqmvfrmsmtmumwf2nxfGkyfzfAfHkIk3n4n5nJkKkLkMkNkOkPkQk6nRkSkTkUkVkWk7nXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?ky uevm8n9n!nhfwmxmymzmAmBm(f)f*fndodVdWdX JoRoY H Z HbIbr 0 1 2 3 4 5 yb+f,f-f.f/f:f;f=f?f@f[f]f^fCmDmEmFmGmHm8eImJmKmLm9e#n!e_f#e$e%e`f{f$n%n'n|f}f~fagbgcgdgeg(nfggghgigjgkg)nlgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgz veMm*n+n,nifNmOmPmQmRmSmPgQgRgpdqdXdYd6 KoSo7 I 8 JbKbs 9 ! # $ % ' zbSgTgUgVgWgXgYgZg0g1g2g3g4gTmUmVmWmXmYm'eZm0m1m2m(e-n)e5g*e+e,e6g7g.n/n:n8g9g!g#g$g%g'g(g;n)g*g+g,g-g.g=n/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohA we3m?n@n[nQf4m5m6m7m8m9m@k[k]kBdCdZd0d( LoTo) J * LbMbt + , - . / : Ab^k_k`k{k|k}k~kalblcldlelfl!m#m$m%m'm(mBf)m*m+m,mCf]nDfglEfFfGfhlil^n_n`njlklllmlnlolplql{nrlsltlulvlwl|nxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0lB xe-m}n~naojf.m/m:m;m=m?mphqhrhrdsd1d2d; MoUo= K ? NbObu @ [ ] ^ _ ` BbshthuhvhwhxhyhzhAhBhChDhEh@m[m]m^m_m`m-e{m|m}m~m.ebo/eFh:e;e=eGhHhcodoeoIhJhKhLhMhNhOhPhfoQhRhShThUhVhgoWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hC yeanhoiojokfbncndnenfngn?h@h[htdud3d4d{ NoVo| L } PbQbv ~ abbbcbdbebCb]h^h_h`h{h|h}h~haibicidieihninjnknlnmn?ennonpnqn@eko[efi]e^e_egihilomonoiijikiliminioipiooqirisitiuivipowixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZiD zernqorosolfsntnunvnwnxn0i1i2ivdwd5d6dfbOoWogbM hbRbSbw ibjbkblbmbnbDb3i4i5i6i7i8i9i!i#i$i%i'i(iynznAnBnCnDn`eEnFnGnHn{eto|e)i}e~eaf*i+iuovowo,i-i.i/i:i;i=i?ixo@i[i]i^i_i`iyo{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjE AeInzoAoBomfJnKnLnMnNnOnAjBjCjxdyd7d8dobPoXopbN qbTbUbx rbsbtbubvbwbEbDjEjFjGjHjIjJjKjLjMjNjOjPjPnQnRnSnTnUnbfVnWnXnYncfCodfQjefffgfRjSjDoEoFoTjUjVjWjXjYjZj0jGo1j2j3j4j5j6jHo7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jF Be
851 self.__dict__[name] = value 2emZn0n1nPffmgmhmimjmkmqkrkskO P G Q FbGbq R S T U V W xbtkukvkwkxkykzkAkBkCkDkEkFklmmmnmompmqmvfrmsmtmumwf2nxfGkyfzfAfHkIk3n4n5nJkKkLkMkNkOkPkQk6nRkSkTkUkVkWk7nXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?ky vm8n9n!nhfwmxmymzmAmBm(f)f*fX Y H Z HbIbr 0 1 2 3 4 5 yb+f,f-f.f/f:f;f=f?f@f[f]f^fCmDmEmFmGmHm8eImJmKmLm9e#n!e_f#e$e%e`f{f$n%n'n|f}f~fagbgcgdgeg(nfggghgigjgkg)nlgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgz Mm*n+n,nifNmOmPmQmRmSmPgQgRg6 7 I 8 JbKbs 9 ! # $ % ' zbSgTgUgVgWgXgYgZg0g1g2g3g4gTmUmVmWmXmYm'eZm0m1m2m(e-n)e5g*e+e,e6g7g.n/n:n8g9g!g#g$g%g'g(g;n)g*g+g,g-g.g=n/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohA 3m?n@n[nQf4m5m6m7m8m9m@k[k]k( ) J * LbMbt + , - . / : Ab^k_k`k{k|k}k~kalblcldlelfl!m#m$m%m'm(mBf)m*m+m,mCf]nDfglEfFfGfhlil^n_n`njlklllmlnlolplql{nrlsltlulvlwl|nxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0lB -m}n~naojf.m/m:m;m=m?mphqhrh; = K ? NbObu @ [ ] ^ _ ` BbshthuhvhwhxhyhzhAhBhChDhEh@m[m]m^m_m`m-e{m|m}m~m.ebo/eFh:e;e=eGhHhcodoeoIhJhKhLhMhNhOhPhfoQhRhShThUhVhgoWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hC anhoiojokfbncndnenfngn?h@h[h{ | L } PbQbv ~ abbbcbdbebCb]h^h_h`h{h|h}h~haibicidieihninjnknlnmn?ennonpnqn@eko[efi]e^e_egihilomonoiijikiliminioipiooqirisitiuivipowixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZiD rnqorosolfsntnunvnwnxn0i1i2ifbgbM hbRbSbw ibjbkblbmbnbDb3i4i5i6i7i8i9i!i#i$i%i'i(iynznAnBnCnDn`eEnFnGnHn{eto|e)i}e~eaf*i+iuovowo,i-i.i/i:i;i=i?ixo@i[i]i^i_i`iyo{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjE InzoAoBomfJnKnLnMnNnOnAjBjCjobpbN qbTbUbx rbsbtbubvbwbEbDjEjFjGjHjIjJjKjLjMjNjOjPjPnQnRnSnTnUnbfVnWnXnYncfCodfQjefffgfRjSjDoEoFoTjUjVjWjXjYjZj0jGo1j2j3j4j5j6jHo7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jF
852 return 2emZn0n1nPffmgmhmimjmkmqkrkskO P G Q FbGbq R S T U V W xbtkukvkwkxkykzkAkBkCkDkEkFklmmmnmompmqmvfrmsmtmumwf2nxfGkyfzfAfHkIk3n4n5nJkKkLkMkNkOkPkQk6nRkSkTkUkVkWk7nXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?ky vm8n9n!nhfwmxmymzmAmBm(f)f*fX Y H Z HbIbr 0 1 2 3 4 5 yb+f,f-f.f/f:f;f=f?f@f[f]f^fCmDmEmFmGmHm8eImJmKmLm9e#n!e_f#e$e%e`f{f$n%n'n|f}f~fagbgcgdgeg(nfggghgigjgkg)nlgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgz Mm*n+n,nifNmOmPmQmRmSmPgQgRg6 7 I 8 JbKbs 9 ! # $ % ' zbSgTgUgVgWgXgYgZg0g1g2g3g4gTmUmVmWmXmYm'eZm0m1m2m(e-n)e5g*e+e,e6g7g.n/n:n8g9g!g#g$g%g'g(g;n)g*g+g,g-g.g=n/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohA 3m?n@n[nQf4m5m6m7m8m9m@k[k]k( ) J * LbMbt + , - . / : Ab^k_k`k{k|k}k~kalblcldlelfl!m#m$m%m'm(mBf)m*m+m,mCf]nDfglEfFfGfhlil^n_n`njlklllmlnlolplql{nrlsltlulvlwl|nxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0lB -m}n~naojf.m/m:m;m=m?mphqhrh; = K ? NbObu @ [ ] ^ _ ` BbshthuhvhwhxhyhzhAhBhChDhEh@m[m]m^m_m`m-e{m|m}m~m.ebo/eFh:e;e=eGhHhcodoeoIhJhKhLhMhNhOhPhfoQhRhShThUhVhgoWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hC anhoiojokfbncndnenfngn?h@h[h{ | L } PbQbv ~ abbbcbdbebCb]h^h_h`h{h|h}h~haibicidieihninjnknlnmn?ennonpnqn@eko[efi]e^e_egihilomonoiijikiliminioipiooqirisitiuivipowixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZiD rnqorosolfsntnunvnwnxn0i1i2ifbgbM hbRbSbw ibjbkblbmbnbDb3i4i5i6i7i8i9i!i#i$i%i'i(iynznAnBnCnDn`eEnFnGnHn{eto|e)i}e~eaf*i+iuovowo,i-i.i/i:i;i=i?ixo@i[i]i^i_i`iyo{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjE InzoAoBomfJnKnLnMnNnOnAjBjCjobpbN qbTbUbx rbsbtbubvbwbEbDjEjFjGjHjIjJjKjLjMjNjOjPjPnQnRnSnTnUnbfVnWnXnYncfCodfQjefffgfRjSjDoEoFoTjUjVjWjXjYjZj0jGo1j2j3j4j5j6jHo7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jF
853 else:
854 # Set in SQLAlchemy, before Pydantic to trigger events and updates
855 if is_table_model_class(self.__class__) and is_instrumented(self, name): 2emZn0n1nPffmgmhmimjmkmqkrkskzdAdTdUdO IoQoP G Q FbGbq R S T U V W xbtkukvkwkxkykzkAkBkCkDkEkFklmmmnmompmqmvfrmsmtmumwf2nxfGkyfzfAfHkIk3n4n5nJkKkLkMkNkOkPkQk6nRkSkTkUkVkWk7nXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?ky uevm8n9n!nhfwmxmymzmAmBm(f)f*fndodVdWdX JoRoY H Z HbIbr 0 1 2 3 4 5 yb+f,f-f.f/f:f;f=f?f@f[f]f^fCmDmEmFmGmHm8eImJmKmLm9e#n!e_f#e$e%e`f{f$n%n'n|f}f~fagbgcgdgeg(nfggghgigjgkg)nlgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgz veMm*n+n,nifNmOmPmQmRmSmPgQgRgpdqdXdYd6 KoSo7 I 8 JbKbs 9 ! # $ % ' zbSgTgUgVgWgXgYgZg0g1g2g3g4gTmUmVmWmXmYm'eZm0m1m2m(e-n)e5g*e+e,e6g7g.n/n:n8g9g!g#g$g%g'g(g;n)g*g+g,g-g.g=n/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohA we3m?n@n[nQf4m5m6m7m8m9m@k[k]kBdCdZd0d( LoTo) J * LbMbt + , - . / : Ab^k_k`k{k|k}k~kalblcldlelfl!m#m$m%m'm(mBf)m*m+m,mCf]nDfglEfFfGfhlil^n_n`njlklllmlnlolplql{nrlsltlulvlwl|nxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0lB xe-m}n~naojf.m/m:m;m=m?mphqhrhrdsd1d2d; MoUo= K ? NbObu @ [ ] ^ _ ` BbshthuhvhwhxhyhzhAhBhChDhEh@m[m]m^m_m`m-e{m|m}m~m.ebo/eFh:e;e=eGhHhcodoeoIhJhKhLhMhNhOhPhfoQhRhShThUhVhgoWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hC yeanhoiojokfbncndnenfngn?h@h[htdud3d4d{ NoVo| L } PbQbv ~ abbbcbdbebCb]h^h_h`h{h|h}h~haibicidieihninjnknlnmn?ennonpnqn@eko[efi]e^e_egihilomonoiijikiliminioipiooqirisitiuivipowixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZiD zernqorosolfsntnunvnwnxn0i1i2ivdwd5d6dfbOoWogbM hbRbSbw ibjbkblbmbnbDb3i4i5i6i7i8i9i!i#i$i%i'i(iynznAnBnCnDn`eEnFnGnHn{eto|e)i}e~eaf*i+iuovowo,i-i.i/i:i;i=i?ixo@i[i]i^i_i`iyo{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjE AeInzoAoBomfJnKnLnMnNnOnAjBjCjxdyd7d8dobPoXopbN qbTbUbx rbsbtbubvbwbEbDjEjFjGjHjIjJjKjLjMjNjOjPjPnQnRnSnTnUnbfVnWnXnYncfCodfQjefffgfRjSjDoEoFoTjUjVjWjXjYjZj0jGo1j2j3j4j5j6jHo7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jF Be
856 set_attribute(self, name, value) 2emZn0n1nPffmgmhmimjmkmqkrkskO P G Q FbGbq R S T U V W xbtkukvkwkxkykzkAkBkCkDkEkFklmmmnmompmqmvfrmsmtmumwf2nxfGkyfzfAfHkIk3n4n5nJkKkLkMkNkOkPkQk6nRkSkTkUkVkWk7nXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?ky vm8n9n!nhfwmxmymzmAmBm(f)f*fX Y H Z HbIbr 0 1 2 3 4 5 yb+f,f-f.f/f:f;f=f?f@f[f]f^fCmDmEmFmGmHm8eImJmKmLm9e#n!e_f#e$e%e`f{f$n%n'n|f}f~fagbgcgdgeg(nfggghgigjgkg)nlgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgz Mm*n+n,nifNmOmPmQmRmSmPgQgRg6 7 I 8 JbKbs 9 ! # $ % ' zbSgTgUgVgWgXgYgZg0g1g2g3g4gTmUmVmWmXmYm'eZm0m1m2m(e-n)e5g*e+e,e6g7g.n/n:n8g9g!g#g$g%g'g(g;n)g*g+g,g-g.g=n/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohA 3m?n@n[nQf4m5m6m7m8m9m@k[k]k( ) J * LbMbt + , - . / : Ab^k_k`k{k|k}k~kalblcldlelfl!m#m$m%m'm(mBf)m*m+m,mCf]nDfglEfFfGfhlil^n_n`njlklllmlnlolplql{nrlsltlulvlwl|nxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0lB -m}n~naojf.m/m:m;m=m?mphqhrh; = K ? NbObu @ [ ] ^ _ ` BbshthuhvhwhxhyhzhAhBhChDhEh@m[m]m^m_m`m-e{m|m}m~m.ebo/eFh:e;e=eGhHhcodoeoIhJhKhLhMhNhOhPhfoQhRhShThUhVhgoWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hC anhoiojokfbncndnenfngn?h@h[h{ | L } PbQbv ~ abbbcbdbebCb]h^h_h`h{h|h}h~haibicidieihninjnknlnmn?ennonpnqn@eko[efi]e^e_egihilomonoiijikiliminioipiooqirisitiuivipowixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZiD rnqorosolfsntnunvnwnxn0i1i2ifbgbM hbRbSbw ibjbkblbmbnbDb3i4i5i6i7i8i9i!i#i$i%i'i(iynznAnBnCnDn`eEnFnGnHn{eto|e)i}e~eaf*i+iuovowo,i-i.i/i:i;i=i?ixo@i[i]i^i_i`iyo{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjE InzoAoBomfJnKnLnMnNnOnAjBjCjobpbN qbTbUbx rbsbtbubvbwbEbDjEjFjGjHjIjJjKjLjMjNjOjPjPnQnRnSnTnUnbfVnWnXnYncfCodfQjefffgfRjSjDoEoFoTjUjVjWjXjYjZj0jGo1j2j3j4j5j6jHo7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jF
857 # Set in Pydantic model to trigger possible validation changes, only for
858 # non relationship values
859 if name not in self.__sqlmodel_relationships__: 2emZn0n1nPffmgmhmimjmkmqkrkskzdAdTdUdO IoQoP G Q FbGbq R S T U V W xbtkukvkwkxkykzkAkBkCkDkEkFklmmmnmompmqmvfrmsmtmumwf2nxfGkyfzfAfHkIk3n4n5nJkKkLkMkNkOkPkQk6nRkSkTkUkVkWk7nXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?ky uevm8n9n!nhfwmxmymzmAmBm(f)f*fndodVdWdX JoRoY H Z HbIbr 0 1 2 3 4 5 yb+f,f-f.f/f:f;f=f?f@f[f]f^fCmDmEmFmGmHm8eImJmKmLm9e#n!e_f#e$e%e`f{f$n%n'n|f}f~fagbgcgdgeg(nfggghgigjgkg)nlgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgz veMm*n+n,nifNmOmPmQmRmSmPgQgRgpdqdXdYd6 KoSo7 I 8 JbKbs 9 ! # $ % ' zbSgTgUgVgWgXgYgZg0g1g2g3g4gTmUmVmWmXmYm'eZm0m1m2m(e-n)e5g*e+e,e6g7g.n/n:n8g9g!g#g$g%g'g(g;n)g*g+g,g-g.g=n/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohA we3m?n@n[nQf4m5m6m7m8m9m@k[k]kBdCdZd0d( LoTo) J * LbMbt + , - . / : Ab^k_k`k{k|k}k~kalblcldlelfl!m#m$m%m'm(mBf)m*m+m,mCf]nDfglEfFfGfhlil^n_n`njlklllmlnlolplql{nrlsltlulvlwl|nxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0lB xe-m}n~naojf.m/m:m;m=m?mphqhrhrdsd1d2d; MoUo= K ? NbObu @ [ ] ^ _ ` BbshthuhvhwhxhyhzhAhBhChDhEh@m[m]m^m_m`m-e{m|m}m~m.ebo/eFh:e;e=eGhHhcodoeoIhJhKhLhMhNhOhPhfoQhRhShThUhVhgoWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hC yeanhoiojokfbncndnenfngn?h@h[htdud3d4d{ NoVo| L } PbQbv ~ abbbcbdbebCb]h^h_h`h{h|h}h~haibicidieihninjnknlnmn?ennonpnqn@eko[efi]e^e_egihilomonoiijikiliminioipiooqirisitiuivipowixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZiD zernqorosolfsntnunvnwnxn0i1i2ivdwd5d6dfbOoWogbM hbRbSbw ibjbkblbmbnbDb3i4i5i6i7i8i9i!i#i$i%i'i(iynznAnBnCnDn`eEnFnGnHn{eto|e)i}e~eaf*i+iuovowo,i-i.i/i:i;i=i?ixo@i[i]i^i_i`iyo{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjE AeInzoAoBomfJnKnLnMnNnOnAjBjCjxdyd7d8dobPoXopbN qbTbUbx rbsbtbubvbwbEbDjEjFjGjHjIjJjKjLjMjNjOjPjPnQnRnSnTnUnbfVnWnXnYncfCodfQjefffgfRjSjDoEoFoTjUjVjWjXjYjZj0jGo1j2j3j4j5j6jHo7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jF Be
860 super().__setattr__(name, value) 2emZn0n1nPffmgmhmimjmkmqkrkskzdAdTdUdO IoQoP G Q FbGbq R S T U V W xbtkukvkwkxkykzkAkBkCkDkEkFklmmmnmompmqmvfrmsmtmumwf2nxfGkyfzfAfHkIk3n4n5nJkKkLkMkNkOkPkQk6nRkSkTkUkVkWk7nXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?ky uevm8n9n!nhfwmxmymzmAmBm(f)f*fndodVdWdX JoRoY H Z HbIbr 0 1 2 3 4 5 yb+f,f-f.f/f:f;f=f?f@f[f]f^fCmDmEmFmGmHm8eImJmKmLm9e#n!e_f#e$e%e`f{f$n%n'n|f}f~fagbgcgdgeg(nfggghgigjgkg)nlgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgz veMm*n+n,nifNmOmPmQmRmSmPgQgRgpdqdXdYd6 KoSo7 I 8 JbKbs 9 ! # $ % ' zbSgTgUgVgWgXgYgZg0g1g2g3g4gTmUmVmWmXmYm'eZm0m1m2m(e-n)e5g*e+e,e6g7g.n/n:n8g9g!g#g$g%g'g(g;n)g*g+g,g-g.g=n/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohA we3m?n@n[nQf4m5m6m7m8m9m@k[k]kBdCdZd0d( LoTo) J * LbMbt + , - . / : Ab^k_k`k{k|k}k~kalblcldlelfl!m#m$m%m'm(mBf)m*m+m,mCf]nDfglEfFfGfhlil^n_n`njlklllmlnlolplql{nrlsltlulvlwl|nxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0lB xe-m}n~naojf.m/m:m;m=m?mphqhrhrdsd1d2d; MoUo= K ? NbObu @ [ ] ^ _ ` BbshthuhvhwhxhyhzhAhBhChDhEh@m[m]m^m_m`m-e{m|m}m~m.ebo/eFh:e;e=eGhHhcodoeoIhJhKhLhMhNhOhPhfoQhRhShThUhVhgoWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hC yeanhoiojokfbncndnenfngn?h@h[htdud3d4d{ NoVo| L } PbQbv ~ abbbcbdbebCb]h^h_h`h{h|h}h~haibicidieihninjnknlnmn?ennonpnqn@eko[efi]e^e_egihilomonoiijikiliminioipiooqirisitiuivipowixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZiD zernqorosolfsntnunvnwnxn0i1i2ivdwd5d6dfbOoWogbM hbRbSbw ibjbkblbmbnbDb3i4i5i6i7i8i9i!i#i$i%i'i(iynznAnBnCnDn`eEnFnGnHn{eto|e)i}e~eaf*i+iuovowo,i-i.i/i:i;i=i?ixo@i[i]i^i_i`iyo{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjE AeInzoAoBomfJnKnLnMnNnOnAjBjCjxdyd7d8dobPoXopbN qbTbUbx rbsbtbubvbwbEbDjEjFjGjHjIjJjKjLjMjNjOjPjPnQnRnSnTnUnbfVnWnXnYncfCodfQjefffgfRjSjDoEoFoTjUjVjWjXjYjZj0jGo1j2j3j4j5j6jHo7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jF Be
862 def __repr_args__(self) -> Sequence[tuple[str | None, Any]]: 1daebfgch
863 # Don't show SQLAlchemy private attributes
864 return [ 29d!d#d$d%d'd(d)d
865 (k, v)
866 for k, v in super().__repr_args__()
867 if not (isinstance(k, str) and k.startswith("_sa_"))
868 ]
870 @classmethod 1daebfgch
871 def model_validate( # ty: ignore[invalid-method-override] 1daebfgch
872 cls: type[_TSQLModel],
873 obj: Any,
874 *,
875 strict: bool | None = None,
876 from_attributes: bool | None = None,
877 context: builtins.dict[str, Any] | None = None,
878 update: builtins.dict[str, Any] | None = None,
879 ) -> _TSQLModel:
880 return sqlmodel_validate( 2emfmgmhmimjmkmzdAdTdUdIoQolmmmnmompmqmvfrmsmtmumwfxfyfzfAfuevmwmxmymzmAmBmndodVdWdJoRoCmDmEmFmGmHm8eImJmKmLm9e!e#e$e%eveMmNmOmPmQmRmSmpdqdXdYdKoSoTmUmVmWmXmYm'eZm0m1m2m(e)e*e+e,ewe3m4m5m6m7m8m9mBdCdZd0dLoTo!m#m$m%m'm(mBf)m*m+m,mCfDfEfFfGfxe-m.m/m:m;m=m?mrdsd1d2dMoUo@m[m]m^m_m`m-e{m|m}m~m.e/e:e;e=eyeanbncndnenfngntdud3d4dNoVohninjnknlnmn?ennonpnqn@e[e]e^e_ezernsntnunvnwnxnvdwd5d6dOoWoynznAnBnCnDn`eEnFnGnHn{e|e}e~eafAeInJnKnLnMnNnOnxdyd7d8dPoXoPnQnRnSnTnUnbfVnWnXnYncfdfefffgfBe
881 cls=cls,
882 obj=obj,
883 strict=strict,
884 from_attributes=from_attributes,
885 context=context,
886 update=update,
887 )
889 def model_dump( 1daebfgch
890 self,
891 *,
892 mode: Literal["json", "python"] | str = "python",
893 include: IncEx | None = None,
894 exclude: IncEx | None = None,
895 context: Any | None = None, # v2.7
896 by_alias: bool | None = None,
897 exclude_unset: bool = False,
898 exclude_defaults: bool = False,
899 exclude_none: bool = False,
900 exclude_computed_fields: bool = False, # v2.12
901 round_trip: bool = False,
902 warnings: bool | Literal["none", "warn", "error"] = True,
903 fallback: Callable[[Any], Any] | None = None, # v2.11
904 serialize_as_any: bool = False, # v2.7
905 polymorphic_serialization: bool | None = None, # v2.13
906 ) -> builtins.dict[str, Any]:
907 if PYDANTIC_MINOR_VERSION < (2, 11): 2PfqkrkskzdAdPd}l~lQdam{lsetkukvkwkxkykzkAkBkCkDkEkFkvfwfxfGkyfzfAfHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?khf(f)f*fndodDd(l)lEd*l9lme+f,f-f.f/f:f;f=f?f@f[f]f^f8e9e!e_f#e$e%e`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgifPgQgRgpdqdFd+l,lGd-l!lneSgTgUgVgWgXgYgZg0g1g2g3g4g'e(e)e5g*e+e,e6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohQf@k[k]kBdCdRdbmcmSddm|lte^k_k`k{k|k}k~kalblcldlelflBfCfDfglEfFfGfhliljlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0ljfphqhrhrdsdHd.l/lId:l#loeshthuhvhwhxhyhzhAhBhChDhEh-e.e/eFh:e;e=eGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hkf?h@h[htdudJd;l=lKd?l$lpe]h^h_h`h{h|h}h~haibicidiei?e@e[efi]e^e_egihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZilf0i1i2ivdwdLd@l[lMd]l%lqe3i4i5i6i7i8i9i!i#i$i%i'i(i`e{e|e)i}e~eaf*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjmfAjBjCjxdydNd^l_lOd`l'lreDjEjFjGjHjIjJjKjLjMjNjOjPjbfcfdfQjefffgfRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~j
908 by_alias = by_alias or False
909 extra_kwargs: dict[str, Any] = {} 2PfqkrkskzdAdPd}l~lQdam{lsetkukvkwkxkykzkAkBkCkDkEkFkvfwfxfGkyfzfAfHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?khf(f)f*fndodDd(l)lEd*l9lme+f,f-f.f/f:f;f=f?f@f[f]f^f8e9e!e_f#e$e%e`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgifPgQgRgpdqdFd+l,lGd-l!lneSgTgUgVgWgXgYgZg0g1g2g3g4g'e(e)e5g*e+e,e6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohQf@k[k]kBdCdRdbmcmSddm|lte^k_k`k{k|k}k~kalblcldlelflBfCfDfglEfFfGfhliljlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0ljfphqhrhrdsdHd.l/lId:l#loeshthuhvhwhxhyhzhAhBhChDhEh-e.e/eFh:e;e=eGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hkf?h@h[htdudJd;l=lKd?l$lpe]h^h_h`h{h|h}h~haibicidiei?e@e[efi]e^e_egihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZilf0i1i2ivdwdLd@l[lMd]l%lqe3i4i5i6i7i8i9i!i#i$i%i'i(i`e{e|e)i}e~eaf*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjmfAjBjCjxdydNd^l_lOd`l'lreDjEjFjGjHjIjJjKjLjMjNjOjPjbfcfdfQjefffgfRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~j
910 extra_kwargs["context"] = context 2PfqkrkskzdAdPd}l~lQdam{lsetkukvkwkxkykzkAkBkCkDkEkFkvfwfxfGkyfzfAfHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?khf(f)f*fndodDd(l)lEd*l9lme+f,f-f.f/f:f;f=f?f@f[f]f^f8e9e!e_f#e$e%e`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgifPgQgRgpdqdFd+l,lGd-l!lneSgTgUgVgWgXgYgZg0g1g2g3g4g'e(e)e5g*e+e,e6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohQf@k[k]kBdCdRdbmcmSddm|lte^k_k`k{k|k}k~kalblcldlelflBfCfDfglEfFfGfhliljlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0ljfphqhrhrdsdHd.l/lId:l#loeshthuhvhwhxhyhzhAhBhChDhEh-e.e/eFh:e;e=eGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hkf?h@h[htdudJd;l=lKd?l$lpe]h^h_h`h{h|h}h~haibicidiei?e@e[efi]e^e_egihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZilf0i1i2ivdwdLd@l[lMd]l%lqe3i4i5i6i7i8i9i!i#i$i%i'i(i`e{e|e)i}e~eaf*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjmfAjBjCjxdydNd^l_lOd`l'lreDjEjFjGjHjIjJjKjLjMjNjOjPjbfcfdfQjefffgfRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~j
911 extra_kwargs["serialize_as_any"] = serialize_as_any 2PfqkrkskzdAdPd}l~lQdam{lsetkukvkwkxkykzkAkBkCkDkEkFkvfwfxfGkyfzfAfHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?khf(f)f*fndodDd(l)lEd*l9lme+f,f-f.f/f:f;f=f?f@f[f]f^f8e9e!e_f#e$e%e`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgifPgQgRgpdqdFd+l,lGd-l!lneSgTgUgVgWgXgYgZg0g1g2g3g4g'e(e)e5g*e+e,e6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohQf@k[k]kBdCdRdbmcmSddm|lte^k_k`k{k|k}k~kalblcldlelflBfCfDfglEfFfGfhliljlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0ljfphqhrhrdsdHd.l/lId:l#loeshthuhvhwhxhyhzhAhBhChDhEh-e.e/eFh:e;e=eGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hkf?h@h[htdudJd;l=lKd?l$lpe]h^h_h`h{h|h}h~haibicidiei?e@e[efi]e^e_egihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZilf0i1i2ivdwdLd@l[lMd]l%lqe3i4i5i6i7i8i9i!i#i$i%i'i(i`e{e|e)i}e~eaf*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjmfAjBjCjxdydNd^l_lOd`l'lreDjEjFjGjHjIjJjKjLjMjNjOjPjbfcfdfQjefffgfRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~j
912 if PYDANTIC_MINOR_VERSION >= (2, 11): 2PfqkrkskzdAdPd}l~lQdam{lsetkukvkwkxkykzkAkBkCkDkEkFkvfwfxfGkyfzfAfHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?khf(f)f*fndodDd(l)lEd*l9lme+f,f-f.f/f:f;f=f?f@f[f]f^f8e9e!e_f#e$e%e`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgifPgQgRgpdqdFd+l,lGd-l!lneSgTgUgVgWgXgYgZg0g1g2g3g4g'e(e)e5g*e+e,e6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohQf@k[k]kBdCdRdbmcmSddm|lte^k_k`k{k|k}k~kalblcldlelflBfCfDfglEfFfGfhliljlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0ljfphqhrhrdsdHd.l/lId:l#loeshthuhvhwhxhyhzhAhBhChDhEh-e.e/eFh:e;e=eGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hkf?h@h[htdudJd;l=lKd?l$lpe]h^h_h`h{h|h}h~haibicidiei?e@e[efi]e^e_egihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZilf0i1i2ivdwdLd@l[lMd]l%lqe3i4i5i6i7i8i9i!i#i$i%i'i(i`e{e|e)i}e~eaf*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjmfAjBjCjxdydNd^l_lOd`l'lreDjEjFjGjHjIjJjKjLjMjNjOjPjbfcfdfQjefffgfRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~j
913 extra_kwargs["fallback"] = fallback 2PfqkrkskzdAdPd}l~lQdam{lsetkukvkwkxkykzkAkBkCkDkEkFkvfwfxfGkyfzfAfHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?khf(f)f*fndodDd(l)lEd*l9lme+f,f-f.f/f:f;f=f?f@f[f]f^f8e9e!e_f#e$e%e`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgifPgQgRgpdqdFd+l,lGd-l!lneSgTgUgVgWgXgYgZg0g1g2g3g4g'e(e)e5g*e+e,e6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohQf@k[k]kBdCdRdbmcmSddm|lte^k_k`k{k|k}k~kalblcldlelflBfCfDfglEfFfGfhliljlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0ljfphqhrhrdsdHd.l/lId:l#loeshthuhvhwhxhyhzhAhBhChDhEh-e.e/eFh:e;e=eGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hkf?h@h[htdudJd;l=lKd?l$lpe]h^h_h`h{h|h}h~haibicidiei?e@e[efi]e^e_egihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZilf0i1i2ivdwdLd@l[lMd]l%lqe3i4i5i6i7i8i9i!i#i$i%i'i(i`e{e|e)i}e~eaf*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjmfAjBjCjxdydNd^l_lOd`l'lreDjEjFjGjHjIjJjKjLjMjNjOjPjbfcfdfQjefffgfRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~j
914 if PYDANTIC_MINOR_VERSION >= (2, 12): 2PfqkrkskzdAdPd}l~lQdam{lsetkukvkwkxkykzkAkBkCkDkEkFkvfwfxfGkyfzfAfHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?khf(f)f*fndodDd(l)lEd*l9lme+f,f-f.f/f:f;f=f?f@f[f]f^f8e9e!e_f#e$e%e`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgifPgQgRgpdqdFd+l,lGd-l!lneSgTgUgVgWgXgYgZg0g1g2g3g4g'e(e)e5g*e+e,e6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohQf@k[k]kBdCdRdbmcmSddm|lte^k_k`k{k|k}k~kalblcldlelflBfCfDfglEfFfGfhliljlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0ljfphqhrhrdsdHd.l/lId:l#loeshthuhvhwhxhyhzhAhBhChDhEh-e.e/eFh:e;e=eGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hkf?h@h[htdudJd;l=lKd?l$lpe]h^h_h`h{h|h}h~haibicidiei?e@e[efi]e^e_egihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZilf0i1i2ivdwdLd@l[lMd]l%lqe3i4i5i6i7i8i9i!i#i$i%i'i(i`e{e|e)i}e~eaf*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjmfAjBjCjxdydNd^l_lOd`l'lreDjEjFjGjHjIjJjKjLjMjNjOjPjbfcfdfQjefffgfRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~j
915 extra_kwargs["exclude_computed_fields"] = exclude_computed_fields 2hf(f)f*fndodDd(l)lEd*l9lme+f,f-f.f/f:f;f=f?f@f[f]f^f8e9e!e_f#e$e%e`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgifPgQgRgpdqdFd+l,lGd-l!lneSgTgUgVgWgXgYgZg0g1g2g3g4g'e(e)e5g*e+e,e6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohjfphqhrhrdsdHd.l/lId:l#loeshthuhvhwhxhyhzhAhBhChDhEh-e.e/eFh:e;e=eGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hkf?h@h[htdudJd;l=lKd?l$lpe]h^h_h`h{h|h}h~haibicidiei?e@e[efi]e^e_egihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZilf0i1i2ivdwdLd@l[lMd]l%lqe3i4i5i6i7i8i9i!i#i$i%i'i(i`e{e|e)i}e~eaf*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjmfAjBjCjxdydNd^l_lOd`l'lreDjEjFjGjHjIjJjKjLjMjNjOjPjbfcfdfQjefffgfRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~j
916 if PYDANTIC_MINOR_VERSION >= (2, 13): 2PfqkrkskzdAdPd}l~lQdam{lsetkukvkwkxkykzkAkBkCkDkEkFkvfwfxfGkyfzfAfHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?khf(f)f*fndodDd(l)lEd*l9lme+f,f-f.f/f:f;f=f?f@f[f]f^f8e9e!e_f#e$e%e`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgifPgQgRgpdqdFd+l,lGd-l!lneSgTgUgVgWgXgYgZg0g1g2g3g4g'e(e)e5g*e+e,e6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohQf@k[k]kBdCdRdbmcmSddm|lte^k_k`k{k|k}k~kalblcldlelflBfCfDfglEfFfGfhliljlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0ljfphqhrhrdsdHd.l/lId:l#loeshthuhvhwhxhyhzhAhBhChDhEh-e.e/eFh:e;e=eGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hkf?h@h[htdudJd;l=lKd?l$lpe]h^h_h`h{h|h}h~haibicidiei?e@e[efi]e^e_egihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZilf0i1i2ivdwdLd@l[lMd]l%lqe3i4i5i6i7i8i9i!i#i$i%i'i(i`e{e|e)i}e~eaf*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjmfAjBjCjxdydNd^l_lOd`l'lreDjEjFjGjHjIjJjKjLjMjNjOjPjbfcfdfQjefffgfRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~j
917 extra_kwargs["polymorphic_serialization"] = polymorphic_serialization 2hf(f)f*fndodDd(l)lEd*l9lme+f,f-f.f/f:f;f=f?f@f[f]f^f8e9e!e_f#e$e%e`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgifPgQgRgpdqdFd+l,lGd-l!lneSgTgUgVgWgXgYgZg0g1g2g3g4g'e(e)e5g*e+e,e6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohjfphqhrhrdsdHd.l/lId:l#loeshthuhvhwhxhyhzhAhBhChDhEh-e.e/eFh:e;e=eGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hkf?h@h[htdudJd;l=lKd?l$lpe]h^h_h`h{h|h}h~haibicidiei?e@e[efi]e^e_egihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZilf0i1i2ivdwdLd@l[lMd]l%lqe3i4i5i6i7i8i9i!i#i$i%i'i(i`e{e|e)i}e~eaf*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjmfAjBjCjxdydNd^l_lOd`l'lreDjEjFjGjHjIjJjKjLjMjNjOjPjbfcfdfQjefffgfRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~j
918 return super().model_dump( 2PfqkrkskzdAdPd}l~lQdam{lsetkukvkwkxkykzkAkBkCkDkEkFkvfwfxfGkyfzfAfHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?khf(f)f*fndodDd(l)lEd*l9lme+f,f-f.f/f:f;f=f?f@f[f]f^f8e9e!e_f#e$e%e`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgifPgQgRgpdqdFd+l,lGd-l!lneSgTgUgVgWgXgYgZg0g1g2g3g4g'e(e)e5g*e+e,e6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohQf@k[k]kBdCdRdbmcmSddm|lte^k_k`k{k|k}k~kalblcldlelflBfCfDfglEfFfGfhliljlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0ljfphqhrhrdsdHd.l/lId:l#loeshthuhvhwhxhyhzhAhBhChDhEh-e.e/eFh:e;e=eGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=hkf?h@h[htdudJd;l=lKd?l$lpe]h^h_h`h{h|h}h~haibicidiei?e@e[efi]e^e_egihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZilf0i1i2ivdwdLd@l[lMd]l%lqe3i4i5i6i7i8i9i!i#i$i%i'i(i`e{e|e)i}e~eaf*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjmfAjBjCjxdydNd^l_lOd`l'lreDjEjFjGjHjIjJjKjLjMjNjOjPjbfcfdfQjefffgfRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~j
919 mode=mode,
920 include=include,
921 exclude=exclude,
922 by_alias=by_alias,
923 exclude_unset=exclude_unset,
924 exclude_defaults=exclude_defaults,
925 exclude_none=exclude_none,
926 round_trip=round_trip,
927 warnings=warnings,
928 **extra_kwargs,
929 )
931 @deprecated( 1daebfgch
932 """
933 🚨 `obj.dict()` was deprecated in SQLModel 0.0.14, you should
934 instead use `obj.model_dump()`.
935 """
936 )
937 def dict( 1daebfgch
938 self,
939 *,
940 include: IncEx | None = None,
941 exclude: IncEx | None = None,
942 by_alias: bool = False,
943 exclude_unset: bool = False,
944 exclude_defaults: bool = False,
945 exclude_none: bool = False,
946 ) -> builtins.dict[str, Any]:
947 return self.model_dump( 2{l9l!l|l#l$l%l'l
948 include=include,
949 exclude=exclude,
950 by_alias=by_alias,
951 exclude_unset=exclude_unset,
952 exclude_defaults=exclude_defaults,
953 exclude_none=exclude_none,
954 )
956 @classmethod 1daebfgch
957 @deprecated( 1daebfgch
958 """
959 🚨 `obj.from_orm(data)` was deprecated in SQLModel 0.0.14, you should
960 instead use `obj.model_validate(data)`.
961 """
962 )
963 def from_orm( 1daebfgch
964 cls: type[_TSQLModel],
965 obj: Any,
966 update: builtins.dict[str, Any] | None = None,
967 ) -> _TSQLModel:
968 return cls.model_validate(obj, update=update) 2IoJoKoLoMoNoOoPo
970 @classmethod 1daebfgch
971 @deprecated( 1daebfgch
972 """
973 🚨 `obj.parse_obj(data)` was deprecated in SQLModel 0.0.14, you should
974 instead use `obj.model_validate(data)`.
975 """
976 )
977 def parse_obj( 1daebfgch
978 cls: type[_TSQLModel],
979 obj: Any,
980 update: builtins.dict[str, Any] | None = None,
981 ) -> _TSQLModel:
982 return cls.model_validate(obj, update=update) 2QoRoSoToUoVoWoXo
984 def sqlmodel_update( 1daebfgch
985 self: _TSQLModel,
986 obj: builtins.dict[str, Any] | BaseModel,
987 *,
988 update: builtins.dict[str, Any] | None = None,
989 ) -> _TSQLModel:
990 use_update = (update or {}).copy() 2PfvfwfxfyfzfAfy hf8e9e!e#e$e%ez if'e(e)e*e+e,eA QfBfCfDfEfFfGfB jf-e.e/e:e;e=eC kf?e@e[e]e^e_eD lf`e{e|e}e~eafE mfbfcfdfefffgfF
991 if isinstance(obj, dict): 2PfvfwfxfyfzfAfy hf8e9e!e#e$e%ez if'e(e)e*e+e,eA QfBfCfDfEfFfGfB jf-e.e/e:e;e=eC kf?e@e[e]e^e_eD lf`e{e|e}e~eafE mfbfcfdfefffgfF
992 for key, value in {**obj, **use_update}.items(): 2PfvfwfxfyfzfAfhf8e9e!e#e$e%eif'e(e)e*e+e,eQfBfCfDfEfFfGfjf-e.e/e:e;e=ekf?e@e[e]e^e_elf`e{e|e}e~eafmfbfcfdfefffgf
993 if key in get_model_fields(self): 2PfvfwfxfyfzfAfhf8e9e!e#e$e%eif'e(e)e*e+e,eQfBfCfDfEfFfGfjf-e.e/e:e;e=ekf?e@e[e]e^e_elf`e{e|e}e~eafmfbfcfdfefffgf
994 setattr(self, key, value) 2PfvfwfxfyfzfAfhf8e9e!e#e$e%eif'e(e)e*e+e,eQfBfCfDfEfFfGfjf-e.e/e:e;e=ekf?e@e[e]e^e_elf`e{e|e}e~eafmfbfcfdfefffgf
995 elif isinstance(obj, BaseModel): 1yzABCDEF
996 for key in get_model_fields(obj): 1yzABCDEF
997 if key in use_update: 1yzABCDEF
998 value = use_update.pop(key)
999 else:
1000 value = getattr(obj, key) 1yzABCDEF
1001 setattr(self, key, value) 1yzABCDEF
1002 for remaining_key, value in use_update.items(): 1yzABCDEF
1003 if remaining_key in get_model_fields(self): 1yzABCDEF
1004 setattr(self, remaining_key, value) 1yzABCDEF
1005 else:
1006 raise ValueError(
1007 "Can't use sqlmodel_update() with something that "
1008 f"is not a dict or SQLModel or Pydantic model: {obj}"
1009 )
1010 return self 2PfvfwfxfyfzfAfy hf8e9e!e#e$e%ez if'e(e)e*e+e,eA QfBfCfDfEfFfGfB jf-e.e/e:e;e=eC kf?e@e[e]e^e_eD lf`e{e|e}e~eafE mfbfcfdfefffgfF