Coverage for sqlmodel / _compat.py: 93%
196 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-01-06 21:09 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-01-06 21:09 +0000
1import sys 1deafgbhic
2import types 1deafgbhic
3from collections.abc import Generator 1deafgbhic
4from contextlib import contextmanager 1deafgbhic
5from contextvars import ContextVar 1deafgbhic
6from dataclasses import dataclass 1deafgbhic
7from typing import ( 1deafgbhic
8 TYPE_CHECKING,
9 Annotated,
10 Any,
11 ForwardRef,
12 Optional,
13 TypeVar,
14 Union,
15)
17from annotated_types import MaxLen 1deafgbhic
18from pydantic import VERSION as P_VERSION 1deafgbhic
19from pydantic import BaseModel 1deafgbhic
20from pydantic import ConfigDict as ConfigDict 1deafgbhic
21from pydantic._internal._fields import PydanticMetadata 1deafgbhic
22from pydantic._internal._model_construction import ModelMetaclass as ModelMetaclass 1deafgbhic
23from pydantic._internal._repr import Representation as Representation 1deafgbhic
24from pydantic.fields import FieldInfo 1deafgbhic
25from pydantic_core import PydanticUndefined as Undefined 1deafgbhic
26from pydantic_core import PydanticUndefinedType as PydanticUndefinedType 1deafgbhic
27from typing_extensions import get_args, get_origin 1deafgbhic
29BaseConfig = ConfigDict 1deafgbhic
30UndefinedType = PydanticUndefinedType 1deafgbhic
31PYDANTIC_MINOR_VERSION = tuple(int(i) for i in P_VERSION.split(".")[:2]) 1deafgbhic
34if TYPE_CHECKING: 1deafgbhic
35 from .main import RelationshipInfo, SQLModel
37UnionType = getattr(types, "UnionType", Union) 1deafgbhic
38NoneType = type(None) 1deafgbhic
39T = TypeVar("T") 1deafgbhic
40InstanceOrType = Union[T, type[T]] 1deafgbhic
41_TSQLModel = TypeVar("_TSQLModel", bound="SQLModel") 1deafgbhic
44class FakeMetadata: 1deafgbhic
45 max_length: Optional[int] = None 1deafgbhic
46 max_digits: Optional[int] = None 1deafgbhic
47 decimal_places: Optional[int] = None 1deafgbhic
50@dataclass 1deafgbhic
51class ObjectWithUpdateWrapper: 1deafgbhic
52 obj: Any 1deafgbhic
53 update: dict[str, Any] 1deafgbhic
55 def __getattribute__(self, __name: str) -> Any: 1deafgbhic
56 update = super().__getattribute__("update") 2NbObPbQbRbSbTbUbVb
57 obj = super().__getattribute__("obj") 2NbObPbQbRbSbTbUbVb
58 if __name in update: 2NbObPbQbRbSbTbUbVb
59 return update[__name] 2NbObPbQbRbSbTbUbVb
60 return getattr(obj, __name) 2NbObPbQbRbSbTbUbVb
63def _is_union_type(t: Any) -> bool: 1deafgbhic
64 return t is UnionType or t is Union 2d ] Mj/j[j' m K L M 9m^ od!mnbN O RmSmTme _ Nj:j]j( n P Q R #m` pd$mobS T UmVmWma - udrjOjH j o p q Lm. tbMmkbr s |j}j~jf { Pj;j^j) t U V W %m| qd'mpbX Y XmYmZmg } Qj=j_j* u Z 0 1 (m~ rd)mqb2 3 0m1m2mb / vdsjRjI k v w x Nm: ubOmlby z akbkckh abSj?j`j+ A 4 5 6 *mbbsd+mrb7 8 3m4m5mi cbTj@j{j, B 9 ! # ,mdbtd-msb$ % 6m7m8mc ; wdtjUjJ l C D E Pm= vbQmmbF G dkekfk
67finish_init: ContextVar[bool] = ContextVar("finish_init", default=True) 1deafgbhic
70@contextmanager 1deafgbhic
71def partial_init() -> Generator[None, None, None]: 1deafgbhic
72 token = finish_init.set(False) 2gkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkVjAkBkCkDkujWjvjXjNbEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jOb2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb?k@k[k]k^k_k`k{k|k}k~kalbl4jcldlelflAj5jBj6jQbglhliljlklllmlnlolplqlrlsltlulvlwlxlylzl7jAlBlClDlCj8jDj9jRbElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTb?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmim)jjmkmlmmmIj*jJj+jUbnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVb
73 yield 2gkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkVjAkBkCkDkujWjvjXjNbEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jOb2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb?k@k[k]k^k_k`k{k|k}k~kalbl4jcldlelflAj5jBj6jQbglhliljlklllmlnlolplqlrlsltlulvlwlxlylzl7jAlBlClDlCj8jDj9jRbElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTb?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmim)jjmkmlmmmIj*jJj+jUbnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVb
74 finish_init.reset(token) 2gkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkVjAkBkCkDkujWjvjXjNbEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jOb2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb?k@k[k]k^k_k`k{k|k}k~kalbl4jcldlelflAj5jBj6jQbglhliljlklllmlnlolplqlrlsltlulvlwlxlylzl7jAlBlClDlCj8jDj9jRbElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTb?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmim)jjmkmlmmmIj*jJj+jUbnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVb
77class SQLModelConfig(BaseConfig, total=False): 1deafgbhic
78 table: Optional[bool] 1deafgbhic
79 registry: Optional[Any] 1deafgbhic
82def get_model_fields(model: InstanceOrType[BaseModel]) -> dict[str, "FieldInfo"]: 1deafgbhic
83 # TODO: refactor the usage of this function to always pass the class
84 # not the instance, and then remove this extra check
85 # this is for compatibility with Pydantic v3
86 if isinstance(model, type): 2d wbxb] onpnMj/j[jZp' m K L M 9m^ od!mnbN O RmSmTmVjujWjvjXjNbebe ybzb_ qnrnNj:j]j0p( n P Q R #m` pd$mobS T UmVmWmYjwjZjxj0jObfba AbBb- .m/mudrjOjHoH j o p q Lm. tbMmkbr s |j}j~j1jyj2jzj3jPb? f Cb{ sntnPj;j^j1p) t U V W %m| qd'mpbX Y XmYmZm4jAj5jBj6jQbgbg DbEb} unvnQj=j_j2p* u Z 0 1 (m~ rd)mqb2 3 0m1m2m7jCj8jDj9jRbhbb FbGb/ :m;mvdsjRjIoI k v w x Nm: ubOmlby z akbkck!jEj#jFj$jSb@ h HbIbabwnxnSj?j`j3p+ A 4 5 6 *mbbsd+mrb7 8 3m4m5m%jGj'jHj(jTbibi JbKbcbynznTj@j{j4p, B 9 ! # ,mdbtd-msb$ % 6m7m8m)jIj*jJj+jUbjbc LbMb; =m?mwdtjUjJoJ l C D E Pm= vbQmmbF G dkekfk,jKj-jLj.jVb[
87 use_model = model 2d ] onpnMj/j[jZp' m K L M 9m^ od!mnbN O RmSmTmebe _ qnrnNj:j]j0p( n P Q R #m` pd$mobS T UmVmWmfba - .m/mudrjOjHoH j o p q Lm. tbMmkbr s |j}j~j? f { sntnPj;j^j1p) t U V W %m| qd'mpbX Y XmYmZmgbg } unvnQj=j_j2p* u Z 0 1 (m~ rd)mqb2 3 0m1m2mhbb / :m;mvdsjRjIoI k v w x Nm: ubOmlby z akbkck@ h abwnxnSj?j`j3p+ A 4 5 6 *mbbsd+mrb7 8 3m4m5mibi cbynznTj@j{j4p, B 9 ! # ,mdbtd-msb$ % 6m7m8mjbc ; =m?mwdtjUjJoJ l C D E Pm= vbQmmbF G dkekfk[
88 else:
89 use_model = model.__class__ 2wbxbVjujWjvjXjNbebybzbYjwjZjxj0jObfbAbBb1jyj2jzj3jPb? Cb4jAj5jBj6jQbgbDbEb7jCj8jDj9jRbhbFbGb!jEj#jFj$jSb@ HbIb%jGj'jHj(jTbibJbKb)jIj*jJj+jUbjbLbMb,jKj-jLj.jVb[
90 return use_model.model_fields 2d wbxb] onpnMj/j[jZp' m K L M 9m^ od!mnbN O RmSmTmVjujWjvjXjNbebe ybzb_ qnrnNj:j]j0p( n P Q R #m` pd$mobS T UmVmWmYjwjZjxj0jObfba AbBb- .m/mudrjOjHoH j o p q Lm. tbMmkbr s |j}j~j1jyj2jzj3jPb? f Cb{ sntnPj;j^j1p) t U V W %m| qd'mpbX Y XmYmZm4jAj5jBj6jQbgbg DbEb} unvnQj=j_j2p* u Z 0 1 (m~ rd)mqb2 3 0m1m2m7jCj8jDj9jRbhbb FbGb/ :m;mvdsjRjIoI k v w x Nm: ubOmlby z akbkck!jEj#jFj$jSb@ h HbIbabwnxnSj?j`j3p+ A 4 5 6 *mbbsd+mrb7 8 3m4m5m%jGj'jHj(jTbibi JbKbcbynznTj@j{j4p, B 9 ! # ,mdbtd-msb$ % 6m7m8m)jIj*jJj+jUbjbc LbMb; =m?mwdtjUjJoJ l C D E Pm= vbQmmbF G dkekfk,jKj-jLj.jVb[
93def init_pydantic_private_attrs(new_object: InstanceOrType["SQLModel"]) -> None: 1deafgbhic
94 object.__setattr__(new_object, "__pydantic_fields_set__", set()) 2Qogk5p6pxdydzdwbhkikjkkklkmkRonk7p8pAdBdCdxbokpkqkrksktkDdEdFdAnBn|nCnSoTo9pUoVoWoXoYo}nDnZo] 0ofn4n~n' Kom K L M ^ aobocoN O GdWbXbHdIdJdKdLdMdNdOdPdQdukvkwkxkykzkVjAkBkCkDkujRdWjSdvjXjNbTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]debEn1oEk!p#p^d_d`dybFkGkHkIkJkKk2oLk$p%p{d|d}dzbMkNkOkPkQkRk~daebeFnGndoHn3o4o'p5o6o7o8o9oeoIn!o_ #ogn5nfo( Lon P Q R ` gohoioS T ce$b%bdeeefegeheiejekelemeSkTkUkVkWkXkYjYkZk0k1kwjneZjoexj0jObpeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefbJn$o2k(p)p0e1e2eAb3k4k5k6k7k8k%o9k*p+p3e4e5eBb!k#k$k%k'k(k6e7e8e@m[m%n]m'o(o,p)o*o+o,o-o'n^m.o- /ohn6n(nH _nj o p q . )n*n+nr s 9e[b]b!e#e$e%e'e(e)e*e+e,e)k*k+k,k-k.k1j/k:k;k=kyj-e2j.ezj3jPb/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? _m:o?k-p.pwfxfyfCb@k[k]k^k_k`kzfAfBfKnLnjoMn;o=o/p?o@o[o]o^okoNn_o{ `oin7nlo) Mot U V W | monoooX Y CfhcicDfEfFfGfHfIfJfKfLfMf{k|k}k~kalbl4jcldlelflAjNf5jOfBj6jQbPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgbOn{ogl:p;p?f@f[fDbhliljlklllml|onl=p?p]f^f_fEbolplqlrlsltl`f{f|fPnQnpoRn}o~o@papbpcpdpepqoSnfp} gpjn8nro* Nou Z 0 1 ~ sotouo2 3 }fxcyc~fagbgcgdgegfggghgigulvlwlxlylzl7jAlBlClDlCjjg8jkgDj9jRblgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbTnhpEl[p]pWgXgYgFbFlGlHlIlJlKlipLl^p_pZg0g1gGbMlNlOlPlQlRl2g3g4g`m{m,n|mjpkp`plpmpnpoppp-n}mqp/ rpkn9n.nI `nk v w x : /n:n;ny z 5gNcOc6g7g8g9g!g#g$g%g'g(gSlTlUlVlWlXl!jYlZl0l1lEj)g#j*gFj$jSb+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ ~msp2l{p|pshthuhHb3l4l5l6l7l8ltp9l}p~pvhwhxhIb!l#l$l%l'l(lyhzhAhUnVnvoWnupvpaqwpxpypzpApwoXnBpabCpln!nxo+ OoA 4 5 6 bbyozoAo7 8 Bh3c4cChDhEhFhGhHhIhJhKhLh)l*l+l,l-l.l%j/l:l;l=lGjMh'jNhHj(jTbOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hibYnDp?lbqcq=h?h@hJb@l[l]l^l_l`lEp{ldqeq[h]h^hKb|l}l~lambmcm_h`h{hZn0nBo1nFpGpfqHpIpJpKpLpCo2nMpcbNpmn#nDo, PoB 9 ! # dbEoFoGo$ % |h,c-c}h~haibicidieifigihidmemfmgmhmim)jjmkmlmmmIjii*jjiJj+jUbkiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijb3nOpnmgqhqViWiXiLbompmqmrmsmtmPpumiqjqYiZi0iMbvmwmxmymzmAm1i2i3ianbn=ncnQpRpkqSpTpUpVpWp?ndnXp; Ypnn$n@nJ {nl C D E = [n]n^nF G 4i}c~c5i6i7i8i9i!i#i$i%i'iBmCmDmEmFmGm,jHmImJmKmKj(i-j)iLj.jVb*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[ en
95 object.__setattr__(new_object, "__pydantic_extra__", None) 2Qogk5p6pxdydzdwbhkikjkkklkmkRonk7p8pAdBdCdxbokpkqkrksktkDdEdFdAnBn|nCnSoTo9pUoVoWoXoYo}nDnZo] 0ofn4n~n' Kom K L M ^ aobocoN O GdWbXbHdIdJdKdLdMdNdOdPdQdukvkwkxkykzkVjAkBkCkDkujRdWjSdvjXjNbTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]debEn1oEk!p#p^d_d`dybFkGkHkIkJkKk2oLk$p%p{d|d}dzbMkNkOkPkQkRk~daebeFnGndoHn3o4o'p5o6o7o8o9oeoIn!o_ #ogn5nfo( Lon P Q R ` gohoioS T ce$b%bdeeefegeheiejekelemeSkTkUkVkWkXkYjYkZk0k1kwjneZjoexj0jObpeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefbJn$o2k(p)p0e1e2eAb3k4k5k6k7k8k%o9k*p+p3e4e5eBb!k#k$k%k'k(k6e7e8e@m[m%n]m'o(o,p)o*o+o,o-o'n^m.o- /ohn6n(nH _nj o p q . )n*n+nr s 9e[b]b!e#e$e%e'e(e)e*e+e,e)k*k+k,k-k.k1j/k:k;k=kyj-e2j.ezj3jPb/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? _m:o?k-p.pwfxfyfCb@k[k]k^k_k`kzfAfBfKnLnjoMn;o=o/p?o@o[o]o^okoNn_o{ `oin7nlo) Mot U V W | monoooX Y CfhcicDfEfFfGfHfIfJfKfLfMf{k|k}k~kalbl4jcldlelflAjNf5jOfBj6jQbPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgbOn{ogl:p;p?f@f[fDbhliljlklllml|onl=p?p]f^f_fEbolplqlrlsltl`f{f|fPnQnpoRn}o~o@papbpcpdpepqoSnfp} gpjn8nro* Nou Z 0 1 ~ sotouo2 3 }fxcyc~fagbgcgdgegfggghgigulvlwlxlylzl7jAlBlClDlCjjg8jkgDj9jRblgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbTnhpEl[p]pWgXgYgFbFlGlHlIlJlKlipLl^p_pZg0g1gGbMlNlOlPlQlRl2g3g4g`m{m,n|mjpkp`plpmpnpoppp-n}mqp/ rpkn9n.nI `nk v w x : /n:n;ny z 5gNcOc6g7g8g9g!g#g$g%g'g(gSlTlUlVlWlXl!jYlZl0l1lEj)g#j*gFj$jSb+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ ~msp2l{p|pshthuhHb3l4l5l6l7l8ltp9l}p~pvhwhxhIb!l#l$l%l'l(lyhzhAhUnVnvoWnupvpaqwpxpypzpApwoXnBpabCpln!nxo+ OoA 4 5 6 bbyozoAo7 8 Bh3c4cChDhEhFhGhHhIhJhKhLh)l*l+l,l-l.l%j/l:l;l=lGjMh'jNhHj(jTbOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hibYnDp?lbqcq=h?h@hJb@l[l]l^l_l`lEp{ldqeq[h]h^hKb|l}l~lambmcm_h`h{hZn0nBo1nFpGpfqHpIpJpKpLpCo2nMpcbNpmn#nDo, PoB 9 ! # dbEoFoGo$ % |h,c-c}h~haibicidieifigihidmemfmgmhmim)jjmkmlmmmIjii*jjiJj+jUbkiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijb3nOpnmgqhqViWiXiLbompmqmrmsmtmPpumiqjqYiZi0iMbvmwmxmymzmAm1i2i3ianbn=ncnQpRpkqSpTpUpVpWp?ndnXp; Ypnn$n@nJ {nl C D E = [n]n^nF G 4i}c~c5i6i7i8i9i!i#i$i%i'iBmCmDmEmFmGm,jHmImJmKmKj(i-j)iLj.jVb*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[ en
96 object.__setattr__(new_object, "__pydantic_private__", None) 2Qogk5p6pxdydzdwbhkikjkkklkmkRonk7p8pAdBdCdxbokpkqkrksktkDdEdFdAnBn|nCnSoTo9pUoVoWoXoYo}nDnZo] 0ofn4n~n' Kom K L M ^ aobocoN O GdWbXbHdIdJdKdLdMdNdOdPdQdukvkwkxkykzkVjAkBkCkDkujRdWjSdvjXjNbTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]debEn1oEk!p#p^d_d`dybFkGkHkIkJkKk2oLk$p%p{d|d}dzbMkNkOkPkQkRk~daebeFnGndoHn3o4o'p5o6o7o8o9oeoIn!o_ #ogn5nfo( Lon P Q R ` gohoioS T ce$b%bdeeefegeheiejekelemeSkTkUkVkWkXkYjYkZk0k1kwjneZjoexj0jObpeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefbJn$o2k(p)p0e1e2eAb3k4k5k6k7k8k%o9k*p+p3e4e5eBb!k#k$k%k'k(k6e7e8e@m[m%n]m'o(o,p)o*o+o,o-o'n^m.o- /ohn6n(nH _nj o p q . )n*n+nr s 9e[b]b!e#e$e%e'e(e)e*e+e,e)k*k+k,k-k.k1j/k:k;k=kyj-e2j.ezj3jPb/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? _m:o?k-p.pwfxfyfCb@k[k]k^k_k`kzfAfBfKnLnjoMn;o=o/p?o@o[o]o^okoNn_o{ `oin7nlo) Mot U V W | monoooX Y CfhcicDfEfFfGfHfIfJfKfLfMf{k|k}k~kalbl4jcldlelflAjNf5jOfBj6jQbPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgbOn{ogl:p;p?f@f[fDbhliljlklllml|onl=p?p]f^f_fEbolplqlrlsltl`f{f|fPnQnpoRn}o~o@papbpcpdpepqoSnfp} gpjn8nro* Nou Z 0 1 ~ sotouo2 3 }fxcyc~fagbgcgdgegfggghgigulvlwlxlylzl7jAlBlClDlCjjg8jkgDj9jRblgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbTnhpEl[p]pWgXgYgFbFlGlHlIlJlKlipLl^p_pZg0g1gGbMlNlOlPlQlRl2g3g4g`m{m,n|mjpkp`plpmpnpoppp-n}mqp/ rpkn9n.nI `nk v w x : /n:n;ny z 5gNcOc6g7g8g9g!g#g$g%g'g(gSlTlUlVlWlXl!jYlZl0l1lEj)g#j*gFj$jSb+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ ~msp2l{p|pshthuhHb3l4l5l6l7l8ltp9l}p~pvhwhxhIb!l#l$l%l'l(lyhzhAhUnVnvoWnupvpaqwpxpypzpApwoXnBpabCpln!nxo+ OoA 4 5 6 bbyozoAo7 8 Bh3c4cChDhEhFhGhHhIhJhKhLh)l*l+l,l-l.l%j/l:l;l=lGjMh'jNhHj(jTbOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hibYnDp?lbqcq=h?h@hJb@l[l]l^l_l`lEp{ldqeq[h]h^hKb|l}l~lambmcm_h`h{hZn0nBo1nFpGpfqHpIpJpKpLpCo2nMpcbNpmn#nDo, PoB 9 ! # dbEoFoGo$ % |h,c-c}h~haibicidieifigihidmemfmgmhmim)jjmkmlmmmIjii*jjiJj+jUbkiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijb3nOpnmgqhqViWiXiLbompmqmrmsmtmPpumiqjqYiZi0iMbvmwmxmymzmAm1i2i3ianbn=ncnQpRpkqSpTpUpVpWp?ndnXp; Ypnn$n@nJ {nl C D E = [n]n^nF G 4i}c~c5i6i7i8i9i!i#i$i%i'iBmCmDmEmFmGm,jHmImJmKmKj(i-j)iLj.jVb*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[ en
99def get_annotations(class_dict: dict[str, Any]) -> dict[str, Any]: 1deafgbhic
100 raw_annotations: dict[str, Any] = class_dict.get("__annotations__", {}) 2d AnBn|nCn}nDn] onpnMj/j[jZp~n' Kom K L M 9m^ od!mnbaobocoN O RmSmTmebEne FnGndoHneoIn_ qnrnNj:j]j0pfo( Lon P Q R #m` pd$mobgohoioS T UmVmWmfbJna @m[m%n]m'n^m- .m/mudrjOjHo(nH _nj o p q Lm. tbMmkb)n*n+nr s |j}j~j? _mf KnLnjoMnkoNn{ sntnPj;j^j1plo) Mot U V W %m| qd'mpbmonoooX Y XmYmZmgbOng PnQnpoRnqoSn} unvnQj=j_j2pro* Nou Z 0 1 (m~ rd)mqbsotouo2 3 0m1m2mhbTnb `m{m,n|m-n}m/ :m;mvdsjRjIo.nI `nk v w x Nm: ubOmlb/n:n;ny z akbkck@ ~mh UnVnvoWnwoXnabwnxnSj?j`j3pxo+ OoA 4 5 6 *mbbsd+mrbyozoAo7 8 3m4m5mibYni Zn0nBo1nCo2ncbynznTj@j{j4pDo, PoB 9 ! # ,mdbtd-msbEoFoGo$ % 6m7m8mjb3nc anbn=ncn?ndn; =m?mwdtjUjJo@nJ {nl C D E Pm= vbQmmb[n]n^nF G dkekfk[ en
101 if sys.version_info >= (3, 14) and "__annotations__" not in class_dict: 2d AnBn|nCn}nDn] onpnMj/j[jZp~n' Kom K L M 9m^ od!mnbaobocoN O RmSmTmebEne FnGndoHneoIn_ qnrnNj:j]j0pfo( Lon P Q R #m` pd$mobgohoioS T UmVmWmfbJna @m[m%n]m'n^m- .m/mudrjOjHo(nH _nj o p q Lm. tbMmkb)n*n+nr s |j}j~j? _mf KnLnjoMnkoNn{ sntnPj;j^j1plo) Mot U V W %m| qd'mpbmonoooX Y XmYmZmgbOng PnQnpoRnqoSn} unvnQj=j_j2pro* Nou Z 0 1 (m~ rd)mqbsotouo2 3 0m1m2mhbTnb `m{m,n|m-n}m/ :m;mvdsjRjIo.nI `nk v w x Nm: ubOmlb/n:n;ny z akbkck@ ~mh UnVnvoWnwoXnabwnxnSj?j`j3pxo+ OoA 4 5 6 *mbbsd+mrbyozoAo7 8 3m4m5mibYni Zn0nBo1nCo2ncbynznTj@j{j4pDo, PoB 9 ! # ,mdbtd-msbEoFoGo$ % 6m7m8mjb3nc anbn=ncn?ndn; =m?mwdtjUjJo@nJ {nl C D E Pm= vbQmmb[n]n^nF G dkekfk[ en
102 # See https://github.com/pydantic/pydantic/pull/11991
103 from annotationlib import ( 2a @m[m%n]m'n^m- .m/mudrjOjHo(nH _nj o p q Lm. tbMmkb)n*n+nr s |j}j~j? _mb `m{m,n|m-n}m/ :m;mvdsjRjIo.nI `nk v w x Nm: ubOmlb/n:n;ny z akbkck@ ~mc anbn=ncn?ndn; =m?mwdtjUjJo@nJ {nl C D E Pm= vbQmmb[n]n^nF G dkekfk[ en
104 Format,
105 call_annotate_function,
106 get_annotate_from_class_namespace,
107 )
109 if annotate := get_annotate_from_class_namespace(class_dict): 2a @m[m%n]m'n^m- .m/mudrjOjHo(nH _nj o p q Lm. tbMmkb)n*n+nr s |j}j~j? _mb `m{m,n|m-n}m/ :m;mvdsjRjIo.nI `nk v w x Nm: ubOmlb/n:n;ny z akbkck@ ~mc anbn=ncn?ndn; =m?mwdtjUjJo@nJ {nl C D E Pm= vbQmmb[n]n^nF G dkekfk[ en
110 raw_annotations = call_annotate_function(annotate, format=Format.FORWARDREF) 2a @m[m%n]m'n^m- .m/mudrjOjHo(nH _nj o p q Lm. tbMmkb)n*n+nr s |j}j~j? _mb `m{m,n|m-n}m/ :m;mvdsjRjIo.nI `nk v w x Nm: ubOmlb/n:n;ny z akbkck@ ~mc anbn=ncn?ndn; =m?mwdtjUjJo@nJ {nl C D E Pm= vbQmmb[n]n^nF G dkekfk[ en
111 return raw_annotations 2d AnBn|nCn}nDn] onpnMj/j[jZp~n' Kom K L M 9m^ od!mnbaobocoN O RmSmTmebEne FnGndoHneoIn_ qnrnNj:j]j0pfo( Lon P Q R #m` pd$mobgohoioS T UmVmWmfbJna @m[m%n]m'n^m- .m/mudrjOjHo(nH _nj o p q Lm. tbMmkb)n*n+nr s |j}j~j? _mf KnLnjoMnkoNn{ sntnPj;j^j1plo) Mot U V W %m| qd'mpbmonoooX Y XmYmZmgbOng PnQnpoRnqoSn} unvnQj=j_j2pro* Nou Z 0 1 (m~ rd)mqbsotouo2 3 0m1m2mhbTnb `m{m,n|m-n}m/ :m;mvdsjRjIo.nI `nk v w x Nm: ubOmlb/n:n;ny z akbkck@ ~mh UnVnvoWnwoXnabwnxnSj?j`j3pxo+ OoA 4 5 6 *mbbsd+mrbyozoAo7 8 3m4m5mibYni Zn0nBo1nCo2ncbynznTj@j{j4pDo, PoB 9 ! # ,mdbtd-msbEoFoGo$ % 6m7m8mjb3nc anbn=ncn?ndn; =m?mwdtjUjJo@nJ {nl C D E Pm= vbQmmb[n]n^nF G dkekfk[ en
114def is_table_model_class(cls: type[Any]) -> bool: 1deafgbhic
115 config = getattr(cls, "model_config", {}) 2d Qogk5p6pxdydzdwbhkikjkkklkmkRonk7p8pAdBdCdxbokpkqkrksktkDdEdFdAnBn|nCnSoTo9pUoVoWoXoYo}nDnZo] 0ofn4nonpnMj/j[jZp~n' Kom K L M 9m^ od!mnbaobocoN O RmSmTmGdWbXbHdIdJdKdLdMdNdOdPdQdukvkwkxkykzkVjAkBkCkDkujRdWjSdvjXjNbTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]debEne 1oEk!p#p^d_d`dybFkGkHkIkJkKk2oLk$p%p{d|d}dzbMkNkOkPkQkRk~daebeFnGndoHn3o4o'p5o6o7o8o9oeoIn!o_ #ogn5nqnrnNj:j]j0pfo( Lon P Q R #m` pd$mobgohoioS T UmVmWmce$b%bdeeefegeheiejekelemeSkTkUkVkWkXkYjYkZk0k1kwjneZjoexj0jObpeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefbJna $o2k(p)p0e1e2eAb3k4k5k6k7k8k%o9k*p+p3e4e5eBb!k#k$k%k'k(k6e7e8e@m[m%n]m'o(o,p)o*o+o,o-o'n^m.o- /ohn6n.m/mudrjOjHo(nH _nj o p q Lm. tbMmkb)n*n+nr s |j}j~j9e[b]b!e#e$e%e'e(e)e*e+e,e)k*k+k,k-k.k1j/k:k;k=kyj-e2j.ezj3jPb/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? _mf :o?k-p.pwfxfyfCb@k[k]k^k_k`kzfAfBfKnLnjoMn;o=o/p?o@o[o]o^okoNn_o{ `oin7nsntnPj;j^j1plo) Mot U V W %m| qd'mpbmonoooX Y XmYmZmCfhcicDfEfFfGfHfIfJfKfLfMf{k|k}k~kalbl4jcldlelflAjNf5jOfBj6jQbPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgbOng {ogl:p;p?f@f[fDbhliljlklllml|onl=p?p]f^f_fEbolplqlrlsltl`f{f|fPnQnpoRn}o~o@papbpcpdpepqoSnfp} gpjn8nunvnQj=j_j2pro* Nou Z 0 1 (m~ rd)mqbsotouo2 3 0m1m2m}fxcyc~fagbgcgdgegfggghgigulvlwlxlylzl7jAlBlClDlCjjg8jkgDj9jRblgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbTnb hpEl[p]pWgXgYgFbFlGlHlIlJlKlipLl^p_pZg0g1gGbMlNlOlPlQlRl2g3g4g`m{m,n|mjpkp`plpmpnpoppp-n}mqp/ rpkn9n:m;mvdsjRjIo.nI `nk v w x Nm: ubOmlb/n:n;ny z akbkck5gNcOc6g7g8g9g!g#g$g%g'g(gSlTlUlVlWlXl!jYlZl0l1lEj)g#j*gFj$jSb+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ ~mh sp2l{p|pshthuhHb3l4l5l6l7l8ltp9l}p~pvhwhxhIb!l#l$l%l'l(lyhzhAhUnVnvoWnupvpaqwpxpypzpApwoXnBpabCpln!nwnxnSj?j`j3pxo+ OoA 4 5 6 *mbbsd+mrbyozoAo7 8 3m4m5mBh3c4cChDhEhFhGhHhIhJhKhLh)l*l+l,l-l.l%j/l:l;l=lGjMh'jNhHj(jTbOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hibYni Dp?lbqcq=h?h@hJb@l[l]l^l_l`lEp{ldqeq[h]h^hKb|l}l~lambmcm_h`h{hZn0nBo1nFpGpfqHpIpJpKpLpCo2nMpcbNpmn#nynznTj@j{j4pDo, PoB 9 ! # ,mdbtd-msbEoFoGo$ % 6m7m8m|h,c-c}h~haibicidieifigihidmemfmgmhmim)jjmkmlmmmIjii*jjiJj+jUbkiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijb3nc OpnmgqhqViWiXiLbompmqmrmsmtmPpumiqjqYiZi0iMbvmwmxmymzmAm1i2i3ianbn=ncnQpRpkqSpTpUpVpWp?ndnXp; Ypnn$n=m?mwdtjUjJo@nJ {nl C D E Pm= vbQmmb[n]n^nF G dkekfk4i}c~c5i6i7i8i9i!i#i$i%i'iBmCmDmEmFmGm,jHmImJmKmKj(i-j)iLj.jVb*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[ en
116 if config: 2d Qogk5p6pxdydzdwbhkikjkkklkmkRonk7p8pAdBdCdxbokpkqkrksktkDdEdFdAnBn|nCnSoTo9pUoVoWoXoYo}nDnZo] 0ofn4nonpnMj/j[jZp~n' Kom K L M 9m^ od!mnbaobocoN O RmSmTmGdWbXbHdIdJdKdLdMdNdOdPdQdukvkwkxkykzkVjAkBkCkDkujRdWjSdvjXjNbTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]debEne 1oEk!p#p^d_d`dybFkGkHkIkJkKk2oLk$p%p{d|d}dzbMkNkOkPkQkRk~daebeFnGndoHn3o4o'p5o6o7o8o9oeoIn!o_ #ogn5nqnrnNj:j]j0pfo( Lon P Q R #m` pd$mobgohoioS T UmVmWmce$b%bdeeefegeheiejekelemeSkTkUkVkWkXkYjYkZk0k1kwjneZjoexj0jObpeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefbJna $o2k(p)p0e1e2eAb3k4k5k6k7k8k%o9k*p+p3e4e5eBb!k#k$k%k'k(k6e7e8e@m[m%n]m'o(o,p)o*o+o,o-o'n^m.o- /ohn6n.m/mudrjOjHo(nH _nj o p q Lm. tbMmkb)n*n+nr s |j}j~j9e[b]b!e#e$e%e'e(e)e*e+e,e)k*k+k,k-k.k1j/k:k;k=kyj-e2j.ezj3jPb/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? _mf :o?k-p.pwfxfyfCb@k[k]k^k_k`kzfAfBfKnLnjoMn;o=o/p?o@o[o]o^okoNn_o{ `oin7nsntnPj;j^j1plo) Mot U V W %m| qd'mpbmonoooX Y XmYmZmCfhcicDfEfFfGfHfIfJfKfLfMf{k|k}k~kalbl4jcldlelflAjNf5jOfBj6jQbPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgbOng {ogl:p;p?f@f[fDbhliljlklllml|onl=p?p]f^f_fEbolplqlrlsltl`f{f|fPnQnpoRn}o~o@papbpcpdpepqoSnfp} gpjn8nunvnQj=j_j2pro* Nou Z 0 1 (m~ rd)mqbsotouo2 3 0m1m2m}fxcyc~fagbgcgdgegfggghgigulvlwlxlylzl7jAlBlClDlCjjg8jkgDj9jRblgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbTnb hpEl[p]pWgXgYgFbFlGlHlIlJlKlipLl^p_pZg0g1gGbMlNlOlPlQlRl2g3g4g`m{m,n|mjpkp`plpmpnpoppp-n}mqp/ rpkn9n:m;mvdsjRjIo.nI `nk v w x Nm: ubOmlb/n:n;ny z akbkck5gNcOc6g7g8g9g!g#g$g%g'g(gSlTlUlVlWlXl!jYlZl0l1lEj)g#j*gFj$jSb+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ ~mh sp2l{p|pshthuhHb3l4l5l6l7l8ltp9l}p~pvhwhxhIb!l#l$l%l'l(lyhzhAhUnVnvoWnupvpaqwpxpypzpApwoXnBpabCpln!nwnxnSj?j`j3pxo+ OoA 4 5 6 *mbbsd+mrbyozoAo7 8 3m4m5mBh3c4cChDhEhFhGhHhIhJhKhLh)l*l+l,l-l.l%j/l:l;l=lGjMh'jNhHj(jTbOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hibYni Dp?lbqcq=h?h@hJb@l[l]l^l_l`lEp{ldqeq[h]h^hKb|l}l~lambmcm_h`h{hZn0nBo1nFpGpfqHpIpJpKpLpCo2nMpcbNpmn#nynznTj@j{j4pDo, PoB 9 ! # ,mdbtd-msbEoFoGo$ % 6m7m8m|h,c-c}h~haibicidieifigihidmemfmgmhmim)jjmkmlmmmIjii*jjiJj+jUbkiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijb3nc OpnmgqhqViWiXiLbompmqmrmsmtmPpumiqjqYiZi0iMbvmwmxmymzmAm1i2i3ianbn=ncnQpRpkqSpTpUpVpWp?ndnXp; Ypnn$n=m?mwdtjUjJo@nJ {nl C D E Pm= vbQmmb[n]n^nF G dkekfk4i}c~c5i6i7i8i9i!i#i$i%i'iBmCmDmEmFmGm,jHmImJmKmKj(i-j)iLj.jVb*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[ en
117 return config.get("table", False) or False 2d Qogk5p6pxdydzdwbhkikjkkklkmkRonk7p8pAdBdCdxbokpkqkrksktkDdEdFdAnBn|nCnSoTo9pUoVoWoXoYo}nDnZo] 0ofn4nonpnMj/j[jZp~n' Kom K L M 9m^ od!mnbaobocoN O RmSmTmGdWbXbHdIdJdKdLdMdNdOdPdQdukvkwkxkykzkVjAkBkCkDkujRdWjSdvjXjNbTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]debEne 1oEk!p#p^d_d`dybFkGkHkIkJkKk2oLk$p%p{d|d}dzbMkNkOkPkQkRk~daebeFnGndoHn3o4o'p5o6o7o8o9oeoIn!o_ #ogn5nqnrnNj:j]j0pfo( Lon P Q R #m` pd$mobgohoioS T UmVmWmce$b%bdeeefegeheiejekelemeSkTkUkVkWkXkYjYkZk0k1kwjneZjoexj0jObpeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefbJna $o2k(p)p0e1e2eAb3k4k5k6k7k8k%o9k*p+p3e4e5eBb!k#k$k%k'k(k6e7e8e@m[m%n]m'o(o,p)o*o+o,o-o'n^m.o- /ohn6n.m/mudrjOjHo(nH _nj o p q Lm. tbMmkb)n*n+nr s |j}j~j9e[b]b!e#e$e%e'e(e)e*e+e,e)k*k+k,k-k.k1j/k:k;k=kyj-e2j.ezj3jPb/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? _mf :o?k-p.pwfxfyfCb@k[k]k^k_k`kzfAfBfKnLnjoMn;o=o/p?o@o[o]o^okoNn_o{ `oin7nsntnPj;j^j1plo) Mot U V W %m| qd'mpbmonoooX Y XmYmZmCfhcicDfEfFfGfHfIfJfKfLfMf{k|k}k~kalbl4jcldlelflAjNf5jOfBj6jQbPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgbOng {ogl:p;p?f@f[fDbhliljlklllml|onl=p?p]f^f_fEbolplqlrlsltl`f{f|fPnQnpoRn}o~o@papbpcpdpepqoSnfp} gpjn8nunvnQj=j_j2pro* Nou Z 0 1 (m~ rd)mqbsotouo2 3 0m1m2m}fxcyc~fagbgcgdgegfggghgigulvlwlxlylzl7jAlBlClDlCjjg8jkgDj9jRblgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbTnb hpEl[p]pWgXgYgFbFlGlHlIlJlKlipLl^p_pZg0g1gGbMlNlOlPlQlRl2g3g4g`m{m,n|mjpkp`plpmpnpoppp-n}mqp/ rpkn9n:m;mvdsjRjIo.nI `nk v w x Nm: ubOmlb/n:n;ny z akbkck5gNcOc6g7g8g9g!g#g$g%g'g(gSlTlUlVlWlXl!jYlZl0l1lEj)g#j*gFj$jSb+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ ~mh sp2l{p|pshthuhHb3l4l5l6l7l8ltp9l}p~pvhwhxhIb!l#l$l%l'l(lyhzhAhUnVnvoWnupvpaqwpxpypzpApwoXnBpabCpln!nwnxnSj?j`j3pxo+ OoA 4 5 6 *mbbsd+mrbyozoAo7 8 3m4m5mBh3c4cChDhEhFhGhHhIhJhKhLh)l*l+l,l-l.l%j/l:l;l=lGjMh'jNhHj(jTbOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hibYni Dp?lbqcq=h?h@hJb@l[l]l^l_l`lEp{ldqeq[h]h^hKb|l}l~lambmcm_h`h{hZn0nBo1nFpGpfqHpIpJpKpLpCo2nMpcbNpmn#nynznTj@j{j4pDo, PoB 9 ! # ,mdbtd-msbEoFoGo$ % 6m7m8m|h,c-c}h~haibicidieifigihidmemfmgmhmim)jjmkmlmmmIjii*jjiJj+jUbkiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijb3nc OpnmgqhqViWiXiLbompmqmrmsmtmPpumiqjqYiZi0iMbvmwmxmymzmAm1i2i3ianbn=ncnQpRpkqSpTpUpVpWp?ndnXp; Ypnn$n=m?mwdtjUjJo@nJ {nl C D E Pm= vbQmmb[n]n^nF G dkekfk4i}c~c5i6i7i8i9i!i#i$i%i'iBmCmDmEmFmGm,jHmImJmKmKj(i-j)iLj.jVb*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[ en
118 return False 1deafgbhic
121def get_relationship_to( 1deafgbhic
122 name: str,
123 rel_info: "RelationshipInfo",
124 annotation: Any,
125) -> Any:
126 origin = get_origin(annotation) 2d nbe oba kbf pbg qbb lbh rbi sbc mb
127 use_annotation = annotation 2d nbe oba kbf pbg qbb lbh rbi sbc mb
128 # Direct relationships (e.g. 'Team' or Team) have None as an origin
129 if origin is None: 2d nbe oba kbf pbg qbb lbh rbi sbc mb
130 if isinstance(use_annotation, ForwardRef): 2d nbe oba kbf pbg qbb lbh rbi sbc mb
131 use_annotation = use_annotation.__forward_arg__ 1deafgbhic
132 else:
133 return use_annotation 2d nbe oba kbf pbg qbb lbh rbi sbc mb
134 # If Union (e.g. Optional), get the real field
135 elif _is_union_type(origin): 2d nbe oba kbf pbg qbb lbh rbi sbc mb
136 use_annotation = get_args(annotation) 1deafgbhic
137 if len(use_annotation) > 2: 1deafgbhic
138 raise ValueError("Cannot have a (non-optional) union as a SQLAlchemy field")
139 arg1, arg2 = use_annotation 1deafgbhic
140 if arg1 is NoneType and arg2 is not NoneType: 1deafgbhic
141 use_annotation = arg2
142 elif arg2 is NoneType and arg1 is not NoneType: 1deafgbhic
143 use_annotation = arg1 1deafgbhic
144 else:
145 raise ValueError(
146 "Cannot have a Union of None and None as a SQLAlchemy field"
147 )
149 # If a list, then also get the real field
150 elif origin is list: 2d nbe oba kbf pbg qbb lbh rbi sbc mb
151 use_annotation = get_args(annotation)[0] 2d nbe oba kbf pbg qbb lbh rbi sbc mb
153 return get_relationship_to(name=name, rel_info=rel_info, annotation=use_annotation) 2d nbe oba kbf pbg qbb lbh rbi sbc mb
156def is_field_noneable(field: "FieldInfo") -> bool: 1deafgbhic
157 if getattr(field, "nullable", Undefined) is not Undefined: 2d onpnMj/j[j' m K L M ^ odnbN O ebe qnrnNj:j]j( n P Q R ` pdobS T fba .m/mudrjOjH j o p q . tbkbr s ? f sntnPj;j^j) t U V W | qdpbX Y gbg unvnQj=j_j* u Z 0 1 ~ rdqb2 3 hbb :m;mvdsjRjI k v w x : ublby z @ h wnxnSj?j`j+ A 4 5 6 bbsdrb7 8 ibi ynznTj@j{j, B 9 ! # dbtdsb$ % jbc =m?mwdtjUjJ l C D E = vbmbF G [
158 return field.nullable # type: ignore 2^ od` pd. tb| qd~ rd: ubbbsddbtd= vb
159 origin = get_origin(field.annotation) 2d onpnMj/j[j' m K L M odnbN O ebe qnrnNj:j]j( n P Q R pdobS T fba .m/mudrjOjH j o p q tbkbr s ? f sntnPj;j^j) t U V W qdpbX Y gbg unvnQj=j_j* u Z 0 1 rdqb2 3 hbb :m;mvdsjRjI k v w x ublby z @ h wnxnSj?j`j+ A 4 5 6 sdrb7 8 ibi ynznTj@j{j, B 9 ! # tdsb$ % jbc =m?mwdtjUjJ l C D E vbmbF G [
160 if origin is not None and _is_union_type(origin): 2d onpnMj/j[j' m K L M odnbN O ebe qnrnNj:j]j( n P Q R pdobS T fba .m/mudrjOjH j o p q tbkbr s ? f sntnPj;j^j) t U V W qdpbX Y gbg unvnQj=j_j* u Z 0 1 rdqb2 3 hbb :m;mvdsjRjI k v w x ublby z @ h wnxnSj?j`j+ A 4 5 6 sdrb7 8 ibi ynznTj@j{j, B 9 ! # tdsb$ % jbc =m?mwdtjUjJ l C D E vbmbF G [
161 args = get_args(field.annotation) 2d Mj/j' m K L M odnbN O e Nj:j( n P Q R pdobS T a udrjH j o p q tbkbr s f Pj;j) t U V W qdpbX Y g Qj=j* u Z 0 1 rdqb2 3 b vdsjI k v w x ublby z h Sj?j+ A 4 5 6 sdrb7 8 i Tj@j, B 9 ! # tdsb$ % c wdtjJ l C D E vbmbF G
162 if any(arg is NoneType for arg in args): 2d Mj/j' m K L M odnbN O e Nj:j( n P Q R pdobS T a udrjH j o p q tbkbr s f Pj;j) t U V W qdpbX Y g Qj=j* u Z 0 1 rdqb2 3 b vdsjI k v w x ublby z h Sj?j+ A 4 5 6 sdrb7 8 i Tj@j, B 9 ! # tdsb$ % c wdtjJ l C D E vbmbF G
163 return True 2d Mj/j' m K L M odnbN O e Nj:j( n P Q R pdobS T a udrjH j o p q tbkbr s f Pj;j) t U V W qdpbX Y g Qj=j* u Z 0 1 rdqb2 3 b vdsjI k v w x ublby z h Sj?j+ A 4 5 6 sdrb7 8 i Tj@j, B 9 ! # tdsb$ % c wdtjJ l C D E vbmbF G
164 if not field.is_required(): 2d onpnMj[j' m K L M odnbN O ebe qnrnNj]j( n P Q R pdobS T fba .m/mudOjH j o p q tbkbr s ? f sntnPj^j) t U V W qdpbX Y gbg unvnQj_j* u Z 0 1 rdqb2 3 hbb :m;mvdRjI k v w x ublby z @ h wnxnSj`j+ A 4 5 6 sdrb7 8 ibi ynznTj{j, B 9 ! # tdsb$ % jbc =m?mwdUjJ l C D E vbmbF G [
165 if field.default is Undefined: 2d ode pda tbf qdg rdb ubh sdi tdc vb
166 return False
167 if field.annotation is None or field.annotation is NoneType: 2d ode pda tbf qdg rdb ubh sdi tdc vb
168 return True
169 return False 2d ode pda tbf qdg rdb ubh sdi tdc vb
170 return False 2d onpnMj[j' m K L M odnbN O ebe qnrnNj]j( n P Q R pdobS T fba .m/mudOjH j o p q tbkbr s ? f sntnPj^j) t U V W qdpbX Y gbg unvnQj_j* u Z 0 1 rdqb2 3 hbb :m;mvdRjI k v w x ublby z @ h wnxnSj`j+ A 4 5 6 sdrb7 8 ibi ynznTj{j, B 9 ! # tdsb$ % jbc =m?mwdUjJ l C D E vbmbF G [
173def get_sa_type_from_type_annotation(annotation: Any) -> Any: 1deafgbhic
174 # Resolve Optional fields
175 if annotation is None: 2d ] onpnMj/j[j' m K L M 9m^ od!mnbN O RmSmTmebe _ qnrnNj:j]j( n P Q R #m` pd$mobS T UmVmWmfba - .m/mudrjOjH j o p q Lm. tbMmkbr s |j}j~j? f { sntnPj;j^j) t U V W %m| qd'mpbX Y XmYmZmgbg } unvnQj=j_j* u Z 0 1 (m~ rd)mqb2 3 0m1m2mhbb / :m;mvdsjRjI k v w x Nm: ubOmlby z akbkck@ h abwnxnSj?j`j+ A 4 5 6 *mbbsd+mrb7 8 3m4m5mibi cbynznTj@j{j, B 9 ! # ,mdbtd-msb$ % 6m7m8mjbc ; =m?mwdtjUjJ l C D E Pm= vbQmmbF G dkekfk[
176 raise ValueError("Missing field type")
177 origin = get_origin(annotation) 2d ] onpnMj/j[j' m K L M 9m^ od!mnbN O RmSmTmebe _ qnrnNj:j]j( n P Q R #m` pd$mobS T UmVmWmfba - .m/mudrjOjH j o p q Lm. tbMmkbr s |j}j~j? f { sntnPj;j^j) t U V W %m| qd'mpbX Y XmYmZmgbg } unvnQj=j_j* u Z 0 1 (m~ rd)mqb2 3 0m1m2mhbb / :m;mvdsjRjI k v w x Nm: ubOmlby z akbkck@ h abwnxnSj?j`j+ A 4 5 6 *mbbsd+mrb7 8 3m4m5mibi cbynznTj@j{j, B 9 ! # ,mdbtd-msb$ % 6m7m8mjbc ; =m?mwdtjUjJ l C D E Pm= vbQmmbF G dkekfk[
178 if origin is None: 2d ] onpnMj/j[j' m K L M 9m^ od!mnbN O RmSmTmebe _ qnrnNj:j]j( n P Q R #m` pd$mobS T UmVmWmfba - .m/mudrjOjH j o p q Lm. tbMmkbr s |j}j~j? f { sntnPj;j^j) t U V W %m| qd'mpbX Y XmYmZmgbg } unvnQj=j_j* u Z 0 1 (m~ rd)mqb2 3 0m1m2mhbb / :m;mvdsjRjI k v w x Nm: ubOmlby z akbkck@ h abwnxnSj?j`j+ A 4 5 6 *mbbsd+mrb7 8 3m4m5mibi cbynznTj@j{j, B 9 ! # ,mdbtd-msb$ % 6m7m8mjbc ; =m?mwdtjUjJ l C D E Pm= vbQmmbF G dkekfk[
179 return annotation 2d ] onpnMj/j[j' m K L M 9m^ od!mnbN O RmSmTmebe _ qnrnNj:j]j( n P Q R #m` pd$mobS T UmVmWmfba - .m/mudrjOjH j o p q Lm. tbMmkbr s |j}j~j? f { sntnPj;j^j) t U V W %m| qd'mpbX Y XmYmZmgbg } unvnQj=j_j* u Z 0 1 (m~ rd)mqb2 3 0m1m2mhbb / :m;mvdsjRjI k v w x Nm: ubOmlby z akbkck@ h abwnxnSj?j`j+ A 4 5 6 *mbbsd+mrb7 8 3m4m5mibi cbynznTj@j{j, B 9 ! # ,mdbtd-msb$ % 6m7m8mjbc ; =m?mwdtjUjJ l C D E Pm= vbQmmbF G dkekfk[
180 elif origin is Annotated: 2d ] Mj/j[j' m K L M 9m^ od!mnbN O RmSmTme _ Nj:j]j( n P Q R #m` pd$mobS T UmVmWma - udrjOjH j o p q Lm. tbMmkbr s |j}j~jf { Pj;j^j) t U V W %m| qd'mpbX Y XmYmZmg } Qj=j_j* u Z 0 1 (m~ rd)mqb2 3 0m1m2mb / vdsjRjI k v w x Nm: ubOmlby z akbkckh abSj?j`j+ A 4 5 6 *mbbsd+mrb7 8 3m4m5mi cbTj@j{j, B 9 ! # ,mdbtd-msb$ % 6m7m8mc ; wdtjUjJ l C D E Pm= vbQmmbF G dkekfk
181 return get_sa_type_from_type_annotation(get_args(annotation)[0]) 2] _ - { } / abcb;
182 if _is_union_type(origin): 2d ] Mj/j[j' m K L M 9m^ od!mnbN O RmSmTme _ Nj:j]j( n P Q R #m` pd$mobS T UmVmWma - udrjOjH j o p q Lm. tbMmkbr s |j}j~jf { Pj;j^j) t U V W %m| qd'mpbX Y XmYmZmg } Qj=j_j* u Z 0 1 (m~ rd)mqb2 3 0m1m2mb / vdsjRjI k v w x Nm: ubOmlby z akbkckh abSj?j`j+ A 4 5 6 *mbbsd+mrb7 8 3m4m5mi cbTj@j{j, B 9 ! # ,mdbtd-msb$ % 6m7m8mc ; wdtjUjJ l C D E Pm= vbQmmbF G dkekfk
183 bases = get_args(annotation) 2d ] Mj/j[j' m K L M 9m^ od!mnbN O RmSmTme _ Nj:j]j( n P Q R #m` pd$mobS T UmVmWma - udrjOjH j o p q Lm. tbMmkbr s |j}j~jf { Pj;j^j) t U V W %m| qd'mpbX Y XmYmZmg } Qj=j_j* u Z 0 1 (m~ rd)mqb2 3 0m1m2mb / vdsjRjI k v w x Nm: ubOmlby z akbkckh abSj?j`j+ A 4 5 6 *mbbsd+mrb7 8 3m4m5mi cbTj@j{j, B 9 ! # ,mdbtd-msb$ % 6m7m8mc ; wdtjUjJ l C D E Pm= vbQmmbF G dkekfk
184 if len(bases) > 2: 2d ] Mj/j[j' m K L M 9m^ od!mnbN O RmSmTme _ Nj:j]j( n P Q R #m` pd$mobS T UmVmWma - udrjOjH j o p q Lm. tbMmkbr s |j}j~jf { Pj;j^j) t U V W %m| qd'mpbX Y XmYmZmg } Qj=j_j* u Z 0 1 (m~ rd)mqb2 3 0m1m2mb / vdsjRjI k v w x Nm: ubOmlby z akbkckh abSj?j`j+ A 4 5 6 *mbbsd+mrb7 8 3m4m5mi cbTj@j{j, B 9 ! # ,mdbtd-msb$ % 6m7m8mc ; wdtjUjJ l C D E Pm= vbQmmbF G dkekfk
185 raise ValueError("Cannot have a (non-optional) union as a SQLAlchemy field")
186 # Non optional unions are not allowed
187 if bases[0] is not NoneType and bases[1] is not NoneType: 2d ] Mj/j[j' m K L M 9m^ od!mnbN O RmSmTme _ Nj:j]j( n P Q R #m` pd$mobS T UmVmWma - udrjOjH j o p q Lm. tbMmkbr s |j}j~jf { Pj;j^j) t U V W %m| qd'mpbX Y XmYmZmg } Qj=j_j* u Z 0 1 (m~ rd)mqb2 3 0m1m2mb / vdsjRjI k v w x Nm: ubOmlby z akbkckh abSj?j`j+ A 4 5 6 *mbbsd+mrb7 8 3m4m5mi cbTj@j{j, B 9 ! # ,mdbtd-msb$ % 6m7m8mc ; wdtjUjJ l C D E Pm= vbQmmbF G dkekfk
188 raise ValueError("Cannot have a (non-optional) union as a SQLAlchemy field") 2TmWm~jZm2mck5m8mfk
189 # Optional unions are allowed
190 use_type = bases[0] if bases[0] is not NoneType else bases[1] 2d ] Mj/j[j' m K L M 9m^ od!mnbN O RmSmTme _ Nj:j]j( n P Q R #m` pd$mobS T UmVmWma - udrjOjH j o p q Lm. tbMmkbr s |j}j~jf { Pj;j^j) t U V W %m| qd'mpbX Y XmYmZmg } Qj=j_j* u Z 0 1 (m~ rd)mqb2 3 0m1m2mb / vdsjRjI k v w x Nm: ubOmlby z akbkckh abSj?j`j+ A 4 5 6 *mbbsd+mrb7 8 3m4m5mi cbTj@j{j, B 9 ! # ,mdbtd-msb$ % 6m7m8mc ; wdtjUjJ l C D E Pm= vbQmmbF G dkekfk
191 return get_sa_type_from_type_annotation(use_type) 2d ] Mj/j[j' m K L M 9m^ od!mnbN O RmSmTme _ Nj:j]j( n P Q R #m` pd$mobS T UmVmWma - udrjOjH j o p q Lm. tbMmkbr s |j}j~jf { Pj;j^j) t U V W %m| qd'mpbX Y XmYmZmg } Qj=j_j* u Z 0 1 (m~ rd)mqb2 3 0m1m2mb / vdsjRjI k v w x Nm: ubOmlby z akbkckh abSj?j`j+ A 4 5 6 *mbbsd+mrb7 8 3m4m5mi cbTj@j{j, B 9 ! # ,mdbtd-msb$ % 6m7m8mc ; wdtjUjJ l C D E Pm= vbQmmbF G dkekfk
192 return origin 2RmSmUmVm|j}jXmYm0m1makbk3m4m6m7mdkek
195def get_sa_type_from_field(field: Any) -> Any: 1deafgbhic
196 type_: Any = field.annotation 2d ] onpnMj/j[j' m K L M 9m^ od!mnbN O RmSmTmebe _ qnrnNj:j]j( n P Q R #m` pd$mobS T UmVmWmfba - .m/mudrjOjH j o p q Lm. tbMmkbr s |j}j~j? f { sntnPj;j^j) t U V W %m| qd'mpbX Y XmYmZmgbg } unvnQj=j_j* u Z 0 1 (m~ rd)mqb2 3 0m1m2mhbb / :m;mvdsjRjI k v w x Nm: ubOmlby z akbkck@ h abwnxnSj?j`j+ A 4 5 6 *mbbsd+mrb7 8 3m4m5mibi cbynznTj@j{j, B 9 ! # ,mdbtd-msb$ % 6m7m8mjbc ; =m?mwdtjUjJ l C D E Pm= vbQmmbF G dkekfk[
197 return get_sa_type_from_type_annotation(type_) 2d ] onpnMj/j[j' m K L M 9m^ od!mnbN O RmSmTmebe _ qnrnNj:j]j( n P Q R #m` pd$mobS T UmVmWmfba - .m/mudrjOjH j o p q Lm. tbMmkbr s |j}j~j? f { sntnPj;j^j) t U V W %m| qd'mpbX Y XmYmZmgbg } unvnQj=j_j* u Z 0 1 (m~ rd)mqb2 3 0m1m2mhbb / :m;mvdsjRjI k v w x Nm: ubOmlby z akbkck@ h abwnxnSj?j`j+ A 4 5 6 *mbbsd+mrb7 8 3m4m5mibi cbynznTj@j{j, B 9 ! # ,mdbtd-msb$ % 6m7m8mjbc ; =m?mwdtjUjJ l C D E Pm= vbQmmbF G dkekfk[
200def get_field_metadata(field: Any) -> Any: 1deafgbhic
201 for meta in field.metadata: 2d ] onpnMj/j[j' m K L M 9m^ od!mnbN O RmSmTmebe _ qnrnNj:j]j( n P Q R #m` pd$mobS T UmVmWmfba - .m/mudrjOjH j o p q Lm. tbMmkbr s |j}j~j? f { sntnPj;j^j) t U V W %m| qd'mpbX Y XmYmZmgbg } unvnQj=j_j* u Z 0 1 (m~ rd)mqb2 3 0m1m2mhbb / :m;mvdsjRjI k v w x Nm: ubOmlby z akbkck@ h abwnxnSj?j`j+ A 4 5 6 *mbbsd+mrb7 8 3m4m5mibi cbynznTj@j{j, B 9 ! # ,mdbtd-msb$ % 6m7m8mjbc ; =m?mwdtjUjJ l C D E Pm= vbQmmbF G dkekfk[
202 if isinstance(meta, (PydanticMetadata, MaxLen)): 1deafgbhic
203 return meta 1deafgbhic
204 return FakeMetadata() 2d ] onpnMj/j[j' m K L M 9m^ od!mnbN O RmSmTmebe _ qnrnNj:j]j( n P Q R #m` pd$mobS T UmVmWmfba - .m/mudrjOjH j o p q Lm. tbMmkbr s |j}j~j? f { sntnPj;j^j) t U V W %m| qd'mpbX Y XmYmZmgbg } unvnQj=j_j* u Z 0 1 (m~ rd)mqb2 3 0m1m2mhbb / :m;mvdsjRjI k v w x Nm: ubOmlby z akbkck@ h abwnxnSj?j`j+ A 4 5 6 *mbbsd+mrb7 8 3m4m5mibi cbynznTj@j{j, B 9 ! # ,mdbtd-msb$ % 6m7m8mjbc ; =m?mwdtjUjJ l C D E Pm= vbQmmbF G dkekfk[
207def sqlmodel_table_construct( 1deafgbhic
208 *,
209 self_instance: _TSQLModel,
210 values: dict[str, Any],
211 _fields_set: Union[set[str], None] = None,
212) -> _TSQLModel:
213 # Copy from Pydantic's BaseModel.construct()
214 # Ref: https://github.com/pydantic/pydantic/blob/v2.5.2/pydantic/main.py#L198
215 # Modified to not include everything, only the model fields, and to
216 # set relationships
217 # SQLModel override to get class SQLAlchemy __dict__ attributes and
218 # set them back in after creating the object
219 # new_obj = cls.__new__(cls)
220 cls = type(self_instance) 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
221 old_dict = self_instance.__dict__.copy() 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
222 # End SQLModel override
224 fields_values: dict[str, Any] = {} 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
225 defaults: dict[ 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
226 str, Any
227 ] = {} # keeping this separate from `fields_values` helps us compute `_fields_set`
228 for name, field in cls.model_fields.items(): 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
229 if field.alias and field.alias in values: 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
230 fields_values[name] = values.pop(field.alias)
231 elif name in values: 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
232 fields_values[name] = values.pop(name) 2xdydzdwbAdBdCdxbDdEdFdm K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daeben P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8ej o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBft U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|fu Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4gk v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhA 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hB 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3il C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
233 elif not field.is_required(): 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # $ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
234 defaults[name] = field.get_default(call_default_factory=True) 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # $ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
235 if _fields_set is None: 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
236 _fields_set = set(fields_values.keys()) 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
237 fields_values.update(defaults) 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
239 _extra: Union[dict[str, Any], None] = None 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
240 if cls.model_config.get("extra") == "allow": 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
241 _extra = {}
242 for k, v in values.items():
243 _extra[k] = v
244 # SQLModel override, do not include everything, only the model fields
245 # else:
246 # fields_values.update(values)
247 # End SQLModel override
248 # SQLModel override
249 # Do not set __dict__, instead use setattr to trigger SQLAlchemy
250 # object.__setattr__(new_obj, "__dict__", fields_values)
251 # instrumentation
252 for key, value in {**old_dict, **fields_values}.items(): 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
253 setattr(self_instance, key, value) 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
254 # End SQLModel override
255 object.__setattr__(self_instance, "__pydantic_fields_set__", _fields_set) 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
256 if not cls.__pydantic_root_model__: 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
257 object.__setattr__(self_instance, "__pydantic_extra__", _extra) 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
259 if cls.__pydantic_post_init__: 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
260 self_instance.model_post_init(None)
261 elif not cls.__pydantic_root_model__: 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
262 # Note: if there are any private attributes, cls.__pydantic_post_init__ would exist
263 # Since it doesn't, that means that `__pydantic_private__` should be set to None
264 object.__setattr__(self_instance, "__pydantic_private__", None) 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
265 # SQLModel override, set relationships
266 # Get and set any relationship objects
267 for key in self_instance.__sqlmodel_relationships__: 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
268 value = values.get(key, Undefined) 2m WbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#bn $b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@bj [b]b^b_b`b{b|b}b~bacbcccdcecfcgct hcicjckclcmcncocpcqcrcsctcucvcwcu xcyczcAcBcCcDcEcFcGcHcIcJcKcLcMck NcOcPcQcRcScTcUcVcWcXcYcZc0c1c2cA 3c4c5c6c7c8c9c!c#c$c%c'c(c)c*c+cB ,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|cl }c~cadbdcdddedfdgdhdidjdkdldmdnd
269 if value is not Undefined: 2m WbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#bn $b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@bj [b]b^b_b`b{b|b}b~bacbcccdcecfcgct hcicjckclcmcncocpcqcrcsctcucvcwcu xcyczcAcBcCcDcEcFcGcHcIcJcKcLcMck NcOcPcQcRcScTcUcVcWcXcYcZc0c1c2cA 3c4c5c6c7c8c9c!c#c$c%c'c(c)c*c+cB ,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|cl }c~cadbdcdddedfdgdhdidjdkdldmdnd
270 setattr(self_instance, key, value) 2m WbXbYbZb0b1b2b3b4b5b6b7b8b9b!b#bn $b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@bj [b]b^b_b`b{b|b}b~bacbcccdcecfcgct hcicjckclcmcncocpcqcrcsctcucvcwcu xcyczcAcBcCcDcEcFcGcHcIcJcKcLcMck NcOcPcQcRcScTcUcVcWcXcYcZc0c1c2cA 3c4c5c6c7c8c9c!c#c$c%c'c(c)c*c+cB ,c-c.c/c:c;c=c?c@c[c]c^c_c`c{c|cl }c~cadbdcdddedfdgdhdidjdkdldmdnd
271 # End SQLModel override
272 return self_instance 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
275def sqlmodel_validate( 1deafgbhic
276 cls: type[_TSQLModel],
277 obj: Any,
278 *,
279 strict: Union[bool, None] = None,
280 from_attributes: Union[bool, None] = None,
281 context: Union[dict[str, Any], None] = None,
282 update: Union[dict[str, Any], None] = None,
283) -> _TSQLModel:
284 if not is_table_model_class(cls): 2gkhkikjkkklkmknkokpkqkrksktkAnBnCnDnfn4nukvkwkxkykzkVjAkBkCkDkujWjvjXjNbEnEkFkGkHkIkJkKkLkMkNkOkPkQkRkFnGnHnIngn5nSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jObJn2k3k4k5k6k7k8k9k!k#k$k%k'k(k@m[m]m^mhn6n)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb_m?k@k[k]k^k_k`kKnLnMnNnin7n{k|k}k~kalbl4jcldlelflAj5jBj6jQbOnglhliljlklllmlnlolplqlrlsltlPnQnRnSnjn8nulvlwlxlylzl7jAlBlClDlCj8jDj9jRbTnElFlGlHlIlJlKlLlMlNlOlPlQlRl`m{m|m}mkn9nSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb~m2l3l4l5l6l7l8l9l!l#l$l%l'l(lUnVnWnXnln!n)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTbYn?l@l[l]l^l_l`l{l|l}l~lambmcmZn0n1n2nmn#ndmemfmgmhmim)jjmkmlmmmIj*jJj+jUb3nnmompmqmrmsmtmumvmwmxmymzmAmanbncndnnn$nBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVben
285 new_obj: _TSQLModel = cls.__new__(cls) 2AnBnCnDnfn4nEnFnGnHnIngn5nJn@m[m]m^mhn6n_mKnLnMnNnin7nOnPnQnRnSnjn8nTn`m{m|m}mkn9n~mUnVnWnXnln!nYnZn0n1n2nmn#n3nanbncndnnn$nen
286 else:
287 # If table, create the new instance normally to make SQLAlchemy create
288 # the _sa_instance_state attribute
289 # The wrapper of this function should use with _partial_init()
290 with partial_init(): 2gkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkVjAkBkCkDkujWjvjXjNbEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jOb2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb?k@k[k]k^k_k`k{k|k}k~kalbl4jcldlelflAj5jBj6jQbglhliljlklllmlnlolplqlrlsltlulvlwlxlylzl7jAlBlClDlCj8jDj9jRbElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTb?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmim)jjmkmlmmmIj*jJj+jUbnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVb
291 new_obj = cls() 2gkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkVjAkBkCkDkujWjvjXjNbEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jOb2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb?k@k[k]k^k_k`k{k|k}k~kalbl4jcldlelflAj5jBj6jQbglhliljlklllmlnlolplqlrlsltlulvlwlxlylzl7jAlBlClDlCj8jDj9jRbElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTb?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmim)jjmkmlmmmIj*jJj+jUbnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVb
292 # SQLModel Override to get class SQLAlchemy __dict__ attributes and
293 # set them back in after creating the object
294 old_dict = new_obj.__dict__.copy() 2gkhkikjkkklkmknkokpkqkrksktkAnBnCnDnfn4nukvkwkxkykzkVjAkBkCkDkujWjvjXjNbEnEkFkGkHkIkJkKkLkMkNkOkPkQkRkFnGnHnIngn5nSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jObJn2k3k4k5k6k7k8k9k!k#k$k%k'k(k@m[m]m^mhn6n)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb_m?k@k[k]k^k_k`kKnLnMnNnin7n{k|k}k~kalbl4jcldlelflAj5jBj6jQbOnglhliljlklllmlnlolplqlrlsltlPnQnRnSnjn8nulvlwlxlylzl7jAlBlClDlCj8jDj9jRbTnElFlGlHlIlJlKlLlMlNlOlPlQlRl`m{m|m}mkn9nSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb~m2l3l4l5l6l7l8l9l!l#l$l%l'l(lUnVnWnXnln!n)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTbYn?l@l[l]l^l_l`l{l|l}l~lambmcmZn0n1n2nmn#ndmemfmgmhmim)jjmkmlmmmIj*jJj+jUb3nnmompmqmrmsmtmumvmwmxmymzmAmanbncndnnn$nBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVben
295 use_obj = obj 2gkhkikjkkklkmknkokpkqkrksktkAnBnCnDnfn4nukvkwkxkykzkVjAkBkCkDkujWjvjXjNbEnEkFkGkHkIkJkKkLkMkNkOkPkQkRkFnGnHnIngn5nSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jObJn2k3k4k5k6k7k8k9k!k#k$k%k'k(k@m[m]m^mhn6n)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb_m?k@k[k]k^k_k`kKnLnMnNnin7n{k|k}k~kalbl4jcldlelflAj5jBj6jQbOnglhliljlklllmlnlolplqlrlsltlPnQnRnSnjn8nulvlwlxlylzl7jAlBlClDlCj8jDj9jRbTnElFlGlHlIlJlKlLlMlNlOlPlQlRl`m{m|m}mkn9nSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb~m2l3l4l5l6l7l8l9l!l#l$l%l'l(lUnVnWnXnln!n)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTbYn?l@l[l]l^l_l`l{l|l}l~lambmcmZn0n1n2nmn#ndmemfmgmhmim)jjmkmlmmmIj*jJj+jUb3nnmompmqmrmsmtmumvmwmxmymzmAmanbncndnnn$nBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVben
296 if isinstance(obj, dict) and update: 2gkhkikjkkklkmknkokpkqkrksktkAnBnCnDnfn4nukvkwkxkykzkVjAkBkCkDkujWjvjXjNbEnEkFkGkHkIkJkKkLkMkNkOkPkQkRkFnGnHnIngn5nSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jObJn2k3k4k5k6k7k8k9k!k#k$k%k'k(k@m[m]m^mhn6n)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb_m?k@k[k]k^k_k`kKnLnMnNnin7n{k|k}k~kalbl4jcldlelflAj5jBj6jQbOnglhliljlklllmlnlolplqlrlsltlPnQnRnSnjn8nulvlwlxlylzl7jAlBlClDlCj8jDj9jRbTnElFlGlHlIlJlKlLlMlNlOlPlQlRl`m{m|m}mkn9nSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb~m2l3l4l5l6l7l8l9l!l#l$l%l'l(lUnVnWnXnln!n)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTbYn?l@l[l]l^l_l`l{l|l}l~lambmcmZn0n1n2nmn#ndmemfmgmhmim)jjmkmlmmmIj*jJj+jUb3nnmompmqmrmsmtmumvmwmxmymzmAmanbncndnnn$nBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVben
297 use_obj = {**obj, **update}
298 elif update: 2gkhkikjkkklkmknkokpkqkrksktkAnBnCnDnfn4nukvkwkxkykzkVjAkBkCkDkujWjvjXjNbEnEkFkGkHkIkJkKkLkMkNkOkPkQkRkFnGnHnIngn5nSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jObJn2k3k4k5k6k7k8k9k!k#k$k%k'k(k@m[m]m^mhn6n)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb_m?k@k[k]k^k_k`kKnLnMnNnin7n{k|k}k~kalbl4jcldlelflAj5jBj6jQbOnglhliljlklllmlnlolplqlrlsltlPnQnRnSnjn8nulvlwlxlylzl7jAlBlClDlCj8jDj9jRbTnElFlGlHlIlJlKlLlMlNlOlPlQlRl`m{m|m}mkn9nSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb~m2l3l4l5l6l7l8l9l!l#l$l%l'l(lUnVnWnXnln!n)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTbYn?l@l[l]l^l_l`l{l|l}l~lambmcmZn0n1n2nmn#ndmemfmgmhmim)jjmkmlmmmIj*jJj+jUb3nnmompmqmrmsmtmumvmwmxmymzmAmanbncndnnn$nBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVben
299 use_obj = ObjectWithUpdateWrapper(obj=obj, update=update) 2NbObPbQbRbSbTbUbVb
300 cls.__pydantic_validator__.validate_python( 2gkhkikjkkklkmknkokpkqkrksktkAnBnCnDnfn4nukvkwkxkykzkVjAkBkCkDkujWjvjXjNbEnEkFkGkHkIkJkKkLkMkNkOkPkQkRkFnGnHnIngn5nSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jObJn2k3k4k5k6k7k8k9k!k#k$k%k'k(k@m[m]m^mhn6n)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb_m?k@k[k]k^k_k`kKnLnMnNnin7n{k|k}k~kalbl4jcldlelflAj5jBj6jQbOnglhliljlklllmlnlolplqlrlsltlPnQnRnSnjn8nulvlwlxlylzl7jAlBlClDlCj8jDj9jRbTnElFlGlHlIlJlKlLlMlNlOlPlQlRl`m{m|m}mkn9nSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb~m2l3l4l5l6l7l8l9l!l#l$l%l'l(lUnVnWnXnln!n)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTbYn?l@l[l]l^l_l`l{l|l}l~lambmcmZn0n1n2nmn#ndmemfmgmhmim)jjmkmlmmmIj*jJj+jUb3nnmompmqmrmsmtmumvmwmxmymzmAmanbncndnnn$nBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVben
301 use_obj,
302 strict=strict,
303 from_attributes=from_attributes,
304 context=context,
305 self_instance=new_obj,
306 )
307 # Capture fields set to restore it later
308 fields_set = new_obj.__pydantic_fields_set__.copy() 2gkhkikjkkklkmknkokpkqkrksktkAnBnCnDnfn4nukvkwkxkykzkVjAkBkCkDkujWjvjXjNbEnEkFkGkHkIkJkKkLkMkNkOkPkQkRkFnGnHnIngn5nSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jObJn2k3k4k5k6k7k8k9k!k#k$k%k'k(k@m[m]m^mhn6n)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb_m?k@k[k]k^k_k`kKnLnMnNnin7n{k|k}k~kalbl4jcldlelflAj5jBj6jQbOnglhliljlklllmlnlolplqlrlsltlPnQnRnSnjn8nulvlwlxlylzl7jAlBlClDlCj8jDj9jRbTnElFlGlHlIlJlKlLlMlNlOlPlQlRl`m{m|m}mkn9nSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb~m2l3l4l5l6l7l8l9l!l#l$l%l'l(lUnVnWnXnln!n)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTbYn?l@l[l]l^l_l`l{l|l}l~lambmcmZn0n1n2nmn#ndmemfmgmhmim)jjmkmlmmmIj*jJj+jUb3nnmompmqmrmsmtmumvmwmxmymzmAmanbncndnnn$nBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVben
309 if not is_table_model_class(cls): 2gkhkikjkkklkmknkokpkqkrksktkAnBnCnDnfn4nukvkwkxkykzkVjAkBkCkDkujWjvjXjNbEnEkFkGkHkIkJkKkLkMkNkOkPkQkRkFnGnHnIngn5nSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jObJn2k3k4k5k6k7k8k9k!k#k$k%k'k(k@m[m]m^mhn6n)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb_m?k@k[k]k^k_k`kKnLnMnNnin7n{k|k}k~kalbl4jcldlelflAj5jBj6jQbOnglhliljlklllmlnlolplqlrlsltlPnQnRnSnjn8nulvlwlxlylzl7jAlBlClDlCj8jDj9jRbTnElFlGlHlIlJlKlLlMlNlOlPlQlRl`m{m|m}mkn9nSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb~m2l3l4l5l6l7l8l9l!l#l$l%l'l(lUnVnWnXnln!n)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTbYn?l@l[l]l^l_l`l{l|l}l~lambmcmZn0n1n2nmn#ndmemfmgmhmim)jjmkmlmmmIj*jJj+jUb3nnmompmqmrmsmtmumvmwmxmymzmAmanbncndnnn$nBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVben
310 # If not table, normal Pydantic code, set __dict__
311 new_obj.__dict__ = {**old_dict, **new_obj.__dict__} 2AnBnCnDnfn4nEnFnGnHnIngn5nJn@m[m]m^mhn6n_mKnLnMnNnin7nOnPnQnRnSnjn8nTn`m{m|m}mkn9n~mUnVnWnXnln!nYnZn0n1n2nmn#n3nanbncndnnn$nen
312 else:
313 # Do not set __dict__, instead use setattr to trigger SQLAlchemy
314 # instrumentation
315 for key, value in {**old_dict, **new_obj.__dict__}.items(): 2gkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkVjAkBkCkDkujWjvjXjNbEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jOb2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb?k@k[k]k^k_k`k{k|k}k~kalbl4jcldlelflAj5jBj6jQbglhliljlklllmlnlolplqlrlsltlulvlwlxlylzl7jAlBlClDlCj8jDj9jRbElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTb?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmim)jjmkmlmmmIj*jJj+jUbnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVb
316 setattr(new_obj, key, value) 2gkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkVjAkBkCkDkujWjvjXjNbEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jOb2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb?k@k[k]k^k_k`k{k|k}k~kalbl4jcldlelflAj5jBj6jQbglhliljlklllmlnlolplqlrlsltlulvlwlxlylzl7jAlBlClDlCj8jDj9jRbElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTb?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmim)jjmkmlmmmIj*jJj+jUbnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVb
317 # Restore fields set
318 object.__setattr__(new_obj, "__pydantic_fields_set__", fields_set) 2gkhkikjkkklkmknkokpkqkrksktkAnBnCnDnfn4nukvkwkxkykzkVjAkBkCkDkujWjvjXjNbEnEkFkGkHkIkJkKkLkMkNkOkPkQkRkFnGnHnIngn5nSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jObJn2k3k4k5k6k7k8k9k!k#k$k%k'k(k@m[m]m^mhn6n)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb_m?k@k[k]k^k_k`kKnLnMnNnin7n{k|k}k~kalbl4jcldlelflAj5jBj6jQbOnglhliljlklllmlnlolplqlrlsltlPnQnRnSnjn8nulvlwlxlylzl7jAlBlClDlCj8jDj9jRbTnElFlGlHlIlJlKlLlMlNlOlPlQlRl`m{m|m}mkn9nSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb~m2l3l4l5l6l7l8l9l!l#l$l%l'l(lUnVnWnXnln!n)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTbYn?l@l[l]l^l_l`l{l|l}l~lambmcmZn0n1n2nmn#ndmemfmgmhmim)jjmkmlmmmIj*jJj+jUb3nnmompmqmrmsmtmumvmwmxmymzmAmanbncndnnn$nBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVben
319 # Get and set any relationship objects
320 if is_table_model_class(cls): 2gkhkikjkkklkmknkokpkqkrksktkAnBnCnDnfn4nukvkwkxkykzkVjAkBkCkDkujWjvjXjNbEnEkFkGkHkIkJkKkLkMkNkOkPkQkRkFnGnHnIngn5nSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jObJn2k3k4k5k6k7k8k9k!k#k$k%k'k(k@m[m]m^mhn6n)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb_m?k@k[k]k^k_k`kKnLnMnNnin7n{k|k}k~kalbl4jcldlelflAj5jBj6jQbOnglhliljlklllmlnlolplqlrlsltlPnQnRnSnjn8nulvlwlxlylzl7jAlBlClDlCj8jDj9jRbTnElFlGlHlIlJlKlLlMlNlOlPlQlRl`m{m|m}mkn9nSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb~m2l3l4l5l6l7l8l9l!l#l$l%l'l(lUnVnWnXnln!n)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTbYn?l@l[l]l^l_l`l{l|l}l~lambmcmZn0n1n2nmn#ndmemfmgmhmim)jjmkmlmmmIj*jJj+jUb3nnmompmqmrmsmtmumvmwmxmymzmAmanbncndnnn$nBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVben
321 for key in new_obj.__sqlmodel_relationships__: 2gkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkVjAkBkCkDkujWjvjXjNbEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jOb2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb?k@k[k]k^k_k`k{k|k}k~kalbl4jcldlelflAj5jBj6jQbglhliljlklllmlnlolplqlrlsltlulvlwlxlylzl7jAlBlClDlCj8jDj9jRbElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTb?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmim)jjmkmlmmmIj*jJj+jUbnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVb
322 value = getattr(use_obj, key, Undefined) 2ujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLj
323 if value is not Undefined: 2ujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLj
324 setattr(new_obj, key, value)
325 return new_obj 2gkhkikjkkklkmknkokpkqkrksktkAnBnCnDnfn4nukvkwkxkykzkVjAkBkCkDkujWjvjXjNbEnEkFkGkHkIkJkKkLkMkNkOkPkQkRkFnGnHnIngn5nSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jObJn2k3k4k5k6k7k8k9k!k#k$k%k'k(k@m[m]m^mhn6n)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb_m?k@k[k]k^k_k`kKnLnMnNnin7n{k|k}k~kalbl4jcldlelflAj5jBj6jQbOnglhliljlklllmlnlolplqlrlsltlPnQnRnSnjn8nulvlwlxlylzl7jAlBlClDlCj8jDj9jRbTnElFlGlHlIlJlKlLlMlNlOlPlQlRl`m{m|m}mkn9nSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb~m2l3l4l5l6l7l8l9l!l#l$l%l'l(lUnVnWnXnln!n)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTbYn?l@l[l]l^l_l`l{l|l}l~lambmcmZn0n1n2nmn#ndmemfmgmhmim)jjmkmlmmmIj*jJj+jUb3nnmompmqmrmsmtmumvmwmxmymzmAmanbncndnnn$nBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVben
328def sqlmodel_init(*, self: "SQLModel", data: dict[str, Any]) -> None: 1deafgbhic
329 old_dict = self.__dict__.copy() 2Qogk5p6pxdydzdwbhkikjkkklkmkRonk7p8pAdBdCdxbokpkqkrksktkDdEdFd|nSoTo9pUoVoWoXoYo}nZo] 0ofn~n' Kom K L M ^ aobocoN O GdWbXbHdIdJdKdLdMdNdOdPdQdukvkwkxkykzkVjAkBkCkDkujRdWjSdvjXjNbTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb1oEk!p#p^d_d`dybFkGkHkIkJkKk2oLk$p%p{d|d}dzbMkNkOkPkQkRk~daebedo3o4o'p5o6o7o8o9oeo!o_ #ognfo( Lon P Q R ` gohoioS T ce$b%bdeeefegeheiejekelemeSkTkUkVkWkXkYjYkZk0k1kwjneZjoexj0jObpeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb$o2k(p)p0e1e2eAb3k4k5k6k7k8k%o9k*p+p3e4e5eBb!k#k$k%k'k(k6e7e8e%n'o(o,p)o*o+o,o-o'n.o- /ohn(nH _nj o p q . )n*n+nr s 9e[b]b!e#e$e%e'e(e)e*e+e,e)k*k+k,k-k.k1j/k:k;k=kyj-e2j.ezj3jPb/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? :o?k-p.pwfxfyfCb@k[k]k^k_k`kzfAfBfjo;o=o/p?o@o[o]o^oko_o{ `oinlo) Mot U V W | monoooX Y CfhcicDfEfFfGfHfIfJfKfLfMf{k|k}k~kalbl4jcldlelflAjNf5jOfBj6jQbPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb{ogl:p;p?f@f[fDbhliljlklllml|onl=p?p]f^f_fEbolplqlrlsltl`f{f|fpo}o~o@papbpcpdpepqofp} gpjnro* Nou Z 0 1 ~ sotouo2 3 }fxcyc~fagbgcgdgegfggghgigulvlwlxlylzl7jAlBlClDlCjjg8jkgDj9jRblgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbhpEl[p]pWgXgYgFbFlGlHlIlJlKlipLl^p_pZg0g1gGbMlNlOlPlQlRl2g3g4g,njpkp`plpmpnpoppp-nqp/ rpkn.nI `nk v w x : /n:n;ny z 5gNcOc6g7g8g9g!g#g$g%g'g(gSlTlUlVlWlXl!jYlZl0l1lEj)g#j*gFj$jSb+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ sp2l{p|pshthuhHb3l4l5l6l7l8ltp9l}p~pvhwhxhIb!l#l$l%l'l(lyhzhAhvoupvpaqwpxpypzpApwoBpabCplnxo+ OoA 4 5 6 bbyozoAo7 8 Bh3c4cChDhEhFhGhHhIhJhKhLh)l*l+l,l-l.l%j/l:l;l=lGjMh'jNhHj(jTbOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hibDp?lbqcq=h?h@hJb@l[l]l^l_l`lEp{ldqeq[h]h^hKb|l}l~lambmcm_h`h{hBoFpGpfqHpIpJpKpLpCoMpcbNpmnDo, PoB 9 ! # dbEoFoGo$ % |h,c-c}h~haibicidieifigihidmemfmgmhmim)jjmkmlmmmIjii*jjiJj+jUbkiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbOpnmgqhqViWiXiLbompmqmrmsmtmPpumiqjqYiZi0iMbvmwmxmymzmAm1i2i3i=nQpRpkqSpTpUpVpWp?nXp; Ypnn@nJ {nl C D E = [n]n^nF G 4i}c~c5i6i7i8i9i!i#i$i%i'iBmCmDmEmFmGm,jHmImJmKmKj(i-j)iLj.jVb*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
330 if not is_table_model_class(self.__class__): 2Qogk5p6pxdydzdwbhkikjkkklkmkRonk7p8pAdBdCdxbokpkqkrksktkDdEdFd|nSoTo9pUoVoWoXoYo}nZo] 0ofn~n' Kom K L M ^ aobocoN O GdWbXbHdIdJdKdLdMdNdOdPdQdukvkwkxkykzkVjAkBkCkDkujRdWjSdvjXjNbTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb1oEk!p#p^d_d`dybFkGkHkIkJkKk2oLk$p%p{d|d}dzbMkNkOkPkQkRk~daebedo3o4o'p5o6o7o8o9oeo!o_ #ognfo( Lon P Q R ` gohoioS T ce$b%bdeeefegeheiejekelemeSkTkUkVkWkXkYjYkZk0k1kwjneZjoexj0jObpeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb$o2k(p)p0e1e2eAb3k4k5k6k7k8k%o9k*p+p3e4e5eBb!k#k$k%k'k(k6e7e8e%n'o(o,p)o*o+o,o-o'n.o- /ohn(nH _nj o p q . )n*n+nr s 9e[b]b!e#e$e%e'e(e)e*e+e,e)k*k+k,k-k.k1j/k:k;k=kyj-e2j.ezj3jPb/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? :o?k-p.pwfxfyfCb@k[k]k^k_k`kzfAfBfjo;o=o/p?o@o[o]o^oko_o{ `oinlo) Mot U V W | monoooX Y CfhcicDfEfFfGfHfIfJfKfLfMf{k|k}k~kalbl4jcldlelflAjNf5jOfBj6jQbPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb{ogl:p;p?f@f[fDbhliljlklllml|onl=p?p]f^f_fEbolplqlrlsltl`f{f|fpo}o~o@papbpcpdpepqofp} gpjnro* Nou Z 0 1 ~ sotouo2 3 }fxcyc~fagbgcgdgegfggghgigulvlwlxlylzl7jAlBlClDlCjjg8jkgDj9jRblgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbhpEl[p]pWgXgYgFbFlGlHlIlJlKlipLl^p_pZg0g1gGbMlNlOlPlQlRl2g3g4g,njpkp`plpmpnpoppp-nqp/ rpkn.nI `nk v w x : /n:n;ny z 5gNcOc6g7g8g9g!g#g$g%g'g(gSlTlUlVlWlXl!jYlZl0l1lEj)g#j*gFj$jSb+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ sp2l{p|pshthuhHb3l4l5l6l7l8ltp9l}p~pvhwhxhIb!l#l$l%l'l(lyhzhAhvoupvpaqwpxpypzpApwoBpabCplnxo+ OoA 4 5 6 bbyozoAo7 8 Bh3c4cChDhEhFhGhHhIhJhKhLh)l*l+l,l-l.l%j/l:l;l=lGjMh'jNhHj(jTbOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hibDp?lbqcq=h?h@hJb@l[l]l^l_l`lEp{ldqeq[h]h^hKb|l}l~lambmcm_h`h{hBoFpGpfqHpIpJpKpLpCoMpcbNpmnDo, PoB 9 ! # dbEoFoGo$ % |h,c-c}h~haibicidieifigihidmemfmgmhmim)jjmkmlmmmIjii*jjiJj+jUbkiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbOpnmgqhqViWiXiLbompmqmrmsmtmPpumiqjqYiZi0iMbvmwmxmymzmAm1i2i3i=nQpRpkqSpTpUpVpWp?nXp; Ypnn@nJ {nl C D E = [n]n^nF G 4i}c~c5i6i7i8i9i!i#i$i%i'iBmCmDmEmFmGm,jHmImJmKmKj(i-j)iLj.jVb*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
331 self.__pydantic_validator__.validate_python( 2Qogk5p6pwbhkikjkkklkmkRonk7p8pxbokpkqkrksktk|nSoTo9pUoVoWoXoYo}nZo0ofn~nKoaobocoukvkwkxkykzkVjAkBkCkDkujWjvjXjNbeb1oEk!p#pybFkGkHkIkJkKk2oLk$p%pzbMkNkOkPkQkRkdo3o4o'p5o6o7o8o9oeo!o#ognfoLogohoioSkTkUkVkWkXkYjYkZk0k1kwjZjxj0jObfb$o2k(p)pAb3k4k5k6k7k8k%o9k*p+pBb!k#k$k%k'k(k%n'o(o,p)o*o+o,o-o'n.o/ohn(n_n)n*n+n)k*k+k,k-k.k1j/k:k;k=kyj2jzj3jPb? :o?k-p.pCb@k[k]k^k_k`kjo;o=o/p?o@o[o]o^oko_o`oinloMomonooo{k|k}k~kalbl4jcldlelflAj5jBj6jQbgb{ogl:p;pDbhliljlklllml|onl=p?pEbolplqlrlsltlpo}o~o@papbpcpdpepqofpgpjnroNosotououlvlwlxlylzl7jAlBlClDlCj8jDj9jRbhbhpEl[p]pFbFlGlHlIlJlKlipLl^p_pGbMlNlOlPlQlRl,njpkp`plpmpnpoppp-nqprpkn.n`n/n:n;nSlTlUlVlWlXl!jYlZl0l1lEj#jFj$jSb@ sp2l{p|pHb3l4l5l6l7l8ltp9l}p~pIb!l#l$l%l'l(lvoupvpaqwpxpypzpApwoBpCplnxoOoyozoAo)l*l+l,l-l.l%j/l:l;l=lGj'jHj(jTbibDp?lbqcqJb@l[l]l^l_l`lEp{ldqeqKb|l}l~lambmcmBoFpGpfqHpIpJpKpLpCoMpNpmnDoPoEoFoGodmemfmgmhmim)jjmkmlmmmIj*jJj+jUbjbOpnmgqhqLbompmqmrmsmtmPpumiqjqMbvmwmxmymzmAm=nQpRpkqSpTpUpVpWp?nXpYpnn@n{n[n]n^nBmCmDmEmFmGm,jHmImJmKmKj-jLj.jVb[
332 data,
333 self_instance=self,
334 )
335 else:
336 sqlmodel_table_construct( 2xdydzdwbAdBdCdxbDdEdFd] ' m K L M ^ N O GdWbXbHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb^d_d`dyb{d|d}dzb~daebe_ ( n P Q R ` S T ce$b%bdeeefegeheiejekelemeneoepeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb0e1e2eAb3e4e5eBb6e7e8e- H j o p q . r s 9e[b]b!e#e$e%e'e(e)e*e+e,e-e.e/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? wfxfyfCbzfAfBf{ ) t U V W | X Y CfhcicDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb?f@f[fDb]f^f_fEb`f{f|f} * u Z 0 1 ~ 2 3 }fxcyc~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbWgXgYgFbZg0g1gGb2g3g4g/ I k v w x : y z 5gNcOc6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ shthuhHbvhwhxhIbyhzhAhab+ A 4 5 6 bb7 8 Bh3c4cChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hib=h?h@hJb[h]h^hKb_h`h{hcb, B 9 ! # db$ % |h,c-c}h~haibicidieifigihiiijikiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbViWiXiLbYiZi0iMb1i2i3i; J l C D E = F G 4i}c~c5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
337 self_instance=self,
338 values=data,
339 )
340 object.__setattr__( 2QogkxdydzdwbhkikjkkklkmkRonkAdBdCdxbokpkqkrksktkDdEdFd|nSoToUoVoWoXoYo}nZo] 0ofn~n' m K L M ^ aobocoN O GdWbXbHdIdJdKdLdMdNdOdPdQdukvkwkxkykzkVjAkBkCkDkujRdWjSdvjXjNbTdUdVdWdXdYdZd0d1dYbZb0b2d3d4d5d6d7d8d9d!d1b2b3b4b5b6b7b8b9b!b#b#d$d%d'd(d)d*d+d,d-d.d/d:d;d=d?d@d[d]deb1oEk^d_d`dybFkGkHkIkJkKk2oLk{d|d}dzbMkNkOkPkQkRk~daebedo3o4o5o6o7o8o9oeo!o_ #ognfo( n P Q R ` gohoioS T ce$b%bdeeefegeheiejekelemeSkTkUkVkWkXkYjYkZk0k1kwjneZjoexj0jObpeqereseteuevewexe'b(b)byezeAeBeCeDeEeFeGe*b+b,b-b.b/b:b;b=b?b@bHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZefb$o2k0e1e2eAb3k4k5k6k7k8k%o9k3e4e5eBb!k#k$k%k'k(k6e7e8e%n'o(o)o*o+o,o-o'n.o- /ohn(nH j o p q . )n*n+nr s 9e[b]b!e#e$e%e'e(e)e*e+e,e)k*k+k,k-k.k1j/k:k;k=kyj-e2j.ezj3jPb/e:e;e=e?e@e[e]e^e^b_b`b_e`e{e|e}e~eafbfcf{b|b}b~bacbcccdcecfcgcdfefffgfhfifjfkflfmfnfofpfqfrfsftfufvf? :o?kwfxfyfCb@k[k]k^k_k`kzfAfBfjo;o=o?o@o[o]o^oko_o{ `oinlo) t U V W | monoooX Y CfhcicDfEfFfGfHfIfJfKfLfMf{k|k}k~kalbl4jcldlelflAjNf5jOfBj6jQbPfQfRfSfTfUfVfWfXfjckclcYfZf0f1f2f3f4f5f6fmcncocpcqcrcsctcucvcwc7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=fgb{ogl?f@f[fDbhliljlklllml|onl]f^f_fEbolplqlrlsltl`f{f|fpo}o~oapbpcpdpepqofp} gpjnro* u Z 0 1 ~ sotouo2 3 }fxcyc~fagbgcgdgegfggghgigulvlwlxlylzl7jAlBlClDlCjjg8jkgDj9jRblgmgngogpgqgrgsgtgzcAcBcugvgwgxgygzgAgBgCgCcDcEcFcGcHcIcJcKcLcMcDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVghbhpElWgXgYgFbFlGlHlIlJlKlipLlZg0g1gGbMlNlOlPlQlRl2g3g4g,njpkplpmpnpoppp-nqp/ rpkn.nI k v w x : /n:n;ny z 5gNcOc6g7g8g9g!g#g$g%g'g(gSlTlUlVlWlXl!jYlZl0l1lEj)g#j*gFj$jSb+g,g-g.g/g:g;g=g?gPcQcRc@g[g]g^g_g`g{g|g}gScTcUcVcWcXcYcZc0c1c2c~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrh@ sp2lshthuhHb3l4l5l6l7l8ltp9lvhwhxhIb!l#l$l%l'l(lyhzhAhvoupvpwpxpypzpApwoBpabCplnxo+ A 4 5 6 bbyozoAo7 8 Bh3c4cChDhEhFhGhHhIhJhKhLh)l*l+l,l-l.l%j/l:l;l=lGjMh'jNhHj(jTbOhPhQhRhShThUhVhWh5c6c7cXhYhZh0h1h2h3h4h5h8c9c!c#c$c%c'c(c)c*c+c6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;hibDp?l=h?h@hJb@l[l]l^l_l`lEp{l[h]h^hKb|l}l~lambmcm_h`h{hBoFpGpHpIpJpKpLpCoMpcbNpmnDo, B 9 ! # dbEoFoGo$ % |h,c-c}h~haibicidieifigihidmemfmgmhmim)jjmkmlmmmIjii*jjiJj+jUbkiliminioipiqirisi.c/c:ctiuiviwixiyiziAiBi;c=c?c@c[c]c^c_c`c{c|cCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUijbOpnmViWiXiLbompmqmrmsmtmPpumYiZi0iMbvmwmxmymzmAm1i2i3i=nQpRpSpTpUpVpWp?nXp; Ypnn@nJ l C D E = [n]n^nF G 4i}c~c5i6i7i8i9i!i#i$i%i'iBmCmDmEmFmGm,jHmImJmKmKj(i-j)iLj.jVb*i+i,i-i.i/i:i;i=iadbdcd?i@i[i]i^i_i`i{i|iddedfdgdhdidjdkdldmdnd}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqj[
341 self,
342 "__dict__",
343 {**old_dict, **self.__dict__},
344 )