Coverage for sqlmodel / _compat.py: 93%
195 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-06-10 09:40 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-06-10 09:40 +0000
1import sys 1deafbghc
2import types 1deafbghc
3from collections.abc import Generator 1deafbghc
4from contextlib import contextmanager 1deafbghc
5from contextvars import ContextVar 1deafbghc
6from dataclasses import dataclass 1deafbghc
7from typing import ( 1deafbghc
8 TYPE_CHECKING,
9 Annotated,
10 Any,
11 ForwardRef,
12 TypeAlias,
13 TypeVar,
14 Union,
15 get_args,
16 get_origin,
17)
19from annotated_types import MaxLen 1deafbghc
20from pydantic import VERSION as P_VERSION 1deafbghc
21from pydantic import BaseModel 1deafbghc
22from pydantic import ConfigDict as ConfigDict 1deafbghc
23from pydantic._internal._fields import PydanticMetadata 1deafbghc
24from pydantic._internal._model_construction import ModelMetaclass as ModelMetaclass 1deafbghc
25from pydantic._internal._repr import Representation as Representation 1deafbghc
26from pydantic.fields import FieldInfo 1deafbghc
27from pydantic_core import PydanticUndefined as Undefined 1deafbghc
28from pydantic_core import PydanticUndefinedType as PydanticUndefinedType 1deafbghc
30BaseConfig = ConfigDict 1deafbghc
31UndefinedType = PydanticUndefinedType 1deafbghc
32PYDANTIC_MINOR_VERSION = tuple(int(i) for i in P_VERSION.split(".")[:2]) 1deafbghc
35if TYPE_CHECKING: 1deafbghc
36 from .main import RelationshipInfo, SQLModel
38UnionType = getattr(types, "UnionType", Union) 1deafbghc
39NoneType = type(None) 1deafbghc
40T = TypeVar("T") 1deafbghc
41InstanceOrType: TypeAlias = T | type[T] 1deafbghc
42_TSQLModel = TypeVar("_TSQLModel", bound="SQLModel") 1deafbghc
45class FakeMetadata: 1deafbghc
46 max_length: int | None = None 1deafbghc
47 max_digits: int | None = None 1deafbghc
48 decimal_places: int | None = None 1deafbghc
51@dataclass 1deafbghc
52class ObjectWithUpdateWrapper: 1deafbghc
53 obj: Any 1deafbghc
54 update: dict[str, Any] 1deafbghc
56 def __getattribute__(self, __name: str) -> Any: 1deafbghc
57 update = super().__getattribute__("update") 2$b%b'b(b)b*b+b,b
58 obj = super().__getattribute__("obj") 2$b%b'b(b)b*b+b,b
59 if __name in update: 2$b%b'b(b)b*b+b,b
60 return update[__name] 2$b%b'b(b)b*b+b,b
61 return getattr(obj, __name) 2$b%b'b(b)b*b+b,b
64def _is_union_type(t: Any) -> bool: 1deafbghc
65 return t is UnionType or t is Union 2d ibUi.injI J ? l K L M oljb-bplQbN O ~kalblql_ ojEdFde kbVi/ipjP Q @ m R S T rllb.bslRbU V cldleltl` qjGdHda ~ BdOdWiW X F i n o p GjabVbHjNbq r xjyjzjIjY XiYbZbf mbYi:irjZ 0 [ s 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJdb bbCdPdZi6 7 G j t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bg ob1i;itj9 ! ] y # $ % xlpb:bylTb' ( iljlklzl| ujKdLdh qb2i=ivj) * ^ z + , - Alrb;bBlUb. / llmlnlCl} wjMdNdc dbDdQd3i: ; H k A B C MjebXbNjPbD E DjEjFjOj= 4i2b3b
68finish_init: ContextVar[bool] = ContextVar("finish_init", default=True) 1deafbghc
71@contextmanager 1deafbghc
72def partial_init() -> Generator[None, None, None]: 1deafbghc
73 token = finish_init.set(False) 2PjQjRjSjTjUjVjWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$b6j7j8j9j!j#j$j%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%b:j;j=j?j@j[j]j^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bdkekfkgkhkikjkkklkmknkokpk}iqkrksktk#i~i$iaj(bukvkwkxkykzkAkBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bLkMkNkOkPkQkRkSkTkUkVkWkXkejYkZk0k1k(ifj)igj*b2k3k4k5k6k7k8k9k!k#k$k%k'khj(k)k*k+k*iij+ijj+b,k-k.k/k:k;k=k?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,b
74 yield 2PjQjRjSjTjUjVjWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$b6j7j8j9j!j#j$j%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%b:j;j=j?j@j[j]j^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bdkekfkgkhkikjkkklkmknkokpk}iqkrksktk#i~i$iaj(bukvkwkxkykzkAkBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bLkMkNkOkPkQkRkSkTkUkVkWkXkejYkZk0k1k(ifj)igj*b2k3k4k5k6k7k8k9k!k#k$k%k'khj(k)k*k+k*iij+ijj+b,k-k.k/k:k;k=k?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,b
75 finish_init.reset(token) 2PjQjRjSjTjUjVjWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$b6j7j8j9j!j#j$j%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%b:j;j=j?j@j[j]j^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bdkekfkgkhkikjkkklkmknkokpk}iqkrksktk#i~i$iaj(bukvkwkxkykzkAkBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bLkMkNkOkPkQkRkSkTkUkVkWkXkejYkZk0k1k(ifj)igj*b2k3k4k5k6k7k8k9k!k#k$k%k'khj(k)k*k+k*iij+ijj+b,k-k.k/k:k;k=k?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,b
78class SQLModelConfig(BaseConfig, total=False): 1deafbghc
79 table: bool | None 1deafbghc
80 registry: Any | None 1deafbghc
83def get_model_fields(model: InstanceOrType[BaseModel]) -> dict[str, "FieldInfo"]: 1deafbghc
84 # TODO: refactor the usage of this function to always pass the class
85 # not the instance, and then remove this extra check
86 # this is for compatibility with Pydantic v3
87 if isinstance(model, type): 2d 4bib1l2lUi.inj]n^nI J ? DbEb3ll K L M oljb-bplQbN O ~kalblql_ ojEdFd?i5i@i6i[i$bsbe 5bkb4l5lVi/ipj_n`nP Q @ FbGb6lm R S T rllb.bslRbU V cldleltl` qjGdHd]i7i^i8i_i%btba 6b~ DlElBdOdWi@m[mW X F xbybFli n o p GjabVbHjNbq r xjyjzjIjY XiYbZb`i9i{i!i|i'bfbf 7bmb7l8lYi:irj{n|nZ 0 [ HbIb9ls 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJd}i#i~i$iaj(bubb 8bbbGlHlCdPdZi]m^m6 7 G zbAbIlj t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bbj%icj'idj)bgbg 9bob!l#l1i;itj}n~n9 ! ] JbKb$ly # $ % xlpb:bylTb' ( iljlklzl| ujKdLdej(ifj)igj*bvbh !bqb%l'l2i=ivjaobo) * ^ LbMb(lz + , - Alrb;bBlUb. / llmlnlCl} wjMdNdhj*iij+ijj+bwbc #bdbJlKlDdQd3i_m`m: ; H BbCbLlk A B C MjebXbNjPbD E DjEjFjOj= 4i2b3bkj,ilj-imj,bhb
88 use_model = model 2d ib1l2lUi.inj]n^nI J ? DbEb3ll K L M oljb-bplQbN O ~kalblql_ ojEdFdsbe kb4l5lVi/ipj_n`nP Q @ FbGb6lm R S T rllb.bslRbU V cldleltl` qjGdHdtba ~ DlElBdOdWi@m[mW X F xbybFli n o p GjabVbHjNbq r xjyjzjIjY XiYbZbfbf mb7l8lYi:irj{n|nZ 0 [ HbIb9ls 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJdubb bbGlHlCdPdZi]m^m6 7 G zbAbIlj t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bgbg ob!l#l1i;itj}n~n9 ! ] JbKb$ly # $ % xlpb:bylTb' ( iljlklzl| ujKdLdvbh qb%l'l2i=ivjaobo) * ^ LbMb(lz + , - Alrb;bBlUb. / llmlnlCl} wjMdNdwbc dbJlKlDdQd3i_m`m: ; H BbCbLlk A B C MjebXbNjPbD E DjEjFjOj= 4i2b3bhb
89 else:
90 use_model = model.__class__ 24b?i5i@i6i[i$bsb5b]i7i^i8i_i%btb6b`i9i{i!i|i'bfb7b}i#i~i$iaj(bub8bbj%icj'idj)bgb9bej(ifj)igj*bvb!bhj*iij+ijj+bwb#bkj,ilj-imj,bhb
91 return use_model.model_fields 2d 4bib1l2lUi.inj]n^nI J ? DbEb3ll K L M oljb-bplQbN O ~kalblql_ ojEdFd?i5i@i6i[i$bsbe 5bkb4l5lVi/ipj_n`nP Q @ FbGb6lm R S T rllb.bslRbU V cldleltl` qjGdHd]i7i^i8i_i%btba 6b~ DlElBdOdWi@m[mW X F xbybFli n o p GjabVbHjNbq r xjyjzjIjY XiYbZb`i9i{i!i|i'bfbf 7bmb7l8lYi:irj{n|nZ 0 [ HbIb9ls 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJd}i#i~i$iaj(bubb 8bbbGlHlCdPdZi]m^m6 7 G zbAbIlj t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bbj%icj'idj)bgbg 9bob!l#l1i;itj}n~n9 ! ] JbKb$ly # $ % xlpb:bylTb' ( iljlklzl| ujKdLdej(ifj)igj*bvbh !bqb%l'l2i=ivjaobo) * ^ LbMb(lz + , - Alrb;bBlUb. / llmlnlCl} wjMdNdhj*iij+ijj+bwbc #bdbJlKlDdQd3i_m`m: ; H BbCbLlk A B C MjebXbNjPbD E DjEjFjOj= 4i2b3bkj,ilj-imj,bhb
94def init_pydantic_private_attrs(new_object: InstanceOrType["SQLModel"]) -> None: 1deafbghc
95 object.__setattr__(new_object, "__pydantic_fields_set__", set()) 2bnPjcodoRdSdTd4bQjRjSjTjUjVjUdVdWd;l=lSm?lcndneoenfngnhninTm@ljnibkn)lmmUmI J ? {mDbEbl K L M jbVmWmXmYmN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7dWjXjYjZj0j1j?i2j3j4j5j5i8d@i9d6i[i$b!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesb[lln6jfogokeleme5b7j8j9j!j#j$jneoepe]l^lZm_lmnnnhoonpnqnrnsn0m`ltnkbun*lnm1mP Q @ |mFbGbm R S T lb2m3m4m5mU V ` qeecfcreseteuevewexeyezeAe%j'j(j)j*j+j]i,j-j.j/j7iBe^iCe8i_i%bDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb{lvn:jiojo'e(e)e6b;j=j?j@j[j]j*e+e,eMlNlumOlwnxnkoynznAnBnCnvmPlDn~ En+lomwmW X F Pmxbybi n o p abxmymzmAmq r Y -eucvc.e/e:e;e=e?e@e[e]e^e^j_j`j{j|j}j`i~jakbkck9i_e{i`e!i|i'b{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbQlFndklomoHfIfJf7bekfkgkhkikjkKfLfMf|l}l6m~lGnHnnoInJnKnLnMn7mamNnmbOn,lpm8mZ 0 [ }mHbIbs 1 2 3 nb9m!m#m$m4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfkklkmknkokpk}iqkrksktk#iYf~iZf$iaj(b0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubbmPnukoopoagbgcg8bvkwkxkykzkAkdgegfgRlSlBmTlQnRnqoSnTnUnVnWnCmUlXnbbYn-lqmDm6 7 G QmzbAbj t u v cbEmFmGmHmw x 8 gg0c1chgigjgkglgmgngogpgqgBkCkDkEkFkGkbjHkIkJkKk%irgcjsg'idj)btgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggbVlZnLkroso4g5g6g9bMkNkOkPkQkRk7g8g9gcmdm%mem0n1nto2n3n4n5n6n'mfm7nob8n.lrm(m9 ! ] ~mJbKby # $ % pb)m*m+m,m' ( | !g)c*c#g$g%g'g(g)g*g+g,g-gSkTkUkVkWkXkejYkZk0k1k(i.gfj/g)igj*b:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbgm9n2kuovoxhyhzh!b3k4k5k6k7k8kAhBhChhmim-mjm!n#nwo$n%n'n(n)n.mkm*nqb+n/lsm/m) * ^ anLbMbz + , - rb:m;m=m?m. / } Dh`c{cEhFhGhHhIhJhKhLhMhNh9k!k#k$k%k'khj(k)k*k+k*iOhijPh+ijj+bQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwblm,n,kxoyo@h[h]h#b-k.k/k:k;k=k^h_h`hWlXlImYl-n.nzo/n:n;n=n?nJmZl@ndb[n:ltmKm: ; H RmBbCbk A B C ebLmMmNmOmD E = {hldmd|h}h~haibicidieifigi?k@k[k]k^k_kkj`k{k|k}k,ihiljii-imj,bjikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb0l
96 object.__setattr__(new_object, "__pydantic_extra__", None) 2bnPjcodoRdSdTd4bQjRjSjTjUjVjUdVdWd;l=lSm?lcndneoenfngnhninTm@ljnibkn)lmmUmI J ? {mDbEbl K L M jbVmWmXmYmN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7dWjXjYjZj0j1j?i2j3j4j5j5i8d@i9d6i[i$b!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesb[lln6jfogokeleme5b7j8j9j!j#j$jneoepe]l^lZm_lmnnnhoonpnqnrnsn0m`ltnkbun*lnm1mP Q @ |mFbGbm R S T lb2m3m4m5mU V ` qeecfcreseteuevewexeyezeAe%j'j(j)j*j+j]i,j-j.j/j7iBe^iCe8i_i%bDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb{lvn:jiojo'e(e)e6b;j=j?j@j[j]j*e+e,eMlNlumOlwnxnkoynznAnBnCnvmPlDn~ En+lomwmW X F Pmxbybi n o p abxmymzmAmq r Y -eucvc.e/e:e;e=e?e@e[e]e^e^j_j`j{j|j}j`i~jakbkck9i_e{i`e!i|i'b{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbQlFndklomoHfIfJf7bekfkgkhkikjkKfLfMf|l}l6m~lGnHnnoInJnKnLnMn7mamNnmbOn,lpm8mZ 0 [ }mHbIbs 1 2 3 nb9m!m#m$m4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfkklkmknkokpk}iqkrksktk#iYf~iZf$iaj(b0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubbmPnukoopoagbgcg8bvkwkxkykzkAkdgegfgRlSlBmTlQnRnqoSnTnUnVnWnCmUlXnbbYn-lqmDm6 7 G QmzbAbj t u v cbEmFmGmHmw x 8 gg0c1chgigjgkglgmgngogpgqgBkCkDkEkFkGkbjHkIkJkKk%irgcjsg'idj)btgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggbVlZnLkroso4g5g6g9bMkNkOkPkQkRk7g8g9gcmdm%mem0n1nto2n3n4n5n6n'mfm7nob8n.lrm(m9 ! ] ~mJbKby # $ % pb)m*m+m,m' ( | !g)c*c#g$g%g'g(g)g*g+g,g-gSkTkUkVkWkXkejYkZk0k1k(i.gfj/g)igj*b:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbgm9n2kuovoxhyhzh!b3k4k5k6k7k8kAhBhChhmim-mjm!n#nwo$n%n'n(n)n.mkm*nqb+n/lsm/m) * ^ anLbMbz + , - rb:m;m=m?m. / } Dh`c{cEhFhGhHhIhJhKhLhMhNh9k!k#k$k%k'khj(k)k*k+k*iOhijPh+ijj+bQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwblm,n,kxoyo@h[h]h#b-k.k/k:k;k=k^h_h`hWlXlImYl-n.nzo/n:n;n=n?nJmZl@ndb[n:ltmKm: ; H RmBbCbk A B C ebLmMmNmOmD E = {hldmd|h}h~haibicidieifigi?k@k[k]k^k_kkj`k{k|k}k,ihiljii-imj,bjikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb0l
97 object.__setattr__(new_object, "__pydantic_private__", None) 2bnPjcodoRdSdTd4bQjRjSjTjUjVjUdVdWd;l=lSm?lcndneoenfngnhninTm@ljnibkn)lmmUmI J ? {mDbEbl K L M jbVmWmXmYmN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7dWjXjYjZj0j1j?i2j3j4j5j5i8d@i9d6i[i$b!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesb[lln6jfogokeleme5b7j8j9j!j#j$jneoepe]l^lZm_lmnnnhoonpnqnrnsn0m`ltnkbun*lnm1mP Q @ |mFbGbm R S T lb2m3m4m5mU V ` qeecfcreseteuevewexeyezeAe%j'j(j)j*j+j]i,j-j.j/j7iBe^iCe8i_i%bDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb{lvn:jiojo'e(e)e6b;j=j?j@j[j]j*e+e,eMlNlumOlwnxnkoynznAnBnCnvmPlDn~ En+lomwmW X F Pmxbybi n o p abxmymzmAmq r Y -eucvc.e/e:e;e=e?e@e[e]e^e^j_j`j{j|j}j`i~jakbkck9i_e{i`e!i|i'b{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbQlFndklomoHfIfJf7bekfkgkhkikjkKfLfMf|l}l6m~lGnHnnoInJnKnLnMn7mamNnmbOn,lpm8mZ 0 [ }mHbIbs 1 2 3 nb9m!m#m$m4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfkklkmknkokpk}iqkrksktk#iYf~iZf$iaj(b0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubbmPnukoopoagbgcg8bvkwkxkykzkAkdgegfgRlSlBmTlQnRnqoSnTnUnVnWnCmUlXnbbYn-lqmDm6 7 G QmzbAbj t u v cbEmFmGmHmw x 8 gg0c1chgigjgkglgmgngogpgqgBkCkDkEkFkGkbjHkIkJkKk%irgcjsg'idj)btgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggbVlZnLkroso4g5g6g9bMkNkOkPkQkRk7g8g9gcmdm%mem0n1nto2n3n4n5n6n'mfm7nob8n.lrm(m9 ! ] ~mJbKby # $ % pb)m*m+m,m' ( | !g)c*c#g$g%g'g(g)g*g+g,g-gSkTkUkVkWkXkejYkZk0k1k(i.gfj/g)igj*b:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbgm9n2kuovoxhyhzh!b3k4k5k6k7k8kAhBhChhmim-mjm!n#nwo$n%n'n(n)n.mkm*nqb+n/lsm/m) * ^ anLbMbz + , - rb:m;m=m?m. / } Dh`c{cEhFhGhHhIhJhKhLhMhNh9k!k#k$k%k'khj(k)k*k+k*iOhijPh+ijj+bQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwblm,n,kxoyo@h[h]h#b-k.k/k:k;k=k^h_h`hWlXlImYl-n.nzo/n:n;n=n?nJmZl@ndb[n:ltmKm: ; H RmBbCbk A B C ebLmMmNmOmD E = {hldmd|h}h~haibicidieifigi?k@k[k]k^k_kkj`k{k|k}k,ihiljii-imj,bjikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb0l
100def get_annotations(class_dict: dict[str, Any]) -> dict[str, Any]: 1deafbghc
101 raw_annotations: dict[str, Any] = class_dict.get("__annotations__", {}) 2d ;l=lSm?lTm@lib1l2lUi.inj]n^nUmI J ? {mDbEb3ll K L M oljb-bplQbVmWmXmYmN O ~kalblql_ ojDoEdFdsb[le ]l^lZm_l0m`lkb4l5lVi/ipj_n`n1mP Q @ |mFbGb6lm R S T rllb.bslRb2m3m4m5mU V cldleltl` qjEoGdHdtb{la MlNlumOlvmPl~ DlElBdOdWi@m[mwmW X F PmxbybFli n o p GjabVbHjNbxmymzmAmq r xjyjzjIjY XiAoYbZbfbQlf |l}l6m~l7mammb7l8lYi:irj{n|n8mZ 0 [ }mHbIb9ls 1 2 3 ulnb/bvlSb9m!m#m$m4 5 flglhlwl{ sjFoIdJdubbmb RlSlBmTlCmUlbbGlHlCdPdZi]m^mDm6 7 G QmzbAbIlj t u v JjcbWbKjObEmFmGmHmw x AjBjCjLj8 0iBo0b1bgbVlg cmdm%mem'mfmob!l#l1i;itj}n~n(m9 ! ] ~mJbKb$ly # $ % xlpb:bylTb)m*m+m,m' ( iljlklzl| ujGoKdLdvbgmh hmim-mjm.mkmqb%l'l2i=ivjaobo/m) * ^ anLbMb(lz + , - Alrb;bBlUb:m;m=m?m. / llmlnlCl} wjHoMdNdwblmc WlXlImYlJmZldbJlKlDdQd3i_m`mKm: ; H RmBbCbLlk A B C MjebXbNjPbLmMmNmOmD E DjEjFjOj= 4iCo2b3bhb0l
102 if sys.version_info >= (3, 14) and "__annotations__" not in class_dict: 2d ;l=lSm?lTm@lib1l2lUi.inj]n^nUmI J ? {mDbEb3ll K L M oljb-bplQbVmWmXmYmN O ~kalblql_ ojDoEdFdsb[le ]l^lZm_l0m`lkb4l5lVi/ipj_n`n1mP Q @ |mFbGb6lm R S T rllb.bslRb2m3m4m5mU V cldleltl` qjEoGdHdtb{la MlNlumOlvmPl~ DlElBdOdWi@m[mwmW X F PmxbybFli n o p GjabVbHjNbxmymzmAmq r xjyjzjIjY XiAoYbZbfbQlf |l}l6m~l7mammb7l8lYi:irj{n|n8mZ 0 [ }mHbIb9ls 1 2 3 ulnb/bvlSb9m!m#m$m4 5 flglhlwl{ sjFoIdJdubbmb RlSlBmTlCmUlbbGlHlCdPdZi]m^mDm6 7 G QmzbAbIlj t u v JjcbWbKjObEmFmGmHmw x AjBjCjLj8 0iBo0b1bgbVlg cmdm%mem'mfmob!l#l1i;itj}n~n(m9 ! ] ~mJbKb$ly # $ % xlpb:bylTb)m*m+m,m' ( iljlklzl| ujGoKdLdvbgmh hmim-mjm.mkmqb%l'l2i=ivjaobo/m) * ^ anLbMb(lz + , - Alrb;bBlUb:m;m=m?m. / llmlnlCl} wjHoMdNdwblmc WlXlImYlJmZldbJlKlDdQd3i_m`mKm: ; H RmBbCbLlk A B C MjebXbNjPbLmMmNmOmD E DjEjFjOj= 4iCo2b3bhb0l
103 # See https://github.com/pydantic/pydantic/pull/11991
104 from annotationlib import ( 2a MlNlumOlvmPl~ DlElBdOdWi@m[mwmF PmxbybFli n o p GjabVbHjNbxmymzmAmq r xjyjzjIjY XiAoYbZbfbQlb RlSlBmTlCmUlbbGlHlCdPdZi]m^mDmG QmzbAbIlj t u v JjcbWbKjObEmFmGmHmw x AjBjCjLj8 0iBo0b1bgbVlc WlXlImYlJmZldbJlKlDdQd3i_m`mKmH RmBbCbLlk A B C MjebXbNjPbLmMmNmOmD E DjEjFjOj= 4iCo2b3bhb0l
105 Format,
106 call_annotate_function,
107 get_annotate_from_class_namespace,
108 )
110 if annotate := get_annotate_from_class_namespace(class_dict): 2a MlNlumOlvmPl~ DlElBdOdWi@m[mwmF PmxbybFli n o p GjabVbHjNbxmymzmAmq r xjyjzjIjY XiAoYbZbfbQlb RlSlBmTlCmUlbbGlHlCdPdZi]m^mDmG QmzbAbIlj t u v JjcbWbKjObEmFmGmHmw x AjBjCjLj8 0iBo0b1bgbVlc WlXlImYlJmZldbJlKlDdQd3i_m`mKmH RmBbCbLlk A B C MjebXbNjPbLmMmNmOmD E DjEjFjOj= 4iCo2b3bhb0l
111 raw_annotations = call_annotate_function(annotate, format=Format.FORWARDREF) 2a MlNlumOlvmPl~ DlElBdOdWi@m[mwmF PmxbybFli n o p GjabVbHjNbxmymzmAmq r xjyjzjIjY XiAoYbZbfbQlb RlSlBmTlCmUlbbGlHlCdPdZi]m^mDmG QmzbAbIlj t u v JjcbWbKjObEmFmGmHmw x AjBjCjLj8 0iBo0b1bgbVlc WlXlImYlJmZldbJlKlDdQd3i_m`mKmH RmBbCbLlk A B C MjebXbNjPbLmMmNmOmD E DjEjFjOj= 4iCo2b3bhb0l
112 return raw_annotations 2d ;l=lSm?lTm@lib1l2lUi.inj]n^nUmI J ? {mDbEb3ll K L M oljb-bplQbVmWmXmYmN O ~kalblql_ ojDoEdFdsb[le ]l^lZm_l0m`lkb4l5lVi/ipj_n`n1mP Q @ |mFbGb6lm R S T rllb.bslRb2m3m4m5mU V cldleltl` qjEoGdHdtb{la MlNlumOlvmPl~ DlElBdOdWi@m[mwmW X F PmxbybFli n o p GjabVbHjNbxmymzmAmq r xjyjzjIjY XiAoYbZbfbQlf |l}l6m~l7mammb7l8lYi:irj{n|n8mZ 0 [ }mHbIb9ls 1 2 3 ulnb/bvlSb9m!m#m$m4 5 flglhlwl{ sjFoIdJdubbmb RlSlBmTlCmUlbbGlHlCdPdZi]m^mDm6 7 G QmzbAbIlj t u v JjcbWbKjObEmFmGmHmw x AjBjCjLj8 0iBo0b1bgbVlg cmdm%mem'mfmob!l#l1i;itj}n~n(m9 ! ] ~mJbKb$ly # $ % xlpb:bylTb)m*m+m,m' ( iljlklzl| ujGoKdLdvbgmh hmim-mjm.mkmqb%l'l2i=ivjaobo/m) * ^ anLbMb(lz + , - Alrb;bBlUb:m;m=m?m. / llmlnlCl} wjHoMdNdwblmc WlXlImYlJmZldbJlKlDdQd3i_m`mKm: ; H RmBbCbLlk A B C MjebXbNjPbLmMmNmOmD E DjEjFjOj= 4iCo2b3bhb0l
115def is_table_model_class(cls: type[Any]) -> bool: 1deafbghc
116 config = getattr(cls, "model_config", {}) 2d bnPjcodoRdSdTd4bQjRjSjTjUjVjUdVdWd;l=lSm?lcndneoenfngnhninTm@ljnibkn)lmm1l2lUi.inj]n^nUmI J ? {mDbEb3ll K L M oljb-bplQbVmWmXmYmN O ~kalblql_ ojDoEdFdXd=b?bYdZd0d1d2d3d4d5d6d7dWjXjYjZj0j1j?i2j3j4j5j5i8d@i9d6i[i$b!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesb[le ln6jfogokeleme5b7j8j9j!j#j$jneoepe]l^lZm_lmnnnhoonpnqnrnsn0m`ltnkbun*lnm4l5lVi/ipj_n`n1mP Q @ |mFbGb6lm R S T rllb.bslRb2m3m4m5mU V cldleltl` qjEoGdHdqeecfcreseteuevewexeyezeAe%j'j(j)j*j+j]i,j-j.j/j7iBe^iCe8i_i%bDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb{la vn:jiojo'e(e)e6b;j=j?j@j[j]j*e+e,eMlNlumOlwnxnkoynznAnBnCnvmPlDn~ En+lomDlElBdOdWi@m[mwmW X F PmxbybFli n o p GjabVbHjNbxmymzmAmq r xjyjzjIjY XiAoYbZb-eucvc.e/e:e;e=e?e@e[e]e^e^j_j`j{j|j}j`i~jakbkck9i_e{i`e!i|i'b{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbQlf FndklomoHfIfJf7bekfkgkhkikjkKfLfMf|l}l6m~lGnHnnoInJnKnLnMn7mamNnmbOn,lpm7l8lYi:irj{n|n8mZ 0 [ }mHbIb9ls 1 2 3 ulnb/bvlSb9m!m#m$m4 5 flglhlwl{ sjFoIdJdNfKcLcOfPfQfRfSfTfUfVfWfXfkklkmknkokpk}iqkrksktk#iYf~iZf$iaj(b0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubbmb Pnukoopoagbgcg8bvkwkxkykzkAkdgegfgRlSlBmTlQnRnqoSnTnUnVnWnCmUlXnbbYn-lqmGlHlCdPdZi]m^mDm6 7 G QmzbAbIlj t u v JjcbWbKjObEmFmGmHmw x AjBjCjLj8 0iBo0b1bgg0c1chgigjgkglgmgngogpgqgBkCkDkEkFkGkbjHkIkJkKk%irgcjsg'idj)btgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggbVlg ZnLkroso4g5g6g9bMkNkOkPkQkRk7g8g9gcmdm%mem0n1nto2n3n4n5n6n'mfm7nob8n.lrm!l#l1i;itj}n~n(m9 ! ] ~mJbKb$ly # $ % xlpb:bylTb)m*m+m,m' ( iljlklzl| ujGoKdLd!g)c*c#g$g%g'g(g)g*g+g,g-gSkTkUkVkWkXkejYkZk0k1k(i.gfj/g)igj*b:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbgmh 9n2kuovoxhyhzh!b3k4k5k6k7k8kAhBhChhmim-mjm!n#nwo$n%n'n(n)n.mkm*nqb+n/lsm%l'l2i=ivjaobo/m) * ^ anLbMb(lz + , - Alrb;bBlUb:m;m=m?m. / llmlnlCl} wjHoMdNdDh`c{cEhFhGhHhIhJhKhLhMhNh9k!k#k$k%k'khj(k)k*k+k*iOhijPh+ijj+bQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwblmc ,n,kxoyo@h[h]h#b-k.k/k:k;k=k^h_h`hWlXlImYl-n.nzo/n:n;n=n?nJmZl@ndb[n:ltmJlKlDdQd3i_m`mKm: ; H RmBbCbLlk A B C MjebXbNjPbLmMmNmOmD E DjEjFjOj= 4iCo2b3b{hldmd|h}h~haibicidieifigi?k@k[k]k^k_kkj`k{k|k}k,ihiljii-imj,bjikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb0l
117 if config: 2d bnPjcodoRdSdTd4bQjRjSjTjUjVjUdVdWd;l=lSm?lcndneoenfngnhninTm@ljnibkn)lmm1l2lUi.inj]n^nUmI J ? {mDbEb3ll K L M oljb-bplQbVmWmXmYmN O ~kalblql_ ojDoEdFdXd=b?bYdZd0d1d2d3d4d5d6d7dWjXjYjZj0j1j?i2j3j4j5j5i8d@i9d6i[i$b!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesb[le ln6jfogokeleme5b7j8j9j!j#j$jneoepe]l^lZm_lmnnnhoonpnqnrnsn0m`ltnkbun*lnm4l5lVi/ipj_n`n1mP Q @ |mFbGb6lm R S T rllb.bslRb2m3m4m5mU V cldleltl` qjEoGdHdqeecfcreseteuevewexeyezeAe%j'j(j)j*j+j]i,j-j.j/j7iBe^iCe8i_i%bDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb{la vn:jiojo'e(e)e6b;j=j?j@j[j]j*e+e,eMlNlumOlwnxnkoynznAnBnCnvmPlDn~ En+lomDlElBdOdWi@m[mwmW X F PmxbybFli n o p GjabVbHjNbxmymzmAmq r xjyjzjIjY XiAoYbZb-eucvc.e/e:e;e=e?e@e[e]e^e^j_j`j{j|j}j`i~jakbkck9i_e{i`e!i|i'b{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbQlf FndklomoHfIfJf7bekfkgkhkikjkKfLfMf|l}l6m~lGnHnnoInJnKnLnMn7mamNnmbOn,lpm7l8lYi:irj{n|n8mZ 0 [ }mHbIb9ls 1 2 3 ulnb/bvlSb9m!m#m$m4 5 flglhlwl{ sjFoIdJdNfKcLcOfPfQfRfSfTfUfVfWfXfkklkmknkokpk}iqkrksktk#iYf~iZf$iaj(b0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubbmb Pnukoopoagbgcg8bvkwkxkykzkAkdgegfgRlSlBmTlQnRnqoSnTnUnVnWnCmUlXnbbYn-lqmGlHlCdPdZi]m^mDm6 7 G QmzbAbIlj t u v JjcbWbKjObEmFmGmHmw x AjBjCjLj8 0iBo0b1bgg0c1chgigjgkglgmgngogpgqgBkCkDkEkFkGkbjHkIkJkKk%irgcjsg'idj)btgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggbVlg ZnLkroso4g5g6g9bMkNkOkPkQkRk7g8g9gcmdm%mem0n1nto2n3n4n5n6n'mfm7nob8n.lrm!l#l1i;itj}n~n(m9 ! ] ~mJbKb$ly # $ % xlpb:bylTb)m*m+m,m' ( iljlklzl| ujGoKdLd!g)c*c#g$g%g'g(g)g*g+g,g-gSkTkUkVkWkXkejYkZk0k1k(i.gfj/g)igj*b:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbgmh 9n2kuovoxhyhzh!b3k4k5k6k7k8kAhBhChhmim-mjm!n#nwo$n%n'n(n)n.mkm*nqb+n/lsm%l'l2i=ivjaobo/m) * ^ anLbMb(lz + , - Alrb;bBlUb:m;m=m?m. / llmlnlCl} wjHoMdNdDh`c{cEhFhGhHhIhJhKhLhMhNh9k!k#k$k%k'khj(k)k*k+k*iOhijPh+ijj+bQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwblmc ,n,kxoyo@h[h]h#b-k.k/k:k;k=k^h_h`hWlXlImYl-n.nzo/n:n;n=n?nJmZl@ndb[n:ltmJlKlDdQd3i_m`mKm: ; H RmBbCbLlk A B C MjebXbNjPbLmMmNmOmD E DjEjFjOj= 4iCo2b3b{hldmd|h}h~haibicidieifigi?k@k[k]k^k_kkj`k{k|k}k,ihiljii-imj,bjikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb0l
118 return config.get("table", False) or False 2d bnPjcodoRdSdTd4bQjRjSjTjUjVjUdVdWd;l=lSm?lcndneoenfngnhninTm@ljnibkn)lmm1l2lUi.inj]n^nUmI J ? {mDbEb3ll K L M oljb-bplQbVmWmXmYmN O ~kalblql_ ojDoEdFdXd=b?bYdZd0d1d2d3d4d5d6d7dWjXjYjZj0j1j?i2j3j4j5j5i8d@i9d6i[i$b!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesb[le ln6jfogokeleme5b7j8j9j!j#j$jneoepe]l^lZm_lmnnnhoonpnqnrnsn0m`ltnkbun*lnm4l5lVi/ipj_n`n1mP Q @ |mFbGb6lm R S T rllb.bslRb2m3m4m5mU V cldleltl` qjEoGdHdqeecfcreseteuevewexeyezeAe%j'j(j)j*j+j]i,j-j.j/j7iBe^iCe8i_i%bDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb{la vn:jiojo'e(e)e6b;j=j?j@j[j]j*e+e,eMlNlumOlwnxnkoynznAnBnCnvmPlDn~ En+lomDlElBdOdWi@m[mwmW X F PmxbybFli n o p GjabVbHjNbxmymzmAmq r xjyjzjIjY XiAoYbZb-eucvc.e/e:e;e=e?e@e[e]e^e^j_j`j{j|j}j`i~jakbkck9i_e{i`e!i|i'b{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbQlf FndklomoHfIfJf7bekfkgkhkikjkKfLfMf|l}l6m~lGnHnnoInJnKnLnMn7mamNnmbOn,lpm7l8lYi:irj{n|n8mZ 0 [ }mHbIb9ls 1 2 3 ulnb/bvlSb9m!m#m$m4 5 flglhlwl{ sjFoIdJdNfKcLcOfPfQfRfSfTfUfVfWfXfkklkmknkokpk}iqkrksktk#iYf~iZf$iaj(b0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubbmb Pnukoopoagbgcg8bvkwkxkykzkAkdgegfgRlSlBmTlQnRnqoSnTnUnVnWnCmUlXnbbYn-lqmGlHlCdPdZi]m^mDm6 7 G QmzbAbIlj t u v JjcbWbKjObEmFmGmHmw x AjBjCjLj8 0iBo0b1bgg0c1chgigjgkglgmgngogpgqgBkCkDkEkFkGkbjHkIkJkKk%irgcjsg'idj)btgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggbVlg ZnLkroso4g5g6g9bMkNkOkPkQkRk7g8g9gcmdm%mem0n1nto2n3n4n5n6n'mfm7nob8n.lrm!l#l1i;itj}n~n(m9 ! ] ~mJbKb$ly # $ % xlpb:bylTb)m*m+m,m' ( iljlklzl| ujGoKdLd!g)c*c#g$g%g'g(g)g*g+g,g-gSkTkUkVkWkXkejYkZk0k1k(i.gfj/g)igj*b:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbgmh 9n2kuovoxhyhzh!b3k4k5k6k7k8kAhBhChhmim-mjm!n#nwo$n%n'n(n)n.mkm*nqb+n/lsm%l'l2i=ivjaobo/m) * ^ anLbMb(lz + , - Alrb;bBlUb:m;m=m?m. / llmlnlCl} wjHoMdNdDh`c{cEhFhGhHhIhJhKhLhMhNh9k!k#k$k%k'khj(k)k*k+k*iOhijPh+ijj+bQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwblmc ,n,kxoyo@h[h]h#b-k.k/k:k;k=k^h_h`hWlXlImYl-n.nzo/n:n;n=n?nJmZl@ndb[n:ltmJlKlDdQd3i_m`mKm: ; H RmBbCbLlk A B C MjebXbNjPbLmMmNmOmD E DjEjFjOj= 4iCo2b3b{hldmd|h}h~haibicidieifigi?k@k[k]k^k_kkj`k{k|k}k,ihiljii-imj,bjikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb0l
119 return False 1deafbghc
122def get_relationship_to( 1deafbghc
123 name: str,
124 rel_info: "RelationshipInfo",
125 annotation: Any,
126) -> Any:
127 origin = get_origin(annotation) 2d Qbe Rba Nbf Sbb Obg Tbh Ubc Pb
128 use_annotation = annotation 2d Qbe Rba Nbf Sbb Obg Tbh Ubc Pb
129 # Direct relationships (e.g. 'Team' or Team) have None as an origin
130 if origin is None: 2d Qbe Rba Nbf Sbb Obg Tbh Ubc Pb
131 if isinstance(use_annotation, ForwardRef): 2d Qbe Rba Nbf Sbb Obg Tbh Ubc Pb
132 use_annotation = use_annotation.__forward_arg__ 1deafbghc
133 else:
134 return use_annotation 2d Qbe Rba Nbf Sbb Obg Tbh Ubc Pb
135 # If Union (e.g. Optional), get the real field
136 elif _is_union_type(origin): 2d Qbe Rba Nbf Sbb Obg Tbh Ubc Pb
137 use_annotation = get_args(annotation) 1deafbghc
138 if len(use_annotation) > 2: 1deafbghc
139 raise ValueError("Cannot have a (non-optional) union as a SQLAlchemy field")
140 arg1, arg2 = use_annotation 1deafbghc
141 if arg1 is NoneType and arg2 is not NoneType: 1deafbghc
142 use_annotation = arg2
143 elif arg2 is NoneType and arg1 is not NoneType: 1deafbghc
144 use_annotation = arg1 1deafbghc
145 else:
146 raise ValueError(
147 "Cannot have a Union of None and None as a SQLAlchemy field"
148 )
150 # If a list, then also get the real field
151 elif origin is list: 2d Qbe Rba Nbf Sbb Obg Tbh Ubc Pb
152 use_annotation = get_args(annotation)[0] 2d Qbe Rba Nbf Sbb Obg Tbh Ubc Pb
154 return get_relationship_to(name=name, rel_info=rel_info, annotation=use_annotation) 2d Qbe Rba Nbf Sbb Obg Tbh Ubc Pb
157def is_field_noneable(field: "FieldInfo") -> bool: 1deafbghc
158 if getattr(field, "nullable", Undefined) is not Undefined: 2d 1l2lUi.injI J ? DbEb3ll K L M jb-bQbN O _ ojEdFdsbe 4l5lVi/ipjP Q @ FbGb6lm R S T lb.bRbU V ` qjGdHdtba DlElBdOdWiW X F xbybFli n o p abVbNbq r Y XiYbZbfbf 7l8lYi:irjZ 0 [ HbIb9ls 1 2 3 nb/bSb4 5 { sjIdJdubb GlHlCdPdZi6 7 G zbAbIlj t u v cbWbObw x 8 0i0b1bgbg !l#l1i;itj9 ! ] JbKb$ly # $ % pb:bTb' ( | ujKdLdvbh %l'l2i=ivj) * ^ LbMb(lz + , - rb;bUb. / } wjMdNdwbc JlKlDdQd3i: ; H BbCbLlk A B C ebXbPbD E = 4i2b3bhb
159 return field.nullable # type: ignore 2jb-blb.babVbnb/bcbWbpb:brb;bebXb
160 origin = get_origin(field.annotation) 2d 1l2lUi.injI J ? DbEb3ll K L M -bQbN O _ ojEdFdsbe 4l5lVi/ipjP Q @ FbGb6lm R S T .bRbU V ` qjGdHdtba DlElBdOdWiW X F xbybFli n o p VbNbq r Y XiYbZbfbf 7l8lYi:irjZ 0 [ HbIb9ls 1 2 3 /bSb4 5 { sjIdJdubb GlHlCdPdZi6 7 G zbAbIlj t u v WbObw x 8 0i0b1bgbg !l#l1i;itj9 ! ] JbKb$ly # $ % :bTb' ( | ujKdLdvbh %l'l2i=ivj) * ^ LbMb(lz + , - ;bUb. / } wjMdNdwbc JlKlDdQd3i: ; H BbCbLlk A B C XbPbD E = 4i2b3bhb
161 if origin is not None and _is_union_type(origin): 2d 1l2lUi.injI J ? DbEb3ll K L M -bQbN O _ ojEdFdsbe 4l5lVi/ipjP Q @ FbGb6lm R S T .bRbU V ` qjGdHdtba DlElBdOdWiW X F xbybFli n o p VbNbq r Y XiYbZbfbf 7l8lYi:irjZ 0 [ HbIb9ls 1 2 3 /bSb4 5 { sjIdJdubb GlHlCdPdZi6 7 G zbAbIlj t u v WbObw x 8 0i0b1bgbg !l#l1i;itj9 ! ] JbKb$ly # $ % :bTb' ( | ujKdLdvbh %l'l2i=ivj) * ^ LbMb(lz + , - ;bUb. / } wjMdNdwbc JlKlDdQd3i: ; H BbCbLlk A B C XbPbD E = 4i2b3bhb
162 args = get_args(field.annotation) 2d Ui.iI J ? l K L M -bQbN O EdFde Vi/iP Q @ m R S T .bRbU V GdHda BdOdW X F i n o p VbNbq r YbZbf Yi:iZ 0 [ s 1 2 3 /bSb4 5 IdJdb CdPd6 7 G j t u v WbObw x 0b1bg 1i;i9 ! ] y # $ % :bTb' ( KdLdh 2i=i) * ^ z + , - ;bUb. / MdNdc DdQd: ; H k A B C XbPbD E 2b3b
163 if any(arg is NoneType for arg in args): 2d Ui.iI J ? l K L M -bQbN O EdFde Vi/iP Q @ m R S T .bRbU V GdHda BdOdW X F i n o p VbNbq r YbZbf Yi:iZ 0 [ s 1 2 3 /bSb4 5 IdJdb CdPd6 7 G j t u v WbObw x 0b1bg 1i;i9 ! ] y # $ % :bTb' ( KdLdh 2i=i) * ^ z + , - ;bUb. / MdNdc DdQd: ; H k A B C XbPbD E 2b3b
164 return True 2d Ui.iI J ? l K L M -bQbN O EdFde Vi/iP Q @ m R S T .bRbU V GdHda BdOdW X F i n o p VbNbq r YbZbf Yi:iZ 0 [ s 1 2 3 /bSb4 5 IdJdb CdPd6 7 G j t u v WbObw x 0b1bg 1i;i9 ! ] y # $ % :bTb' ( KdLdh 2i=i) * ^ z + , - ;bUb. / MdNdc DdQd: ; H k A B C XbPbD E 2b3b
165 if not field.is_required(): 2d 1l2lUinjI J ? DbEb3ll K L M -bQbN O _ ojEdFdsbe 4l5lVipjP Q @ FbGb6lm R S T .bRbU V ` qjGdHdtba DlElBdWiW X F xbybFli n o p VbNbq r Y XiYbZbfbf 7l8lYirjZ 0 [ HbIb9ls 1 2 3 /bSb4 5 { sjIdJdubb GlHlCdZi6 7 G zbAbIlj t u v WbObw x 8 0i0b1bgbg !l#l1itj9 ! ] JbKb$ly # $ % :bTb' ( | ujKdLdvbh %l'l2ivj) * ^ LbMb(lz + , - ;bUb. / } wjMdNdwbc JlKlDd3i: ; H BbCbLlk A B C XbPbD E = 4i2b3bhb
166 if field.default is Undefined: 2d -bEdFde .bGdHda VbYbZbf /bIdJdb Wb0b1bg :bKdLdh ;bMdNdc Xb2b3b
167 return False
168 if field.annotation is None or field.annotation is NoneType: 2d -bEdFde .bGdHda VbYbZbf /bIdJdb Wb0b1bg :bKdLdh ;bMdNdc Xb2b3b
169 return True
170 return False 2d -bEdFde .bGdHda VbYbZbf /bIdJdb Wb0b1bg :bKdLdh ;bMdNdc Xb2b3b
171 return False 2d 1l2lUinjI J ? DbEb3ll K L M -bQbN O _ ojsbe 4l5lVipjP Q @ FbGb6lm R S T .bRbU V ` qjtba DlElBdWiW X F xbybFli n o p VbNbq r Y Xifbf 7l8lYirjZ 0 [ HbIb9ls 1 2 3 /bSb4 5 { sjubb GlHlCdZi6 7 G zbAbIlj t u v WbObw x 8 0igbg !l#l1itj9 ! ] JbKb$ly # $ % :bTb' ( | ujvbh %l'l2ivj) * ^ LbMb(lz + , - ;bUb. / } wjwbc JlKlDd3i: ; H BbCbLlk A B C XbPbD E = 4ihb
174def get_sa_type_from_type_annotation(annotation: Any) -> Any: 1deafbghc
175 # Resolve Optional fields
176 if annotation is None: 2d ib1l2lUi.injI J ? DbEb3ll K L M oljb-bplQbN O ~kalblql_ ojEdFdsbe kb4l5lVi/ipjP Q @ FbGb6lm R S T rllb.bslRbU V cldleltl` qjGdHdtba ~ DlElBdOdWiW X F xbybFli n o p GjabVbHjNbq r xjyjzjIjY XiYbZbfbf mb7l8lYi:irjZ 0 [ HbIb9ls 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJdubb bbGlHlCdPdZi6 7 G zbAbIlj t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bgbg ob!l#l1i;itj9 ! ] JbKb$ly # $ % xlpb:bylTb' ( iljlklzl| ujKdLdvbh qb%l'l2i=ivj) * ^ LbMb(lz + , - Alrb;bBlUb. / llmlnlCl} wjMdNdwbc dbJlKlDdQd3i: ; H BbCbLlk A B C MjebXbNjPbD E DjEjFjOj= 4i2b3bhb
177 raise ValueError("Missing field type")
178 origin = get_origin(annotation) 2d ib1l2lUi.injI J ? DbEb3ll K L M oljb-bplQbN O ~kalblql_ ojEdFdsbe kb4l5lVi/ipjP Q @ FbGb6lm R S T rllb.bslRbU V cldleltl` qjGdHdtba ~ DlElBdOdWiW X F xbybFli n o p GjabVbHjNbq r xjyjzjIjY XiYbZbfbf mb7l8lYi:irjZ 0 [ HbIb9ls 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJdubb bbGlHlCdPdZi6 7 G zbAbIlj t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bgbg ob!l#l1i;itj9 ! ] JbKb$ly # $ % xlpb:bylTb' ( iljlklzl| ujKdLdvbh qb%l'l2i=ivj) * ^ LbMb(lz + , - Alrb;bBlUb. / llmlnlCl} wjMdNdwbc dbJlKlDdQd3i: ; H BbCbLlk A B C MjebXbNjPbD E DjEjFjOj= 4i2b3bhb
179 if origin is None: 2d ib1l2lUi.injI J ? DbEb3ll K L M oljb-bplQbN O ~kalblql_ ojEdFdsbe kb4l5lVi/ipjP Q @ FbGb6lm R S T rllb.bslRbU V cldleltl` qjGdHdtba ~ DlElBdOdWiW X F xbybFli n o p GjabVbHjNbq r xjyjzjIjY XiYbZbfbf mb7l8lYi:irjZ 0 [ HbIb9ls 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJdubb bbGlHlCdPdZi6 7 G zbAbIlj t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bgbg ob!l#l1i;itj9 ! ] JbKb$ly # $ % xlpb:bylTb' ( iljlklzl| ujKdLdvbh qb%l'l2i=ivj) * ^ LbMb(lz + , - Alrb;bBlUb. / llmlnlCl} wjMdNdwbc dbJlKlDdQd3i: ; H BbCbLlk A B C MjebXbNjPbD E DjEjFjOj= 4i2b3bhb
180 return annotation 2d ib1l2lUi.injI J ? DbEb3ll K L M oljb-bplQbN O ~kalblql_ ojEdFdsbe kb4l5lVi/ipjP Q @ FbGb6lm R S T rllb.bslRbU V cldleltl` qjGdHdtba ~ DlElBdOdWiW X F xbybFli n o p GjabVbHjNbq r xjyjzjIjY XiYbZbfbf mb7l8lYi:irjZ 0 [ HbIb9ls 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJdubb bbGlHlCdPdZi6 7 G zbAbIlj t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bgbg ob!l#l1i;itj9 ! ] JbKb$ly # $ % xlpb:bylTb' ( iljlklzl| ujKdLdvbh qb%l'l2i=ivj) * ^ LbMb(lz + , - Alrb;bBlUb. / llmlnlCl} wjMdNdwbc dbJlKlDdQd3i: ; H BbCbLlk A B C MjebXbNjPbD E DjEjFjOj= 4i2b3bhb
181 elif origin is Annotated: 2d ibUi.injI J ? l K L M oljb-bplQbN O ~kalblql_ ojEdFde kbVi/ipjP Q @ m R S T rllb.bslRbU V cldleltl` qjGdHda ~ BdOdWiW X F i n o p GjabVbHjNbq r xjyjzjIjY XiYbZbf mbYi:irjZ 0 [ s 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJdb bbCdPdZi6 7 G j t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bg ob1i;itj9 ! ] y # $ % xlpb:bylTb' ( iljlklzl| ujKdLdh qb2i=ivj) * ^ z + , - Alrb;bBlUb. / llmlnlCl} wjMdNdc dbDdQd3i: ; H k A B C MjebXbNjPbD E DjEjFjOj= 4i2b3b
182 return get_sa_type_from_type_annotation(get_args(annotation)[0]) 2ibkb~ mbbbobqbdb
183 if _is_union_type(origin): 2d ibUi.injI J ? l K L M oljb-bplQbN O ~kalblql_ ojEdFde kbVi/ipjP Q @ m R S T rllb.bslRbU V cldleltl` qjGdHda ~ BdOdWiW X F i n o p GjabVbHjNbq r xjyjzjIjY XiYbZbf mbYi:irjZ 0 [ s 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJdb bbCdPdZi6 7 G j t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bg ob1i;itj9 ! ] y # $ % xlpb:bylTb' ( iljlklzl| ujKdLdh qb2i=ivj) * ^ z + , - Alrb;bBlUb. / llmlnlCl} wjMdNdc dbDdQd3i: ; H k A B C MjebXbNjPbD E DjEjFjOj= 4i2b3b
184 bases = get_args(annotation) 2d ibUi.injI J ? l K L M oljb-bplQbN O ~kalblql_ ojEdFde kbVi/ipjP Q @ m R S T rllb.bslRbU V cldleltl` qjGdHda ~ BdOdWiW X F i n o p GjabVbHjNbq r xjyjzjIjY XiYbZbf mbYi:irjZ 0 [ s 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJdb bbCdPdZi6 7 G j t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bg ob1i;itj9 ! ] y # $ % xlpb:bylTb' ( iljlklzl| ujKdLdh qb2i=ivj) * ^ z + , - Alrb;bBlUb. / llmlnlCl} wjMdNdc dbDdQd3i: ; H k A B C MjebXbNjPbD E DjEjFjOj= 4i2b3b
185 if len(bases) > 2: 2d ibUi.injI J ? l K L M oljb-bplQbN O ~kalblql_ ojEdFde kbVi/ipjP Q @ m R S T rllb.bslRbU V cldleltl` qjGdHda ~ BdOdWiW X F i n o p GjabVbHjNbq r xjyjzjIjY XiYbZbf mbYi:irjZ 0 [ s 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJdb bbCdPdZi6 7 G j t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bg ob1i;itj9 ! ] y # $ % xlpb:bylTb' ( iljlklzl| ujKdLdh qb2i=ivj) * ^ z + , - Alrb;bBlUb. / llmlnlCl} wjMdNdc dbDdQd3i: ; H k A B C MjebXbNjPbD E DjEjFjOj= 4i2b3b
186 raise ValueError("Cannot have a (non-optional) union as a SQLAlchemy field")
187 # Non optional unions are not allowed
188 if bases[0] is not NoneType and bases[1] is not NoneType: 2d ibUi.injI J ? l K L M oljb-bplQbN O ~kalblql_ ojEdFde kbVi/ipjP Q @ m R S T rllb.bslRbU V cldleltl` qjGdHda ~ BdOdWiW X F i n o p GjabVbHjNbq r xjyjzjIjY XiYbZbf mbYi:irjZ 0 [ s 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJdb bbCdPdZi6 7 G j t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bg ob1i;itj9 ! ] y # $ % xlpb:bylTb' ( iljlklzl| ujKdLdh qb2i=ivj) * ^ z + , - Alrb;bBlUb. / llmlnlCl} wjMdNdc dbDdQd3i: ; H k A B C MjebXbNjPbD E DjEjFjOj= 4i2b3b
189 raise ValueError("Cannot have a (non-optional) union as a SQLAlchemy field") 2blelzjhlCjklnlFj
190 # Optional unions are allowed
191 use_type = bases[0] if bases[0] is not NoneType else bases[1] 2d ibUi.injI J ? l K L M oljb-bplQbN O ~kalblql_ ojEdFde kbVi/ipjP Q @ m R S T rllb.bslRbU V cldleltl` qjGdHda ~ BdOdWiW X F i n o p GjabVbHjNbq r xjyjzjIjY XiYbZbf mbYi:irjZ 0 [ s 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJdb bbCdPdZi6 7 G j t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bg ob1i;itj9 ! ] y # $ % xlpb:bylTb' ( iljlklzl| ujKdLdh qb2i=ivj) * ^ z + , - Alrb;bBlUb. / llmlnlCl} wjMdNdc dbDdQd3i: ; H k A B C MjebXbNjPbD E DjEjFjOj= 4i2b3b
192 return get_sa_type_from_type_annotation(use_type) 2d ibUi.injI J ? l K L M oljb-bplQbN O ~kalblql_ ojEdFde kbVi/ipjP Q @ m R S T rllb.bslRbU V cldleltl` qjGdHda ~ BdOdWiW X F i n o p GjabVbHjNbq r xjyjzjIjY XiYbZbf mbYi:irjZ 0 [ s 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJdb bbCdPdZi6 7 G j t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bg ob1i;itj9 ! ] y # $ % xlpb:bylTb' ( iljlklzl| ujKdLdh qb2i=ivj) * ^ z + , - Alrb;bBlUb. / llmlnlCl} wjMdNdc dbDdQd3i: ; H k A B C MjebXbNjPbD E DjEjFjOj= 4i2b3b
193 return origin 2~kalcldlxjyjflglAjBjiljlllmlDjEj
196def get_sa_type_from_field(field: Any) -> Any: 1deafbghc
197 type_: Any = field.annotation 2d ib1l2lUi.injI J ? DbEb3ll K L M oljb-bplQbN O ~kalblql_ ojEdFdsbe kb4l5lVi/ipjP Q @ FbGb6lm R S T rllb.bslRbU V cldleltl` qjGdHdtba ~ DlElBdOdWiW X F xbybFli n o p GjabVbHjNbq r xjyjzjIjY XiYbZbfbf mb7l8lYi:irjZ 0 [ HbIb9ls 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJdubb bbGlHlCdPdZi6 7 G zbAbIlj t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bgbg ob!l#l1i;itj9 ! ] JbKb$ly # $ % xlpb:bylTb' ( iljlklzl| ujKdLdvbh qb%l'l2i=ivj) * ^ LbMb(lz + , - Alrb;bBlUb. / llmlnlCl} wjMdNdwbc dbJlKlDdQd3i: ; H BbCbLlk A B C MjebXbNjPbD E DjEjFjOj= 4i2b3bhb
198 return get_sa_type_from_type_annotation(type_) 2d ib1l2lUi.injI J ? DbEb3ll K L M oljb-bplQbN O ~kalblql_ ojEdFdsbe kb4l5lVi/ipjP Q @ FbGb6lm R S T rllb.bslRbU V cldleltl` qjGdHdtba ~ DlElBdOdWiW X F xbybFli n o p GjabVbHjNbq r xjyjzjIjY XiYbZbfbf mb7l8lYi:irjZ 0 [ HbIb9ls 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJdubb bbGlHlCdPdZi6 7 G zbAbIlj t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bgbg ob!l#l1i;itj9 ! ] JbKb$ly # $ % xlpb:bylTb' ( iljlklzl| ujKdLdvbh qb%l'l2i=ivj) * ^ LbMb(lz + , - Alrb;bBlUb. / llmlnlCl} wjMdNdwbc dbJlKlDdQd3i: ; H BbCbLlk A B C MjebXbNjPbD E DjEjFjOj= 4i2b3bhb
201def get_field_metadata(field: Any) -> Any: 1deafbghc
202 for meta in field.metadata: 2d ib1l2lUi.injI J ? DbEb3ll K L M oljb-bplQbN O ~kalblql_ ojEdFdsbe kb4l5lVi/ipjP Q @ FbGb6lm R S T rllb.bslRbU V cldleltl` qjGdHdtba ~ DlElBdOdWiW X F xbybFli n o p GjabVbHjNbq r xjyjzjIjY XiYbZbfbf mb7l8lYi:irjZ 0 [ HbIb9ls 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJdubb bbGlHlCdPdZi6 7 G zbAbIlj t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bgbg ob!l#l1i;itj9 ! ] JbKb$ly # $ % xlpb:bylTb' ( iljlklzl| ujKdLdvbh qb%l'l2i=ivj) * ^ LbMb(lz + , - Alrb;bBlUb. / llmlnlCl} wjMdNdwbc dbJlKlDdQd3i: ; H BbCbLlk A B C MjebXbNjPbD E DjEjFjOj= 4i2b3bhb
203 if isinstance(meta, (PydanticMetadata, MaxLen)): 2d ib1l2lUi.injI J ? DbEb3ll K L M oljb-bplQbN O ~kalblql_ ojEdFdsbe kb4l5lVi/ipjP Q @ FbGb6lm R S T rllb.bslRbU V cldleltl` qjGdHdtba ~ DlElBdOdWiW X F xbybFli n o p GjabVbHjNbq r xjyjzjIjY XiYbZbfbf mb7l8lYi:irjZ 0 [ HbIb9ls 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJdubb bbGlHlCdPdZi6 7 G zbAbIlj t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bgbg ob!l#l1i;itj9 ! ] JbKb$ly # $ % xlpb:bylTb' ( iljlklzl| ujKdLdvbh qb%l'l2i=ivj) * ^ LbMb(lz + , - Alrb;bBlUb. / llmlnlCl} wjMdNdwbc dbJlKlDdQd3i: ; H BbCbLlk A B C MjebXbNjPbD E DjEjFjOj= 4i2b3bhb
204 return meta 1deafbghc
205 return FakeMetadata() 2d ib1l2lUi.injI J ? DbEb3ll K L M oljb-bplQbN O ~kalblql_ ojEdFdsbe kb4l5lVi/ipjP Q @ FbGb6lm R S T rllb.bslRbU V cldleltl` qjGdHdtba ~ DlElBdOdWiW X F xbybFli n o p GjabVbHjNbq r xjyjzjIjY XiYbZbfbf mb7l8lYi:irjZ 0 [ HbIb9ls 1 2 3 ulnb/bvlSb4 5 flglhlwl{ sjIdJdubb bbGlHlCdPdZi6 7 G zbAbIlj t u v JjcbWbKjObw x AjBjCjLj8 0i0b1bgbg ob!l#l1i;itj9 ! ] JbKb$ly # $ % xlpb:bylTb' ( iljlklzl| ujKdLdvbh qb%l'l2i=ivj) * ^ LbMb(lz + , - Alrb;bBlUb. / llmlnlCl} wjMdNdwbc dbJlKlDdQd3i: ; H BbCbLlk A B C MjebXbNjPbD E DjEjFjOj= 4i2b3bhb
208def sqlmodel_table_construct( 1deafbghc
209 *,
210 self_instance: _TSQLModel,
211 values: dict[str, Any],
212 _fields_set: set[str] | None = None,
213) -> _TSQLModel:
214 # Copy from Pydantic's BaseModel.construct()
215 # Ref: https://github.com/pydantic/pydantic/blob/v2.5.2/pydantic/main.py#L198
216 # Modified to not include everything, only the model fields, and to
217 # set relationships
218 # SQLModel override to get class SQLAlchemy __dict__ attributes and
219 # set them back in after creating the object
220 # new_obj = cls.__new__(cls)
221 cls = type(self_instance) 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
222 old_dict = self_instance.__dict__.copy() 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
223 # End SQLModel override
225 fields_values: dict[str, Any] = {} 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
226 defaults: dict[ 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
227 str, Any
228 ] = {} # keeping this separate from `fields_values` helps us compute `_fields_set`
229 for name, field in cls.model_fields.items(): 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
230 if field.alias and field.alias in values: 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
231 fields_values[name] = values.pop(field.alias)
232 elif name in values: 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
233 fields_values[name] = values.pop(name) 2RdSdTd4bUdVdWdI J DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepeP Q FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,eW X xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfZ 0 HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfg6 7 zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9g9 ! JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhCh) * LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`h: ; BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
234 elif not field.is_required(): 2RdSdTd4bUdVdWdibI J ? l K L M N O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ m R S T U V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F i n o p q r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ s 1 2 3 4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G j t u v w x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] y # $ % ' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ z + , - . / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H k A B C D E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
235 defaults[name] = field.get_default(call_default_factory=True) 2RdSdTd4bUdVdWdibI J ? l K L M N O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ m R S T U V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F i n o p q r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ s 1 2 3 4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G j t u v w x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] y # $ % ' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ z + , - . / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H k A B C D E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
236 if _fields_set is None: 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
237 _fields_set = set(fields_values.keys()) 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
238 fields_values.update(defaults) 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
240 _extra: dict[str, Any] | None = None 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
241 if cls.model_config.get("extra") == "allow": 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
242 _extra = {}
243 for k, v in values.items():
244 _extra[k] = v
245 # SQLModel override, do not include everything, only the model fields
246 # else:
247 # fields_values.update(values)
248 # End SQLModel override
249 # SQLModel override
250 # Do not set __dict__, instead use setattr to trigger SQLAlchemy
251 # object.__setattr__(new_obj, "__dict__", fields_values)
252 # instrumentation
253 for key, value in {**old_dict, **fields_values}.items(): 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
254 setattr(self_instance, key, value) 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
255 # End SQLModel override
256 object.__setattr__(self_instance, "__pydantic_fields_set__", _fields_set) 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
257 if not cls.__pydantic_root_model__: 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
258 object.__setattr__(self_instance, "__pydantic_extra__", _extra) 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
260 if cls.__pydantic_post_init__: 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
261 self_instance.model_post_init(None)
262 elif not cls.__pydantic_root_model__: 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
263 # Note: if there are any private attributes, cls.__pydantic_post_init__ would exist
264 # Since it doesn't, that means that `__pydantic_private__` should be set to None
265 object.__setattr__(self_instance, "__pydantic_private__", None) 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
266 # SQLModel override, set relationships
267 # Get and set any relationship objects
268 for key in self_instance.__sqlmodel_relationships__: 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
269 value = values.get(key, Undefined) 2l =b?b@b[b]b^b_b`b{b|b}b~bacbcccdcm ecfcgchcicjckclcmcncocpcqcrcsctci ucvcwcxcyczcAcBcCcDcEcFcGcHcIcJcs KcLcMcNcOcPcQcRcScTcUcVcWcXcYcZcj 0c1c2c3c4c5c6c7c8c9c!c#c$c%c'c(cy )c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_cz `c{c|c}c~cadbdcdddedfdgdhdidjdkdk ldmdndodpdqdrdsdtdudvdwdxdydzdAd
270 if value is not Undefined: 2l =b?b@b[b]b^b_b`b{b|b}b~bacbcccdcm ecfcgchcicjckclcmcncocpcqcrcsctci ucvcwcxcyczcAcBcCcDcEcFcGcHcIcJcs KcLcMcNcOcPcQcRcScTcUcVcWcXcYcZcj 0c1c2c3c4c5c6c7c8c9c!c#c$c%c'c(cy )c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_cz `c{c|c}c~cadbdcdddedfdgdhdidjdkdk ldmdndodpdqdrdsdtdudvdwdxdydzdAd
271 setattr(self_instance, key, value) 2l =b?b@b[b]b^b_b`b{b|b}b~bacbcccdcm ecfcgchcicjckclcmcncocpcqcrcsctci ucvcwcxcyczcAcBcCcDcEcFcGcHcIcJcs KcLcMcNcOcPcQcRcScTcUcVcWcXcYcZcj 0c1c2c3c4c5c6c7c8c9c!c#c$c%c'c(cy )c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_cz `c{c|c}c~cadbdcdddedfdgdhdidjdkdk ldmdndodpdqdrdsdtdudvdwdxdydzdAd
272 # End SQLModel override
273 return self_instance 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
276def sqlmodel_validate( 1deafbghc
277 cls: type[_TSQLModel],
278 obj: Any,
279 *,
280 strict: bool | None = None,
281 from_attributes: bool | None = None,
282 context: dict[str, Any] | None = None,
283 update: dict[str, Any] | None = None,
284) -> _TSQLModel:
285 if not is_table_model_class(cls): 2PjQjRjSjTjUjVj;l=l?l@l)lmmWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$b[l6j7j8j9j!j#j$j]l^l_l`l*lnm%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%b{l:j;j=j?j@j[j]jMlNlOlPl+lom^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bQldkekfkgkhkikjk|l}l~lam,lpmkklkmknkokpk}iqkrksktk#i~i$iaj(bbmukvkwkxkykzkAkRlSlTlUl-lqmBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bVlLkMkNkOkPkQkRkcmdmemfm.lrmSkTkUkVkWkXkejYkZk0k1k(ifj)igj*bgm2k3k4k5k6k7k8khmimjmkm/lsm9k!k#k$k%k'khj(k)k*k+k*iij+ijj+blm,k-k.k/k:k;k=kWlXlYlZl:ltm?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,b0l
286 new_obj: _TSQLModel = cls.__new__(cls) 2;l=l?l@l)lmm[l]l^l_l`l*lnm{lMlNlOlPl+lomQl|l}l~lam,lpmbmRlSlTlUl-lqmVlcmdmemfm.lrmgmhmimjmkm/lsmlmWlXlYlZl:ltm0l
287 else:
288 # If table, create the new instance normally to make SQLAlchemy create
289 # the _sa_instance_state attribute
290 # The wrapper of this function should use with _partial_init()
291 with partial_init(): 2PjQjRjSjTjUjVjWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$b6j7j8j9j!j#j$j%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%b:j;j=j?j@j[j]j^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bdkekfkgkhkikjkkklkmknkokpk}iqkrksktk#i~i$iaj(bukvkwkxkykzkAkBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bLkMkNkOkPkQkRkSkTkUkVkWkXkejYkZk0k1k(ifj)igj*b2k3k4k5k6k7k8k9k!k#k$k%k'khj(k)k*k+k*iij+ijj+b,k-k.k/k:k;k=k?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,b
292 new_obj = cls() 2PjQjRjSjTjUjVjWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$b6j7j8j9j!j#j$j%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%b:j;j=j?j@j[j]j^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bdkekfkgkhkikjkkklkmknkokpk}iqkrksktk#i~i$iaj(bukvkwkxkykzkAkBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bLkMkNkOkPkQkRkSkTkUkVkWkXkejYkZk0k1k(ifj)igj*b2k3k4k5k6k7k8k9k!k#k$k%k'khj(k)k*k+k*iij+ijj+b,k-k.k/k:k;k=k?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,b
293 # SQLModel Override to get class SQLAlchemy __dict__ attributes and
294 # set them back in after creating the object
295 old_dict = new_obj.__dict__.copy() 2PjQjRjSjTjUjVj;l=l?l@l)lmmWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$b[l6j7j8j9j!j#j$j]l^l_l`l*lnm%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%b{l:j;j=j?j@j[j]jMlNlOlPl+lom^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bQldkekfkgkhkikjk|l}l~lam,lpmkklkmknkokpk}iqkrksktk#i~i$iaj(bbmukvkwkxkykzkAkRlSlTlUl-lqmBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bVlLkMkNkOkPkQkRkcmdmemfm.lrmSkTkUkVkWkXkejYkZk0k1k(ifj)igj*bgm2k3k4k5k6k7k8khmimjmkm/lsm9k!k#k$k%k'khj(k)k*k+k*iij+ijj+blm,k-k.k/k:k;k=kWlXlYlZl:ltm?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,b0l
296 use_obj = obj 2PjQjRjSjTjUjVj;l=l?l@l)lmmWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$b[l6j7j8j9j!j#j$j]l^l_l`l*lnm%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%b{l:j;j=j?j@j[j]jMlNlOlPl+lom^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bQldkekfkgkhkikjk|l}l~lam,lpmkklkmknkokpk}iqkrksktk#i~i$iaj(bbmukvkwkxkykzkAkRlSlTlUl-lqmBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bVlLkMkNkOkPkQkRkcmdmemfm.lrmSkTkUkVkWkXkejYkZk0k1k(ifj)igj*bgm2k3k4k5k6k7k8khmimjmkm/lsm9k!k#k$k%k'khj(k)k*k+k*iij+ijj+blm,k-k.k/k:k;k=kWlXlYlZl:ltm?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,b0l
297 if isinstance(obj, dict) and update: 2PjQjRjSjTjUjVj;l=l?l@l)lmmWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$b[l6j7j8j9j!j#j$j]l^l_l`l*lnm%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%b{l:j;j=j?j@j[j]jMlNlOlPl+lom^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bQldkekfkgkhkikjk|l}l~lam,lpmkklkmknkokpk}iqkrksktk#i~i$iaj(bbmukvkwkxkykzkAkRlSlTlUl-lqmBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bVlLkMkNkOkPkQkRkcmdmemfm.lrmSkTkUkVkWkXkejYkZk0k1k(ifj)igj*bgm2k3k4k5k6k7k8khmimjmkm/lsm9k!k#k$k%k'khj(k)k*k+k*iij+ijj+blm,k-k.k/k:k;k=kWlXlYlZl:ltm?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,b0l
298 use_obj = {**obj, **update}
299 elif update: 2PjQjRjSjTjUjVj;l=l?l@l)lmmWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$b[l6j7j8j9j!j#j$j]l^l_l`l*lnm%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%b{l:j;j=j?j@j[j]jMlNlOlPl+lom^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bQldkekfkgkhkikjk|l}l~lam,lpmkklkmknkokpk}iqkrksktk#i~i$iaj(bbmukvkwkxkykzkAkRlSlTlUl-lqmBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bVlLkMkNkOkPkQkRkcmdmemfm.lrmSkTkUkVkWkXkejYkZk0k1k(ifj)igj*bgm2k3k4k5k6k7k8khmimjmkm/lsm9k!k#k$k%k'khj(k)k*k+k*iij+ijj+blm,k-k.k/k:k;k=kWlXlYlZl:ltm?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,b0l
300 use_obj = ObjectWithUpdateWrapper(obj=obj, update=update) 2$b%b'b(b)b*b+b,b
301 cls.__pydantic_validator__.validate_python( 2PjQjRjSjTjUjVj;l=l?l@l)lmmWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$b[l6j7j8j9j!j#j$j]l^l_l`l*lnm%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%b{l:j;j=j?j@j[j]jMlNlOlPl+lom^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bQldkekfkgkhkikjk|l}l~lam,lpmkklkmknkokpk}iqkrksktk#i~i$iaj(bbmukvkwkxkykzkAkRlSlTlUl-lqmBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bVlLkMkNkOkPkQkRkcmdmemfm.lrmSkTkUkVkWkXkejYkZk0k1k(ifj)igj*bgm2k3k4k5k6k7k8khmimjmkm/lsm9k!k#k$k%k'khj(k)k*k+k*iij+ijj+blm,k-k.k/k:k;k=kWlXlYlZl:ltm?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,b0l
302 use_obj,
303 strict=strict,
304 from_attributes=from_attributes,
305 context=context,
306 self_instance=new_obj,
307 )
308 # Capture fields set to restore it later
309 fields_set = new_obj.__pydantic_fields_set__.copy() 2PjQjRjSjTjUjVj;l=l?l@l)lmmWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$b[l6j7j8j9j!j#j$j]l^l_l`l*lnm%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%b{l:j;j=j?j@j[j]jMlNlOlPl+lom^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bQldkekfkgkhkikjk|l}l~lam,lpmkklkmknkokpk}iqkrksktk#i~i$iaj(bbmukvkwkxkykzkAkRlSlTlUl-lqmBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bVlLkMkNkOkPkQkRkcmdmemfm.lrmSkTkUkVkWkXkejYkZk0k1k(ifj)igj*bgm2k3k4k5k6k7k8khmimjmkm/lsm9k!k#k$k%k'khj(k)k*k+k*iij+ijj+blm,k-k.k/k:k;k=kWlXlYlZl:ltm?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,b0l
310 if not is_table_model_class(cls): 2PjQjRjSjTjUjVj;l=l?l@l)lmmWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$b[l6j7j8j9j!j#j$j]l^l_l`l*lnm%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%b{l:j;j=j?j@j[j]jMlNlOlPl+lom^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bQldkekfkgkhkikjk|l}l~lam,lpmkklkmknkokpk}iqkrksktk#i~i$iaj(bbmukvkwkxkykzkAkRlSlTlUl-lqmBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bVlLkMkNkOkPkQkRkcmdmemfm.lrmSkTkUkVkWkXkejYkZk0k1k(ifj)igj*bgm2k3k4k5k6k7k8khmimjmkm/lsm9k!k#k$k%k'khj(k)k*k+k*iij+ijj+blm,k-k.k/k:k;k=kWlXlYlZl:ltm?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,b0l
311 # If not table, normal Pydantic code, set __dict__
312 new_obj.__dict__ = {**old_dict, **new_obj.__dict__} 2;l=l?l@l)lmm[l]l^l_l`l*lnm{lMlNlOlPl+lomQl|l}l~lam,lpmbmRlSlTlUl-lqmVlcmdmemfm.lrmgmhmimjmkm/lsmlmWlXlYlZl:ltm0l
313 else:
314 # Do not set __dict__, instead use setattr to trigger SQLAlchemy
315 # instrumentation
316 for key, value in {**old_dict, **new_obj.__dict__}.items(): 2PjQjRjSjTjUjVjWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$b6j7j8j9j!j#j$j%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%b:j;j=j?j@j[j]j^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bdkekfkgkhkikjkkklkmknkokpk}iqkrksktk#i~i$iaj(bukvkwkxkykzkAkBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bLkMkNkOkPkQkRkSkTkUkVkWkXkejYkZk0k1k(ifj)igj*b2k3k4k5k6k7k8k9k!k#k$k%k'khj(k)k*k+k*iij+ijj+b,k-k.k/k:k;k=k?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,b
317 setattr(new_obj, key, value) 2PjQjRjSjTjUjVjWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$b6j7j8j9j!j#j$j%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%b:j;j=j?j@j[j]j^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bdkekfkgkhkikjkkklkmknkokpk}iqkrksktk#i~i$iaj(bukvkwkxkykzkAkBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bLkMkNkOkPkQkRkSkTkUkVkWkXkejYkZk0k1k(ifj)igj*b2k3k4k5k6k7k8k9k!k#k$k%k'khj(k)k*k+k*iij+ijj+b,k-k.k/k:k;k=k?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,b
318 # Restore fields set
319 object.__setattr__(new_obj, "__pydantic_fields_set__", fields_set) 2PjQjRjSjTjUjVj;l=l?l@l)lmmWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$b[l6j7j8j9j!j#j$j]l^l_l`l*lnm%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%b{l:j;j=j?j@j[j]jMlNlOlPl+lom^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bQldkekfkgkhkikjk|l}l~lam,lpmkklkmknkokpk}iqkrksktk#i~i$iaj(bbmukvkwkxkykzkAkRlSlTlUl-lqmBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bVlLkMkNkOkPkQkRkcmdmemfm.lrmSkTkUkVkWkXkejYkZk0k1k(ifj)igj*bgm2k3k4k5k6k7k8khmimjmkm/lsm9k!k#k$k%k'khj(k)k*k+k*iij+ijj+blm,k-k.k/k:k;k=kWlXlYlZl:ltm?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,b0l
320 # Get and set any relationship objects
321 if is_table_model_class(cls): 2PjQjRjSjTjUjVj;l=l?l@l)lmmWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$b[l6j7j8j9j!j#j$j]l^l_l`l*lnm%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%b{l:j;j=j?j@j[j]jMlNlOlPl+lom^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bQldkekfkgkhkikjk|l}l~lam,lpmkklkmknkokpk}iqkrksktk#i~i$iaj(bbmukvkwkxkykzkAkRlSlTlUl-lqmBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bVlLkMkNkOkPkQkRkcmdmemfm.lrmSkTkUkVkWkXkejYkZk0k1k(ifj)igj*bgm2k3k4k5k6k7k8khmimjmkm/lsm9k!k#k$k%k'khj(k)k*k+k*iij+ijj+blm,k-k.k/k:k;k=kWlXlYlZl:ltm?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,b0l
322 for key in new_obj.__sqlmodel_relationships__: 2PjQjRjSjTjUjVjWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$b6j7j8j9j!j#j$j%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%b:j;j=j?j@j[j]j^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bdkekfkgkhkikjkkklkmknkokpk}iqkrksktk#i~i$iaj(bukvkwkxkykzkAkBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bLkMkNkOkPkQkRkSkTkUkVkWkXkejYkZk0k1k(ifj)igj*b2k3k4k5k6k7k8k9k!k#k$k%k'khj(k)k*k+k*iij+ijj+b,k-k.k/k:k;k=k?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,b
323 value = getattr(use_obj, key, Undefined) 25i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i
324 if value is not Undefined: 25i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i
325 setattr(new_obj, key, value)
326 return new_obj 2PjQjRjSjTjUjVj;l=l?l@l)lmmWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$b[l6j7j8j9j!j#j$j]l^l_l`l*lnm%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%b{l:j;j=j?j@j[j]jMlNlOlPl+lom^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bQldkekfkgkhkikjk|l}l~lam,lpmkklkmknkokpk}iqkrksktk#i~i$iaj(bbmukvkwkxkykzkAkRlSlTlUl-lqmBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bVlLkMkNkOkPkQkRkcmdmemfm.lrmSkTkUkVkWkXkejYkZk0k1k(ifj)igj*bgm2k3k4k5k6k7k8khmimjmkm/lsm9k!k#k$k%k'khj(k)k*k+k*iij+ijj+blm,k-k.k/k:k;k=kWlXlYlZl:ltm?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,b0l
329def sqlmodel_init(*, self: "SQLModel", data: dict[str, Any]) -> None: 1deafbghc
330 old_dict = self.__dict__.copy() 2bnPjcodoRdSdTd4bQjRjSjTjUjVjUdVdWdSmcndneoenfngnhninTmjnibkn)lUmI J ? {mDbEbl K L M jbVmWmXmYmN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7dWjXjYjZj0j1j?i2j3j4j5j5i8d@i9d6i[i$b!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbln6jfogokeleme5b7j8j9j!j#j$jneoepeZmmnnnhoonpnqnrnsn0mtnkbun*l1mP Q @ |mFbGbm R S T lb2m3m4m5mU V ` qeecfcreseteuevewexeyezeAe%j'j(j)j*j+j]i,j-j.j/j7iBe^iCe8i_i%bDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etbvn:jiojo'e(e)e6b;j=j?j@j[j]j*e+e,eumwnxnkoynznAnBnCnvmDn~ En+lwmW X F Pmxbybi n o p abxmymzmAmq r Y -eucvc.e/e:e;e=e?e@e[e]e^e^j_j`j{j|j}j`i~jakbkck9i_e{i`e!i|i'b{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbFndklomoHfIfJf7bekfkgkhkikjkKfLfMf6mGnHnnoInJnKnLnMn7mNnmbOn,l8mZ 0 [ }mHbIbs 1 2 3 nb9m!m#m$m4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfkklkmknkokpk}iqkrksktk#iYf~iZf$iaj(b0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubPnukoopoagbgcg8bvkwkxkykzkAkdgegfgBmQnRnqoSnTnUnVnWnCmXnbbYn-lDm6 7 G QmzbAbj t u v cbEmFmGmHmw x 8 gg0c1chgigjgkglgmgngogpgqgBkCkDkEkFkGkbjHkIkJkKk%irgcjsg'idj)btgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggbZnLkroso4g5g6g9bMkNkOkPkQkRk7g8g9g%m0n1nto2n3n4n5n6n'm7nob8n.l(m9 ! ] ~mJbKby # $ % pb)m*m+m,m' ( | !g)c*c#g$g%g'g(g)g*g+g,g-gSkTkUkVkWkXkejYkZk0k1k(i.gfj/g)igj*b:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvb9n2kuovoxhyhzh!b3k4k5k6k7k8kAhBhCh-m!n#nwo$n%n'n(n)n.m*nqb+n/l/m) * ^ anLbMbz + , - rb:m;m=m?m. / } Dh`c{cEhFhGhHhIhJhKhLhMhNh9k!k#k$k%k'khj(k)k*k+k*iOhijPh+ijj+bQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb,n,kxoyo@h[h]h#b-k.k/k:k;k=k^h_h`hIm-n.nzo/n:n;n=n?nJm@ndb[n:lKm: ; H RmBbCbk A B C ebLmMmNmOmD E = {hldmd|h}h~haibicidieifigi?k@k[k]k^k_kkj`k{k|k}k,ihiljii-imj,bjikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
331 if not is_table_model_class(self.__class__): 2bnPjcodoRdSdTd4bQjRjSjTjUjVjUdVdWdSmcndneoenfngnhninTmjnibkn)lUmI J ? {mDbEbl K L M jbVmWmXmYmN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7dWjXjYjZj0j1j?i2j3j4j5j5i8d@i9d6i[i$b!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbln6jfogokeleme5b7j8j9j!j#j$jneoepeZmmnnnhoonpnqnrnsn0mtnkbun*l1mP Q @ |mFbGbm R S T lb2m3m4m5mU V ` qeecfcreseteuevewexeyezeAe%j'j(j)j*j+j]i,j-j.j/j7iBe^iCe8i_i%bDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etbvn:jiojo'e(e)e6b;j=j?j@j[j]j*e+e,eumwnxnkoynznAnBnCnvmDn~ En+lwmW X F Pmxbybi n o p abxmymzmAmq r Y -eucvc.e/e:e;e=e?e@e[e]e^e^j_j`j{j|j}j`i~jakbkck9i_e{i`e!i|i'b{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbFndklomoHfIfJf7bekfkgkhkikjkKfLfMf6mGnHnnoInJnKnLnMn7mNnmbOn,l8mZ 0 [ }mHbIbs 1 2 3 nb9m!m#m$m4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfkklkmknkokpk}iqkrksktk#iYf~iZf$iaj(b0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubPnukoopoagbgcg8bvkwkxkykzkAkdgegfgBmQnRnqoSnTnUnVnWnCmXnbbYn-lDm6 7 G QmzbAbj t u v cbEmFmGmHmw x 8 gg0c1chgigjgkglgmgngogpgqgBkCkDkEkFkGkbjHkIkJkKk%irgcjsg'idj)btgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggbZnLkroso4g5g6g9bMkNkOkPkQkRk7g8g9g%m0n1nto2n3n4n5n6n'm7nob8n.l(m9 ! ] ~mJbKby # $ % pb)m*m+m,m' ( | !g)c*c#g$g%g'g(g)g*g+g,g-gSkTkUkVkWkXkejYkZk0k1k(i.gfj/g)igj*b:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvb9n2kuovoxhyhzh!b3k4k5k6k7k8kAhBhCh-m!n#nwo$n%n'n(n)n.m*nqb+n/l/m) * ^ anLbMbz + , - rb:m;m=m?m. / } Dh`c{cEhFhGhHhIhJhKhLhMhNh9k!k#k$k%k'khj(k)k*k+k*iOhijPh+ijj+bQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb,n,kxoyo@h[h]h#b-k.k/k:k;k=k^h_h`hIm-n.nzo/n:n;n=n?nJm@ndb[n:lKm: ; H RmBbCbk A B C ebLmMmNmOmD E = {hldmd|h}h~haibicidieifigi?k@k[k]k^k_kkj`k{k|k}k,ihiljii-imj,bjikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
332 self.__pydantic_validator__.validate_python( 2bnPjcodo4bQjRjSjTjUjVjSmcndneoenfngnhninTmjnkn)lUm{mVmWmXmYmWjXjYjZj0j1j?i2j3j4j5j5i@i6i[i$bsbln6jfogo5b7j8j9j!j#j$jZmmnnnhoonpnqnrnsn0mtnun*l1m|m2m3m4m5m%j'j(j)j*j+j]i,j-j.j/j7i^i8i_i%btbvn:jiojo6b;j=j?j@j[j]jumwnxnkoynznAnBnCnvmDnEn+lwmPmxmymzmAm^j_j`j{j|j}j`i~jakbkck9i{i!i|i'bfbFndklomo7bekfkgkhkikjk6mGnHnnoInJnKnLnMn7mNnOn,l8m}m9m!m#m$mkklkmknkokpk}iqkrksktk#i~i$iaj(bubPnukoopo8bvkwkxkykzkAkBmQnRnqoSnTnUnVnWnCmXnYn-lDmQmEmFmGmHmBkCkDkEkFkGkbjHkIkJkKk%icj'idj)bgbZnLkroso9bMkNkOkPkQkRk%m0n1nto2n3n4n5n6n'm7n8n.l(m~m)m*m+m,mSkTkUkVkWkXkejYkZk0k1k(ifj)igj*bvb9n2kuovo!b3k4k5k6k7k8k-m!n#nwo$n%n'n(n)n.m*n+n/l/man:m;m=m?m9k!k#k$k%k'khj(k)k*k+k*iij+ijj+bwb,n,kxoyo#b-k.k/k:k;k=kIm-n.nzo/n:n;n=n?nJm@n[n:lKmRmLmMmNmOm?k@k[k]k^k_kkj`k{k|k}k,ilj-imj,bhb
333 data,
334 self_instance=self,
335 )
336 else:
337 sqlmodel_table_construct( 2RdSdTd4bUdVdWdibI J ? DbEbl K L M jbN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbkeleme5bneoepekbP Q @ FbGbm R S T lbU V ` qeecfcreseteuevewexeyezeAeBeCeDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etb'e(e)e6b*e+e,e~ W X F xbybi n o p abq r Y -eucvc.e/e:e;e=e?e@e[e]e^e_e`e{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbHfIfJf7bKfLfMfmbZ 0 [ HbIbs 1 2 3 nb4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubagbgcg8bdgegfgbb6 7 G zbAbj t u v cbw x 8 gg0c1chgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggb4g5g6g9b7g8g9gob9 ! ] JbKby # $ % pb' ( | !g)c*c#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvbxhyhzh!bAhBhChqb) * ^ LbMbz + , - rb. / } Dh`c{cEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb@h[h]h#b^h_h`hdb: ; H BbCbk A B C ebD E = {hldmd|h}h~haibicidieifigihiiijikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
338 self_instance=self,
339 values=data,
340 )
341 object.__setattr__( 2bnPjRdSdTd4bQjRjSjTjUjVjUdVdWdSmcndnenfngnhninTmjnibkn)lUmI J ? DbEbl K L M jbVmWmXmYmN O _ Xd=b?bYdZd0d1d2d3d4d5d6d7dWjXjYjZj0j1j?i2j3j4j5j5i8d@i9d6i[i$b!d#d$d%d'd(d)d*d+d@b[b]b,d-d.d/d:d;d=d?d@d^b_b`b{b|b}b~bacbcccdc[d]d^d_d`d{d|d}d~daebecedeeefegeheiejesbln6jkeleme5b7j8j9j!j#j$jneoepeZmmnnnonpnqnrnsn0mtnkbun*l1mP Q @ FbGbm R S T lb2m3m4m5mU V ` qeecfcreseteuevewexeyezeAe%j'j(j)j*j+j]i,j-j.j/j7iBe^iCe8i_i%bDeEeFeGeHeIeJeKeLegchcicMeNeOePeQeReSeTeUejckclcmcncocpcqcrcsctcVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$e%etbvn:j'e(e)e6b;j=j?j@j[j]j*e+e,eumwnxnynznAnBnCnvmDn~ En+lwmW X F xbybi n o p abxmymzmAmq r Y -eucvc.e/e:e;e=e?e@e[e]e^e^j_j`j{j|j}j`i~jakbkck9i_e{i`e!i|i'b{e|e}e~eafbfcfdfefwcxcycffgfhfifjfkflfmfnfzcAcBcCcDcEcFcGcHcIcJcofpfqfrfsftfufvfwfxfyfzfAfBfCfDfEfFfGffbFndkHfIfJf7bekfkgkhkikjkKfLfMf6mGnHnInJnKnLnMn7mNnmbOn,l8mZ 0 [ HbIbs 1 2 3 nb9m!m#m$m4 5 { NfKcLcOfPfQfRfSfTfUfVfWfXfkklkmknkokpk}iqkrksktk#iYf~iZf$iaj(b0f1f2f3f4f5f6f7f8fMcNcOc9f!f#f$f%f'f(f)f*fPcQcRcScTcUcVcWcXcYcZc+f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fubPnukagbgcg8bvkwkxkykzkAkdgegfgBmQnRnSnTnUnVnWnCmXnbbYn-lDm6 7 G zbAbj t u v cbEmFmGmHmw x 8 gg0c1chgigjgkglgmgngogpgqgBkCkDkEkFkGkbjHkIkJkKk%irgcjsg'idj)btgugvgwgxgygzgAgBg2c3c4cCgDgEgFgGgHgIgJgKg5c6c7c8c9c!c#c$c%c'c(cLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3ggbZnLk4g5g6g9bMkNkOkPkQkRk7g8g9g%m0n1n2n3n4n5n6n'm7nob8n.l(m9 ! ] JbKby # $ % pb)m*m+m,m' ( | !g)c*c#g$g%g'g(g)g*g+g,g-gSkTkUkVkWkXkejYkZk0k1k(i.gfj/g)igj*b:g;g=g?g@g[g]g^g_g+c,c-c`g{g|g}g~gahbhchdh.c/c:c;c=c?c@c[c]c^c_cehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhvb9n2kxhyhzh!b3k4k5k6k7k8kAhBhCh-m!n#n$n%n'n(n)n.m*nqb+n/l/m) * ^ LbMbz + , - rb:m;m=m?m. / } Dh`c{cEhFhGhHhIhJhKhLhMhNh9k!k#k$k%k'khj(k)k*k+k*iOhijPh+ijj+bQhRhShThUhVhWhXhYh|c}c~cZh0h1h2h3h4h5h6h7hadbdcdddedfdgdhdidjdkd8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hwb,n,k@h[h]h#b-k.k/k:k;k=k^h_h`hIm-n.n/n:n;n=n?nJm@ndb[n:lKm: ; H BbCbk A B C ebLmMmNmOmD E = {hldmd|h}h~haibicidieifigi?k@k[k]k^k_kkj`k{k|k}k,ihiljii-imj,bjikiliminioipiqirindodpdsitiuiviwixiyiziAiqdrdsdtdudvdwdxdydzdAdBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTihb
342 self,
343 "__dict__",
344 {**old_dict, **self.__dict__},
345 )