Coverage for sqlmodel / _compat.py: 94%

202 statements  

« prev     ^ index     » next       coverage.py v7.13.0, created at 2026-11-09 00:02 +0000

1import sys 1defagbhic

2import types 1defagbhic

3from collections.abc import Generator 1defagbhic

4from contextlib import contextmanager 1defagbhic

5from contextvars import ContextVar 1defagbhic

6from dataclasses import dataclass 1defagbhic

7from typing import ( 1defagbhic

8 TYPE_CHECKING, 

9 Annotated, 

10 Any, 

11 ForwardRef, 

12 TypeAlias, 

13 TypeVar, 

14 Union, 

15 cast, 

16 get_args, 

17 get_origin, 

18) 

19 

20from annotated_types import MaxLen 1defagbhic

21from pydantic import VERSION as P_VERSION 1defagbhic

22from pydantic import AwareDatetime, BaseModel, NaiveDatetime 1defagbhic

23from pydantic import ConfigDict as ConfigDict 1defagbhic

24from pydantic._internal._fields import PydanticMetadata 1defagbhic

25from pydantic._internal._model_construction import ModelMetaclass as ModelMetaclass 1defagbhic

26from pydantic._internal._repr import Representation as Representation 1defagbhic

27from pydantic.fields import FieldInfo 1defagbhic

28from pydantic_core import PydanticUndefined as Undefined 1defagbhic

29from pydantic_core import PydanticUndefinedType as PydanticUndefinedType 1defagbhic

30 

31BaseConfig = ConfigDict 1defagbhic

32UndefinedType = PydanticUndefinedType 1defagbhic

33PYDANTIC_MINOR_VERSION = tuple(int(i) for i in P_VERSION.split(".")[:2]) 1defagbhic

34 

35 

36if TYPE_CHECKING: 1defagbhic

37 from .main import RelationshipInfo, SQLModel 

38 

39UnionType = getattr(types, "UnionType", Union) 1defagbhic

40NoneType = type(None) 1defagbhic

41T = TypeVar("T") 1defagbhic

42InstanceOrType: TypeAlias = T | type[T] 1defagbhic

43_TSQLModel = TypeVar("_TSQLModel", bound="SQLModel") 1defagbhic

44 

45 

46class FakeMetadata: 1defagbhic

47 max_length: int | None = None 1defagbhic

48 max_digits: int | None = None 1defagbhic

49 decimal_places: int | None = None 1defagbhic

50 

51 

52@dataclass 1defagbhic

53class ObjectWithUpdateWrapper: 1defagbhic

54 obj: Any 1defagbhic

55 update: dict[str, Any] 1defagbhic

56 

57 def __getattribute__(self, __name: str) -> Any: 1defagbhic

58 update = super().__getattribute__("update") 2ddedfdgdhdidjdkdld

59 obj = super().__getattribute__("obj") 2ddedfdgdhdidjdkdld

60 if __name in update: 2ddedfdgdhdidjdkdld

61 return update[__name] 2ddedfdgdhdidjdkdld

62 return getattr(obj, __name) 2ddedfdgdhdidjdkdld

63 

64 

65def _is_union_type(t: Any) -> bool: 1defagbhic

66 return t is UnionType or t is Union 2d (btb@e[eN XbYc]e^emdfc_e`eubZcnd{eO P nbm Q R S =lYbGc?lxcT U vbSlTlUle )bwb|e}eV Zb0c~eafodgcbfcfxb1cpddfW X obn Y Z 0 @l0bHc[lyc1 2 ybVlWlXlf *bzbefff3 1b2cgfhfqdhcifjfAb3crdkf4 5 pbo 6 7 8 ]l2bIc^lzc9 ! BbYlZl0la Ub# 4c5cp LbMc6c7cSc@b8c9c$ NcTc!c% ' K j q r s PfMbDcQfuct u ( GfHfIfg +bCblfmf) 3b#cnfofsdicpfqfDb$ctdrf* + qbv , - . _l4bJc`lAc/ : Eb1l2l3lb Vb; %c'cw NbOc(c)cUc[b*c+c= PcVc,c? @ L k x y z RfObEcSfvcA B [ JfKfLfh ,bFbsftf] 5b-cufvfudjcwfxfGb.cvdyf^ _ rbC ` { | {l6bKc|lBc} ~ Hb4l5l6li -bIbzfAfab7b/cBfCfwdkcDfEfJb:cxdFfbbcbsbD dbebfb}l8bLc~lCcgbhbKb7l8l9lc Wbib;c=cE PbQc?c@cWc]b[c]cjbRcXc^ckblbM l F G H TfQbFcUfwcI J mbMfNfOf

67 

68 

69finish_init: ContextVar[bool] = ContextVar("finish_init", default=True) 1defagbhic

70 

71 

72@contextmanager 1defagbhic

73def partial_init() -> Generator[None, None, None]: 1defagbhic

74 token = finish_init.set(False) 25m6m7m8m9m!m#mPolcQoXbfc$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd/m:m;m=m?m@m[mRomcSoZbgc]m^m_m`m{m|mdm}m~manbntlemulfmedcndnenfngnhninToncUo1bhcjnknlnmnnnongmpnqnrnsnvlhmwlimfdtnunvnwnxnynznVoocWoLb@bAnBnCnDnEnFnjmGnHnInJnxlkmyllmgdKnLnMnNnOnPnQnXopcYo3bicRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhd1n2n3n4n5n6n7nZoqc0oNb[b8n9n!n#n$n%npm'n(n)n*nBlqmClrmid+n,n-n.n/n:n;n1orc2o5bjc=n?n@n[n]n^nsm_n`n{n|nDltmElumjd}n~naobocodoeo3osc4o7bkcfogohoiojokovmlomonoooFlwmGlxmkdpoqorosotouovo5otc6oPb]bwoxoyozoAoBoymCoDoEoFoHlzmIlAmld

75 yield 25m6m7m8m9m!m#mPolcQoXbfc$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd/m:m;m=m?m@m[mRomcSoZbgc]m^m_m`m{m|mdm}m~manbntlemulfmedcndnenfngnhninToncUo1bhcjnknlnmnnnongmpnqnrnsnvlhmwlimfdtnunvnwnxnynznVoocWoLb@bAnBnCnDnEnFnjmGnHnInJnxlkmyllmgdKnLnMnNnOnPnQnXopcYo3bicRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhd1n2n3n4n5n6n7nZoqc0oNb[b8n9n!n#n$n%npm'n(n)n*nBlqmClrmid+n,n-n.n/n:n;n1orc2o5bjc=n?n@n[n]n^nsm_n`n{n|nDltmElumjd}n~naobocodoeo3osc4o7bkcfogohoiojokovmlomonoooFlwmGlxmkdpoqorosotouovo5otc6oPb]bwoxoyozoAoBoymCoDoEoFoHlzmIlAmld

76 finish_init.reset(token) 25m6m7m8m9m!m#mPolcQoXbfc$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd/m:m;m=m?m@m[mRomcSoZbgc]m^m_m`m{m|mdm}m~manbntlemulfmedcndnenfngnhninToncUo1bhcjnknlnmnnnongmpnqnrnsnvlhmwlimfdtnunvnwnxnynznVoocWoLb@bAnBnCnDnEnFnjmGnHnInJnxlkmyllmgdKnLnMnNnOnPnQnXopcYo3bicRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhd1n2n3n4n5n6n7nZoqc0oNb[b8n9n!n#n$n%npm'n(n)n*nBlqmClrmid+n,n-n.n/n:n;n1orc2o5bjc=n?n@n[n]n^nsm_n`n{n|nDltmElumjd}n~naobocodoeo3osc4o7bkcfogohoiojokovmlomonoooFlwmGlxmkdpoqorosotouovo5otc6oPb]bwoxoyozoAoBoymCoDoEoFoHlzmIlAmld

77 

78 

79class SQLModelConfig(BaseConfig, total=False): 1defagbhic

80 table: bool | None 1defagbhic

81 registry: Any | None 1defagbhic

82 

83 

84def get_model_fields(model: InstanceOrType[BaseModel]) -> dict[str, "FieldInfo"]: 1defagbhic

85 # TODO: refactor the usage of this function to always pass the class 

86 # not the instance, and then remove this extra check 

87 # this is for compatibility with Pydantic v3 

88 if isinstance(model, type): 2d _c(btb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{e1r2r3rDmO P nb^b_bEmm Q R S =lYbGc?lxcT U FmvbSlTlUlamrlbmslcmdd9be `c)bwb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddf4r5r6rImW X ob`b{bJmn Y Z 0 @l0bHc[lyc1 2 KmybVlWlXldmtlemulfmed!bf {c*bzbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkf7r8r9rNm4 5 pb|b}bOmo 6 7 8 ]l2bIc^lzc9 ! PmBbYlZl0lgmvlhmwlimfd#ba |cUb# 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!cLqMqNq$l% ' K .b/b%lj q r s PfMbDcQfuct u 'l( GfHfIfjmxlkmyllmgdRbg }c+bCblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrf!r#r$rSm* + qb~bacTmv , - . _l4bJc`lAc/ : UmEb1l2l3lmmzlnmAlomhd$bb ~cVb; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,cOqPqQq*l? @ L :b;b+lk x y z RfObEcSfvcA B ,l[ JfKfLfpmBlqmClrmidSbh ad,bFbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyf%r'r(rXm^ _ rbbcccYmC ` { | {l6bKc|lBc} ~ ZmHb4l5l6lsmDltmElumjd%bi bd-bIbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf)r*r+r2mbbcbsbdcec3mD dbebfb}l8bLc~lCcgbhb4mKb7l8l9lvmFlwmGlxmkd'bc cdWbib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^cRqSqTq/lkblbM =b?b:ll F G H TfQbFcUfwcI J ;lmbMfNfOfymHlzmIlAmldTb

89 use_model = model 2d (btb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{e1r2r3rDmO P nb^b_bEmm Q R S =lYbGc?lxcT U FmvbSlTlUl9be )bwb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddf4r5r6rImW X ob`b{bJmn Y Z 0 @l0bHc[lyc1 2 KmybVlWlXl!bf *bzbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkf7r8r9rNm4 5 pb|b}bOmo 6 7 8 ]l2bIc^lzc9 ! PmBbYlZl0l#ba Ub# 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!cLqMqNq$l% ' K .b/b%lj q r s PfMbDcQfuct u 'l( GfHfIfRbg +bCblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrf!r#r$rSm* + qb~bacTmv , - . _l4bJc`lAc/ : UmEb1l2l3l$bb Vb; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,cOqPqQq*l? @ L :b;b+lk x y z RfObEcSfvcA B ,l[ JfKfLfSbh ,bFbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyf%r'r(rXm^ _ rbbcccYmC ` { | {l6bKc|lBc} ~ ZmHb4l5l6l%bi -bIbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf)r*r+r2mbbcbsbdcec3mD dbebfb}l8bLc~lCcgbhb4mKb7l8l9l'bc Wbib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^cRqSqTq/lkblbM =b?b:ll F G H TfQbFcUfwcI J ;lmbMfNfOfTb

90 else: 

91 use_model = model.__class__ 2_camrlbmslcmdd9b`cdmtlemulfmed!b{cgmvlhmwlimfd#b|cjmxlkmyllmgdRb}cmmzlnmAlomhd$b~cpmBlqmClrmidSbadsmDltmElumjd%bbdvmFlwmGlxmkd'bcdymHlzmIlAmldTb

92 return use_model.model_fields 2d _c(btb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{e1r2r3rDmO P nb^b_bEmm Q R S =lYbGc?lxcT U FmvbSlTlUlamrlbmslcmdd9be `c)bwb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddf4r5r6rImW X ob`b{bJmn Y Z 0 @l0bHc[lyc1 2 KmybVlWlXldmtlemulfmed!bf {c*bzbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkf7r8r9rNm4 5 pb|b}bOmo 6 7 8 ]l2bIc^lzc9 ! PmBbYlZl0lgmvlhmwlimfd#ba |cUb# 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!cLqMqNq$l% ' K .b/b%lj q r s PfMbDcQfuct u 'l( GfHfIfjmxlkmyllmgdRbg }c+bCblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrf!r#r$rSm* + qb~bacTmv , - . _l4bJc`lAc/ : UmEb1l2l3lmmzlnmAlomhd$bb ~cVb; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,cOqPqQq*l? @ L :b;b+lk x y z RfObEcSfvcA B ,l[ JfKfLfpmBlqmClrmidSbh ad,bFbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyf%r'r(rXm^ _ rbbcccYmC ` { | {l6bKc|lBc} ~ ZmHb4l5l6lsmDltmElumjd%bi bd-bIbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf)r*r+r2mbbcbsbdcec3mD dbebfb}l8bLc~lCcgbhb4mKb7l8l9lvmFlwmGlxmkd'bc cdWbib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^cRqSqTq/lkblbM =b?b:ll F G H TfQbFcUfwcI J ;lmbMfNfOfymHlzmIlAmldTb

93 

94 

95def init_pydantic_private_attrs(new_object: InstanceOrType["SQLModel"]) -> None: 1defagbhic

96 object.__setattr__(new_object, "__pydantic_fields_set__", set()) 20q5m,r-rVfWfXf_c6m7m8m9m!m#mJlPolcQoYfZf0f_o`o'p{o1q2q.r3q4q5q6q7q(p|o8q(btb)pN XbYcfcub9q/oyp*pO P nbUq^b_bm Q R S Yb+p,pJo-p.p/p:pT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$m%m'm(m)m*mam+m,m-m.mrl$fbm%fslcmdd'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9b}o!q/m/r:rogpgqg`c:m;m=m?m@m[mKlRomcSorgsgtg~oap;pbp#q$q;r%q'q(q)q*q=pcp+q)bwb?pV Zb0cgcxb,q:ozp@pW X obVq`b{bn Y Z 0 0b[p]pKo^p_p`p{p1 2 ybugOdPdvgwgxgygzgAgBgCgDgEg]m^m_m`m{m|mdm}m~manbntlFgemGgulfmedHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!bdp-qcn=r?r+g,g-g{cdnenfngnhninLlToncUo.g/g:gepfp|pgp.q/q@r:q;q=q?q@q}php[q*bzb~p3 1b2chcAb]q;oApaq4 5 pbWq|b}bo 6 7 8 2bbqcqLodqeqfqgq9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|gjnknlnmnnnongmpnqnrnsnvl}ghm~gwlimfdahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bip^qtn[r]rLhMhNh|cunvnwnxnynznMlVoocWoOhPhQh7o8oHp9o_q`q^r{q|q}q~qarIp!obrUb# Jpp LbMc@b$ cr=oBpKp% ' K #p.b/bj q r s MbLpMpGoNpOpPpQpt u ( Rh-d.dShThUhVhWhXhYhZh0h1hAnBnCnDnEnFnjmGnHnInJnxl2hkm3hyllmgd4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRb#odrKn_r`reifigi}cLnMnNnOnPnQnNlXopcYohiiijijpkphqlperfr{rgrhrirjrkriqmplr+bCbjq) 3b#cicDbmr?oCpkq* + qbXq~bacv , - . 4blqmqMonqoqpqqq/ : Ebki~daeliminioipiqirisitiuiRnSnTnUnVnWnmmXnYnZn0nzlvinmwiAlomhdxiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$bnpnr1n|r}r8i9i!i~c2n3n4n5n6n7nOlZoqc0o#i$i%i$o%oRp'oorpr~rqrrrsrtrurSp(ovrVb; Tpw NbOc[b= wr@oDpUp? @ L $p:b;bk x y z ObVpWpHoXpYpZp0pA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i8n9n!n#n$n%npm'n(n)n*nBl=iqm?iClrmid@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSb)oxr+nasbsBjCjDjad,n-n.n/n:n;nPl1orc2oEjFjGjoppprqqpyrzrcsArBrCrDrErsqrpFr,bFbtq] 5b-cjcGbGr[oEpuq^ _ rbYqbcccC ` { | 6bvqwqNoxqyqzqAq} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRj=n?n@n[n]n^nsm_n`n{n|nDlSjtmTjElumjdUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%bspHr}ndses_j`j{jbd~naobocodoeoQl3osc4o|j}j~jtpupBqvpIrJrfsKrLrMrNrOrCqwpPr-bIbDqab7b/ckcJbQr]oFpEqbbcbsbZqdcecD dbebfb8bFqGqOoHqIqJqKqgbhbKbakVeWebkckdkekfkgkhkikjkkkfogohoiojokovmlomonoooFllkwmmkGlxmkdnkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bxpRrpogshsYkZk0kcdqorosotouovoRl5otc6o1k2k3k*o+o1p,oSrTrisUrVrWrXrYr2p-oZrWbib3pE PbQc]bjb0r^oGp4pkblbM %p=b?bl F G H Qb5p6pIo7p8p9p!pI J mb4k#e$e5k6k7k8k9k!k#k$k%k'kwoxoyozoAoBoymCoDoEoFoHl(kzm)kIlAmld*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb.o

97 object.__setattr__(new_object, "__pydantic_extra__", None) 20q5m,r-rVfWfXf_c6m7m8m9m!m#mJlPolcQoYfZf0f_o`o'p{o1q2q.r3q4q5q6q7q(p|o8q(btb)pN XbYcfcub9q/oyp*pO P nbUq^b_bm Q R S Yb+p,pJo-p.p/p:pT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$m%m'm(m)m*mam+m,m-m.mrl$fbm%fslcmdd'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9b}o!q/m/r:rogpgqg`c:m;m=m?m@m[mKlRomcSorgsgtg~oap;pbp#q$q;r%q'q(q)q*q=pcp+q)bwb?pV Zb0cgcxb,q:ozp@pW X obVq`b{bn Y Z 0 0b[p]pKo^p_p`p{p1 2 ybugOdPdvgwgxgygzgAgBgCgDgEg]m^m_m`m{m|mdm}m~manbntlFgemGgulfmedHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!bdp-qcn=r?r+g,g-g{cdnenfngnhninLlToncUo.g/g:gepfp|pgp.q/q@r:q;q=q?q@q}php[q*bzb~p3 1b2chcAb]q;oApaq4 5 pbWq|b}bo 6 7 8 2bbqcqLodqeqfqgq9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|gjnknlnmnnnongmpnqnrnsnvl}ghm~gwlimfdahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bip^qtn[r]rLhMhNh|cunvnwnxnynznMlVoocWoOhPhQh7o8oHp9o_q`q^r{q|q}q~qarIp!obrUb# Jpp LbMc@b$ cr=oBpKp% ' K #p.b/bj q r s MbLpMpGoNpOpPpQpt u ( Rh-d.dShThUhVhWhXhYhZh0h1hAnBnCnDnEnFnjmGnHnInJnxl2hkm3hyllmgd4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRb#odrKn_r`reifigi}cLnMnNnOnPnQnNlXopcYohiiijijpkphqlperfr{rgrhrirjrkriqmplr+bCbjq) 3b#cicDbmr?oCpkq* + qbXq~bacv , - . 4blqmqMonqoqpqqq/ : Ebki~daeliminioipiqirisitiuiRnSnTnUnVnWnmmXnYnZn0nzlvinmwiAlomhdxiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$bnpnr1n|r}r8i9i!i~c2n3n4n5n6n7nOlZoqc0o#i$i%i$o%oRp'oorpr~rqrrrsrtrurSp(ovrVb; Tpw NbOc[b= wr@oDpUp? @ L $p:b;bk x y z ObVpWpHoXpYpZp0pA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i8n9n!n#n$n%npm'n(n)n*nBl=iqm?iClrmid@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSb)oxr+nasbsBjCjDjad,n-n.n/n:n;nPl1orc2oEjFjGjoppprqqpyrzrcsArBrCrDrErsqrpFr,bFbtq] 5b-cjcGbGr[oEpuq^ _ rbYqbcccC ` { | 6bvqwqNoxqyqzqAq} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRj=n?n@n[n]n^nsm_n`n{n|nDlSjtmTjElumjdUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%bspHr}ndses_j`j{jbd~naobocodoeoQl3osc4o|j}j~jtpupBqvpIrJrfsKrLrMrNrOrCqwpPr-bIbDqab7b/ckcJbQr]oFpEqbbcbsbZqdcecD dbebfb8bFqGqOoHqIqJqKqgbhbKbakVeWebkckdkekfkgkhkikjkkkfogohoiojokovmlomonoooFllkwmmkGlxmkdnkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bxpRrpogshsYkZk0kcdqorosotouovoRl5otc6o1k2k3k*o+o1p,oSrTrisUrVrWrXrYr2p-oZrWbib3pE PbQc]bjb0r^oGp4pkblbM %p=b?bl F G H Qb5p6pIo7p8p9p!pI J mb4k#e$e5k6k7k8k9k!k#k$k%k'kwoxoyozoAoBoymCoDoEoFoHl(kzm)kIlAmld*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb.o

98 object.__setattr__(new_object, "__pydantic_private__", None) 20q5m,r-rVfWfXf_c6m7m8m9m!m#mJlPolcQoYfZf0f_o`o'p{o1q2q.r3q4q5q6q7q(p|o8q(btb)pN XbYcfcub9q/oyp*pO P nbUq^b_bm Q R S Yb+p,pJo-p.p/p:pT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$m%m'm(m)m*mam+m,m-m.mrl$fbm%fslcmdd'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9b}o!q/m/r:rogpgqg`c:m;m=m?m@m[mKlRomcSorgsgtg~oap;pbp#q$q;r%q'q(q)q*q=pcp+q)bwb?pV Zb0cgcxb,q:ozp@pW X obVq`b{bn Y Z 0 0b[p]pKo^p_p`p{p1 2 ybugOdPdvgwgxgygzgAgBgCgDgEg]m^m_m`m{m|mdm}m~manbntlFgemGgulfmedHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!bdp-qcn=r?r+g,g-g{cdnenfngnhninLlToncUo.g/g:gepfp|pgp.q/q@r:q;q=q?q@q}php[q*bzb~p3 1b2chcAb]q;oApaq4 5 pbWq|b}bo 6 7 8 2bbqcqLodqeqfqgq9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|gjnknlnmnnnongmpnqnrnsnvl}ghm~gwlimfdahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bip^qtn[r]rLhMhNh|cunvnwnxnynznMlVoocWoOhPhQh7o8oHp9o_q`q^r{q|q}q~qarIp!obrUb# Jpp LbMc@b$ cr=oBpKp% ' K #p.b/bj q r s MbLpMpGoNpOpPpQpt u ( Rh-d.dShThUhVhWhXhYhZh0h1hAnBnCnDnEnFnjmGnHnInJnxl2hkm3hyllmgd4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRb#odrKn_r`reifigi}cLnMnNnOnPnQnNlXopcYohiiijijpkphqlperfr{rgrhrirjrkriqmplr+bCbjq) 3b#cicDbmr?oCpkq* + qbXq~bacv , - . 4blqmqMonqoqpqqq/ : Ebki~daeliminioipiqirisitiuiRnSnTnUnVnWnmmXnYnZn0nzlvinmwiAlomhdxiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$bnpnr1n|r}r8i9i!i~c2n3n4n5n6n7nOlZoqc0o#i$i%i$o%oRp'oorpr~rqrrrsrtrurSp(ovrVb; Tpw NbOc[b= wr@oDpUp? @ L $p:b;bk x y z ObVpWpHoXpYpZp0pA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i8n9n!n#n$n%npm'n(n)n*nBl=iqm?iClrmid@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSb)oxr+nasbsBjCjDjad,n-n.n/n:n;nPl1orc2oEjFjGjoppprqqpyrzrcsArBrCrDrErsqrpFr,bFbtq] 5b-cjcGbGr[oEpuq^ _ rbYqbcccC ` { | 6bvqwqNoxqyqzqAq} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRj=n?n@n[n]n^nsm_n`n{n|nDlSjtmTjElumjdUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%bspHr}ndses_j`j{jbd~naobocodoeoQl3osc4o|j}j~jtpupBqvpIrJrfsKrLrMrNrOrCqwpPr-bIbDqab7b/ckcJbQr]oFpEqbbcbsbZqdcecD dbebfb8bFqGqOoHqIqJqKqgbhbKbakVeWebkckdkekfkgkhkikjkkkfogohoiojokovmlomonoooFllkwmmkGlxmkdnkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bxpRrpogshsYkZk0kcdqorosotouovoRl5otc6o1k2k3k*o+o1p,oSrTrisUrVrWrXrYr2p-oZrWbib3pE PbQc]bjb0r^oGp4pkblbM %p=b?bl F G H Qb5p6pIo7p8p9p!pI J mb4k#e$e5k6k7k8k9k!k#k$k%k'kwoxoyozoAoBoymCoDoEoFoHl(kzm)kIlAmld*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb.o

99 

100 

101def get_annotations(class_dict: dict[str, Any]) -> dict[str, Any]: 1defagbhic

102 raw_annotations: dict[str, Any] = class_dict.get("__annotations__", {}) 2d _o`o'p{o(p|o(btb)p@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{e1r2r3rDm*pO P nbUq^b_bEmm Q R S =lYbGc?lxc+p,pJo-p.p/p:pT U FmvbSlTlUl9b}oe ~oap;pbp=pcp)bwb?p|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddf4r5r6rIm@pW X obVq`b{bJmn Y Z 0 @l0bHc[lyc[p]pKo^p_p`p{p1 2 KmybVlWlXl!bdpf epfp|pgp}php*bzb~pefff3 1b2cgfhfqdhcifjfAbLmMm3crdkf7r8r9rNmaq4 5 pbWq|b}bOmo 6 7 8 ]l2bIc^lzcbqcqLodqeqfqgq9 ! PmBbYlZl0l#bipa 7o8oHp9oIp!oUb# Jp4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!cLqMqNq$lKp% ' K #p.b/b%lj q r s PfMbDcQfucLpMpGoNpOpPpQpt u 'l( GfHfIfRb#og jpkphqlpiqmp+bCbjqlfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrf!r#r$rSmkq* + qbXq~bacTmv , - . _l4bJc`lAclqmqMonqoqpqqq/ : UmEb1l2l3l$bnpb $o%oRp'oSp(oVb; Tp%c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,cOqPqQq*lUp? @ L $p:b;b+lk x y z RfObEcSfvcVpWpHoXpYpZp0pA B ,l[ JfKfLfSb)oh oppprqqpsqrp,bFbtqsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyf%r'r(rXmuq^ _ rbYqbcccYmC ` { | {l6bKc|lBcvqwqNoxqyqzqAq} ~ ZmHb4l5l6l%bspi tpupBqvpCqwp-bIbDqzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf)r*r+r2mEqbbcbsbZqdcec3mD dbebfb}l8bLc~lCcFqGqOoHqIqJqKqgbhb4mKb7l8l9l'bxpc *o+o1p,o2p-oWbib3p;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^cRqSqTq/l4pkblbM %p=b?b:ll F G H TfQbFcUfwc5p6pIo7p8p9p!pI J ;lmbMfNfOfTb.o

103 if sys.version_info >= (3, 14) and "__annotations__" not in class_dict: 2d _o`o'p{o(p|o(btb)p@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{e1r2r3rDm*pO P nbUq^b_bEmm Q R S =lYbGc?lxc+p,pJo-p.p/p:pT U FmvbSlTlUl9b}oe ~oap;pbp=pcp)bwb?p|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddf4r5r6rIm@pW X obVq`b{bJmn Y Z 0 @l0bHc[lyc[p]pKo^p_p`p{p1 2 KmybVlWlXl!bdpf epfp|pgp}php*bzb~pefff3 1b2cgfhfqdhcifjfAbLmMm3crdkf7r8r9rNmaq4 5 pbWq|b}bOmo 6 7 8 ]l2bIc^lzcbqcqLodqeqfqgq9 ! PmBbYlZl0l#bipa 7o8oHp9oIp!oUb# Jp4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!cLqMqNq$lKp% ' K #p.b/b%lj q r s PfMbDcQfucLpMpGoNpOpPpQpt u 'l( GfHfIfRb#og jpkphqlpiqmp+bCbjqlfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrf!r#r$rSmkq* + qbXq~bacTmv , - . _l4bJc`lAclqmqMonqoqpqqq/ : UmEb1l2l3l$bnpb $o%oRp'oSp(oVb; Tp%c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,cOqPqQq*lUp? @ L $p:b;b+lk x y z RfObEcSfvcVpWpHoXpYpZp0pA B ,l[ JfKfLfSb)oh oppprqqpsqrp,bFbtqsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyf%r'r(rXmuq^ _ rbYqbcccYmC ` { | {l6bKc|lBcvqwqNoxqyqzqAq} ~ ZmHb4l5l6l%bspi tpupBqvpCqwp-bIbDqzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf)r*r+r2mEqbbcbsbZqdcec3mD dbebfb}l8bLc~lCcFqGqOoHqIqJqKqgbhb4mKb7l8l9l'bxpc *o+o1p,o2p-oWbib3p;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^cRqSqTq/l4pkblbM %p=b?b:ll F G H TfQbFcUfwc5p6pIo7p8p9p!pI J ;lmbMfNfOfTb.o

104 # See https://github.com/pydantic/pydantic/pull/11991 

105 from annotationlib import ( 2a 7o8oHp9oIp!oUb# Jp4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!cLqMqNq$lKpK #p.b/b%lj q r s PfMbDcQfucLpMpGoNpOpPpQpt u 'l( GfHfIfRb#ob $o%oRp'oSp(oVb; Tp%c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,cOqPqQq*lUpL $p:b;b+lk x y z RfObEcSfvcVpWpHoXpYpZp0pA B ,l[ JfKfLfSb)oc *o+o1p,o2p-oWbib3p;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^cRqSqTq/l4pM %p=b?b:ll F G H TfQbFcUfwc5p6pIo7p8p9p!pI J ;lmbMfNfOfTb.o

106 Format, 

107 call_annotate_function, 

108 get_annotate_from_class_namespace, 

109 ) 

110 

111 if annotate := get_annotate_from_class_namespace(class_dict): 2a 7o8oHp9oIp!oUb# Jp4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!cLqMqNq$lKpK #p.b/b%lj q r s PfMbDcQfucLpMpGoNpOpPpQpt u 'l( GfHfIfRb#ob $o%oRp'oSp(oVb; Tp%c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,cOqPqQq*lUpL $p:b;b+lk x y z RfObEcSfvcVpWpHoXpYpZp0pA B ,l[ JfKfLfSb)oc *o+o1p,o2p-oWbib3p;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^cRqSqTq/l4pM %p=b?b:ll F G H TfQbFcUfwc5p6pIo7p8p9p!pI J ;lmbMfNfOfTb.o

112 raw_annotations = call_annotate_function(annotate, format=Format.FORWARDREF) 2a 7o8oHp9oIp!oUb# Jp4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!cLqMqNq$lKpK #p.b/b%lj q r s PfMbDcQfucLpMpGoNpOpPpQpt u 'l( GfHfIfRb#ob $o%oRp'oSp(oVb; Tp%c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,cOqPqQq*lUpL $p:b;b+lk x y z RfObEcSfvcVpWpHoXpYpZp0pA B ,l[ JfKfLfSb)oc *o+o1p,o2p-oWbib3p;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^cRqSqTq/l4pM %p=b?b:ll F G H TfQbFcUfwc5p6pIo7p8p9p!pI J ;lmbMfNfOfTb.o

113 return raw_annotations 2d _o`o'p{o(p|o(btb)p@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{e1r2r3rDm*pO P nbUq^b_bEmm Q R S =lYbGc?lxc+p,pJo-p.p/p:pT U FmvbSlTlUl9b}oe ~oap;pbp=pcp)bwb?p|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddf4r5r6rIm@pW X obVq`b{bJmn Y Z 0 @l0bHc[lyc[p]pKo^p_p`p{p1 2 KmybVlWlXl!bdpf epfp|pgp}php*bzb~pefff3 1b2cgfhfqdhcifjfAbLmMm3crdkf7r8r9rNmaq4 5 pbWq|b}bOmo 6 7 8 ]l2bIc^lzcbqcqLodqeqfqgq9 ! PmBbYlZl0l#bipa 7o8oHp9oIp!oUb# Jp4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!cLqMqNq$lKp% ' K #p.b/b%lj q r s PfMbDcQfucLpMpGoNpOpPpQpt u 'l( GfHfIfRb#og jpkphqlpiqmp+bCbjqlfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrf!r#r$rSmkq* + qbXq~bacTmv , - . _l4bJc`lAclqmqMonqoqpqqq/ : UmEb1l2l3l$bnpb $o%oRp'oSp(oVb; Tp%c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,cOqPqQq*lUp? @ L $p:b;b+lk x y z RfObEcSfvcVpWpHoXpYpZp0pA B ,l[ JfKfLfSb)oh oppprqqpsqrp,bFbtqsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyf%r'r(rXmuq^ _ rbYqbcccYmC ` { | {l6bKc|lBcvqwqNoxqyqzqAq} ~ ZmHb4l5l6l%bspi tpupBqvpCqwp-bIbDqzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf)r*r+r2mEqbbcbsbZqdcec3mD dbebfb}l8bLc~lCcFqGqOoHqIqJqKqgbhb4mKb7l8l9l'bxpc *o+o1p,o2p-oWbib3p;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^cRqSqTq/l4pkblbM %p=b?b:ll F G H TfQbFcUfwc5p6pIo7p8p9p!pI J ;lmbMfNfOfTb.o

114 

115 

116def is_table_model_class(cls: type[Any]) -> bool: 1defagbhic

117 config = getattr(cls, "model_config", {}) 2d 0q5m,r-rVfWfXf_c6m7m8m9m!m#mJlPolcQoYfZf0f_o`o'p{o1q2q.r3q4q5q6q7q(p|o8q(btb)p@e[eN XbYc]e^emdfc_e`eub9q/oypBmCmZcnd{e1r2r3rDm*pO P nbUq^b_bEmm Q R S =lYbGc?lxc+p,pJo-p.p/p:pT U FmvbSlTlUl1fydzd2f3f4f5f6f7f8f9f!f#f$m%m'm(m)m*mam+m,m-m.mrl$fbm%fslcmdd'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9b}oe !q/m/r:rogpgqg`c:m;m=m?m@m[mKlRomcSorgsgtg~oap;pbp#q$q;r%q'q(q)q*q=pcp+q)bwb?p|e}eV Zb0c~eafodgcbfcfxb,q:ozpGmHm1cpddf4r5r6rIm@pW X obVq`b{bJmn Y Z 0 @l0bHc[lyc[p]pKo^p_p`p{p1 2 KmybVlWlXlugOdPdvgwgxgygzgAgBgCgDgEg]m^m_m`m{m|mdm}m~manbntlFgemGgulfmedHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!bdpf -qcn=r?r+g,g-g{cdnenfngnhninLlToncUo.g/g:gepfp|pgp.q/q@r:q;q=q?q@q}php[q*bzb~pefff3 1b2cgfhfqdhcifjfAb]q;oApLmMm3crdkf7r8r9rNmaq4 5 pbWq|b}bOmo 6 7 8 ]l2bIc^lzcbqcqLodqeqfqgq9 ! PmBbYlZl0l;g4d5d=g?g@g[g]g^g_g`g{g|gjnknlnmnnnongmpnqnrnsnvl}ghm~gwlimfdahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bipa ^qtn[r]rLhMhNh|cunvnwnxnynznMlVoocWoOhPhQh7o8oHp9o_q`q^r{q|q}q~qarIp!obrUb# Jp4c5cp LbMc6c7cSc@b8c9c$ cr=oBp!l#lNcTc!cLqMqNq$lKp% ' K #p.b/b%lj q r s PfMbDcQfucLpMpGoNpOpPpQpt u 'l( GfHfIfRh-d.dShThUhVhWhXhYhZh0h1hAnBnCnDnEnFnjmGnHnInJnxl2hkm3hyllmgd4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRb#og drKn_r`reifigi}cLnMnNnOnPnQnNlXopcYohiiijijpkphqlperfr{rgrhrirjrkriqmplr+bCbjqlfmf) 3b#cnfofsdicpfqfDbmr?oCpQmRm$ctdrf!r#r$rSmkq* + qbXq~bacTmv , - . _l4bJc`lAclqmqMonqoqpqqq/ : UmEb1l2l3lki~daeliminioipiqirisitiuiRnSnTnUnVnWnmmXnYnZn0nzlvinmwiAlomhdxiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$bnpb nr1n|r}r8i9i!i~c2n3n4n5n6n7nOlZoqc0o#i$i%i$o%oRp'oorpr~rqrrrsrtrurSp(ovrVb; Tp%c'cw NbOc(c)cUc[b*c+c= wr@oDp(l)lPcVc,cOqPqQq*lUp? @ L $p:b;b+lk x y z RfObEcSfvcVpWpHoXpYpZp0pA B ,l[ JfKfLf'ipeqe(i)i*i+i,i-i.i/i:i;i8n9n!n#n$n%npm'n(n)n*nBl=iqm?iClrmid@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSb)oh xr+nasbsBjCjDjad,n-n.n/n:n;nPl1orc2oEjFjGjoppprqqpyrzrcsArBrCrDrErsqrpFr,bFbtqsftf] 5b-cufvfudjcwfxfGbGr[oEpVmWm.cvdyf%r'r(rXmuq^ _ rbYqbcccYmC ` { | {l6bKc|lBcvqwqNoxqyqzqAq} ~ ZmHb4l5l6lHjFeGeIjJjKjLjMjNjOjPjQjRj=n?n@n[n]n^nsm_n`n{n|nDlSjtmTjElumjdUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%bspi Hr}ndses_j`j{jbd~naobocodoeoQl3osc4o|j}j~jtpupBqvpIrJrfsKrLrMrNrOrCqwpPr-bIbDqzfAfab7b/cBfCfwdkcDfEfJbQr]oFp0m1m:cxdFf)r*r+r2mEqbbcbsbZqdcec3mD dbebfb}l8bLc~lCcFqGqOoHqIqJqKqgbhb4mKb7l8l9lakVeWebkckdkekfkgkhkikjkkkfogohoiojokovmlomonoooFllkwmmkGlxmkdnkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bxpc RrpogshsYkZk0kcdqorosotouovoRl5otc6o1k2k3k*o+o1p,oSrTrisUrVrWrXrYr2p-oZrWbib3p;c=cE PbQc?c@cWc]b[c]cjb0r^oGp-l.lRcXc^cRqSqTq/l4pkblbM %p=b?b:ll F G H TfQbFcUfwc5p6pIo7p8p9p!pI J ;lmbMfNfOf4k#e$e5k6k7k8k9k!k#k$k%k'kwoxoyozoAoBoymCoDoEoFoHl(kzm)kIlAmld*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb.o

118 if config: 2d 0q5m,r-rVfWfXf_c6m7m8m9m!m#mJlPolcQoYfZf0f_o`o'p{o1q2q.r3q4q5q6q7q(p|o8q(btb)p@e[eN XbYc]e^emdfc_e`eub9q/oypBmCmZcnd{e1r2r3rDm*pO P nbUq^b_bEmm Q R S =lYbGc?lxc+p,pJo-p.p/p:pT U FmvbSlTlUl1fydzd2f3f4f5f6f7f8f9f!f#f$m%m'm(m)m*mam+m,m-m.mrl$fbm%fslcmdd'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9b}oe !q/m/r:rogpgqg`c:m;m=m?m@m[mKlRomcSorgsgtg~oap;pbp#q$q;r%q'q(q)q*q=pcp+q)bwb?p|e}eV Zb0c~eafodgcbfcfxb,q:ozpGmHm1cpddf4r5r6rIm@pW X obVq`b{bJmn Y Z 0 @l0bHc[lyc[p]pKo^p_p`p{p1 2 KmybVlWlXlugOdPdvgwgxgygzgAgBgCgDgEg]m^m_m`m{m|mdm}m~manbntlFgemGgulfmedHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!bdpf -qcn=r?r+g,g-g{cdnenfngnhninLlToncUo.g/g:gepfp|pgp.q/q@r:q;q=q?q@q}php[q*bzb~pefff3 1b2cgfhfqdhcifjfAb]q;oApLmMm3crdkf7r8r9rNmaq4 5 pbWq|b}bOmo 6 7 8 ]l2bIc^lzcbqcqLodqeqfqgq9 ! PmBbYlZl0l;g4d5d=g?g@g[g]g^g_g`g{g|gjnknlnmnnnongmpnqnrnsnvl}ghm~gwlimfdahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bipa ^qtn[r]rLhMhNh|cunvnwnxnynznMlVoocWoOhPhQh7o8oHp9o_q`q^r{q|q}q~qarIp!obrUb# Jp4c5cp LbMc6c7cSc@b8c9c$ cr=oBp!l#lNcTc!cLqMqNq$lKp% ' K #p.b/b%lj q r s PfMbDcQfucLpMpGoNpOpPpQpt u 'l( GfHfIfRh-d.dShThUhVhWhXhYhZh0h1hAnBnCnDnEnFnjmGnHnInJnxl2hkm3hyllmgd4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRb#og drKn_r`reifigi}cLnMnNnOnPnQnNlXopcYohiiijijpkphqlperfr{rgrhrirjrkriqmplr+bCbjqlfmf) 3b#cnfofsdicpfqfDbmr?oCpQmRm$ctdrf!r#r$rSmkq* + qbXq~bacTmv , - . _l4bJc`lAclqmqMonqoqpqqq/ : UmEb1l2l3lki~daeliminioipiqirisitiuiRnSnTnUnVnWnmmXnYnZn0nzlvinmwiAlomhdxiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$bnpb nr1n|r}r8i9i!i~c2n3n4n5n6n7nOlZoqc0o#i$i%i$o%oRp'oorpr~rqrrrsrtrurSp(ovrVb; Tp%c'cw NbOc(c)cUc[b*c+c= wr@oDp(l)lPcVc,cOqPqQq*lUp? @ L $p:b;b+lk x y z RfObEcSfvcVpWpHoXpYpZp0pA B ,l[ JfKfLf'ipeqe(i)i*i+i,i-i.i/i:i;i8n9n!n#n$n%npm'n(n)n*nBl=iqm?iClrmid@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSb)oh xr+nasbsBjCjDjad,n-n.n/n:n;nPl1orc2oEjFjGjoppprqqpyrzrcsArBrCrDrErsqrpFr,bFbtqsftf] 5b-cufvfudjcwfxfGbGr[oEpVmWm.cvdyf%r'r(rXmuq^ _ rbYqbcccYmC ` { | {l6bKc|lBcvqwqNoxqyqzqAq} ~ ZmHb4l5l6lHjFeGeIjJjKjLjMjNjOjPjQjRj=n?n@n[n]n^nsm_n`n{n|nDlSjtmTjElumjdUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%bspi Hr}ndses_j`j{jbd~naobocodoeoQl3osc4o|j}j~jtpupBqvpIrJrfsKrLrMrNrOrCqwpPr-bIbDqzfAfab7b/cBfCfwdkcDfEfJbQr]oFp0m1m:cxdFf)r*r+r2mEqbbcbsbZqdcec3mD dbebfb}l8bLc~lCcFqGqOoHqIqJqKqgbhb4mKb7l8l9lakVeWebkckdkekfkgkhkikjkkkfogohoiojokovmlomonoooFllkwmmkGlxmkdnkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bxpc RrpogshsYkZk0kcdqorosotouovoRl5otc6o1k2k3k*o+o1p,oSrTrisUrVrWrXrYr2p-oZrWbib3p;c=cE PbQc?c@cWc]b[c]cjb0r^oGp-l.lRcXc^cRqSqTq/l4pkblbM %p=b?b:ll F G H TfQbFcUfwc5p6pIo7p8p9p!pI J ;lmbMfNfOf4k#e$e5k6k7k8k9k!k#k$k%k'kwoxoyozoAoBoymCoDoEoFoHl(kzm)kIlAmld*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb.o

119 return config.get("table", False) or False 2d 0q5m,r-rVfWfXf_c6m7m8m9m!m#mJlPolcQoYfZf0f_o`o'p{o1q2q.r3q4q5q6q7q(p|o8q(btb)p@e[eN XbYc]e^emdfc_e`eub9q/oypBmCmZcnd{e1r2r3rDm*pO P nbUq^b_bEmm Q R S =lYbGc?lxc+p,pJo-p.p/p:pT U FmvbSlTlUl1fydzd2f3f4f5f6f7f8f9f!f#f$m%m'm(m)m*mam+m,m-m.mrl$fbm%fslcmdd'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9b}oe !q/m/r:rogpgqg`c:m;m=m?m@m[mKlRomcSorgsgtg~oap;pbp#q$q;r%q'q(q)q*q=pcp+q)bwb?p|e}eV Zb0c~eafodgcbfcfxb,q:ozpGmHm1cpddf4r5r6rIm@pW X obVq`b{bJmn Y Z 0 @l0bHc[lyc[p]pKo^p_p`p{p1 2 KmybVlWlXlugOdPdvgwgxgygzgAgBgCgDgEg]m^m_m`m{m|mdm}m~manbntlFgemGgulfmedHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!bdpf -qcn=r?r+g,g-g{cdnenfngnhninLlToncUo.g/g:gepfp|pgp.q/q@r:q;q=q?q@q}php[q*bzb~pefff3 1b2cgfhfqdhcifjfAb]q;oApLmMm3crdkf7r8r9rNmaq4 5 pbWq|b}bOmo 6 7 8 ]l2bIc^lzcbqcqLodqeqfqgq9 ! PmBbYlZl0l;g4d5d=g?g@g[g]g^g_g`g{g|gjnknlnmnnnongmpnqnrnsnvl}ghm~gwlimfdahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bipa ^qtn[r]rLhMhNh|cunvnwnxnynznMlVoocWoOhPhQh7o8oHp9o_q`q^r{q|q}q~qarIp!obrUb# Jp4c5cp LbMc6c7cSc@b8c9c$ cr=oBp!l#lNcTc!cLqMqNq$lKp% ' K #p.b/b%lj q r s PfMbDcQfucLpMpGoNpOpPpQpt u 'l( GfHfIfRh-d.dShThUhVhWhXhYhZh0h1hAnBnCnDnEnFnjmGnHnInJnxl2hkm3hyllmgd4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRb#og drKn_r`reifigi}cLnMnNnOnPnQnNlXopcYohiiijijpkphqlperfr{rgrhrirjrkriqmplr+bCbjqlfmf) 3b#cnfofsdicpfqfDbmr?oCpQmRm$ctdrf!r#r$rSmkq* + qbXq~bacTmv , - . _l4bJc`lAclqmqMonqoqpqqq/ : UmEb1l2l3lki~daeliminioipiqirisitiuiRnSnTnUnVnWnmmXnYnZn0nzlvinmwiAlomhdxiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$bnpb nr1n|r}r8i9i!i~c2n3n4n5n6n7nOlZoqc0o#i$i%i$o%oRp'oorpr~rqrrrsrtrurSp(ovrVb; Tp%c'cw NbOc(c)cUc[b*c+c= wr@oDp(l)lPcVc,cOqPqQq*lUp? @ L $p:b;b+lk x y z RfObEcSfvcVpWpHoXpYpZp0pA B ,l[ JfKfLf'ipeqe(i)i*i+i,i-i.i/i:i;i8n9n!n#n$n%npm'n(n)n*nBl=iqm?iClrmid@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSb)oh xr+nasbsBjCjDjad,n-n.n/n:n;nPl1orc2oEjFjGjoppprqqpyrzrcsArBrCrDrErsqrpFr,bFbtqsftf] 5b-cufvfudjcwfxfGbGr[oEpVmWm.cvdyf%r'r(rXmuq^ _ rbYqbcccYmC ` { | {l6bKc|lBcvqwqNoxqyqzqAq} ~ ZmHb4l5l6lHjFeGeIjJjKjLjMjNjOjPjQjRj=n?n@n[n]n^nsm_n`n{n|nDlSjtmTjElumjdUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%bspi Hr}ndses_j`j{jbd~naobocodoeoQl3osc4o|j}j~jtpupBqvpIrJrfsKrLrMrNrOrCqwpPr-bIbDqzfAfab7b/cBfCfwdkcDfEfJbQr]oFp0m1m:cxdFf)r*r+r2mEqbbcbsbZqdcec3mD dbebfb}l8bLc~lCcFqGqOoHqIqJqKqgbhb4mKb7l8l9lakVeWebkckdkekfkgkhkikjkkkfogohoiojokovmlomonoooFllkwmmkGlxmkdnkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bxpc RrpogshsYkZk0kcdqorosotouovoRl5otc6o1k2k3k*o+o1p,oSrTrisUrVrWrXrYr2p-oZrWbib3p;c=cE PbQc?c@cWc]b[c]cjb0r^oGp-l.lRcXc^cRqSqTq/l4pkblbM %p=b?b:ll F G H TfQbFcUfwc5p6pIo7p8p9p!pI J ;lmbMfNfOf4k#e$e5k6k7k8k9k!k#k$k%k'kwoxoyozoAoBoymCoDoEoFoHl(kzm)kIlAmld*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb.o

120 return False 1defagbhic

121 

122 

123def get_relationship_to( 1defagbhic

124 name: str, 

125 rel_info: "RelationshipInfo", 

126 annotation: Any, 

127) -> Any: 

128 origin = get_origin(annotation) 2d xce ycf zca ucg Acb vch Bci Ccc wc

129 use_annotation = annotation 2d xce ycf zca ucg Acb vch Bci Ccc wc

130 # Direct relationships (e.g. 'Team' or Team) have None as an origin 

131 if origin is None: 2d xce ycf zca ucg Acb vch Bci Ccc wc

132 if isinstance(use_annotation, ForwardRef): 2d xce ycf zca ucg Acb vch Bci Ccc wc

133 use_annotation = use_annotation.__forward_arg__ 1defagbhic

134 else: 

135 return use_annotation 2d xce ycf zca ucg Acb vch Bci Ccc wc

136 # If Union (e.g. Optional), get the real field 

137 elif _is_union_type(origin): 2d xce ycf zca ucg Acb vch Bci Ccc wc

138 use_annotation = get_args(annotation) 1defagbhic

139 if len(use_annotation) > 2: 1defagbhic

140 raise ValueError("Cannot have a (non-optional) union as a SQLAlchemy field") 

141 arg1, arg2 = use_annotation 1defagbhic

142 if arg1 is NoneType and arg2 is not NoneType: 1defagbhic

143 use_annotation = arg2 

144 elif arg2 is NoneType and arg1 is not NoneType: 1defagbhic

145 use_annotation = arg1 1defagbhic

146 else: 

147 raise ValueError( 

148 "Cannot have a Union of None and None as a SQLAlchemy field" 

149 ) 

150 

151 # If a list, then also get the real field 

152 elif origin is list: 2d xce ycf zca ucg Acb vch Bci Ccc wc

153 use_annotation = get_args(annotation)[0] 2d xce ycf zca ucg Acb vch Bci Ccc wc

154 

155 return get_relationship_to(name=name, rel_info=rel_info, annotation=use_annotation) 2d xce ycf zca ucg Acb vch Bci Ccc wc

156 

157 

158def is_field_noneable(field: "FieldInfo") -> bool: 1defagbhic

159 if getattr(field, "nullable", Undefined) is not Undefined: 2d tb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{eDmO P nb^b_bEmm Q R S YbGcxcT U Fmvb9be wb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddfImW X ob`b{bJmn Y Z 0 0bHcyc1 2 Kmyb!bf zbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkfNm4 5 pb|b}bOmo 6 7 8 2bIczc9 ! PmBb#ba # 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!c$l% ' K .b/b%lj q r s MbDcuct u 'l( Rbg Cblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrfSm* + qb~bacTmv , - . 4bJcAc/ : UmEb$bb ; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,c*l? @ L :b;b+lk x y z ObEcvcA B ,l[ Sbh Fbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyfXm^ _ rbbcccYmC ` { | 6bKcBc} ~ ZmHb%bi IbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf2mbbcbsbdcec3mD dbebfb8bLcCcgbhb4mKb'bc ib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^c/lkblbM =b?b:ll F G H QbFcwcI J ;lmbTb

160 return field.nullable # type: ignore 2YbGc0bHc2bIcMbDc4bJcObEc6bKc8bLcQbFc

161 origin = get_origin(field.annotation) 2d tb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{eDmO P nb^b_bEmm Q R S GcxcT U Fmvb9be wb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddfImW X ob`b{bJmn Y Z 0 Hcyc1 2 Kmyb!bf zbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkfNm4 5 pb|b}bOmo 6 7 8 Iczc9 ! PmBb#ba # 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!c$l% ' K .b/b%lj q r s Dcuct u 'l( Rbg Cblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrfSm* + qb~bacTmv , - . JcAc/ : UmEb$bb ; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,c*l? @ L :b;b+lk x y z EcvcA B ,l[ Sbh Fbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyfXm^ _ rbbcccYmC ` { | KcBc} ~ ZmHb%bi IbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf2mbbcbsbdcec3mD dbebfbLcCcgbhb4mKb'bc ib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^c/lkblbM =b?b:ll F G H FcwcI J ;lmbTb

162 if origin is not None and _is_union_type(origin): 2d tb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{eDmO P nb^b_bEmm Q R S GcxcT U Fmvb9be wb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddfImW X ob`b{bJmn Y Z 0 Hcyc1 2 Kmyb!bf zbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkfNm4 5 pb|b}bOmo 6 7 8 Iczc9 ! PmBb#ba # 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!c$l% ' K .b/b%lj q r s Dcuct u 'l( Rbg Cblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrfSm* + qb~bacTmv , - . JcAc/ : UmEb$bb ; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,c*l? @ L :b;b+lk x y z EcvcA B ,l[ Sbh Fbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyfXm^ _ rbbcccYmC ` { | KcBc} ~ ZmHb%bi IbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf2mbbcbsbdcec3mD dbebfbLcCcgbhb4mKb'bc ib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^c/lkblbM =b?b:ll F G H FcwcI J ;lmbTb

163 args = get_args(field.annotation) 2d N XbZcndO P nbm Q R S GcxcT U e V Zb1cpdW X obn Y Z 0 Hcyc1 2 f 3 1b3crd4 5 pbo 6 7 8 Iczc9 ! a p LbNcTc% ' K j q r s Dcuct u g ) 3b$ctd* + qbv , - . JcAc/ : b w NbPcVc? @ L k x y z EcvcA B h ] 5b.cvd^ _ rbC ` { | KcBc} ~ i ab7b:cxdbbcbsbD dbebfbLcCcgbhbc E PbRcXckblbM l F G H FcwcI J

164 if any(arg is NoneType for arg in args): 2d N XbZcndO P nbm Q R S GcxcT U e V Zb1cpdW X obn Y Z 0 Hcyc1 2 f 3 1b3crd4 5 pbo 6 7 8 Iczc9 ! a p LbNcTc% ' K j q r s Dcuct u g ) 3b$ctd* + qbv , - . JcAc/ : b w NbPcVc? @ L k x y z EcvcA B h ] 5b.cvd^ _ rbC ` { | KcBc} ~ i ab7b:cxdbbcbsbD dbebfbLcCcgbhbc E PbRcXckblbM l F G H FcwcI J

165 return True 2d N XbZcndO P nbm Q R S GcxcT U e V Zb1cpdW X obn Y Z 0 Hcyc1 2 f 3 1b3crd4 5 pbo 6 7 8 Iczc9 ! a p LbNcTc% ' K j q r s Dcuct u g ) 3b$ctd* + qbv , - . JcAc/ : b w NbPcVc? @ L k x y z EcvcA B h ] 5b.cvd^ _ rbC ` { | KcBc} ~ i ab7b:cxdbbcbsbD dbebfbLcCcgbhbc E PbRcXckblbM l F G H FcwcI J

166 if not field.is_required(): 2d tb@e[eN XbYc]e^emdfc_e`eubBmCmZc{eDmO P nb^b_bEmm Q R S GcxcT U Fmvb9be wb|e}eV Zb0c~eafodgcbfcfxbGmHm1cdfImW X ob`b{bJmn Y Z 0 Hcyc1 2 Kmyb!bf zbefff3 1b2cgfhfqdhcifjfAbLmMm3ckfNm4 5 pb|b}bOmo 6 7 8 Iczc9 ! PmBb#ba # 4c5cp LbMc6c7cSc@b8c9c$ !l#lNc!c$l% ' K .b/b%lj q r s Dcuct u 'l( Rbg Cblfmf) 3b#cnfofsdicpfqfDbQmRm$crfSm* + qb~bacTmv , - . JcAc/ : UmEb$bb ; %c'cw NbOc(c)cUc[b*c+c= (l)lPc,c*l? @ L :b;b+lk x y z EcvcA B ,l[ Sbh Fbsftf] 5b-cufvfudjcwfxfGbVmWm.cyfXm^ _ rbbcccYmC ` { | KcBc} ~ ZmHb%bi IbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cFf2mbbcbsbdcec3mD dbebfbLcCcgbhb4mKb'bc ib;c=cE PbQc?c@cWc]b[c]cjb-l.lRc^c/lkblbM =b?b:ll F G H FcwcI J ;lmbTb

167 if field.default is Undefined: 2d Gce Hcf Ica Dcg Jcb Ech Kci Lcc Fc

168 return False 1defagbhic

169 if field.annotation is None or field.annotation is NoneType: 2d Gce Hcf Ica Dcg Jcb Ech Kci Lcc Fc

170 return True 

171 return False 2d Gce Hcf Ica Dcg Jcb Ech Kci Lcc Fc

172 return False 2d tb@e[eN XbYc]e^emdfc_e`eubBmCmZc{eDmO P nb^b_bEmm Q R S GcxcT U Fmvb9be wb|e}eV Zb0c~eafodgcbfcfxbGmHm1cdfImW X ob`b{bJmn Y Z 0 Hcyc1 2 Kmyb!bf zbefff3 1b2cgfhfqdhcifjfAbLmMm3ckfNm4 5 pb|b}bOmo 6 7 8 Iczc9 ! PmBb#ba # 4c5cp LbMc6c7cSc@b8c9c$ !l#lNc!c$l% ' K .b/b%lj q r s Dcuct u 'l( Rbg Cblfmf) 3b#cnfofsdicpfqfDbQmRm$crfSm* + qb~bacTmv , - . JcAc/ : UmEb$bb ; %c'cw NbOc(c)cUc[b*c+c= (l)lPc,c*l? @ L :b;b+lk x y z EcvcA B ,l[ Sbh Fbsftf] 5b-cufvfudjcwfxfGbVmWm.cyfXm^ _ rbbcccYmC ` { | KcBc} ~ ZmHb%bi IbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cFf2mbbcbsbdcec3mD dbebfbLcCcgbhb4mKb'bc ib;c=cE PbQc?c@cWc]b[c]cjb-l.lRc^c/lkblbM =b?b:ll F G H FcwcI J ;lmbTb

173 

174 

175def get_sa_type_from_type_annotation(annotation: Any) -> Any: 1defagbhic

176 # Resolve Optional fields 

177 if annotation is None: 2d (btb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{eDmO P nb^b_bEmm Q R S =lYbGc?lxcT U FmvbSlTlUl9be )bwb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddfImW X ob`b{bJmn Y Z 0 @l0bHc[lyc1 2 KmybVlWlXl!bf *bzbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkfNm4 5 pb|b}bOmo 6 7 8 ]l2bIc^lzc9 ! PmBbYlZl0l#ba Ub# 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!c$l% ' K .b/b%lj q r s PfMbDcQfuct u 'l( GfHfIfRbg +bCblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrfSm* + qb~bacTmv , - . _l4bJc`lAc/ : UmEb1l2l3l$bb Vb; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,c*l? @ L :b;b+lk x y z RfObEcSfvcA B ,l[ JfKfLfSbh ,bFbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyfXm^ _ rbbcccYmC ` { | {l6bKc|lBc} ~ ZmHb4l5l6l%bi -bIbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf2mbbcbsbdcec3mD dbebfb}l8bLc~lCcgbhb4mKb7l8l9l'bc Wbib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^c/lkblbM =b?b:ll F G H TfQbFcUfwcI J ;lmbMfNfOfTb

178 raise ValueError("Missing field type") 

179 origin = get_origin(annotation) 2d (btb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{eDmO P nb^b_bEmm Q R S =lYbGc?lxcT U FmvbSlTlUl9be )bwb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddfImW X ob`b{bJmn Y Z 0 @l0bHc[lyc1 2 KmybVlWlXl!bf *bzbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkfNm4 5 pb|b}bOmo 6 7 8 ]l2bIc^lzc9 ! PmBbYlZl0l#ba Ub# 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!c$l% ' K .b/b%lj q r s PfMbDcQfuct u 'l( GfHfIfRbg +bCblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrfSm* + qb~bacTmv , - . _l4bJc`lAc/ : UmEb1l2l3l$bb Vb; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,c*l? @ L :b;b+lk x y z RfObEcSfvcA B ,l[ JfKfLfSbh ,bFbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyfXm^ _ rbbcccYmC ` { | {l6bKc|lBc} ~ ZmHb4l5l6l%bi -bIbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf2mbbcbsbdcec3mD dbebfb}l8bLc~lCcgbhb4mKb7l8l9l'bc Wbib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^c/lkblbM =b?b:ll F G H TfQbFcUfwcI J ;lmbMfNfOfTb

180 if origin is None: 2d (btb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{eDmO P nb^b_bEmm Q R S =lYbGc?lxcT U FmvbSlTlUl9be )bwb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddfImW X ob`b{bJmn Y Z 0 @l0bHc[lyc1 2 KmybVlWlXl!bf *bzbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkfNm4 5 pb|b}bOmo 6 7 8 ]l2bIc^lzc9 ! PmBbYlZl0l#ba Ub# 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!c$l% ' K .b/b%lj q r s PfMbDcQfuct u 'l( GfHfIfRbg +bCblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrfSm* + qb~bacTmv , - . _l4bJc`lAc/ : UmEb1l2l3l$bb Vb; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,c*l? @ L :b;b+lk x y z RfObEcSfvcA B ,l[ JfKfLfSbh ,bFbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyfXm^ _ rbbcccYmC ` { | {l6bKc|lBc} ~ ZmHb4l5l6l%bi -bIbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf2mbbcbsbdcec3mD dbebfb}l8bLc~lCcgbhb4mKb7l8l9l'bc Wbib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^c/lkblbM =b?b:ll F G H TfQbFcUfwcI J ;lmbMfNfOfTb

181 return annotation 2d (btb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{eDmO P nb^b_bEmm Q R S =lYbGc?lxcT U FmvbSlTlUl9be )bwb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddfImW X ob`b{bJmn Y Z 0 @l0bHc[lyc1 2 KmybVlWlXl!bf *bzbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkfNm4 5 pb|b}bOmo 6 7 8 ]l2bIc^lzc9 ! PmBbYlZl0l#ba Ub# 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!c$l% ' K .b/b%lj q r s PfMbDcQfuct u 'l( GfHfIfRbg +bCblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrfSm* + qb~bacTmv , - . _l4bJc`lAc/ : UmEb1l2l3l$bb Vb; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,c*l? @ L :b;b+lk x y z RfObEcSfvcA B ,l[ JfKfLfSbh ,bFbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyfXm^ _ rbbcccYmC ` { | {l6bKc|lBc} ~ ZmHb4l5l6l%bi -bIbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf2mbbcbsbdcec3mD dbebfb}l8bLc~lCcgbhb4mKb7l8l9l'bc Wbib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^c/lkblbM =b?b:ll F G H TfQbFcUfwcI J ;lmbMfNfOfTb

182 elif origin is Annotated: 2d (btb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{eDmO P nb^b_bEmm Q R S =lYbGc?lxcT U FmvbSlTlUl9be )bwb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddfImW X ob`b{bJmn Y Z 0 @l0bHc[lyc1 2 KmybVlWlXl!bf *bzbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkfNm4 5 pb|b}bOmo 6 7 8 ]l2bIc^lzc9 ! PmBbYlZl0l#ba Ub# 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!c$l% ' K .b/b%lj q r s PfMbDcQfuct u 'l( GfHfIfRbg +bCblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrfSm* + qb~bacTmv , - . _l4bJc`lAc/ : UmEb1l2l3l$bb Vb; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,c*l? @ L :b;b+lk x y z RfObEcSfvcA B ,l[ JfKfLfSbh ,bFbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyfXm^ _ rbbcccYmC ` { | {l6bKc|lBc} ~ ZmHb4l5l6l%bi -bIbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf2mbbcbsbdcec3mD dbebfb}l8bLc~lCcgbhb4mKb7l8l9l'bc Wbib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^c/lkblbM =b?b:ll F G H TfQbFcUfwcI J ;lmbMfNfOfTb

183 type_, *metadata = get_args(annotation) 2d (btb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{eDmO P nb^b_bEmm Q R S =lYbGc?lxcT U FmvbSlTlUl9be )bwb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddfImW X ob`b{bJmn Y Z 0 @l0bHc[lyc1 2 KmybVlWlXl!bf *bzbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkfNm4 5 pb|b}bOmo 6 7 8 ]l2bIc^lzc9 ! PmBbYlZl0l#ba Ub# 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!c$l% ' K .b/b%lj q r s PfMbDcQfuct u 'l( GfHfIfRbg +bCblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrfSm* + qb~bacTmv , - . _l4bJc`lAc/ : UmEb1l2l3l$bb Vb; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,c*l? @ L :b;b+lk x y z RfObEcSfvcA B ,l[ JfKfLfSbh ,bFbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyfXm^ _ rbbcccYmC ` { | {l6bKc|lBc} ~ ZmHb4l5l6l%bi -bIbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf2mbbcbsbdcec3mD dbebfb}l8bLc~lCcgbhb4mKb7l8l9l'bc Wbib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^c/lkblbM =b?b:ll F G H TfQbFcUfwcI J ;lmbMfNfOfTb

184 type_ = get_sa_type_from_type_annotation(type_) 2d (btb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{eDmO P nb^b_bEmm Q R S =lYbGc?lxcT U FmvbSlTlUl9be )bwb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddfImW X ob`b{bJmn Y Z 0 @l0bHc[lyc1 2 KmybVlWlXl!bf *bzbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkfNm4 5 pb|b}bOmo 6 7 8 ]l2bIc^lzc9 ! PmBbYlZl0l#ba Ub# 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!c$l% ' K .b/b%lj q r s PfMbDcQfuct u 'l( GfHfIfRbg +bCblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrfSm* + qb~bacTmv , - . _l4bJc`lAc/ : UmEb1l2l3l$bb Vb; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,c*l? @ L :b;b+lk x y z RfObEcSfvcA B ,l[ JfKfLfSbh ,bFbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyfXm^ _ rbbcccYmC ` { | {l6bKc|lBc} ~ ZmHb4l5l6l%bi -bIbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf2mbbcbsbdcec3mD dbebfb}l8bLc~lCcgbhb4mKb7l8l9l'bc Wbib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^c/lkblbM =b?b:ll F G H TfQbFcUfwcI J ;lmbMfNfOfTb

185 # Like Pydantic, apply the last timezone constraint in Annotated. 

186 for meta in metadata: 2d (btb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{eDmO P nb^b_bEmm Q R S =lYbGc?lxcT U FmvbSlTlUl9be )bwb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddfImW X ob`b{bJmn Y Z 0 @l0bHc[lyc1 2 KmybVlWlXl!bf *bzbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkfNm4 5 pb|b}bOmo 6 7 8 ]l2bIc^lzc9 ! PmBbYlZl0l#ba Ub# 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!c$l% ' K .b/b%lj q r s PfMbDcQfuct u 'l( GfHfIfRbg +bCblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrfSm* + qb~bacTmv , - . _l4bJc`lAc/ : UmEb1l2l3l$bb Vb; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,c*l? @ L :b;b+lk x y z RfObEcSfvcA B ,l[ JfKfLfSbh ,bFbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyfXm^ _ rbbcccYmC ` { | {l6bKc|lBc} ~ ZmHb4l5l6l%bi -bIbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf2mbbcbsbdcec3mD dbebfb}l8bLc~lCcgbhb4mKb7l8l9l'bc Wbib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^c/lkblbM =b?b:ll F G H TfQbFcUfwcI J ;lmbMfNfOfTb

187 if meta is AwareDatetime or isinstance(meta, cast(type, AwareDatetime)): 2d (btb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{eDmO P nb^b_bEmm Q R S =lYbGc?lxcT U FmvbSlTlUl9be )bwb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddfImW X ob`b{bJmn Y Z 0 @l0bHc[lyc1 2 KmybVlWlXl!bf *bzbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkfNm4 5 pb|b}bOmo 6 7 8 ]l2bIc^lzc9 ! PmBbYlZl0l#ba Ub# 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!c$l% ' K .b/b%lj q r s PfMbDcQfuct u 'l( GfHfIfRbg +bCblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrfSm* + qb~bacTmv , - . _l4bJc`lAc/ : UmEb1l2l3l$bb Vb; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,c*l? @ L :b;b+lk x y z RfObEcSfvcA B ,l[ JfKfLfSbh ,bFbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyfXm^ _ rbbcccYmC ` { | {l6bKc|lBc} ~ ZmHb4l5l6l%bi -bIbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf2mbbcbsbdcec3mD dbebfb}l8bLc~lCcgbhb4mKb7l8l9l'bc Wbib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^c/lkblbM =b?b:ll F G H TfQbFcUfwcI J ;lmbMfNfOfTb

188 type_ = AwareDatetime 2XbZb1bLb3bNb5b7bPb

189 elif meta is NaiveDatetime or isinstance(meta, cast(type, NaiveDatetime)): 2d (btb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{eDmO P nb^b_bEmm Q R S =lYbGc?lxcT U FmvbSlTlUl9be )bwb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddfImW X ob`b{bJmn Y Z 0 @l0bHc[lyc1 2 KmybVlWlXl!bf *bzbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkfNm4 5 pb|b}bOmo 6 7 8 ]l2bIc^lzc9 ! PmBbYlZl0l#ba Ub# 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!c$l% ' K .b/b%lj q r s PfMbDcQfuct u 'l( GfHfIfRbg +bCblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrfSm* + qb~bacTmv , - . _l4bJc`lAc/ : UmEb1l2l3l$bb Vb; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,c*l? @ L :b;b+lk x y z RfObEcSfvcA B ,l[ JfKfLfSbh ,bFbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyfXm^ _ rbbcccYmC ` { | {l6bKc|lBc} ~ ZmHb4l5l6l%bi -bIbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf2mbbcbsbdcec3mD dbebfb}l8bLc~lCcgbhb4mKb7l8l9l'bc Wbib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^c/lkblbM =b?b:ll F G H TfQbFcUfwcI J ;lmbMfNfOfTb

190 type_ = NaiveDatetime 2XbmdZbod1bqdLbSc3bsdNbUc5bud7bwdPbWc

191 return type_ 2d (btb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{eDmO P nb^b_bEmm Q R S =lYbGc?lxcT U FmvbSlTlUl9be )bwb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddfImW X ob`b{bJmn Y Z 0 @l0bHc[lyc1 2 KmybVlWlXl!bf *bzbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkfNm4 5 pb|b}bOmo 6 7 8 ]l2bIc^lzc9 ! PmBbYlZl0l#ba Ub# 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!c$l% ' K .b/b%lj q r s PfMbDcQfuct u 'l( GfHfIfRbg +bCblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrfSm* + qb~bacTmv , - . _l4bJc`lAc/ : UmEb1l2l3l$bb Vb; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,c*l? @ L :b;b+lk x y z RfObEcSfvcA B ,l[ JfKfLfSbh ,bFbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyfXm^ _ rbbcccYmC ` { | {l6bKc|lBc} ~ ZmHb4l5l6l%bi -bIbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf2mbbcbsbdcec3mD dbebfb}l8bLc~lCcgbhb4mKb7l8l9l'bc Wbib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^c/lkblbM =b?b:ll F G H TfQbFcUfwcI J ;lmbMfNfOfTb

192 if _is_union_type(origin): 2d (btb@e[eN XbYc]e^emdfc_e`eubZcnd{eO P nbm Q R S =lYbGc?lxcT U vbSlTlUle )bwb|e}eV Zb0c~eafodgcbfcfxb1cpddfW X obn Y Z 0 @l0bHc[lyc1 2 ybVlWlXlf *bzbefff3 1b2cgfhfqdhcifjfAb3crdkf4 5 pbo 6 7 8 ]l2bIc^lzc9 ! BbYlZl0la Ub# 4c5cp LbMc6c7cSc@b8c9c$ NcTc!c% ' K j q r s PfMbDcQfuct u ( GfHfIfg +bCblfmf) 3b#cnfofsdicpfqfDb$ctdrf* + qbv , - . _l4bJc`lAc/ : Eb1l2l3lb Vb; %c'cw NbOc(c)cUc[b*c+c= PcVc,c? @ L k x y z RfObEcSfvcA B [ JfKfLfh ,bFbsftf] 5b-cufvfudjcwfxfGb.cvdyf^ _ rbC ` { | {l6bKc|lBc} ~ Hb4l5l6li -bIbzfAfab7b/cBfCfwdkcDfEfJb:cxdFfbbcbsbD dbebfb}l8bLc~lCcgbhbKb7l8l9lc Wbib;c=cE PbQc?c@cWc]b[c]cjbRcXc^ckblbM l F G H TfQbFcUfwcI J mbMfNfOf

193 bases = get_args(annotation) 2d (btb@e[eN XbYc]e^emdfc_e`eubZcnd{eO P nbm Q R S =lYbGc?lxcT U vbSlTlUle )bwb|e}eV Zb0c~eafodgcbfcfxb1cpddfW X obn Y Z 0 @l0bHc[lyc1 2 ybVlWlXlf *bzbefff3 1b2cgfhfqdhcifjfAb3crdkf4 5 pbo 6 7 8 ]l2bIc^lzc9 ! BbYlZl0la Ub# 4c5cp LbMc6c7cSc@b8c9c$ NcTc!c% ' K j q r s PfMbDcQfuct u ( GfHfIfg +bCblfmf) 3b#cnfofsdicpfqfDb$ctdrf* + qbv , - . _l4bJc`lAc/ : Eb1l2l3lb Vb; %c'cw NbOc(c)cUc[b*c+c= PcVc,c? @ L k x y z RfObEcSfvcA B [ JfKfLfh ,bFbsftf] 5b-cufvfudjcwfxfGb.cvdyf^ _ rbC ` { | {l6bKc|lBc} ~ Hb4l5l6li -bIbzfAfab7b/cBfCfwdkcDfEfJb:cxdFfbbcbsbD dbebfb}l8bLc~lCcgbhbKb7l8l9lc Wbib;c=cE PbQc?c@cWc]b[c]cjbRcXc^ckblbM l F G H TfQbFcUfwcI J mbMfNfOf

194 if len(bases) > 2: 2d (btb@e[eN XbYc]e^emdfc_e`eubZcnd{eO P nbm Q R S =lYbGc?lxcT U vbSlTlUle )bwb|e}eV Zb0c~eafodgcbfcfxb1cpddfW X obn Y Z 0 @l0bHc[lyc1 2 ybVlWlXlf *bzbefff3 1b2cgfhfqdhcifjfAb3crdkf4 5 pbo 6 7 8 ]l2bIc^lzc9 ! BbYlZl0la Ub# 4c5cp LbMc6c7cSc@b8c9c$ NcTc!c% ' K j q r s PfMbDcQfuct u ( GfHfIfg +bCblfmf) 3b#cnfofsdicpfqfDb$ctdrf* + qbv , - . _l4bJc`lAc/ : Eb1l2l3lb Vb; %c'cw NbOc(c)cUc[b*c+c= PcVc,c? @ L k x y z RfObEcSfvcA B [ JfKfLfh ,bFbsftf] 5b-cufvfudjcwfxfGb.cvdyf^ _ rbC ` { | {l6bKc|lBc} ~ Hb4l5l6li -bIbzfAfab7b/cBfCfwdkcDfEfJb:cxdFfbbcbsbD dbebfb}l8bLc~lCcgbhbKb7l8l9lc Wbib;c=cE PbQc?c@cWc]b[c]cjbRcXc^ckblbM l F G H TfQbFcUfwcI J mbMfNfOf

195 raise ValueError("Cannot have a (non-optional) union as a SQLAlchemy field") 

196 # Non-optional unions are not allowed 

197 if bases[0] is not NoneType and bases[1] is not NoneType: 2d (btb@e[eN XbYc]e^emdfc_e`eubZcnd{eO P nbm Q R S =lYbGc?lxcT U vbSlTlUle )bwb|e}eV Zb0c~eafodgcbfcfxb1cpddfW X obn Y Z 0 @l0bHc[lyc1 2 ybVlWlXlf *bzbefff3 1b2cgfhfqdhcifjfAb3crdkf4 5 pbo 6 7 8 ]l2bIc^lzc9 ! BbYlZl0la Ub# 4c5cp LbMc6c7cSc@b8c9c$ NcTc!c% ' K j q r s PfMbDcQfuct u ( GfHfIfg +bCblfmf) 3b#cnfofsdicpfqfDb$ctdrf* + qbv , - . _l4bJc`lAc/ : Eb1l2l3lb Vb; %c'cw NbOc(c)cUc[b*c+c= PcVc,c? @ L k x y z RfObEcSfvcA B [ JfKfLfh ,bFbsftf] 5b-cufvfudjcwfxfGb.cvdyf^ _ rbC ` { | {l6bKc|lBc} ~ Hb4l5l6li -bIbzfAfab7b/cBfCfwdkcDfEfJb:cxdFfbbcbsbD dbebfb}l8bLc~lCcgbhbKb7l8l9lc Wbib;c=cE PbQc?c@cWc]b[c]cjbRcXc^ckblbM l F G H TfQbFcUfwcI J mbMfNfOf

198 raise ValueError("Cannot have a (non-optional) union as a SQLAlchemy field") 2UlXl0lIf3lLf6l9lOf

199 # Optional unions are allowed 

200 use_type = bases[0] if bases[0] is not NoneType else bases[1] 2d (btb@e[eN XbYc]e^emdfc_e`eubZcnd{eO P nbm Q R S =lYbGc?lxcT U vbSlTlUle )bwb|e}eV Zb0c~eafodgcbfcfxb1cpddfW X obn Y Z 0 @l0bHc[lyc1 2 ybVlWlXlf *bzbefff3 1b2cgfhfqdhcifjfAb3crdkf4 5 pbo 6 7 8 ]l2bIc^lzc9 ! BbYlZl0la Ub# 4c5cp LbMc6c7cSc@b8c9c$ NcTc!c% ' K j q r s PfMbDcQfuct u ( GfHfIfg +bCblfmf) 3b#cnfofsdicpfqfDb$ctdrf* + qbv , - . _l4bJc`lAc/ : Eb1l2l3lb Vb; %c'cw NbOc(c)cUc[b*c+c= PcVc,c? @ L k x y z RfObEcSfvcA B [ JfKfLfh ,bFbsftf] 5b-cufvfudjcwfxfGb.cvdyf^ _ rbC ` { | {l6bKc|lBc} ~ Hb4l5l6li -bIbzfAfab7b/cBfCfwdkcDfEfJb:cxdFfbbcbsbD dbebfb}l8bLc~lCcgbhbKb7l8l9lc Wbib;c=cE PbQc?c@cWc]b[c]cjbRcXc^ckblbM l F G H TfQbFcUfwcI J mbMfNfOf

201 return get_sa_type_from_type_annotation(use_type) 2d (btb@e[eN XbYc]e^emdfc_e`eubZcnd{eO P nbm Q R S =lYbGc?lxcT U vbSlTlUle )bwb|e}eV Zb0c~eafodgcbfcfxb1cpddfW X obn Y Z 0 @l0bHc[lyc1 2 ybVlWlXlf *bzbefff3 1b2cgfhfqdhcifjfAb3crdkf4 5 pbo 6 7 8 ]l2bIc^lzc9 ! BbYlZl0la Ub# 4c5cp LbMc6c7cSc@b8c9c$ NcTc!c% ' K j q r s PfMbDcQfuct u ( GfHfIfg +bCblfmf) 3b#cnfofsdicpfqfDb$ctdrf* + qbv , - . _l4bJc`lAc/ : Eb1l2l3lb Vb; %c'cw NbOc(c)cUc[b*c+c= PcVc,c? @ L k x y z RfObEcSfvcA B [ JfKfLfh ,bFbsftf] 5b-cufvfudjcwfxfGb.cvdyf^ _ rbC ` { | {l6bKc|lBc} ~ Hb4l5l6li -bIbzfAfab7b/cBfCfwdkcDfEfJb:cxdFfbbcbsbD dbebfb}l8bLc~lCcgbhbKb7l8l9lc Wbib;c=cE PbQc?c@cWc]b[c]cjbRcXc^ckblbM l F G H TfQbFcUfwcI J mbMfNfOf

202 return origin 2SlTlVlWlYlZlGfHf1l2lJfKf4l5l7l8lMfNf

203 

204 

205def get_sa_type_from_field(field: Any) -> Any: 1defagbhic

206 type_: Any = field.rebuild_annotation() 2d (btb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{eDmO P nb^b_bEmm Q R S =lYbGc?lxcT U FmvbSlTlUl9be )bwb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddfImW X ob`b{bJmn Y Z 0 @l0bHc[lyc1 2 KmybVlWlXl!bf *bzbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkfNm4 5 pb|b}bOmo 6 7 8 ]l2bIc^lzc9 ! PmBbYlZl0l#ba Ub# 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!c$l% ' K .b/b%lj q r s PfMbDcQfuct u 'l( GfHfIfRbg +bCblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrfSm* + qb~bacTmv , - . _l4bJc`lAc/ : UmEb1l2l3l$bb Vb; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,c*l? @ L :b;b+lk x y z RfObEcSfvcA B ,l[ JfKfLfSbh ,bFbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyfXm^ _ rbbcccYmC ` { | {l6bKc|lBc} ~ ZmHb4l5l6l%bi -bIbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf2mbbcbsbdcec3mD dbebfb}l8bLc~lCcgbhb4mKb7l8l9l'bc Wbib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^c/lkblbM =b?b:ll F G H TfQbFcUfwcI J ;lmbMfNfOfTb

207 return get_sa_type_from_type_annotation(type_) 2d (btb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{eDmO P nb^b_bEmm Q R S =lYbGc?lxcT U FmvbSlTlUl9be )bwb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddfImW X ob`b{bJmn Y Z 0 @l0bHc[lyc1 2 KmybVlWlXl!bf *bzbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkfNm4 5 pb|b}bOmo 6 7 8 ]l2bIc^lzc9 ! PmBbYlZl0l#ba Ub# 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!c$l% ' K .b/b%lj q r s PfMbDcQfuct u 'l( GfHfIfRbg +bCblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrfSm* + qb~bacTmv , - . _l4bJc`lAc/ : UmEb1l2l3l$bb Vb; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,c*l? @ L :b;b+lk x y z RfObEcSfvcA B ,l[ JfKfLfSbh ,bFbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyfXm^ _ rbbcccYmC ` { | {l6bKc|lBc} ~ ZmHb4l5l6l%bi -bIbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf2mbbcbsbdcec3mD dbebfb}l8bLc~lCcgbhb4mKb7l8l9l'bc Wbib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^c/lkblbM =b?b:ll F G H TfQbFcUfwcI J ;lmbMfNfOfTb

208 

209 

210def get_field_metadata(field: Any) -> Any: 1defagbhic

211 for meta in field.metadata: 2d (btb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{eDmO P nb^b_bEmm Q R S =lYbGc?lxcT U FmvbSlTlUl9be )bwb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddfImW X ob`b{bJmn Y Z 0 @l0bHc[lyc1 2 KmybVlWlXl!bf *bzbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkfNm4 5 pb|b}bOmo 6 7 8 ]l2bIc^lzc9 ! PmBbYlZl0l#ba Ub# 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!c$l% ' K .b/b%lj q r s PfMbDcQfuct u 'l( GfHfIfRbg +bCblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrfSm* + qb~bacTmv , - . _l4bJc`lAc/ : UmEb1l2l3l$bb Vb; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,c*l? @ L :b;b+lk x y z RfObEcSfvcA B ,l[ JfKfLfSbh ,bFbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyfXm^ _ rbbcccYmC ` { | {l6bKc|lBc} ~ ZmHb4l5l6l%bi -bIbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf2mbbcbsbdcec3mD dbebfb}l8bLc~lCcgbhb4mKb7l8l9l'bc Wbib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^c/lkblbM =b?b:ll F G H TfQbFcUfwcI J ;lmbMfNfOfTb

212 if isinstance(meta, (PydanticMetadata, MaxLen)): 2d (btb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{eDmO P nb^b_bEmm Q R S =lYbGc?lxcT U FmvbSlTlUl9be )bwb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddfImW X ob`b{bJmn Y Z 0 @l0bHc[lyc1 2 KmybVlWlXl!bf *bzbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkfNm4 5 pb|b}bOmo 6 7 8 ]l2bIc^lzc9 ! PmBbYlZl0l#ba Ub# 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!c$l% ' K .b/b%lj q r s PfMbDcQfuct u 'l( GfHfIfRbg +bCblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrfSm* + qb~bacTmv , - . _l4bJc`lAc/ : UmEb1l2l3l$bb Vb; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,c*l? @ L :b;b+lk x y z RfObEcSfvcA B ,l[ JfKfLfSbh ,bFbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyfXm^ _ rbbcccYmC ` { | {l6bKc|lBc} ~ ZmHb4l5l6l%bi -bIbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf2mbbcbsbdcec3mD dbebfb}l8bLc~lCcgbhb4mKb7l8l9l'bc Wbib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^c/lkblbM =b?b:ll F G H TfQbFcUfwcI J ;lmbMfNfOfTb

213 return meta 1defagbhic

214 return FakeMetadata() 2d (btb@e[eN XbYc]e^emdfc_e`eubBmCmZcnd{eDmO P nb^b_bEmm Q R S =lYbGc?lxcT U FmvbSlTlUl9be )bwb|e}eV Zb0c~eafodgcbfcfxbGmHm1cpddfImW X ob`b{bJmn Y Z 0 @l0bHc[lyc1 2 KmybVlWlXl!bf *bzbefff3 1b2cgfhfqdhcifjfAbLmMm3crdkfNm4 5 pb|b}bOmo 6 7 8 ]l2bIc^lzc9 ! PmBbYlZl0l#ba Ub# 4c5cp LbMc6c7cSc@b8c9c$ !l#lNcTc!c$l% ' K .b/b%lj q r s PfMbDcQfuct u 'l( GfHfIfRbg +bCblfmf) 3b#cnfofsdicpfqfDbQmRm$ctdrfSm* + qb~bacTmv , - . _l4bJc`lAc/ : UmEb1l2l3l$bb Vb; %c'cw NbOc(c)cUc[b*c+c= (l)lPcVc,c*l? @ L :b;b+lk x y z RfObEcSfvcA B ,l[ JfKfLfSbh ,bFbsftf] 5b-cufvfudjcwfxfGbVmWm.cvdyfXm^ _ rbbcccYmC ` { | {l6bKc|lBc} ~ ZmHb4l5l6l%bi -bIbzfAfab7b/cBfCfwdkcDfEfJb0m1m:cxdFf2mbbcbsbdcec3mD dbebfb}l8bLc~lCcgbhb4mKb7l8l9l'bc Wbib;c=cE PbQc?c@cWc]b[c]cjb-l.lRcXc^c/lkblbM =b?b:ll F G H TfQbFcUfwcI J ;lmbMfNfOfTb

215 

216 

217def sqlmodel_table_construct( 1defagbhic

218 *, 

219 self_instance: _TSQLModel, 

220 values: dict[str, Any], 

221 _fields_set: set[str] | None = None, 

222) -> _TSQLModel: 

223 # Copy from Pydantic's BaseModel.construct() 

224 # Ref: https://github.com/pydantic/pydantic/blob/v2.5.2/pydantic/main.py#L198 

225 # Modified to not include everything, only the model fields, and to 

226 # set relationships 

227 # SQLModel override to get class SQLAlchemy __dict__ attributes and 

228 # set them back in after creating the object 

229 # new_obj = cls.__new__(cls) 

230 cls = type(self_instance) 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

231 old_dict = self_instance.__dict__.copy() 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

232 # End SQLModel override 

233 

234 fields_values: dict[str, Any] = {} 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

235 defaults: dict[ 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

236 str, Any 

237 ] = {} # keeping this separate from `fields_values` helps us compute `_fields_set` 

238 for name, field in cls.model_fields.items(): 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

239 if field.alias and field.alias in values: 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

240 fields_values[name] = values.pop(field.alias) 

241 elif name in values: 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

242 fields_values[name] = values.pop(name) 2VfWfXf_clcYfZf0ftbN ubO P ^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cmcrgsgtgwbV xbW X `b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cnc.g/g:gzb3 Ab4 5 |b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cocOhPhQh# p $ % ' .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cpchiiijiCb) Db* + ~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cqc#i$i%i; w = ? @ :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadrcEjFjGjFb] Gb^ _ bcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdsc|j}j~jIbabJbbbcbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdtc1k2k3kibE jbkblb=b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

243 elif not field.is_required(): 2VfWfXf_cJllcYfZf0f(btbN ubO P nbm Q R S T U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X obn Y Z 0 1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pbo 6 7 8 9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K j q r s t u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qbv , - . / : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L k x y z A B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbC ` { | } ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbD dbebfbgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM l F G H I J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

244 defaults[name] = field.get_default(call_default_factory=True) 2VfWfXf_cJllcYfZf0f(btbN ubO P nbm Q R S T U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X obn Y Z 0 1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pbo 6 7 8 9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K j q r s t u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qbv , - . / : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L k x y z A B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbC ` { | } ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbD dbebfbgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM l F G H I J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

245 if _fields_set is None: 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

246 _fields_set = set(fields_values.keys()) 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

247 fields_values.update(defaults) 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

248 

249 _extra: dict[str, Any] | None = None 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

250 if cls.model_config.get("extra") == "allow": 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

251 _extra = {} 

252 for k, v in values.items(): 

253 _extra[k] = v 

254 # SQLModel override, do not include everything, only the model fields 

255 # else: 

256 # fields_values.update(values) 

257 # End SQLModel override 

258 # SQLModel override 

259 # Do not set __dict__, instead use setattr to trigger SQLAlchemy 

260 # object.__setattr__(new_obj, "__dict__", fields_values) 

261 # instrumentation 

262 for key, value in {**old_dict, **fields_values}.items(): 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

263 setattr(self_instance, key, value) 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

264 # End SQLModel override 

265 object.__setattr__(self_instance, "__pydantic_fields_set__", _fields_set) 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

266 if not cls.__pydantic_root_model__: 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

267 object.__setattr__(self_instance, "__pydantic_extra__", _extra) 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

268 

269 if cls.__pydantic_post_init__: 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

270 self_instance.model_post_init(None) 

271 elif not cls.__pydantic_root_model__: 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

272 # Note: if there are any private attributes, cls.__pydantic_post_init__ would exist 

273 # Since it doesn't, that means that `__pydantic_private__` should be set to None 

274 object.__setattr__(self_instance, "__pydantic_private__", None) 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

275 # SQLModel override, set relationships 

276 # Get and set any relationship objects 

277 for key in self_instance.__sqlmodel_relationships__: 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

278 value = values.get(key, Undefined) 2m ydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdn OdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3do 4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,dj -d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}dv ~daebecedeeefegeheiejekelemeneoek peqereseteuevewexeyezeAeBeCeDeEeC FeGeHeIeJeKeLeMeNeOePeQeReSeTeUeD VeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!el #e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e

279 if value is not Undefined: 2m ydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdn OdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3do 4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,dj -d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}dv ~daebecedeeefegeheiejekelemeneoek peqereseteuevewexeyezeAeBeCeDeEeC FeGeHeIeJeKeLeMeNeOePeQeReSeTeUeD VeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!el #e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e

280 setattr(self_instance, key, value) 2m ydzdAdBdCdDdEdFdGdHdIdJdKdLdMdNdn OdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3do 4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,dj -d.d/d:d;d=d?d@d[d]d^d_d`d{d|d}dv ~daebecedeeefegeheiejekelemeneoek peqereseteuevewexeyezeAeBeCeDeEeC FeGeHeIeJeKeLeMeNeOePeQeReSeTeUeD VeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!el #e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e

281 # End SQLModel override 

282 return self_instance 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

283 

284 

285def sqlmodel_validate( 1defagbhic

286 cls: type[_TSQLModel], 

287 obj: Any, 

288 *, 

289 strict: bool | None = None, 

290 from_attributes: bool | None = None, 

291 context: dict[str, Any] | None = None, 

292 update: dict[str, Any] | None = None, 

293) -> _TSQLModel: 

294 if not is_table_model_class(cls): 25m6m7m8m9m!m#mPolcQo_o`o{o|oXbfc/oypJo$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd}o/m:m;m=m?m@m[mRomcSo~oapbpcpZbgc:ozpKo]m^m_m`m{m|mdm}m~manbntlemulfmeddpcndnenfngnhninToncUoepfpgphp1bhc;oApLojnknlnmnnnongmpnqnrnsnvlhmwlimfdiptnunvnwnxnynznVoocWo7o8o9o!oLb@b=oBpGoAnBnCnDnEnFnjmGnHnInJnxlkmyllmgd#oKnLnMnNnOnPnQnXopcYojpkplpmp3bic?oCpMoRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhdnp1n2n3n4n5n6n7nZoqc0o$o%o'o(oNb[b@oDpHo8n9n!n#n$n%npm'n(n)n*nBlqmClrmid)o+n,n-n.n/n:n;n1orc2oopppqprp5bjc[oEpNo=n?n@n[n]n^nsm_n`n{n|nDltmElumjdsp}n~naobocodoeo3osc4otpupvpwp7bkc]oFpOofogohoiojokovmlomonoooFlwmGlxmkdxppoqorosotouovo5otc6o*o+o,o-oPb]b^oGpIowoxoyozoAoBoymCoDoEoFoHlzmIlAmld.o

295 new_obj: _TSQLModel = cls.__new__(cls) 2_o`o{o|o/oypJo}o~oapbpcp:ozpKodpepfpgphp;oApLoip7o8o9o!o=oBpGo#ojpkplpmp?oCpMonp$o%o'o(o@oDpHo)oopppqprp[oEpNosptpupvpwp]oFpOoxp*o+o,o-o^oGpIo.o

296 else: 

297 # If table, create the new instance normally to make SQLAlchemy create 

298 # the _sa_instance_state attribute 

299 # The wrapper of this function should use with _partial_init() 

300 with partial_init(): 25m6m7m8m9m!m#mPolcQoXbfc$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd/m:m;m=m?m@m[mRomcSoZbgc]m^m_m`m{m|mdm}m~manbntlemulfmedcndnenfngnhninToncUo1bhcjnknlnmnnnongmpnqnrnsnvlhmwlimfdtnunvnwnxnynznVoocWoLb@bAnBnCnDnEnFnjmGnHnInJnxlkmyllmgdKnLnMnNnOnPnQnXopcYo3bicRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhd1n2n3n4n5n6n7nZoqc0oNb[b8n9n!n#n$n%npm'n(n)n*nBlqmClrmid+n,n-n.n/n:n;n1orc2o5bjc=n?n@n[n]n^nsm_n`n{n|nDltmElumjd}n~naobocodoeo3osc4o7bkcfogohoiojokovmlomonoooFlwmGlxmkdpoqorosotouovo5otc6oPb]bwoxoyozoAoBoymCoDoEoFoHlzmIlAmld

301 new_obj = cls() 25m6m7m8m9m!m#mPolcQoXbfc$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd/m:m;m=m?m@m[mRomcSoZbgc]m^m_m`m{m|mdm}m~manbntlemulfmedcndnenfngnhninToncUo1bhcjnknlnmnnnongmpnqnrnsnvlhmwlimfdtnunvnwnxnynznVoocWoLb@bAnBnCnDnEnFnjmGnHnInJnxlkmyllmgdKnLnMnNnOnPnQnXopcYo3bicRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhd1n2n3n4n5n6n7nZoqc0oNb[b8n9n!n#n$n%npm'n(n)n*nBlqmClrmid+n,n-n.n/n:n;n1orc2o5bjc=n?n@n[n]n^nsm_n`n{n|nDltmElumjd}n~naobocodoeo3osc4o7bkcfogohoiojokovmlomonoooFlwmGlxmkdpoqorosotouovo5otc6oPb]bwoxoyozoAoBoymCoDoEoFoHlzmIlAmld

302 # SQLModel Override to get class SQLAlchemy __dict__ attributes and 

303 # set them back in after creating the object 

304 old_dict = new_obj.__dict__.copy() 25m6m7m8m9m!m#mPolcQo_o`o{o|oXbfc/oypJo$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd}o/m:m;m=m?m@m[mRomcSo~oapbpcpZbgc:ozpKo]m^m_m`m{m|mdm}m~manbntlemulfmeddpcndnenfngnhninToncUoepfpgphp1bhc;oApLojnknlnmnnnongmpnqnrnsnvlhmwlimfdiptnunvnwnxnynznVoocWo7o8o9o!oLb@b=oBpGoAnBnCnDnEnFnjmGnHnInJnxlkmyllmgd#oKnLnMnNnOnPnQnXopcYojpkplpmp3bic?oCpMoRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhdnp1n2n3n4n5n6n7nZoqc0o$o%o'o(oNb[b@oDpHo8n9n!n#n$n%npm'n(n)n*nBlqmClrmid)o+n,n-n.n/n:n;n1orc2oopppqprp5bjc[oEpNo=n?n@n[n]n^nsm_n`n{n|nDltmElumjdsp}n~naobocodoeo3osc4otpupvpwp7bkc]oFpOofogohoiojokovmlomonoooFlwmGlxmkdxppoqorosotouovo5otc6o*o+o,o-oPb]b^oGpIowoxoyozoAoBoymCoDoEoFoHlzmIlAmld.o

305 use_obj = obj 25m6m7m8m9m!m#mPolcQo_o`o{o|oXbfc/oypJo$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd}o/m:m;m=m?m@m[mRomcSo~oapbpcpZbgc:ozpKo]m^m_m`m{m|mdm}m~manbntlemulfmeddpcndnenfngnhninToncUoepfpgphp1bhc;oApLojnknlnmnnnongmpnqnrnsnvlhmwlimfdiptnunvnwnxnynznVoocWo7o8o9o!oLb@b=oBpGoAnBnCnDnEnFnjmGnHnInJnxlkmyllmgd#oKnLnMnNnOnPnQnXopcYojpkplpmp3bic?oCpMoRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhdnp1n2n3n4n5n6n7nZoqc0o$o%o'o(oNb[b@oDpHo8n9n!n#n$n%npm'n(n)n*nBlqmClrmid)o+n,n-n.n/n:n;n1orc2oopppqprp5bjc[oEpNo=n?n@n[n]n^nsm_n`n{n|nDltmElumjdsp}n~naobocodoeo3osc4otpupvpwp7bkc]oFpOofogohoiojokovmlomonoooFlwmGlxmkdxppoqorosotouovo5otc6o*o+o,o-oPb]b^oGpIowoxoyozoAoBoymCoDoEoFoHlzmIlAmld.o

306 if isinstance(obj, dict) and update: 25m6m7m8m9m!m#mPolcQo_o`o{o|oXbfc/oypJo$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd}o/m:m;m=m?m@m[mRomcSo~oapbpcpZbgc:ozpKo]m^m_m`m{m|mdm}m~manbntlemulfmeddpcndnenfngnhninToncUoepfpgphp1bhc;oApLojnknlnmnnnongmpnqnrnsnvlhmwlimfdiptnunvnwnxnynznVoocWo7o8o9o!oLb@b=oBpGoAnBnCnDnEnFnjmGnHnInJnxlkmyllmgd#oKnLnMnNnOnPnQnXopcYojpkplpmp3bic?oCpMoRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhdnp1n2n3n4n5n6n7nZoqc0o$o%o'o(oNb[b@oDpHo8n9n!n#n$n%npm'n(n)n*nBlqmClrmid)o+n,n-n.n/n:n;n1orc2oopppqprp5bjc[oEpNo=n?n@n[n]n^nsm_n`n{n|nDltmElumjdsp}n~naobocodoeo3osc4otpupvpwp7bkc]oFpOofogohoiojokovmlomonoooFlwmGlxmkdxppoqorosotouovo5otc6o*o+o,o-oPb]b^oGpIowoxoyozoAoBoymCoDoEoFoHlzmIlAmld.o

307 use_obj = {**obj, **update} 

308 elif update: 25m6m7m8m9m!m#mPolcQo_o`o{o|oXbfc/oypJo$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd}o/m:m;m=m?m@m[mRomcSo~oapbpcpZbgc:ozpKo]m^m_m`m{m|mdm}m~manbntlemulfmeddpcndnenfngnhninToncUoepfpgphp1bhc;oApLojnknlnmnnnongmpnqnrnsnvlhmwlimfdiptnunvnwnxnynznVoocWo7o8o9o!oLb@b=oBpGoAnBnCnDnEnFnjmGnHnInJnxlkmyllmgd#oKnLnMnNnOnPnQnXopcYojpkplpmp3bic?oCpMoRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhdnp1n2n3n4n5n6n7nZoqc0o$o%o'o(oNb[b@oDpHo8n9n!n#n$n%npm'n(n)n*nBlqmClrmid)o+n,n-n.n/n:n;n1orc2oopppqprp5bjc[oEpNo=n?n@n[n]n^nsm_n`n{n|nDltmElumjdsp}n~naobocodoeo3osc4otpupvpwp7bkc]oFpOofogohoiojokovmlomonoooFlwmGlxmkdxppoqorosotouovo5otc6o*o+o,o-oPb]b^oGpIowoxoyozoAoBoymCoDoEoFoHlzmIlAmld.o

309 use_obj = ObjectWithUpdateWrapper(obj=obj, update=update) 2ddedfdgdhdidjdkdld

310 cls.__pydantic_validator__.validate_python( 25m6m7m8m9m!m#mPolcQo_o`o{o|oXbfc/oypJo$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd}o/m:m;m=m?m@m[mRomcSo~oapbpcpZbgc:ozpKo]m^m_m`m{m|mdm}m~manbntlemulfmeddpcndnenfngnhninToncUoepfpgphp1bhc;oApLojnknlnmnnnongmpnqnrnsnvlhmwlimfdiptnunvnwnxnynznVoocWo7o8o9o!oLb@b=oBpGoAnBnCnDnEnFnjmGnHnInJnxlkmyllmgd#oKnLnMnNnOnPnQnXopcYojpkplpmp3bic?oCpMoRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhdnp1n2n3n4n5n6n7nZoqc0o$o%o'o(oNb[b@oDpHo8n9n!n#n$n%npm'n(n)n*nBlqmClrmid)o+n,n-n.n/n:n;n1orc2oopppqprp5bjc[oEpNo=n?n@n[n]n^nsm_n`n{n|nDltmElumjdsp}n~naobocodoeo3osc4otpupvpwp7bkc]oFpOofogohoiojokovmlomonoooFlwmGlxmkdxppoqorosotouovo5otc6o*o+o,o-oPb]b^oGpIowoxoyozoAoBoymCoDoEoFoHlzmIlAmld.o

311 use_obj, 

312 strict=strict, 

313 from_attributes=from_attributes, 

314 context=context, 

315 self_instance=new_obj, 

316 ) 

317 # Capture fields set to restore it later 

318 fields_set = new_obj.__pydantic_fields_set__.copy() 25m6m7m8m9m!m#mPolcQo_o`o{o|oXbfc/oypJo$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd}o/m:m;m=m?m@m[mRomcSo~oapbpcpZbgc:ozpKo]m^m_m`m{m|mdm}m~manbntlemulfmeddpcndnenfngnhninToncUoepfpgphp1bhc;oApLojnknlnmnnnongmpnqnrnsnvlhmwlimfdiptnunvnwnxnynznVoocWo7o8o9o!oLb@b=oBpGoAnBnCnDnEnFnjmGnHnInJnxlkmyllmgd#oKnLnMnNnOnPnQnXopcYojpkplpmp3bic?oCpMoRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhdnp1n2n3n4n5n6n7nZoqc0o$o%o'o(oNb[b@oDpHo8n9n!n#n$n%npm'n(n)n*nBlqmClrmid)o+n,n-n.n/n:n;n1orc2oopppqprp5bjc[oEpNo=n?n@n[n]n^nsm_n`n{n|nDltmElumjdsp}n~naobocodoeo3osc4otpupvpwp7bkc]oFpOofogohoiojokovmlomonoooFlwmGlxmkdxppoqorosotouovo5otc6o*o+o,o-oPb]b^oGpIowoxoyozoAoBoymCoDoEoFoHlzmIlAmld.o

319 if not is_table_model_class(cls): 25m6m7m8m9m!m#mPolcQo_o`o{o|oXbfc/oypJo$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd}o/m:m;m=m?m@m[mRomcSo~oapbpcpZbgc:ozpKo]m^m_m`m{m|mdm}m~manbntlemulfmeddpcndnenfngnhninToncUoepfpgphp1bhc;oApLojnknlnmnnnongmpnqnrnsnvlhmwlimfdiptnunvnwnxnynznVoocWo7o8o9o!oLb@b=oBpGoAnBnCnDnEnFnjmGnHnInJnxlkmyllmgd#oKnLnMnNnOnPnQnXopcYojpkplpmp3bic?oCpMoRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhdnp1n2n3n4n5n6n7nZoqc0o$o%o'o(oNb[b@oDpHo8n9n!n#n$n%npm'n(n)n*nBlqmClrmid)o+n,n-n.n/n:n;n1orc2oopppqprp5bjc[oEpNo=n?n@n[n]n^nsm_n`n{n|nDltmElumjdsp}n~naobocodoeo3osc4otpupvpwp7bkc]oFpOofogohoiojokovmlomonoooFlwmGlxmkdxppoqorosotouovo5otc6o*o+o,o-oPb]b^oGpIowoxoyozoAoBoymCoDoEoFoHlzmIlAmld.o

320 # If not table, normal Pydantic code, set __dict__ 

321 new_obj.__dict__ = {**old_dict, **new_obj.__dict__} 2_o`o{o|o/oypJo}o~oapbpcp:ozpKodpepfpgphp;oApLoip7o8o9o!o=oBpGo#ojpkplpmp?oCpMonp$o%o'o(o@oDpHo)oopppqprp[oEpNosptpupvpwp]oFpOoxp*o+o,o-o^oGpIo.o

322 else: 

323 # Do not set __dict__, instead use setattr to trigger SQLAlchemy 

324 # instrumentation 

325 for key, value in {**old_dict, **new_obj.__dict__}.items(): 25m6m7m8m9m!m#mPolcQoXbfc$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd/m:m;m=m?m@m[mRomcSoZbgc]m^m_m`m{m|mdm}m~manbntlemulfmedcndnenfngnhninToncUo1bhcjnknlnmnnnongmpnqnrnsnvlhmwlimfdtnunvnwnxnynznVoocWoLb@bAnBnCnDnEnFnjmGnHnInJnxlkmyllmgdKnLnMnNnOnPnQnXopcYo3bicRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhd1n2n3n4n5n6n7nZoqc0oNb[b8n9n!n#n$n%npm'n(n)n*nBlqmClrmid+n,n-n.n/n:n;n1orc2o5bjc=n?n@n[n]n^nsm_n`n{n|nDltmElumjd}n~naobocodoeo3osc4o7bkcfogohoiojokovmlomonoooFlwmGlxmkdpoqorosotouovo5otc6oPb]bwoxoyozoAoBoymCoDoEoFoHlzmIlAmld

326 setattr(new_obj, key, value) 25m6m7m8m9m!m#mPolcQoXbfc$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd/m:m;m=m?m@m[mRomcSoZbgc]m^m_m`m{m|mdm}m~manbntlemulfmedcndnenfngnhninToncUo1bhcjnknlnmnnnongmpnqnrnsnvlhmwlimfdtnunvnwnxnynznVoocWoLb@bAnBnCnDnEnFnjmGnHnInJnxlkmyllmgdKnLnMnNnOnPnQnXopcYo3bicRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhd1n2n3n4n5n6n7nZoqc0oNb[b8n9n!n#n$n%npm'n(n)n*nBlqmClrmid+n,n-n.n/n:n;n1orc2o5bjc=n?n@n[n]n^nsm_n`n{n|nDltmElumjd}n~naobocodoeo3osc4o7bkcfogohoiojokovmlomonoooFlwmGlxmkdpoqorosotouovo5otc6oPb]bwoxoyozoAoBoymCoDoEoFoHlzmIlAmld

327 # Restore fields set 

328 object.__setattr__(new_obj, "__pydantic_fields_set__", fields_set) 25m6m7m8m9m!m#mPolcQo_o`o{o|oXbfc/oypJo$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd}o/m:m;m=m?m@m[mRomcSo~oapbpcpZbgc:ozpKo]m^m_m`m{m|mdm}m~manbntlemulfmeddpcndnenfngnhninToncUoepfpgphp1bhc;oApLojnknlnmnnnongmpnqnrnsnvlhmwlimfdiptnunvnwnxnynznVoocWo7o8o9o!oLb@b=oBpGoAnBnCnDnEnFnjmGnHnInJnxlkmyllmgd#oKnLnMnNnOnPnQnXopcYojpkplpmp3bic?oCpMoRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhdnp1n2n3n4n5n6n7nZoqc0o$o%o'o(oNb[b@oDpHo8n9n!n#n$n%npm'n(n)n*nBlqmClrmid)o+n,n-n.n/n:n;n1orc2oopppqprp5bjc[oEpNo=n?n@n[n]n^nsm_n`n{n|nDltmElumjdsp}n~naobocodoeo3osc4otpupvpwp7bkc]oFpOofogohoiojokovmlomonoooFlwmGlxmkdxppoqorosotouovo5otc6o*o+o,o-oPb]b^oGpIowoxoyozoAoBoymCoDoEoFoHlzmIlAmld.o

329 # Get and set any relationship objects 

330 if is_table_model_class(cls): 25m6m7m8m9m!m#mPolcQo_o`o{o|oXbfc/oypJo$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd}o/m:m;m=m?m@m[mRomcSo~oapbpcpZbgc:ozpKo]m^m_m`m{m|mdm}m~manbntlemulfmeddpcndnenfngnhninToncUoepfpgphp1bhc;oApLojnknlnmnnnongmpnqnrnsnvlhmwlimfdiptnunvnwnxnynznVoocWo7o8o9o!oLb@b=oBpGoAnBnCnDnEnFnjmGnHnInJnxlkmyllmgd#oKnLnMnNnOnPnQnXopcYojpkplpmp3bic?oCpMoRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhdnp1n2n3n4n5n6n7nZoqc0o$o%o'o(oNb[b@oDpHo8n9n!n#n$n%npm'n(n)n*nBlqmClrmid)o+n,n-n.n/n:n;n1orc2oopppqprp5bjc[oEpNo=n?n@n[n]n^nsm_n`n{n|nDltmElumjdsp}n~naobocodoeo3osc4otpupvpwp7bkc]oFpOofogohoiojokovmlomonoooFlwmGlxmkdxppoqorosotouovo5otc6o*o+o,o-oPb]b^oGpIowoxoyozoAoBoymCoDoEoFoHlzmIlAmld.o

331 for key in new_obj.__sqlmodel_relationships__: 25m6m7m8m9m!m#mPolcQoXbfc$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd/m:m;m=m?m@m[mRomcSoZbgc]m^m_m`m{m|mdm}m~manbntlemulfmedcndnenfngnhninToncUo1bhcjnknlnmnnnongmpnqnrnsnvlhmwlimfdtnunvnwnxnynznVoocWoLb@bAnBnCnDnEnFnjmGnHnInJnxlkmyllmgdKnLnMnNnOnPnQnXopcYo3bicRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhd1n2n3n4n5n6n7nZoqc0oNb[b8n9n!n#n$n%npm'n(n)n*nBlqmClrmid+n,n-n.n/n:n;n1orc2o5bjc=n?n@n[n]n^nsm_n`n{n|nDltmElumjd}n~naobocodoeo3osc4o7bkcfogohoiojokovmlomonoooFlwmGlxmkdpoqorosotouovo5otc6oPb]bwoxoyozoAoBoymCoDoEoFoHlzmIlAmld

332 value = getattr(use_obj, key, Undefined) 2rlsltlulvlwlxlylzlAlBlClDlElFlGlHlIl

333 if value is not Undefined: 2rlsltlulvlwlxlylzlAlBlClDlElFlGlHlIl

334 setattr(new_obj, key, value) 

335 return new_obj 25m6m7m8m9m!m#mPolcQo_o`o{o|oXbfc/oypJo$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd}o/m:m;m=m?m@m[mRomcSo~oapbpcpZbgc:ozpKo]m^m_m`m{m|mdm}m~manbntlemulfmeddpcndnenfngnhninToncUoepfpgphp1bhc;oApLojnknlnmnnnongmpnqnrnsnvlhmwlimfdiptnunvnwnxnynznVoocWo7o8o9o!oLb@b=oBpGoAnBnCnDnEnFnjmGnHnInJnxlkmyllmgd#oKnLnMnNnOnPnQnXopcYojpkplpmp3bic?oCpMoRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhdnp1n2n3n4n5n6n7nZoqc0o$o%o'o(oNb[b@oDpHo8n9n!n#n$n%npm'n(n)n*nBlqmClrmid)o+n,n-n.n/n:n;n1orc2oopppqprp5bjc[oEpNo=n?n@n[n]n^nsm_n`n{n|nDltmElumjdsp}n~naobocodoeo3osc4otpupvpwp7bkc]oFpOofogohoiojokovmlomonoooFlwmGlxmkdxppoqorosotouovo5otc6o*o+o,o-oPb]b^oGpIowoxoyozoAoBoymCoDoEoFoHlzmIlAmld.o

336 

337 

338def sqlmodel_init(*, self: "SQLModel", data: dict[str, Any]) -> None: 1defagbhic

339 old_dict = self.__dict__.copy() 20q5m,r-rVfWfXf_c6m7m8m9m!m#mJllcYfZf0f'p1q2q.r3q4q5q6q7q(p8q(btb)pN ub9q/o*pO P nbUq^b_bm Q R S Yb+p,pJo-p.p/p:pT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$m%m'm(m)m*mam+m,m-m.mrl$fbm%fslcmdd'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9b!q/m/r:rogpgqg`c:m;m=m?m@m[mKlmcrgsgtg;p#q$q;r%q'q(q)q*q=p+q)bwb?pV xb,q:o@pW X obVq`b{bn Y Z 0 0b[p]pKo^p_p`p{p1 2 ybugOdPdvgwgxgygzgAgBgCgDgEg]m^m_m`m{m|mdm}m~manbntlFgemGgulfmedHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b-qcn=r?r+g,g-g{cdnenfngnhninLlnc.g/g:g|p.q/q@r:q;q=q?q@q}p[q*bzb~p3 Ab]q;oaq4 5 pbWq|b}bo 6 7 8 2bbqcqLodqeqfqgq9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|gjnknlnmnnnongmpnqnrnsnvl}ghm~gwlimfdahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#b^qtn[r]rLhMhNh|cunvnwnxnynznMlocOhPhQhHp_q`q^r{q|q}q~qarIpbrUb# Jpp $ cr=oKp% ' K #p.b/bj q r s MbLpMpGoNpOpPpQpt u ( Rh-d.dShThUhVhWhXhYhZh0h1hAnBnCnDnEnFnjmGnHnInJnxl2hkm3hyllmgd4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbdrKn_r`reifigi}cLnMnNnOnPnQnNlpchiiijihqerfr{rgrhrirjrkriqlr+bCbjq) Dbmr?okq* + qbXq~bacv , - . 4blqmqMonqoqpqqq/ : Ebki~daeliminioipiqirisitiuiRnSnTnUnVnWnmmXnYnZn0nzlvinmwiAlomhdxiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$bnr1n|r}r8i9i!i~c2n3n4n5n6n7nOlqc#i$i%iRporpr~rqrrrsrtrurSpvrVb; Tpw = wr@oUp? @ L $p:b;bk x y z ObVpWpHoXpYpZp0pA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i8n9n!n#n$n%npm'n(n)n*nBl=iqm?iClrmid@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbxr+nasbsBjCjDjad,n-n.n/n:n;nPlrcEjFjGjrqyrzrcsArBrCrDrErsqFr,bFbtq] GbGr[ouq^ _ rbYqbcccC ` { | 6bvqwqNoxqyqzqAq} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRj=n?n@n[n]n^nsm_n`n{n|nDlSjtmTjElumjdUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%bHr}ndses_j`j{jbd~naobocodoeoQlsc|j}j~jBqIrJrfsKrLrMrNrOrCqPr-bIbDqabJbQr]oEqbbcbsbZqdcecD dbebfb8bFqGqOoHqIqJqKqgbhbKbakVeWebkckdkekfkgkhkikjkkkfogohoiojokovmlomonoooFllkwmmkGlxmkdnkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bRrpogshsYkZk0kcdqorosotouovoRltc1k2k3k1pSrTrisUrVrWrXrYr2pZrWbib3pE jb0r^o4pkblbM %p=b?bl F G H Qb5p6pIo7p8p9p!pI J mb4k#e$e5k6k7k8k9k!k#k$k%k'kwoxoyozoAoBoymCoDoEoFoHl(kzm)kIlAmld*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

340 if not is_table_model_class(self.__class__): 20q5m,r-rVfWfXf_c6m7m8m9m!m#mJllcYfZf0f'p1q2q.r3q4q5q6q7q(p8q(btb)pN ub9q/o*pO P nbUq^b_bm Q R S Yb+p,pJo-p.p/p:pT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$m%m'm(m)m*mam+m,m-m.mrl$fbm%fslcmdd'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9b!q/m/r:rogpgqg`c:m;m=m?m@m[mKlmcrgsgtg;p#q$q;r%q'q(q)q*q=p+q)bwb?pV xb,q:o@pW X obVq`b{bn Y Z 0 0b[p]pKo^p_p`p{p1 2 ybugOdPdvgwgxgygzgAgBgCgDgEg]m^m_m`m{m|mdm}m~manbntlFgemGgulfmedHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b-qcn=r?r+g,g-g{cdnenfngnhninLlnc.g/g:g|p.q/q@r:q;q=q?q@q}p[q*bzb~p3 Ab]q;oaq4 5 pbWq|b}bo 6 7 8 2bbqcqLodqeqfqgq9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|gjnknlnmnnnongmpnqnrnsnvl}ghm~gwlimfdahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#b^qtn[r]rLhMhNh|cunvnwnxnynznMlocOhPhQhHp_q`q^r{q|q}q~qarIpbrUb# Jpp $ cr=oKp% ' K #p.b/bj q r s MbLpMpGoNpOpPpQpt u ( Rh-d.dShThUhVhWhXhYhZh0h1hAnBnCnDnEnFnjmGnHnInJnxl2hkm3hyllmgd4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbdrKn_r`reifigi}cLnMnNnOnPnQnNlpchiiijihqerfr{rgrhrirjrkriqlr+bCbjq) Dbmr?okq* + qbXq~bacv , - . 4blqmqMonqoqpqqq/ : Ebki~daeliminioipiqirisitiuiRnSnTnUnVnWnmmXnYnZn0nzlvinmwiAlomhdxiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$bnr1n|r}r8i9i!i~c2n3n4n5n6n7nOlqc#i$i%iRporpr~rqrrrsrtrurSpvrVb; Tpw = wr@oUp? @ L $p:b;bk x y z ObVpWpHoXpYpZp0pA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i8n9n!n#n$n%npm'n(n)n*nBl=iqm?iClrmid@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbxr+nasbsBjCjDjad,n-n.n/n:n;nPlrcEjFjGjrqyrzrcsArBrCrDrErsqFr,bFbtq] GbGr[ouq^ _ rbYqbcccC ` { | 6bvqwqNoxqyqzqAq} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRj=n?n@n[n]n^nsm_n`n{n|nDlSjtmTjElumjdUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%bHr}ndses_j`j{jbd~naobocodoeoQlsc|j}j~jBqIrJrfsKrLrMrNrOrCqPr-bIbDqabJbQr]oEqbbcbsbZqdcecD dbebfb8bFqGqOoHqIqJqKqgbhbKbakVeWebkckdkekfkgkhkikjkkkfogohoiojokovmlomonoooFllkwmmkGlxmkdnkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bRrpogshsYkZk0kcdqorosotouovoRltc1k2k3k1pSrTrisUrVrWrXrYr2pZrWbib3pE jb0r^o4pkblbM %p=b?bl F G H Qb5p6pIo7p8p9p!pI J mb4k#e$e5k6k7k8k9k!k#k$k%k'kwoxoyozoAoBoymCoDoEoFoHl(kzm)kIlAmld*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

341 self.__pydantic_validator__.validate_python( 20q5m,r-r_c6m7m8m9m!m#m'p1q2q.r3q4q5q6q7q(p8q)p9q/o*pUq+p,pJo-p.p/p:p$m%m'm(m)m*mam+m,m-m.mrlbmslcmdd9b!q/m/r:r`c:m;m=m?m@m[m;p#q$q;r%q'q(q)q*q=p+q?p,q:o@pVq[p]pKo^p_p`p{p]m^m_m`m{m|mdm}m~manbntlemulfmed!b-qcn=r?r{cdnenfngnhnin|p.q/q@r:q;q=q?q@q}p[q~p]q;oaqWqbqcqLodqeqfqgqjnknlnmnnnongmpnqnrnsnvlhmwlimfd#b^qtn[r]r|cunvnwnxnynznHp_q`q^r{q|q}q~qarIpbrJpcr=oKp#pLpMpGoNpOpPpQpAnBnCnDnEnFnjmGnHnInJnxlkmyllmgdRbdrKn_r`r}cLnMnNnOnPnQnhqerfr{rgrhrirjrkriqlrjqmr?okqXqlqmqMonqoqpqqqRnSnTnUnVnWnmmXnYnZn0nzlnmAlomhd$bnr1n|r}r~c2n3n4n5n6n7nRporpr~rqrrrsrtrurSpvrTpwr@oUp$pVpWpHoXpYpZp0p8n9n!n#n$n%npm'n(n)n*nBlqmClrmidSbxr+nasbsad,n-n.n/n:n;nrqyrzrcsArBrCrDrErsqFrtqGr[ouqYqvqwqNoxqyqzqAq=n?n@n[n]n^nsm_n`n{n|nDltmElumjd%bHr}ndsesbd~naobocodoeoBqIrJrfsKrLrMrNrOrCqPrDqQr]oEqZqFqGqOoHqIqJqKqfogohoiojokovmlomonoooFlwmGlxmkd'bRrpogshscdqorosotouovo1pSrTrisUrVrWrXrYr2pZr3p0r^o4p%p5p6pIo7p8p9p!pwoxoyozoAoBoymCoDoEoFoHlzmIlAmldTb

342 data, 

343 self_instance=self, 

344 ) 

345 else: 

346 sqlmodel_table_construct( 2VfWfXf_cJllcYfZf0f(btbN ubO P nb^b_bm Q R S YbT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9bogpgqg`cKlmcrgsgtg)bwbV xbW X ob`b{bn Y Z 0 0b1 2 ybugOdPdvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b+g,g-g{cLlnc.g/g:g*bzb3 Ab4 5 pb|b}bo 6 7 8 2b9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|g}g~gahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#bLhMhNh|cMlocOhPhQhUb# p $ % ' K .b/bj q r s Mbt u ( Rh-d.dShThUhVhWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbeifigi}cNlpchiiiji+bCb) Db* + qb~bacv , - . 4b/ : Ebki~daeliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$b8i9i!i~cOlqc#i$i%iVb; w = ? @ L :b;bk x y z ObA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbBjCjDjadPlrcEjFjGj,bFb] Gb^ _ rbbcccC ` { | 6b} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%b_j`j{jbdQlsc|j}j~j-bIbabJbbbcbsbdcecD dbebfb8bgbhbKbakVeWebkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bYkZk0kcdRltc1k2k3kWbibE jbkblbM =b?bl F G H QbI J mb4k#e$e5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

347 self_instance=self, 

348 values=data, 

349 ) 

350 object.__setattr__( 20q5mVfWfXf_c6m7m8m9m!m#mJllcYfZf0f'p1q2q3q4q5q6q7q(p8q(btb)pN ub9q/o*pO P nb^b_bm Q R S Yb+p,pJo-p.p/p:pT U vb1fydzd2f3f4f5f6f7f8f9f!f#f$m%m'm(m)m*mam+m,m-m.mrl$fbm%fslcmdd'f(f)f*f+f,f-f.f/fAdBdCd:f;f=f?f@f[f]f^f_fDdEdFdGdHdIdJdKdLdMdNd`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgng9b!q/mogpgqg`c:m;m=m?m@m[mKlmcrgsgtg;p#q$q%q'q(q)q*q=p+q)bwb?pV xb,q:o@pW X ob`b{bn Y Z 0 0b[p]pKo^p_p`p{p1 2 ybugOdPdvgwgxgygzgAgBgCgDgEg]m^m_m`m{m|mdm}m~manbntlFgemGgulfmedHgIgJgKgLgMgNgOgPgQdRdSdQgRgSgTgUgVgWgXgYgTdUdVdWdXdYdZd0d1d2d3dZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g!b-qcn+g,g-g{cdnenfngnhninLlnc.g/g:g|p.q/q:q;q=q?q@q}p[q*bzb~p3 Ab]q;oaq4 5 pb|b}bo 6 7 8 2bbqcqLodqeqfqgq9 ! Bb;g4d5d=g?g@g[g]g^g_g`g{g|gjnknlnmnnnongmpnqnrnsnvl}ghm~gwlimfdahbhchdhehfhghhhih6d7d8djhkhlhmhnhohphqhrh9d!d#d$d%d'd(d)d*d+d,dshthuhvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKh#b^qtnLhMhNh|cunvnwnxnynznMlocOhPhQhHp_q`q{q|q}q~qarIpbrUb# Jpp $ cr=oKp% ' K .b/bj q r s MbLpMpGoNpOpPpQpt u ( Rh-d.dShThUhVhWhXhYhZh0h1hAnBnCnDnEnFnjmGnHnInJnxl2hkm3hyllmgd4h5h6h7h8h9h!h#h$h/d:d;d%h'h(h)h*h+h,h-h.h=d?d@d[d]d^d_d`d{d|d}d/h:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidiRbdrKneifigi}cLnMnNnOnPnQnNlpchiiijihqerfrgrhrirjrkriqlr+bCbjq) Dbmr?okq* + qb~bacv , - . 4blqmqMonqoqpqqq/ : Ebki~daeliminioipiqirisitiuiRnSnTnUnVnWnmmXnYnZn0nzlvinmwiAlomhdxiyiziAiBiCiDiEiFibecedeGiHiIiJiKiLiMiNiOieefegeheiejekelemeneoePiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i$bnr1n8i9i!i~c2n3n4n5n6n7nOlqc#i$i%iRporprqrrrsrtrurSpvrVb; Tpw = wr@oUp? @ L :b;bk x y z ObVpWpHoXpYpZp0pA B [ 'ipeqe(i)i*i+i,i-i.i/i:i;i8n9n!n#n$n%npm'n(n)n*nBl=iqm?iClrmid@i[i]i^i_i`i{i|i}iresete~iajbjcjdjejfjgjhjuevewexeyezeAeBeCeDeEeijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjSbxr+nBjCjDjad,n-n.n/n:n;nPlrcEjFjGjrqyrzrArBrCrDrErsqFr,bFbtq] GbGr[ouq^ _ rbbcccC ` { | 6bvqwqNoxqyqzqAq} ~ HbHjFeGeIjJjKjLjMjNjOjPjQjRj=n?n@n[n]n^nsm_n`n{n|nDlSjtmTjElumjdUjVjWjXjYjZj0j1j2jHeIeJe3j4j5j6j7j8j9j!j#jKeLeMeNeOePeQeReSeTeUe$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j%bHr}n_j`j{jbd~naobocodoeoQlsc|j}j~jBqIrJrKrLrMrNrOrCqPr-bIbDqabJbQr]oEqbbcbsbdcecD dbebfb8bFqGqOoHqIqJqKqgbhbKbakVeWebkckdkekfkgkhkikjkkkfogohoiojokovmlomonoooFllkwmmkGlxmkdnkokpkqkrksktkukvkXeYeZewkxkykzkAkBkCkDkEk0e1e2e3e4e5e6e7e8e9e!eFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXk'bRrpoYkZk0kcdqorosotouovoRltc1k2k3k1pSrTrUrVrWrXrYr2pZrWbib3pE jb0r^o4pkblbM =b?bl F G H Qb5p6pIo7p8p9p!pI J mb4k#e$e5k6k7k8k9k!k#k$k%k'kwoxoyozoAoBoymCoDoEoFoHl(kzm)kIlAmld*k+k,k-k.k/k:k;k=k%e'e(e?k@k[k]k^k_k`k{k|k)e*e+e,e-e.e/e:e;e=e?e}k~kalblcldlelflglhliljlklllmlnlolplqlTb

351 self, 

352 "__dict__", 

353 {**old_dict, **self.__dict__}, 

354 )