Coverage for sqlmodel/_compat.py: 93%

296 statements  

« prev     ^ index     » next       coverage.py v7.7.1, created at 2025-03-24 00:02 +0000

1import types 1abcdef

2from contextlib import contextmanager 1abcdef

3from contextvars import ContextVar 1abcdef

4from dataclasses import dataclass 1abcdef

5from typing import ( 1abcdef

6 TYPE_CHECKING, 

7 AbstractSet, 

8 Any, 

9 Callable, 

10 Dict, 

11 ForwardRef, 

12 Generator, 

13 Mapping, 

14 Optional, 

15 Set, 

16 Type, 

17 TypeVar, 

18 Union, 

19) 

20 

21from pydantic import VERSION as P_VERSION 1abcdef

22from pydantic import BaseModel 1abcdef

23from pydantic.fields import FieldInfo 1abcdef

24from typing_extensions import Annotated, get_args, get_origin 1abcdef

25 

26# Reassign variable to make it reexported for mypy 

27PYDANTIC_VERSION = P_VERSION 1abcdef

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

29IS_PYDANTIC_V2 = PYDANTIC_MINOR_VERSION[0] == 2 1abcdef

30 

31 

32if TYPE_CHECKING: 1abcdef

33 from .main import RelationshipInfo, SQLModel 

34 

35UnionType = getattr(types, "UnionType", Union) 1abcdef

36NoneType = type(None) 1abcdef

37T = TypeVar("T") 1abcdef

38InstanceOrType = Union[T, Type[T]] 1abcdef

39_TSQLModel = TypeVar("_TSQLModel", bound="SQLModel") 1abcdef

40 

41 

42class FakeMetadata: 1abcdef

43 max_length: Optional[int] = None 1abcdef

44 max_digits: Optional[int] = None 1abcdef

45 decimal_places: Optional[int] = None 1abcdef

46 

47 

48@dataclass 1abcdef

49class ObjectWithUpdateWrapper: 1abcdef

50 obj: Any 1abcdef

51 update: Dict[str, Any] 1abcdef

52 

53 def __getattribute__(self, __name: str) -> Any: 1abcdef

54 update = super().__getattribute__("update") 2fcgchcicjckclcmcnc!c#c$c%c'c(c

55 obj = super().__getattribute__("obj") 2fcgchcicjckclcmcnc!c#c$c%c'c(c

56 if __name in update: 2fcgchcicjckclcmcnc!c#c$c%c'c(c

57 return update[__name] 2fcgchcicjckclcmcnc!c#c$c%c'c(c

58 return getattr(obj, __name) 2fcgchcicjckclcmcnc!c#c$c%c'c(c

59 

60 

61def _is_union_type(t: Any) -> bool: 1abcdef

62 return t is UnionType or t is Union 2a 3e,e-eHnTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfInXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@fJn2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`gKn#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~haiLn-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfjMn]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

63 

64 

65finish_init: ContextVar[bool] = ContextVar("finish_init", default=True) 1abcdef

66 

67 

68@contextmanager 1abcdef

69def partial_init() -> Generator[None, None, None]: 1abcdef

70 token = finish_init.set(False) 2+l,l-l.l/l:l;l=l?l@l[l]l^lyd`d{d|d}dg zdh Adfc_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcnc)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~manbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(c

71 yield 2+l,l-l.l/l:l;l=l?l@l[l]l^lyd`d{d|d}dg zdh Adfc_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcnc)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~manbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(c

72 finish_init.reset(token) 2+l,l-l.l/l:l;l=l?l@l[l]l^lyd`d{d|d}dg zdh Adfc_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcnc)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~manbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(c

73 

74 

75if IS_PYDANTIC_V2: 1abcdef

76 from annotated_types import MaxLen 1abcdef

77 from pydantic import ConfigDict as BaseConfig 1abcdef

78 from pydantic._internal._fields import PydanticMetadata 1abcdef

79 from pydantic._internal._model_construction import ModelMetaclass 1abcdef

80 from pydantic._internal._repr import Representation as Representation 1abcdef

81 from pydantic_core import PydanticUndefined as Undefined 1abcdef

82 from pydantic_core import PydanticUndefinedType as UndefinedType 1abcdef

83 

84 # Dummy for types, to make it importable 

85 class ModelField: 1abcdef

86 pass 1abcdef

87 

88 class SQLModelConfig(BaseConfig, total=False): 1abcdef

89 table: Optional[bool] 1abcdef

90 registry: Optional[Any] 1abcdef

91 

92 def get_config_value( 1abcdef

93 *, model: InstanceOrType["SQLModel"], parameter: str, default: Any = None 

94 ) -> Any: 

95 return model.model_config.get(parameter, default) 2a 3e,e-eHn$o%oTnkoAoYp^o1kvp%ehkikjk0o}kNn1oIl|o}ohpkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfBpb 4eDfEfIn'o(oXnloBoZp_o2kwp'eqkrksk2o~kOn3oJl~oapiptkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fCpc 5e6e;f=f?f@fJn)o*o2nmoCo0p`o3kxp(ezkAkBk4oalPn5oKlbpcpjpCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gDpd 7e8e]g^g_g`gKn+o,o#nnoDo1p{o4kyp)eNkOkPk6oblQn7oLldpepkpQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{hEpe 9e!e|h}h~haiLn-o.o-nooEo2pfp{kFp*e5k6k7k8oclRn9oMllpmppp8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjGpf #e$ecjdjejfjMn/o:o]npoFo3pgp|kHp+e,k-k.k!odlSn#oNlnpopqp/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkIp

96 

97 def set_config_value( 1abcdef

98 *, 

99 model: InstanceOrType["SQLModel"], 

100 parameter: str, 

101 value: Any, 

102 ) -> None: 

103 model.model_config[parameter] = value # type: ignore[literal-required] 2a 3e,e-eHn$o%oTnkoAoYp1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfIn'o(oXnloBoZp2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@fJn)o*o2nmoCo0p3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`gKn+o,o#nnoDo1p4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~haiLn-o.o-nooEo2p{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfjMn/o:o]npoFo3p|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

104 

105 def get_model_fields(model: InstanceOrType[BaseModel]) -> Dict[str, "FieldInfo"]: 1abcdef

106 return model.model_fields 2a 3e,e-eHn$o%oTnkoAoYp1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfIn'o(oXnloBoZp2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@fJn)o*o2nmoCo0p3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`gKn+o,o#nnoDo1p4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~haiLn-o.o-nooEo2p{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfjMn/o:o]npoFo3p|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

107 

108 def get_fields_set( 1abcdef

109 object: InstanceOrType["SQLModel"], 

110 ) -> Union[Set[str], Callable[[BaseModel], Set[str]]]: 

111 return object.model_fields_set 2^o_o`o{ofpgp

112 

113 def init_pydantic_private_attrs(new_object: InstanceOrType["SQLModel"]) -> None: 1abcdef

114 object.__setattr__(new_object, "__pydantic_fields_set__", set()) 2Jp+l4p5pboOlPlkl,l-l.l/l:l;l3e,e-eHnrpqo;o^o1kvp%ehkikjk}k|o}ohpkk.e/eK L :e;e=e?e@e[e]e^e_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfBpKp_l6p7pcoQlRlll`l{l|l}l~lamLpbm8p9pdoSlTlmlcmdmemfmgmhm4eDfEfInspro=o_o2kwp'eqkrksk~k~oapiptkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQfimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fCpMpom!p#peoUlVlnlpmqmrmsmtmumNpvm$p%pfoWlXlolwmxmymzmAmBmOpCm'p(pgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@fJntpso?o`o3kxp(ezkAkBkalbpcpjpCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gDpPpPm)p*pho0l1lqlQmRmSmTmUmVmQpWm+p,pio2l3lrlXmYmZm0m1m2mRp3m-p.pjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gKnupto@o{o4kyp)eNkOkPkbldpepkpQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{hEpSp)m/p:puo6l7lCl*m+m,m-m.m/mTp:m;p=pvo8l9lDl;m=m?m@m[m]mUp^m?p@pwo!l#lEl_m`m{m|m}m~m9e!e|h}h~haiLnzpGo[ofp{kFp*e5k6k7kcllpmppp8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyianbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjGpVpgn[p]pxo$l%lFlhninjnknlnmnWpnn^p_pyo'l(lGlonpnqnrnsntnXpun`p{pzo)l*lHlvnwnxnynznAn#e$ecjdjejfjMnApHo]ogp|kHp+e,k-k.kdlnpopqp/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkIp

115 object.__setattr__(new_object, "__pydantic_extra__", None) 2Jp+l4p5pboOlPlkl,l-l.l/l:l;l3e,e-eHnrpqo;o^o1kvp%ehkikjk}k|o}ohpkk.e/eK L :e;e=e?e@e[e]e^e_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfBpKp_l6p7pcoQlRlll`l{l|l}l~lamLpbm8p9pdoSlTlmlcmdmemfmgmhm4eDfEfInspro=o_o2kwp'eqkrksk~k~oapiptkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQfimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fCpMpom!p#peoUlVlnlpmqmrmsmtmumNpvm$p%pfoWlXlolwmxmymzmAmBmOpCm'p(pgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@fJntpso?o`o3kxp(ezkAkBkalbpcpjpCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gDpPpPm)p*pho0l1lqlQmRmSmTmUmVmQpWm+p,pio2l3lrlXmYmZm0m1m2mRp3m-p.pjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gKnupto@o{o4kyp)eNkOkPkbldpepkpQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{hEpSp)m/p:puo6l7lCl*m+m,m-m.m/mTp:m;p=pvo8l9lDl;m=m?m@m[m]mUp^m?p@pwo!l#lEl_m`m{m|m}m~m9e!e|h}h~haiLnzpGo[ofp{kFp*e5k6k7kcllpmppp8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyianbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjGpVpgn[p]pxo$l%lFlhninjnknlnmnWpnn^p_pyo'l(lGlonpnqnrnsntnXpun`p{pzo)l*lHlvnwnxnynznAn#e$ecjdjejfjMnApHo]ogp|kHp+e,k-k.kdlnpopqp/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkIp

116 object.__setattr__(new_object, "__pydantic_private__", None) 2Jp+l4p5pboOlPlkl,l-l.l/l:l;l3e,e-eHnrpqo;o^o1kvp%ehkikjk}k|o}ohpkk.e/eK L :e;e=e?e@e[e]e^e_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfBpKp_l6p7pcoQlRlll`l{l|l}l~lamLpbm8p9pdoSlTlmlcmdmemfmgmhm4eDfEfInspro=o_o2kwp'eqkrksk~k~oapiptkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQfimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fCpMpom!p#peoUlVlnlpmqmrmsmtmumNpvm$p%pfoWlXlolwmxmymzmAmBmOpCm'p(pgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@fJntpso?o`o3kxp(ezkAkBkalbpcpjpCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gDpPpPm)p*pho0l1lqlQmRmSmTmUmVmQpWm+p,pio2l3lrlXmYmZm0m1m2mRp3m-p.pjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gKnupto@o{o4kyp)eNkOkPkbldpepkpQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{hEpSp)m/p:puo6l7lCl*m+m,m-m.m/mTp:m;p=pvo8l9lDl;m=m?m@m[m]mUp^m?p@pwo!l#lEl_m`m{m|m}m~m9e!e|h}h~haiLnzpGo[ofp{kFp*e5k6k7kcllpmppp8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyianbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjGpVpgn[p]pxo$l%lFlhninjnknlnmnWpnn^p_pyo'l(lGlonpnqnrnsntnXpun`p{pzo)l*lHlvnwnxnynznAn#e$ecjdjejfjMnApHo]ogp|kHp+e,k-k.kdlnpopqp/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkIp

117 

118 def get_annotations(class_dict: Dict[str, Any]) -> Dict[str, Any]: 1abcdef

119 return class_dict.get("__annotations__", {}) 2a 3e,e-eHn$o%oTnkoAoYp^o1kvp%ehkikjk0o}kNn1oIl|o}ohpkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfBpb 4eDfEfIn'o(oXnloBoZp_o2kwp'eqkrksk2o~kOn3oJl~oapiptkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fCpc 5e6e;f=f?f@fJn)o*o2nmoCo0p`o3kxp(ezkAkBk4oalPn5oKlbpcpjpCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gDpd 7e8e]g^g_g`gKn+o,o#nnoDo1p{o4kyp)eNkOkPk6oblQn7oLldpepkpQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{hEpe 9e!e|h}h~haiLn-o.o-nooEo2pfp{kFp*e5k6k7k8oclRn9oMllpmppp8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjGpf #e$ecjdjejfjMn/o:o]npoFo3pgp|kHp+e,k-k.k!odlSn#oNlnpopqp/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkIp

120 

121 def is_table_model_class(cls: Type[Any]) -> bool: 1abcdef

122 config = getattr(cls, "model_config", {}) 2a Jp+l4p5pboOlPlkl,l-l.l/l:l;l3e,e-eHnrpqo;o$o%oTnkoAoYp^o1kvp%ehkikjk0o}kNn1oIl|o}ohpkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfBpb Kp_l6p7pcoQlRlll`l{l|l}l~lamLpbm8p9pdoSlTlmlcmdmemfmgmhm4eDfEfInspro=o'o(oXnloBoZp_o2kwp'eqkrksk2o~kOn3oJl~oapiptkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fCpc Mpom!p#peoUlVlnlpmqmrmsmtmumNpvm$p%pfoWlXlolwmxmymzmAmBmOpCm'p(pgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@fJntpso?o)o*o2nmoCo0p`o3kxp(ezkAkBk4oalPn5oKlbpcpjpCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gDpd PpPm)p*pho0l1lqlQmRmSmTmUmVmQpWm+p,pio2l3lrlXmYmZm0m1m2mRp3m-p.pjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gKnupto@o+o,o#nnoDo1p{o4kyp)eNkOkPk6oblQn7oLldpepkpQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,n!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{hEpe Sp)m/p:puo6l7lCl*m+m,m-m.m/mTp:m;p=pvo8l9lDl;m=m?m@m[m]mUp^m?p@pwo!l#lEl_m`m{m|m}m~m9e!e|h}h~haiLnzpGo[o-o.o-nooEo2pfp{kFp*e5k6k7k8oclRn9oMllpmppp8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjGpf Vpgn[p]pxo$l%lFlhninjnknlnmnWpnn^p_pyo'l(lGlonpnqnrnsntnXpun`p{pzo)l*lHlvnwnxnynznAn#e$ecjdjejfjMnApHo]o/o:o]npoFo3pgp|kHp+e,k-k.k!odlSn#oNlnpopqp/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~naoBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkIp

123 if config: 2a Jp+l4p5pboOlPlkl,l-l.l/l:l;l3e,e-eHnrpqo;o$o%oTnkoAoYp^o1kvp%ehkikjk0o}kNn1oIl|o}ohpkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfBpb Kp_l6p7pcoQlRlll`l{l|l}l~lamLpbm8p9pdoSlTlmlcmdmemfmgmhm4eDfEfInspro=o'o(oXnloBoZp_o2kwp'eqkrksk2o~kOn3oJl~oapiptkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fCpc Mpom!p#peoUlVlnlpmqmrmsmtmumNpvm$p%pfoWlXlolwmxmymzmAmBmOpCm'p(pgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@fJntpso?o)o*o2nmoCo0p`o3kxp(ezkAkBk4oalPn5oKlbpcpjpCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gDpd PpPm)p*pho0l1lqlQmRmSmTmUmVmQpWm+p,pio2l3lrlXmYmZm0m1m2mRp3m-p.pjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gKnupto@o+o,o#nnoDo1p{o4kyp)eNkOkPk6oblQn7oLldpepkpQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,n!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{hEpe Sp)m/p:puo6l7lCl*m+m,m-m.m/mTp:m;p=pvo8l9lDl;m=m?m@m[m]mUp^m?p@pwo!l#lEl_m`m{m|m}m~m9e!e|h}h~haiLnzpGo[o-o.o-nooEo2pfp{kFp*e5k6k7k8oclRn9oMllpmppp8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjGpf Vpgn[p]pxo$l%lFlhninjnknlnmnWpnn^p_pyo'l(lGlonpnqnrnsntnXpun`p{pzo)l*lHlvnwnxnynznAn#e$ecjdjejfjMnApHo]o/o:o]npoFo3pgp|kHp+e,k-k.k!odlSn#oNlnpopqp/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~naoBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkIp

124 return config.get("table", False) or False 2a Jp+l4p5pboOlPlkl,l-l.l/l:l;l3e,e-eHnrpqo;o$o%oTnkoAoYp^o1kvp%ehkikjk0o}kNn1oIl|o}ohpkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfBpb Kp_l6p7pcoQlRlll`l{l|l}l~lamLpbm8p9pdoSlTlmlcmdmemfmgmhm4eDfEfInspro=o'o(oXnloBoZp_o2kwp'eqkrksk2o~kOn3oJl~oapiptkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fCpc Mpom!p#peoUlVlnlpmqmrmsmtmumNpvm$p%pfoWlXlolwmxmymzmAmBmOpCm'p(pgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@fJntpso?o)o*o2nmoCo0p`o3kxp(ezkAkBk4oalPn5oKlbpcpjpCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gDpd PpPm)p*pho0l1lqlQmRmSmTmUmVmQpWm+p,pio2l3lrlXmYmZm0m1m2mRp3m-p.pjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gKnupto@o+o,o#nnoDo1p{o4kyp)eNkOkPk6oblQn7oLldpepkpQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,n!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{hEpe Sp)m/p:puo6l7lCl*m+m,m-m.m/mTp:m;p=pvo8l9lDl;m=m?m@m[m]mUp^m?p@pwo!l#lEl_m`m{m|m}m~m9e!e|h}h~haiLnzpGo[o-o.o-nooEo2pfp{kFp*e5k6k7k8oclRn9oMllpmppp8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjGpf Vpgn[p]pxo$l%lFlhninjnknlnmnWpnn^p_pyo'l(lGlonpnqnrnsntnXpun`p{pzo)l*lHlvnwnxnynznAn#e$ecjdjejfjMnApHo]o/o:o]npoFo3pgp|kHp+e,k-k.k!odlSn#oNlnpopqp/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~naoBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkIp

125 return False 1abcdef

126 

127 def get_relationship_to( 1abcdef

128 name: str, 

129 rel_info: "RelationshipInfo", 

130 annotation: Any, 

131 ) -> Any: 

132 origin = get_origin(annotation) 2IlK L g h _c`c)cM N elO P Q R S T U V W JlX ebY Z i o j p {ccd|cdd*c+c0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pbKl# qbrb$ % ' k q r l s t }cedfd~cgdhd,c-c.c( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbLl? ObPb@ [ ] m u v n w x adidjdbdkdld/c:c;c^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bMl$bocpc%b'b(by C D z E F mdqdrdndsdtd=c?c@c)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLcNl@bMcNc[b]b^bA G H B I J odudvdpdwdxd[c]c^c_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

133 use_annotation = annotation 2IlK L g h _c`c)cM N elO P Q R S T U V W JlX ebY Z i o j p {ccd|cdd*c+c0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pbKl# qbrb$ % ' k q r l s t }cedfd~cgdhd,c-c.c( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbLl? ObPb@ [ ] m u v n w x adidjdbdkdld/c:c;c^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bMl$bocpc%b'b(by C D z E F mdqdrdndsdtd=c?c@c)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLcNl@bMcNc[b]b^bA G H B I J odudvdpdwdxd[c]c^c_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

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

135 if origin is None: 2IlK L g h _c`c)cM N elO P Q R S T U V W JlX ebY Z i o j p {ccd|cdd*c+c0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pbKl# qbrb$ % ' k q r l s t }cedfd~cgdhd,c-c.c( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbLl? ObPb@ [ ] m u v n w x adidjdbdkdld/c:c;c^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bMl$bocpc%b'b(by C D z E F mdqdrdndsdtd=c?c@c)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLcNl@bMcNc[b]b^bA G H B I J odudvdpdwdxd[c]c^c_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

136 if isinstance(use_annotation, ForwardRef): 2IlK L g h _c`c)cM N elO P Q R S T U V W JlX ebY Z i o j p {ccd|cdd*c+c0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pbKl# qbrb$ % ' k q r l s t }cedfd~cgdhd,c-c.c( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbLl? ObPb@ [ ] m u v n w x adidjdbdkdld/c:c;c^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bMl$bocpc%b'b(by C D z E F mdqdrdndsdtd=c?c@c)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLcNl@bMcNc[b]b^bA G H B I J odudvdpdwdxd[c]c^c_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

137 use_annotation = use_annotation.__forward_arg__ 2IlK L g h _c`cM N elO P Q R S T U V W JlX Y Z i j {c|c0 1 fl2 3 4 5 6 7 8 9 ! Kl# $ % ' k l }c~c( ) gl* + , - . / : ; = Ll? @ [ ] m n adbd^ _ hl` { | } ~ abbbcbdbMl$b%b'b(by z mdnd)b*bil+b,b-b.b/b:b;b=b?bNl@b[b]b^bA B odpd_b`bjl{b|b}b~bacbcccdcec

138 else: 

139 return use_annotation 2IlK L g h _c`c)cM N elO P Q R S T U V W JlX ebY Z i o j p {ccd|cdd*c+c0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pbKl# qbrb$ % ' k q r l s t }cedfd~cgdhd,c-c.c( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbLl? ObPb@ [ ] m u v n w x adidjdbdkdld/c:c;c^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bMl$bocpc%b'b(by C D z E F mdqdrdndsdtd=c?c@c)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLcNl@bMcNc[b]b^bA G H B I J odudvdpdwdxd[c]c^c_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

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

141 elif _is_union_type(origin): 2IlK L g h _c`c)cM N elO P Q R S T U V W JlX ebY Z i o j p {ccd|cdd*c+c0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pbKl# qbrb$ % ' k q r l s t }cedfd~cgdhd,c-c.c( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbLl? ObPb@ [ ] m u v n w x adidjdbdkdld/c:c;c^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bMl$bocpc%b'b(by C D z E F mdqdrdndsdtd=c?c@c)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLcNl@bMcNc[b]b^bA G H B I J odudvdpdwdxd[c]c^c_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

142 use_annotation = get_args(annotation) 2K L g h M N elO P Q R S T U V W X ebY Z i o j p 0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qbrb$ % ' k q r l s t ( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNb? ObPb@ [ ] m u v n w x ^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#b$bocpc%b'b(by C D z E F )bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc@bMcNc[b]b^bA G H B I J _bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

143 if len(use_annotation) > 2: 2K L g h M N elO P Q R S T U V W X ebY Z i o j p 0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qbrb$ % ' k q r l s t ( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNb? ObPb@ [ ] m u v n w x ^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#b$bocpc%b'b(by C D z E F )bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc@bMcNc[b]b^bA G H B I J _bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

144 raise ValueError( 

145 "Cannot have a (non-optional) union as a SQLAlchemy field" 

146 ) 

147 arg1, arg2 = use_annotation 2K L g h M N elO P Q R S T U V W X ebY Z i o j p 0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qbrb$ % ' k q r l s t ( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNb? ObPb@ [ ] m u v n w x ^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#b$bocpc%b'b(by C D z E F )bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc@bMcNc[b]b^bA G H B I J _bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

148 if arg1 is NoneType and arg2 is not NoneType: 2K L g h M N elO P Q R S T U V W X ebY Z i o j p 0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qbrb$ % ' k q r l s t ( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNb? ObPb@ [ ] m u v n w x ^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#b$bocpc%b'b(by C D z E F )bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc@bMcNc[b]b^bA G H B I J _bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

149 use_annotation = arg2 

150 elif arg2 is NoneType and arg1 is not NoneType: 2K L g h M N elO P Q R S T U V W X ebY Z i o j p 0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qbrb$ % ' k q r l s t ( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNb? ObPb@ [ ] m u v n w x ^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#b$bocpc%b'b(by C D z E F )bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc@bMcNc[b]b^bA G H B I J _bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

151 use_annotation = arg1 2K L g h M N elO P Q R S T U V W X ebY Z i o j p 0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb# qbrb$ % ' k q r l s t ( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNb? ObPb@ [ ] m u v n w x ^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#b$bocpc%b'b(by C D z E F )bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc@bMcNc[b]b^bA G H B I J _bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

152 else: 

153 raise ValueError( 

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

155 ) 

156 

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

158 elif origin is list: 2IlK L g h _c`c)cM N elO P Q R S T U V W JlX ebY Z i o j p {ccd|cdd*c+c0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pbKl# qbrb$ % ' k q r l s t }cedfd~cgdhd,c-c.c( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbLl? ObPb@ [ ] m u v n w x adidjdbdkdld/c:c;c^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bMl$bocpc%b'b(by C D z E F mdqdrdndsdtd=c?c@c)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLcNl@bMcNc[b]b^bA G H B I J odudvdpdwdxd[c]c^c_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

159 use_annotation = get_args(annotation)[0] 2IlK L g h _c`c)cM N elO P Q R S T U V W JlX ebY Z i o j p {ccd|cdd*c+c0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pbKl# qbrb$ % ' k q r l s t }cedfd~cgdhd,c-c.c( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbLl? ObPb@ [ ] m u v n w x adidjdbdkdld/c:c;c^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bMl$bocpc%b'b(by C D z E F mdqdrdndsdtd=c?c@c)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLcNl@bMcNc[b]b^bA G H B I J odudvdpdwdxd[c]c^c_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

160 

161 return get_relationship_to( 2IlK L g h _c`c)cM N elO P Q R S T U V W JlX ebY Z i o j p {ccd|cdd*c+c0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pbKl# qbrb$ % ' k q r l s t }cedfd~cgdhd,c-c.c( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbLl? ObPb@ [ ] m u v n w x adidjdbdkdld/c:c;c^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bMl$bocpc%b'b(by C D z E F mdqdrdndsdtd=c?c@c)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLcNl@bMcNc[b]b^bA G H B I J odudvdpdwdxd[c]c^c_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

162 name=name, rel_info=rel_info, annotation=use_annotation 

163 ) 

164 

165 def is_field_noneable(field: "FieldInfo") -> bool: 1abcdef

166 if getattr(field, "nullable", Undefined) is not Undefined: 2a 3e,e-e$o%oTnkoAo1k%ehkikjk}kNnIlkk.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEf'o(oXnloBo2k'eqkrksk~kOnJltkFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f)o*o2nmoCo3k(ezkAkBkalPnKlCk[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g+o,o#nnoDo4k)eNkOkPkblQnLlQk{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-o.o-nooEo{k*e5k6k7kclRnMl8kbicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj/o:o]npoFo|k+e,k-k.kdlSnNl/kgjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

167 return field.nullable # type: ignore 2}kNn~kOnalPnblQnclRndlSn

168 origin = get_origin(field.annotation) 2a 3e,e-e$o%oTnkoAo1k%ehkikjkNnIlkk.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEf'o(oXnloBo2k'eqkrkskOnJltkFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f)o*o2nmoCo3k(ezkAkBkPnKlCk[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g+o,o#nnoDo4k)eNkOkPkQnLlQk{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-o.o-nooEo{k*e5k6k7kRnMl8kbicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj/o:o]npoFo|k+e,k-k.kSnNl/kgjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

169 if origin is not None and _is_union_type(origin): 2a 3e,e-e$o%oTnkoAo1k%ehkikjkNnIlkk.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEf'o(oXnloBo2k'eqkrkskOnJltkFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f)o*o2nmoCo3k(ezkAkBkPnKlCk[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g+o,o#nnoDo4k)eNkOkPkQnLlQk{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-o.o-nooEo{k*e5k6k7kRnMl8kbicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj/o:o]npoFo|k+e,k-k.kSnNl/kgjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

170 args = get_args(field.annotation) 2a 3e,e-eTnko1k%ehkikjkNnIlkk.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfXnlo2k'eqkrkskOnJltkFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f2nmo3k(ezkAkBkPnKlCk[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g#nno4k)eNkOkPkQnLlQk{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-noo{k*e5k6k7kRnMl8kbicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj]npo|k+e,k-k.kSnNl/kgjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

171 if any(arg is NoneType for arg in args): 2a 3e,e-eTnko1k%ehkikjkNnIlkk.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfXnlo2k'eqkrkskOnJltkFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f2nmo3k(ezkAkBkPnKlCk[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g#nno4k)eNkOkPkQnLlQk{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-noo{k*e5k6k7kRnMl8kbicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj]npo|k+e,k-k.kSnNl/kgjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

172 return True 2a 3e,e-eTnko1k%ehkikjkNnIlkk.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfXnlo2k'eqkrkskOnJltkFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f2nmo3k(ezkAkBkPnKlCk[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g#nno4k)eNkOkPkQnLlQk{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-noo{k*e5k6k7kRnMl8kbicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj]npo|k+e,k-k.kSnNl/kgjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

173 if not field.is_required(): 2a 3e,e-e$o%oTnAo1k%ehkikjkNnIlkk.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEf'o(oXnBo2k'eqkrkskOnJltkFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f)o*o2nCo3k(ezkAkBkPnKlCk[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g+o,o#nDo4k)eNkOkPkQnLlQk{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-o.o-nEo{k*e5k6k7kRnMl8kbicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj/o:o]nFo|k+e,k-k.kSnNl/kgjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

174 if field.default is Undefined: 23eNn)c4eOn*c+c5e6ePn,c-c.c7e8eQn/c:c;c9e!eRn=c?c@c#e$eSn[c]c^c

175 return False 

176 if field.annotation is None or field.annotation is NoneType: # type: ignore[comparison-overlap] 23eNn)c4eOn*c+c5e6ePn,c-c.c7e8eQn/c:c;c9e!eRn=c?c@c#e$eSn[c]c^c

177 return True 

178 return False 23eNn)c4eOn*c+c5e6ePn,c-c.c7e8eQn/c:c;c9e!eRn=c?c@c#e$eSn[c]c^c

179 return False 2a 3e,e-e$o%oTnAo1k%ehkikjkNnIlkk.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEf'o(oXnBo2k'eqkrkskOnJltkFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f)o*o2nCo3k(ezkAkBkPnKlCk[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g+o,o#nDo4k)eNkOkPkQnLlQk{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-o.o-nEo{k*e5k6k7kRnMl8kbicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj/o:o]nFo|k+e,k-k.kSnNl/kgjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

180 

181 def get_sa_type_from_type_annotation(annotation: Any) -> Any: 1abcdef

182 # Resolve Optional fields 

183 if annotation is None: 2a 3e,e-eHn$o%oTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfIn'o(oXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@fJn)o*o2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`gKn+o,o#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~haiLn-o.o-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfjMn/o:o]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

184 raise ValueError("Missing field type") 

185 origin = get_origin(annotation) 2a 3e,e-eHn$o%oTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfIn'o(oXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@fJn)o*o2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`gKn+o,o#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~haiLn-o.o-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfjMn/o:o]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

186 if origin is None: 2a 3e,e-eHn$o%oTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfIn'o(oXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@fJn)o*o2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`gKn+o,o#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~haiLn-o.o-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfjMn/o:o]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

187 return annotation 2a 3e,e-eHn$o%oTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfIn'o(oXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@fJn)o*o2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`gKn+o,o#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~haiLn-o.o-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfjMn/o:o]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

188 elif origin is Annotated: 2a 3e,e-eHnTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfInXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@fJn2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`gKn#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~haiLn-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfjMn]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

189 return get_sa_type_from_type_annotation(get_args(annotation)[0]) 2HnInJnKnLnMn

190 if _is_union_type(origin): 2a 3e,e-eHnTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfInXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@fJn2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`gKn#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~haiLn-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfjMn]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

191 bases = get_args(annotation) 2a 3e,e-eHnTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfInXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@fJn2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`gKn#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~haiLn-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfjMn]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

192 if len(bases) > 2: 2a 3e,e-eHnTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfInXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@fJn2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`gKn#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~haiLn-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfjMn]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

193 raise ValueError( 

194 "Cannot have a (non-optional) union as a SQLAlchemy field" 

195 ) 

196 # Non optional unions are not allowed 

197 if bases[0] is not NoneType and bases[1] is not NoneType: 2a 3e,e-eHnTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfInXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@fJn2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`gKn#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~haiLn-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfjMn]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

198 raise ValueError( 2KoNoQoToWoZo

199 "Cannot have a (non-optional) union as a SQLAlchemy field" 

200 ) 

201 # Optional unions are allowed 

202 use_type = bases[0] if bases[0] is not NoneType else bases[1] 2a 3e,e-eHnTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfInXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@fJn2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`gKn#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~haiLn-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfjMn]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

203 return get_sa_type_from_type_annotation(use_type) 2a 3e,e-eHnTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfInXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@fJn2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`gKn#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~haiLn-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfjMn]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

204 return origin 2IoJoLoMoOoPoRoSoUoVoXoYo

205 

206 def get_sa_type_from_field(field: Any) -> Any: 1abcdef

207 type_: Any = field.annotation 2a 3e,e-eHn$o%oTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfIn'o(oXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@fJn)o*o2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`gKn+o,o#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~haiLn-o.o-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfjMn/o:o]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

208 return get_sa_type_from_type_annotation(type_) 2a 3e,e-eHn$o%oTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfIn'o(oXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@fJn)o*o2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`gKn+o,o#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~haiLn-o.o-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfjMn/o:o]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

209 

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

211 for meta in field.metadata: 2a 3e,e-eHn$o%oTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfIn'o(oXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@fJn)o*o2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`gKn+o,o#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~haiLn-o.o-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfjMn/o:o]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

212 if isinstance(meta, (PydanticMetadata, MaxLen)): 23e4e5e6e7e8e9e!e#e$e

213 return meta 23e4e5e6e7e8e9e!e#e$e

214 return FakeMetadata() 2a 3e,e-eHn$o%oTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfIn'o(oXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@fJn)o*o2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`gKn+o,o#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~haiLn-o.o-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfjMn/o:o]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

215 

216 def post_init_field_info(field_info: FieldInfo) -> None: 1abcdef

217 return None 2a 3e,e-eHn$o%oTnkoAoYpdqeq^o1kvp%ehkikjk0o}kNn1ofqIl|o}ohpkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfIn'o(oXnloBoZpgqhq_o2kwp'eqkrksk2o~kOn3oiqJl~oapiptkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@fJn)o*o2nmoCo0pjqkq`o3kxp(ezkAkBk4oalPn5olqKlbpcpjpCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`gKn+o,o#nnoDo1pmqnq{o4kyp)eNkOkPk6oblQn7ooqLldpepkpQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~haiLn-o.o-nooEo2ppqqqfp{kFp*e5k6k7k8oclRn9orqMllpmppp8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfjMn/o:o]npoFo3psqtqgp|kHp+e,k-k.k!odlSn#ouqNlnpopqp/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

218 

219 # Dummy to make it importable 

220 def _calculate_keys( 1abcdef

221 self: "SQLModel", 1abcdef

222 include: Optional[Mapping[Union[int, str], Any]], 1abcdef

223 exclude: Optional[Mapping[Union[int, str], Any]], 1abcdef

224 exclude_unset: bool, 1abcdef

225 update: Optional[Dict[str, Any]] = None, 1abcdef

226 ) -> Optional[AbstractSet[str]]: # pragma: no cover 1abcdef

227 return None 

228 

229 def sqlmodel_table_construct( 1abcdef

230 *, 

231 self_instance: _TSQLModel, 

232 values: Dict[str, Any], 

233 _fields_set: Union[Set[str], None] = None, 

234 ) -> _TSQLModel: 

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

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

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

238 # set relationships 

239 # SQLModel override to get class SQLAlchemy __dict__ attributes and 

240 # set them back in after creating the object 

241 # new_obj = cls.__new__(cls) 

242 cls = type(self_instance) 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

243 old_dict = self_instance.__dict__.copy() 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

244 # End SQLModel override 

245 

246 fields_values: Dict[str, Any] = {} 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

247 defaults: Dict[ 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

248 str, Any 

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

250 for name, field in cls.model_fields.items(): 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

251 if field.alias and field.alias in values: 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

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

253 elif name in values: 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

254 fields_values[name] = values.pop(name) 2boOlPlkl3e,e-e%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEf'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@f(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`g)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~hai*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfj+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

255 elif not field.is_required(): 2boOlPlkl3e,e-eHn1k%ehkikjkkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7k8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.k/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

256 defaults[name] = field.get_default(call_default_factory=True) 2boOlPlkl3e,e-eHn1k%ehkikjkkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7k8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.k/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

257 if _fields_set is None: 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

258 _fields_set = set(fields_values.keys()) 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

259 fields_values.update(defaults) 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

260 

261 _extra: Union[Dict[str, Any], None] = None 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

262 if cls.model_config.get("extra") == "allow": 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

263 _extra = {} 

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

265 _extra[k] = v 

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

267 # else: 

268 # fields_values.update(values) 

269 # End SQLModel override 

270 # SQLModel override 

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

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

273 # instrumentation 

274 for key, value in {**old_dict, **fields_values}.items(): 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

275 setattr(self_instance, key, value) 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

276 # End SQLModel override 

277 object.__setattr__(self_instance, "__pydantic_fields_set__", _fields_set) 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

278 if not cls.__pydantic_root_model__: 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

279 object.__setattr__(self_instance, "__pydantic_extra__", _extra) 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

280 

281 if cls.__pydantic_post_init__: 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

282 self_instance.model_post_init(None) 

283 elif not cls.__pydantic_root_model__: 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

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

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

286 object.__setattr__(self_instance, "__pydantic_private__", None) 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

287 # SQLModel override, set relationships 

288 # Get and set any relationship objects 

289 for key in self_instance.__sqlmodel_relationships__: 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

290 value = values.get(key, Undefined) 2%eK L _c`c)cM N O P Q R S T U V W 'eX ebY Z {ccd|cdd*c+c0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb(e# qbrb$ % ' }cedfd~cgdhd,c-c.c( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNb)e? ObPb@ [ ] adidjdbdkdld/c:c;c^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#b*e$bocpc%b'b(bmdqdrdndsdtd=c?c@c)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc+e@bMcNc[b]b^bodudvdpdwdxd[c]c^c_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

291 if value is not Undefined: 2%eK L _c`c)cM N O P Q R S T U V W 'eX ebY Z {ccd|cdd*c+c0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb(e# qbrb$ % ' }cedfd~cgdhd,c-c.c( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNb)e? ObPb@ [ ] adidjdbdkdld/c:c;c^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#b*e$bocpc%b'b(bmdqdrdndsdtd=c?c@c)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc+e@bMcNc[b]b^bodudvdpdwdxd[c]c^c_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

292 setattr(self_instance, key, value) 2%eK L _c`c)cM N O P Q R S T U V W 'eX ebY Z {ccd|cdd*c+c0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb(e# qbrb$ % ' }cedfd~cgdhd,c-c.c( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNb)e? ObPb@ [ ] adidjdbdkdld/c:c;c^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#b*e$bocpc%b'b(bmdqdrdndsdtd=c?c@c)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc+e@bMcNc[b]b^bodudvdpdwdxd[c]c^c_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

293 # End SQLModel override 

294 return self_instance 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

295 

296 def sqlmodel_validate( 1abcdef

297 cls: Type[_TSQLModel], 

298 obj: Any, 

299 *, 

300 strict: Union[bool, None] = None, 

301 from_attributes: Union[bool, None] = None, 

302 context: Union[Dict[str, Any], None] = None, 

303 update: Union[Dict[str, Any], None] = None, 

304 ) -> _TSQLModel: 

305 if not is_table_model_class(cls): 2+l,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg zdh AdfcBp_l`l{l|l}l~lambmcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcCpompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcDpPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcncEp)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cGpgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(cIp

306 new_obj: _TSQLModel = cls.__new__(cls) 2qo;oBpro=oCpso?oDpto@oEpGo[oGpHo]oIp

307 else: 

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

309 # the _sa_instance_state attribute 

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

311 with partial_init(): 2+l,l-l.l/l:l;l=l?l@l[l]l^lyd`d{d|d}dg zdh Adfc_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcnc)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~manbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(c

312 new_obj = cls() 2+l,l-l.l/l:l;l=l?l@l[l]l^lyd`d{d|d}dg zdh Adfc_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcnc)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~manbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(c

313 # SQLModel Override to get class SQLAlchemy __dict__ attributes and 

314 # set them back in after creating the object 

315 old_dict = new_obj.__dict__.copy() 2+l,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg zdh AdfcBp_l`l{l|l}l~lambmcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcCpompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcDpPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcncEp)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cGpgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(cIp

316 use_obj = obj 2+l,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg zdh AdfcBp_l`l{l|l}l~lambmcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcCpompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcDpPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcncEp)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cGpgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(cIp

317 if isinstance(obj, dict) and update: 2+l,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg zdh AdfcBp_l`l{l|l}l~lambmcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcCpompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcDpPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcncEp)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cGpgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(cIp

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

319 elif update: 2+l,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg zdh AdfcBp_l`l{l|l}l~lambmcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcCpompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcDpPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcncEp)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cGpgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(cIp

320 use_obj = ObjectWithUpdateWrapper(obj=obj, update=update) 2fcgchcicjckclcmcnc!c#c$c%c'c(c

321 cls.__pydantic_validator__.validate_python( 2+l,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg zdh AdfcBp_l`l{l|l}l~lambmcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcCpompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcDpPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcncEp)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cGpgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(cIp

322 use_obj, 

323 strict=strict, 

324 from_attributes=from_attributes, 

325 context=context, 

326 self_instance=new_obj, 

327 ) 

328 # Capture fields set to restore it later 

329 fields_set = new_obj.__pydantic_fields_set__.copy() 2+l,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg zdh AdfcBp_l`l{l|l}l~lambmcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcCpompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcDpPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcncEp)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cGpgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(cIp

330 if not is_table_model_class(cls): 2+l,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg zdh AdfcBp_l`l{l|l}l~lambmcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcCpompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcDpPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcncEp)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cGpgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(cIp

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

332 new_obj.__dict__ = {**old_dict, **new_obj.__dict__} 2qo;oBpro=oCpso?oDpto@oEpGo[oGpHo]oIp

333 else: 

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

335 # instrumentation 

336 for key, value in {**old_dict, **new_obj.__dict__}.items(): 2+l,l-l.l/l:l;l=l?l@l[l]l^lyd`d{d|d}dg zdh Adfc_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcnc)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~manbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(c

337 setattr(new_obj, key, value) 2+l,l-l.l/l:l;l=l?l@l[l]l^lyd`d{d|d}dg zdh Adfc_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcnc)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~manbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(c

338 # Restore fields set 

339 object.__setattr__(new_obj, "__pydantic_fields_set__", fields_set) 2+l,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg zdh AdfcBp_l`l{l|l}l~lambmcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcCpompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcDpPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcncEp)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cGpgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(cIp

340 # Get and set any relationship objects 

341 if is_table_model_class(cls): 2+l,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg zdh AdfcBp_l`l{l|l}l~lambmcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcCpompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcDpPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcncEp)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cGpgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(cIp

342 for key in new_obj.__sqlmodel_relationships__: 2+l,l-l.l/l:l;l=l?l@l[l]l^lyd`d{d|d}dg zdh Adfc_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcnc)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~manbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(c

343 value = getattr(use_obj, key, Undefined) 1ghiojpkqrlstmuvnwxyCDzEFAGHBIJ

344 if value is not Undefined: 1ghiojpkqrlstmuvnwxyCDzEFAGHBIJ

345 setattr(new_obj, key, value) 

346 return new_obj 2+l,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg zdh AdfcBp_l`l{l|l}l~lambmcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcCpompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcDpPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcncEp)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cGpgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(cIp

347 

348 def sqlmodel_init(*, self: "SQLModel", data: Dict[str, Any]) -> None: 1abcdef

349 old_dict = self.__dict__.copy() 2Jp+l4p5pboOlPlkl,l-l.l/l:l;l3e,e-eHnrpqo^o1kvp%ehkikjk}k|o}ohpkk.e/eK L :e;e=e?e@e[e]e^e_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfKp_l6p7pcoQlRlll`l{l|l}l~lamLpbm8p9pdoSlTlmlcmdmemfmgmhm4eDfEfInspro_o2kwp'eqkrksk~k~oapiptkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQfimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fMpom!p#peoUlVlnlpmqmrmsmtmumNpvm$p%pfoWlXlolwmxmymzmAmBmOpCm'p(pgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@fJntpso`o3kxp(ezkAkBkalbpcpjpCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gPpPm)p*pho0l1lqlQmRmSmTmUmVmQpWm+p,pio2l3lrlXmYmZm0m1m2mRp3m-p.pjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gKnupto{o4kyp)eNkOkPkbldpepkpQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{hSp)m/p:puo6l7lCl*m+m,m-m.m/mTp:m;p=pvo8l9lDl;m=m?m@m[m]mUp^m?p@pwo!l#lEl_m`m{m|m}m~m9e!e|h}h~haiLnzpGofp{kFp*e5k6k7kcllpmppp8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyianbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjVpgn[p]pxo$l%lFlhninjnknlnmnWpnn^p_pyo'l(lGlonpnqnrnsntnXpun`p{pzo)l*lHlvnwnxnynznAn#e$ecjdjejfjMnApHogp|kHp+e,k-k.kdlnpopqp/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

350 if not is_table_model_class(self.__class__): 2Jp+l4p5pboOlPlkl,l-l.l/l:l;l3e,e-eHnrpqo^o1kvp%ehkikjk}k|o}ohpkk.e/eK L :e;e=e?e@e[e]e^e_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfKp_l6p7pcoQlRlll`l{l|l}l~lamLpbm8p9pdoSlTlmlcmdmemfmgmhm4eDfEfInspro_o2kwp'eqkrksk~k~oapiptkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQfimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fMpom!p#peoUlVlnlpmqmrmsmtmumNpvm$p%pfoWlXlolwmxmymzmAmBmOpCm'p(pgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@fJntpso`o3kxp(ezkAkBkalbpcpjpCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gPpPm)p*pho0l1lqlQmRmSmTmUmVmQpWm+p,pio2l3lrlXmYmZm0m1m2mRp3m-p.pjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gKnupto{o4kyp)eNkOkPkbldpepkpQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{hSp)m/p:puo6l7lCl*m+m,m-m.m/mTp:m;p=pvo8l9lDl;m=m?m@m[m]mUp^m?p@pwo!l#lEl_m`m{m|m}m~m9e!e|h}h~haiLnzpGofp{kFp*e5k6k7kcllpmppp8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyianbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjVpgn[p]pxo$l%lFlhninjnknlnmnWpnn^p_pyo'l(lGlonpnqnrnsntnXpun`p{pzo)l*lHlvnwnxnynznAn#e$ecjdjejfjMnApHogp|kHp+e,k-k.kdlnpopqp/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

351 self.__pydantic_validator__.validate_python( 2Jp+l4p5pkl,l-l.l/l:l;lrpqo^ovp|o}ohp=l?l@l[l]l^lyd`d{d|d}dg zdh AdfcKp_l6p7pll`l{l|l}l~lamLpbm8p9pmlcmdmemfmgmhmspro_owp~oapipimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcMpom!p#pnlpmqmrmsmtmumNpvm$p%polwmxmymzmAmBmOpCm'p(pplDmEmFmGmHmImtpso`oxpbpcpjpJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcPpPm)p*pqlQmRmSmTmUmVmQpWm+p,prlXmYmZm0m1m2mRp3m-p.psl4m5m6m7m8m9mupto{oypdpepkp!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcncSp)m/p:pCl*m+m,m-m.m/mTp:m;p=pDl;m=m?m@m[m]mUp^m?p@pEl_m`m{m|m}m~mzpGofpFplpmpppanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cVpgn[p]pFlhninjnknlnmnWpnn^p_pGlonpnqnrnsntnXpun`p{pHlvnwnxnynznAnApHogpHpnpopqpBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(c

352 data, 

353 self_instance=self, 

354 ) 

355 else: 

356 sqlmodel_table_construct( 2boOlPlkl3e,e-eHn1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e*d{e|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfcoQlRllldoSlTlml4eDfEfIn2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQf+d,dRfSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:feoUlVlnlfoWlXlolgoYlZlpl5e6e;f=f?f@fJn3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngog-d.d/dpgqgrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gho0l1lqlio2l3lrljo4l5lsl7e8e]g^g_g`gKn4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth:d;d=duhvhwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{huo6l7lClvo8l9lDlwo!l#lEl9e!e|h}h~haiLn{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyi?d@d[dziAiBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjxo$l%lFlyo'l(lGlzo)l*lHl#e$ecjdjejfjMn|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDj]d^d_dEjFjGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

357 self_instance=self, 

358 values=data, 

359 ) 

360 object.__setattr__( 2Jp+lboOlPlkl,l-l.l/l:l;l3e,e-eHnrpqo^o1k%ehkikjk}k|o}ohpkk.e/eK L :e;e=e?e@e[e]e^e_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfKp_lcoQlRlll`l{l|l}l~lamLpbmdoSlTlmlcmdmemfmgmhm4eDfEfInspro_o2k'eqkrksk~k~oapiptkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQfimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fMpomeoUlVlnlpmqmrmsmtmumNpvmfoWlXlolwmxmymzmAmBmOpCmgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@fJntpso`o3k(ezkAkBkalbpcpjpCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gPpPmho0l1lqlQmRmSmTmUmVmQpWmio2l3lrlXmYmZm0m1m2mRp3mjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gKnupto{o4k)eNkOkPkbldpepkpQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{hSp)muo6l7lCl*m+m,m-m.m/mTp:mvo8l9lDl;m=m?m@m[m]mUp^mwo!l#lEl_m`m{m|m}m~m9e!e|h}h~haiLnzpGofp{k*e5k6k7kcllpmppp8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyianbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjVpgnxo$l%lFlhninjnknlnmnWpnnyo'l(lGlonpnqnrnsntnXpunzo)l*lHlvnwnxnynznAn#e$ecjdjejfjMnApHogp|k+e,k-k.kdlnpopqp/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

361 self, 

362 "__dict__", 

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

364 ) 

365 

366else: 

367 from pydantic import BaseConfig as BaseConfig # type: ignore[assignment] 1abcdef

368 from pydantic.errors import ConfigError 1abcdef

369 from pydantic.fields import ( # type: ignore[attr-defined, no-redef] 1abcdef

370 SHAPE_SINGLETON, 

371 ModelField, 

372 ) 

373 from pydantic.fields import ( # type: ignore[attr-defined, no-redef] 1abcdef

374 Undefined as Undefined, # noqa 

375 ) 

376 from pydantic.fields import ( # type: ignore[attr-defined, no-redef] 1abcdef

377 UndefinedType as UndefinedType, 

378 ) 

379 from pydantic.main import ( # type: ignore[no-redef] 1abcdef

380 ModelMetaclass as ModelMetaclass, 

381 ) 

382 from pydantic.main import validate_model 1abcdef

383 from pydantic.typing import resolve_annotations 1abcdef

384 from pydantic.utils import ROOT_KEY, ValueItems 1abcdef

385 from pydantic.utils import ( # type: ignore[no-redef] 1abcdef

386 Representation as Representation, 

387 ) 

388 

389 class SQLModelConfig(BaseConfig): # type: ignore[no-redef] 1abcdef

390 table: Optional[bool] = None # type: ignore[misc] 1abcdef

391 registry: Optional[Any] = None # type: ignore[misc] 1abcdef

392 

393 def get_config_value( 1abcdef

394 *, model: InstanceOrType["SQLModel"], parameter: str, default: Any = None 

395 ) -> Any: 

396 return getattr(model.__config__, parameter, default) # type: ignore[union-attr] 2a 3e,e-e$o%oTnkoAoYp^o1kvp%ehkikjk0o}kNn1oIl|o}ohpkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCf|pb 4eDfEf'o(oXnloBoZp_o2kwp'eqkrksk2o~kOn3oJl~oapiptkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f}pc 5e6e;f=f?f@f)o*o2nmoCo0p`o3kxp(ezkAkBk4oalPn5oKlbpcpjpCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g~pd 7e8e]g^g_g`g+o,o#nnoDo1p{o4kyp)eNkOkPk6oblQn7oLldpepkpQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{haqe 9e!e|h}h~hai-o.o-nooEo2pfp{kFp*e5k6k7k8oclRn9oMllpmppp8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjbqf #e$ecjdjejfj/o:o]npoFo3pgp|kHp+e,k-k.k!odlSn#oNlnpopqp/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkcq

397 

398 def set_config_value( 1abcdef

399 *, 

400 model: InstanceOrType["SQLModel"], 

401 parameter: str, 

402 value: Any, 

403 ) -> None: 

404 setattr(model.__config__, parameter, value) # type: ignore 2a 3e,e-e$o%oTnkoAoYp1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEf'o(oXnloBoZp2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f)o*o2nmoCo0p3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g+o,o#nnoDo1p4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-o.o-nooEo2p{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj/o:o]npoFo3p|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

405 

406 def get_model_fields(model: InstanceOrType[BaseModel]) -> Dict[str, "FieldInfo"]: 1abcdef

407 return model.__fields__ # type: ignore 2a 3e,e-e$o%oTnkoAoYp1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEf'o(oXnloBoZp2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f)o*o2nmoCo0p3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g+o,o#nnoDo1p4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-o.o-nooEo2p{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj/o:o]npoFo3p|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

408 

409 def get_fields_set( 1abcdef

410 object: InstanceOrType["SQLModel"], 

411 ) -> Union[Set[str], Callable[[BaseModel], Set[str]]]: 

412 return object.__fields_set__ 2^o_o`o{ofpgp

413 

414 def init_pydantic_private_attrs(new_object: InstanceOrType["SQLModel"]) -> None: 1abcdef

415 object.__setattr__(new_object, "__fields_set__", set()) 2Jp+l4p5pboOlPlkl,l-l.l/l:l;l3e,e-erpqo;o^o1kvp%ehkikjk}k|o}ohpkk.e/eK L :e;e=e?e@e[e]e^e_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCf|pKp_l6p7pcoQlRlll`l{l|l}l~lamLpbm8p9pdoSlTlmlcmdmemfmgmhm4eDfEfspro=o_o2kwp'eqkrksk~k~oapiptkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQfimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f}pMpom!p#peoUlVlnlpmqmrmsmtmumNpvm$p%pfoWlXlolwmxmymzmAmBmOpCm'p(pgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@ftpso?o`o3kxp(ezkAkBkalbpcpjpCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g~pPpPm)p*pho0l1lqlQmRmSmTmUmVmQpWm+p,pio2l3lrlXmYmZm0m1m2mRp3m-p.pjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gupto@o{o4kyp)eNkOkPkbldpepkpQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{haqSp)m/p:puo6l7lCl*m+m,m-m.m/mTp:m;p=pvo8l9lDl;m=m?m@m[m]mUp^m?p@pwo!l#lEl_m`m{m|m}m~m9e!e|h}h~haizpGo[ofp{kFp*e5k6k7kcllpmppp8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyianbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjbqVpgn[p]pxo$l%lFlhninjnknlnmnWpnn^p_pyo'l(lGlonpnqnrnsntnXpun`p{pzo)l*lHlvnwnxnynznAn#e$ecjdjejfjApHo]ogp|kHp+e,k-k.kdlnpopqp/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkcq

416 

417 def get_annotations(class_dict: Dict[str, Any]) -> Dict[str, Any]: 1abcdef

418 return resolve_annotations( # type: ignore[no-any-return] 2a 3e,e-e$o%oTnkoAoYp^o1kvp%ehkikjk0o}kNn1oIl|o}ohpkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCf|pb 4eDfEf'o(oXnloBoZp_o2kwp'eqkrksk2o~kOn3oJl~oapiptkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f}pc 5e6e;f=f?f@f)o*o2nmoCo0p`o3kxp(ezkAkBk4oalPn5oKlbpcpjpCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g~pd 7e8e]g^g_g`g+o,o#nnoDo1p{o4kyp)eNkOkPk6oblQn7oLldpepkpQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{haqe 9e!e|h}h~hai-o.o-nooEo2pfp{kFp*e5k6k7k8oclRn9oMllpmppp8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjbqf #e$ecjdjejfj/o:o]npoFo3pgp|kHp+e,k-k.k!odlSn#oNlnpopqp/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkcq

419 class_dict.get("__annotations__", {}), 

420 class_dict.get("__module__", None), 

421 ) 

422 

423 def is_table_model_class(cls: Type[Any]) -> bool: 1abcdef

424 config = getattr(cls, "__config__", None) 2a Jp+l4p5pboOlPlkl,l-l.l/l:l;l3e,e-erpqo$o%oTnkoAoYp^o1kvp%ehkikjk0o}kNn1oIl|o}ohpkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCf|pb Kp_l6p7pcoQlRlll`l{l|l}l~lamLpbm8p9pdoSlTlmlcmdmemfmgmhm4eDfEfspro'o(oXnloBoZp_o2kwp'eqkrksk2o~kOn3oJl~oapiptkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f}pc Mpom!p#peoUlVlnlpmqmrmsmtmumNpvm$p%pfoWlXlolwmxmymzmAmBmOpCm'p(pgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@ftpso)o*o2nmoCo0p`o3kxp(ezkAkBk4oalPn5oKlbpcpjpCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g~pd PpPm)p*pho0l1lqlQmRmSmTmUmVmQpWm+p,pio2l3lrlXmYmZm0m1m2mRp3m-p.pjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gupto+o,o#nnoDo1p{o4kyp)eNkOkPk6oblQn7oLldpepkpQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,n!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{haqe Sp)m/p:puo6l7lCl*m+m,m-m.m/mTp:m;p=pvo8l9lDl;m=m?m@m[m]mUp^m?p@pwo!l#lEl_m`m{m|m}m~m9e!e|h}h~haizpGo-o.o-nooEo2pfp{kFp*e5k6k7k8oclRn9oMllpmppp8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjbqf Vpgn[p]pxo$l%lFlhninjnknlnmnWpnn^p_pyo'l(lGlonpnqnrnsntnXpun`p{pzo)l*lHlvnwnxnynznAn#e$ecjdjejfjApHo/o:o]npoFo3pgp|kHp+e,k-k.k!odlSn#oNlnpopqp/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~naoBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkcq

425 if config: 2a Jp+l4p5pboOlPlkl,l-l.l/l:l;l3e,e-erpqo$o%oTnkoAoYp^o1kvp%ehkikjk0o}kNn1oIl|o}ohpkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCf|pb Kp_l6p7pcoQlRlll`l{l|l}l~lamLpbm8p9pdoSlTlmlcmdmemfmgmhm4eDfEfspro'o(oXnloBoZp_o2kwp'eqkrksk2o~kOn3oJl~oapiptkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f}pc Mpom!p#peoUlVlnlpmqmrmsmtmumNpvm$p%pfoWlXlolwmxmymzmAmBmOpCm'p(pgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@ftpso)o*o2nmoCo0p`o3kxp(ezkAkBk4oalPn5oKlbpcpjpCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g~pd PpPm)p*pho0l1lqlQmRmSmTmUmVmQpWm+p,pio2l3lrlXmYmZm0m1m2mRp3m-p.pjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gupto+o,o#nnoDo1p{o4kyp)eNkOkPk6oblQn7oLldpepkpQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,n!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{haqe Sp)m/p:puo6l7lCl*m+m,m-m.m/mTp:m;p=pvo8l9lDl;m=m?m@m[m]mUp^m?p@pwo!l#lEl_m`m{m|m}m~m9e!e|h}h~haizpGo-o.o-nooEo2pfp{kFp*e5k6k7k8oclRn9oMllpmppp8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjbqf Vpgn[p]pxo$l%lFlhninjnknlnmnWpnn^p_pyo'l(lGlonpnqnrnsntnXpun`p{pzo)l*lHlvnwnxnynznAn#e$ecjdjejfjApHo/o:o]npoFo3pgp|kHp+e,k-k.k!odlSn#oNlnpopqp/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~naoBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkcq

426 return getattr(config, "table", False) 2a Jp+l4p5pboOlPlkl,l-l.l/l:l;l3e,e-erpqo$o%oTnkoAoYp^o1kvp%ehkikjk0o}kNn1oIl|o}ohpkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCf|pb Kp_l6p7pcoQlRlll`l{l|l}l~lamLpbm8p9pdoSlTlmlcmdmemfmgmhm4eDfEfspro'o(oXnloBoZp_o2kwp'eqkrksk2o~kOn3oJl~oapiptkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f}pc Mpom!p#peoUlVlnlpmqmrmsmtmumNpvm$p%pfoWlXlolwmxmymzmAmBmOpCm'p(pgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@ftpso)o*o2nmoCo0p`o3kxp(ezkAkBk4oalPn5oKlbpcpjpCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g~pd PpPm)p*pho0l1lqlQmRmSmTmUmVmQpWm+p,pio2l3lrlXmYmZm0m1m2mRp3m-p.pjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gupto+o,o#nnoDo1p{o4kyp)eNkOkPk6oblQn7oLldpepkpQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,n!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{haqe Sp)m/p:puo6l7lCl*m+m,m-m.m/mTp:m;p=pvo8l9lDl;m=m?m@m[m]mUp^m?p@pwo!l#lEl_m`m{m|m}m~m9e!e|h}h~haizpGo-o.o-nooEo2pfp{kFp*e5k6k7k8oclRn9oMllpmppp8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjbqf Vpgn[p]pxo$l%lFlhninjnknlnmnWpnn^p_pyo'l(lGlonpnqnrnsntnXpun`p{pzo)l*lHlvnwnxnynznAn#e$ecjdjejfjApHo/o:o]npoFo3pgp|kHp+e,k-k.k!odlSn#oNlnpopqp/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~naoBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkcq

427 return False 

428 

429 def get_relationship_to( 1abcdef

430 name: str, 

431 rel_info: "RelationshipInfo", 

432 annotation: Any, 

433 ) -> Any: 

434 temp_field = ModelField.infer( # type: ignore[attr-defined] 2IlK L g h _c`c)cM N elO P Q R S T U V W JlX ebY Z i o j p {ccd|cdd*c+c0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pbKl# qbrb$ % ' k q r l s t }cedfd~cgdhd,c-c.c( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbLl? ObPb@ [ ] m u v n w x adidjdbdkdld/c:c;c^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bMl$bocpc%b'b(by C D z E F mdqdrdndsdtd=c?c@c)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLcNl@bMcNc[b]b^bA G H B I J odudvdpdwdxd[c]c^c_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

435 name=name, 

436 value=rel_info, 

437 annotation=annotation, 

438 class_validators=None, 

439 config=SQLModelConfig, 

440 ) 

441 relationship_to = temp_field.type_ 2IlK L g h _c`c)cM N elO P Q R S T U V W JlX ebY Z i o j p {ccd|cdd*c+c0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pbKl# qbrb$ % ' k q r l s t }cedfd~cgdhd,c-c.c( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbLl? ObPb@ [ ] m u v n w x adidjdbdkdld/c:c;c^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bMl$bocpc%b'b(by C D z E F mdqdrdndsdtd=c?c@c)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLcNl@bMcNc[b]b^bA G H B I J odudvdpdwdxd[c]c^c_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

442 if isinstance(temp_field.type_, ForwardRef): 2IlK L g h _c`c)cM N elO P Q R S T U V W JlX ebY Z i o j p {ccd|cdd*c+c0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pbKl# qbrb$ % ' k q r l s t }cedfd~cgdhd,c-c.c( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbLl? ObPb@ [ ] m u v n w x adidjdbdkdld/c:c;c^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bMl$bocpc%b'b(by C D z E F mdqdrdndsdtd=c?c@c)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLcNl@bMcNc[b]b^bA G H B I J odudvdpdwdxd[c]c^c_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

443 relationship_to = temp_field.type_.__forward_arg__ 2IlK L g h _c`c)cM N elO P Q R S T U V W JlX ebY Z i o j p {ccd|cdd*c+c0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pbKl# qbrb$ % ' k q r l s t }cedfd~cgdhd,c-c.c( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbLl? ObPb@ [ ] m u v n w x adidjdbdkdld/c:c;c^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bMl$bocpc%b'b(by C D z E F mdqdrdndsdtd=c?c@c)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLcNl@bMcNc[b]b^bA G H B I J odudvdpdwdxd[c]c^c_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

444 return relationship_to 2IlK L g h _c`c)cM N elO P Q R S T U V W JlX ebY Z i o j p {ccd|cdd*c+c0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pbKl# qbrb$ % ' k q r l s t }cedfd~cgdhd,c-c.c( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbLl? ObPb@ [ ] m u v n w x adidjdbdkdld/c:c;c^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bMl$bocpc%b'b(by C D z E F mdqdrdndsdtd=c?c@c)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLcNl@bMcNc[b]b^bA G H B I J odudvdpdwdxd[c]c^c_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

445 

446 def is_field_noneable(field: "FieldInfo") -> bool: 1abcdef

447 if not field.required: # type: ignore[attr-defined] 2a 3e,e-e$o%oTnkoAo1k%ehkikjk}kNnIlkk.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEf'o(oXnloBo2k'eqkrksk~kOnJltkFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f)o*o2nmoCo3k(ezkAkBkalPnKlCk[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g+o,o#nnoDo4k)eNkOkPkblQnLlQk{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-o.o-nooEo{k*e5k6k7kclRnMl8kbicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj/o:o]npoFo|k+e,k-k.kdlSnNl/kgjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

448 # Taken from [Pydantic](https://github.com/samuelcolvin/pydantic/blob/v1.8.2/pydantic/fields.py#L946-L947) 

449 return field.allow_none and ( # type: ignore[attr-defined] 2a 3e,e-eTnko1k%ehkikjk}kNnIlkk.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEfXnlo2k'eqkrksk~kOnJltkFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f2nmo3k(ezkAkBkalPnKlCk[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g#nno4k)eNkOkPkblQnLlQk{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-noo{k*e5k6k7kclRnMl8kbicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj]npo|k+e,k-k.kdlSnNl/kgjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

450 field.shape != SHAPE_SINGLETON or not field.sub_fields # type: ignore[attr-defined] 

451 ) 

452 return field.allow_none # type: ignore[no-any-return, attr-defined] 2a 3e,e-e$o%oTnAo1k%ehkikjkNnIlkk.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEf'o(oXnBo2k'eqkrkskOnJltkFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f)o*o2nCo3k(ezkAkBkPnKlCk[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g+o,o#nDo4k)eNkOkPkQnLlQk{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-o.o-nEo{k*e5k6k7kRnMl8kbicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj/o:o]nFo|k+e,k-k.kSnNl/kgjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

453 

454 def get_sa_type_from_field(field: Any) -> Any: 1abcdef

455 if isinstance(field.type_, type) and field.shape == SHAPE_SINGLETON: 2a 3e,e-e$o%oTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEf'o(oXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f)o*o2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g+o,o#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-o.o-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj/o:o]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

456 return field.type_ 2a 3e,e-e$o%oTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEf'o(oXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f)o*o2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g+o,o#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-o.o-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj/o:o]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

457 raise ValueError(f"The field {field.name} has no matching SQLAlchemy type") 2IoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo

458 

459 def get_field_metadata(field: Any) -> Any: 1abcdef

460 metadata = FakeMetadata() 2a 3e,e-e$o%oTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEf'o(oXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f)o*o2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g+o,o#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-o.o-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj/o:o]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

461 metadata.max_length = field.field_info.max_length 2a 3e,e-e$o%oTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEf'o(oXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f)o*o2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g+o,o#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-o.o-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj/o:o]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

462 metadata.max_digits = getattr(field.type_, "max_digits", None) 2a 3e,e-e$o%oTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEf'o(oXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f)o*o2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g+o,o#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-o.o-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj/o:o]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

463 metadata.decimal_places = getattr(field.type_, "decimal_places", None) 2a 3e,e-e$o%oTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEf'o(oXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f)o*o2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g+o,o#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-o.o-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj/o:o]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

464 return metadata 2a 3e,e-e$o%oTnkoAo1k%ehkikjk0o}kNn1oIlkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEf'o(oXnloBo2k'eqkrksk2o~kOn3oJltkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f)o*o2nmoCo3k(ezkAkBk4oalPn5oKlCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g+o,o#nnoDo4k)eNkOkPk6oblQn7oLlQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-o.o-nooEo{k*e5k6k7k8oclRn9oMl8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj/o:o]npoFo|k+e,k-k.k!odlSn#oNl/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

465 

466 def post_init_field_info(field_info: FieldInfo) -> None: 1abcdef

467 field_info._validate() # type: ignore[attr-defined] 2a 3e,e-e$o%oTnkoAoYpdqeq^o1kvp%ehkikjk0o}kNn1ofqIl|o}ohpkkIoJoKo.e/eK L Un:e;e=e?e@e[e]e^eVnWn_e`eyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N elO P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCfb 4eDfEf'o(oXnloBoZpgqhq_o2kwp'eqkrksk2o~kOn3oiqJl~oapiptkLoMoNoFfGfX ebY Z YnHfIfJfKfLfMfNfOfZn0nPfQf1nBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gbfltl2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fc 5e6e;f=f?f@f)o*o2nmoCo0pjqkq`o3kxp(ezkAkBk4oalPn5olqKlbpcpjpCkOoPoQo[f]f^f_f# qbrb$ % ' 3n4n`f{f|f}f~fagbgcgdgegfggghgigjgkg5n6n7n8nlgmgngog9n!nHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvbglulvl* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gd 7e8e]g^g_g`g+o,o#nnoDo1pmqnq{o4kyp)eNkOkPk6oblQn7ooqLldpepkpQkRoSoTo{g|g}g~g? ObPb@ [ ] $n%nahbhchdhehfhghhhihjhkhlhmhnhohph'n(n)n*nqhrhshth+n,nQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTbhlwlxl` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{he 9e!e|h}h~hai-o.o-nooEo2ppqqqfp{kFp*e5k6k7k8oclRn9orqMllpmppp8kUoVoWobicidiei$bocpc%b'b(b.n/nfigihiiijikiliminioipiqirisitiui:n;n=n?nviwixiyi@n[nZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctcilylzl+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjf #e$ecjdjejfj/o:o]npoFo3psqtqgp|kHp+e,k-k.k!odlSn#ouqNlnpopqp/kXoYoZogjhjijjj@bMcNc[b]b^b^n_nkjljmjnjojpjqjrjsjtjujvjwjxjyjzj`n{n|n}nAjBjCjDj~nao8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRcjlAlBl{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

468 

469 def _calculate_keys( 1abcdef

470 self: "SQLModel", 

471 include: Optional[Mapping[Union[int, str], Any]], 

472 exclude: Optional[Mapping[Union[int, str], Any]], 

473 exclude_unset: bool, 

474 update: Optional[Dict[str, Any]] = None, 

475 ) -> Optional[AbstractSet[str]]: 

476 if include is None and exclude is None and not exclude_unset: 2+lOlPlkl,l-l.l/l:l;l3e,e-erp.e/eK L :e;e=e?e@e[e]e^e_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}e~eafbfcf_c`c)cdfefffgfhfifjfM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCf_lQlRlll`l{l|l}l~lambmSlTlmlcmdmemfmgmhm4eDfEfspFfGfX ebY Z HfIfJfKfLfMfNfOfPfQfimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfUfVfWfXf{ccd|cdd*c+cYfZf0f1f2f3f4f0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fomUlVlnlpmqmrmsmtmumvmWlXlolwmxmymzmAmBmCmYlZlplDmEmFmGmHmIm5e6e;f=f?f@ftp[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgFgGgHgIgJgKgLgMgNgOgPgQg( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gPm0l1lqlQmRmSmTmUmVmWm2l3lrlXmYmZm0m1m2m3m4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gup{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhKhLhMhNhOhPhQhRhShThUhVh^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{h)m6l7lCl*m+m,m-m.m/m:m8l9lDl;m=m?m@m[m]m^m!l#lEl_m`m{m|m}m~m9e!e|h}h~haizpbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyianbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEiFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOiPiQiRiSiTiUiViWiXiYiZi0i)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjgn$l%lFlhninjnknlnmnnn'l(lGlonpnqnrnsntnun)l*lHlvnwnxnynznAn#e$ecjdjejfjApgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJjKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTjUjVjWjXjYjZj0j1j2j3j4j5j_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

477 # Original in Pydantic: 

478 # return None 

479 # Updated to not return SQLAlchemy attributes 

480 # Do not include relationships as that would easily lead to infinite 

481 # recursion, or traversing the whole database 

482 return ( 2+lOlPlkl,l-l.l/l:l;l3e,e-erp.e/eK L :e;e=e?e@e[e]e^e_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}e~eafbfcf_c`c)cdfefffgfhfifjfM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCf_lQlRlll`l{l|l}l~lambmSlTlmlcmdmemfmgmhm4eDfEfspFfGfX ebY Z HfIfJfKfLfMfNfOfPfQfimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfUfVfWfXf{ccd|cdd*c+cYfZf0f1f2f3f4f0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fomUlVlnlpmqmrmsmtmumvmWlXlolwmxmymzmAmBmCmYlZlplDmEmFmGmHmIm5e6e;f=f?f@ftp[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgFgGgHgIgJgKgLgMgNgOgPgQg( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gPm0l1lqlQmRmSmTmUmVmWm2l3lrlXmYmZm0m1m2m3m4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gup{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhKhLhMhNhOhPhQhRhShThUhVh^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{h)m6l7lCl*m+m,m-m.m/m:m8l9lDl;m=m?m@m[m]m^m!l#lEl_m`m{m|m}m~m9e!e|h}h~haizpbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyianbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEiFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOiPiQiRiSiTiUiViWiXiYiZi0i)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjgn$l%lFlhninjnknlnmnnn'l(lGlonpnqnrnsntnun)l*lHlvnwnxnynznAn#e$ecjdjejfjApgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJjKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTjUjVjWjXjYjZj0j1j2j3j4j5j_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

483 self.__fields__.keys() # noqa 

484 ) # | self.__sqlmodel_relationships__.keys() 

485 

486 keys: AbstractSet[str] 

487 if exclude_unset: 2klydg zdh AdfcllmlBdCdi o DdEdj p FdGdgchcnlolplHdIdJdk q r KdLdMdl s t NdOdPdicjckcqlrlslQdRdSdm u v TdUdVdn w x WdXdYdlcmcncClDlElZd0d1dy C D 2d3d4dz E F 5d6d7d!c#c$cFlGlHl8d9d!dA G H #d$d%dB I J 'd(d)d%c'c(c

488 keys = self.__fields_set__.copy() # noqa 2klydg zdh AdfcllmlBdCdi o DdEdj p FdGdgchcnlolplHdIdJdk q r KdLdMdl s t NdOdPdicjckcqlrlslQdRdSdm u v TdUdVdn w x WdXdYdlcmcncClDlElZd0d1dy C D 2d3d4dz E F 5d6d7d!c#c$cFlGlHl8d9d!dA G H #d$d%dB I J 'd(d)d%c'c(c

489 else: 

490 # Original in Pydantic: 

491 # keys = self.__dict__.keys() 

492 # Updated to not return SQLAlchemy attributes 

493 # Do not include relationships as that would easily lead to infinite 

494 # recursion, or traversing the whole database 

495 keys = ( 

496 self.__fields__.keys() # noqa 

497 ) # | self.__sqlmodel_relationships__.keys() 

498 if include is not None: 2klydg zdh AdfcllmlBdCdi o DdEdj p FdGdgchcnlolplHdIdJdk q r KdLdMdl s t NdOdPdicjckcqlrlslQdRdSdm u v TdUdVdn w x WdXdYdlcmcncClDlElZd0d1dy C D 2d3d4dz E F 5d6d7d!c#c$cFlGlHl8d9d!dA G H #d$d%dB I J 'd(d)d%c'c(c

499 keys &= include.keys() 

500 

501 if update: 2klydg zdh AdfcllmlBdCdi o DdEdj p FdGdgchcnlolplHdIdJdk q r KdLdMdl s t NdOdPdicjckcqlrlslQdRdSdm u v TdUdVdn w x WdXdYdlcmcncClDlElZd0d1dy C D 2d3d4dz E F 5d6d7d!c#c$cFlGlHl8d9d!dA G H #d$d%dB I J 'd(d)d%c'c(c

502 keys -= update.keys() 

503 

504 if exclude: 2klydg zdh AdfcllmlBdCdi o DdEdj p FdGdgchcnlolplHdIdJdk q r KdLdMdl s t NdOdPdicjckcqlrlslQdRdSdm u v TdUdVdn w x WdXdYdlcmcncClDlElZd0d1dy C D 2d3d4dz E F 5d6d7d!c#c$cFlGlHl8d9d!dA G H #d$d%dB I J 'd(d)d%c'c(c

505 keys -= {k for k, v in exclude.items() if ValueItems.is_true(v)} 

506 

507 return keys 2klydg zdh AdfcllmlBdCdi o DdEdj p FdGdgchcnlolplHdIdJdk q r KdLdMdl s t NdOdPdicjckcqlrlslQdRdSdm u v TdUdVdn w x WdXdYdlcmcncClDlElZd0d1dy C D 2d3d4dz E F 5d6d7d!c#c$cFlGlHl8d9d!dA G H #d$d%dB I J 'd(d)d%c'c(c

508 

509 def sqlmodel_validate( 1abcdef

510 cls: Type[_TSQLModel], 

511 obj: Any, 

512 *, 

513 strict: Union[bool, None] = None, 

514 from_attributes: Union[bool, None] = None, 

515 context: Union[Dict[str, Any], None] = None, 

516 update: Union[Dict[str, Any], None] = None, 

517 ) -> _TSQLModel: 

518 # This was SQLModel's original from_orm() for Pydantic v1 

519 # Duplicated from Pydantic 

520 if not cls.__config__.orm_mode: # type: ignore[attr-defined] # noqa 2+lOlPlkl,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg *dzdh Adfc_lQlRlll`l{l|l}l~lambmSlTlmlcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdj p FdGdgchcomUlVlnlpmqmrmsmtmumvmWlXlolwmxmymzmAmBmCmYlZlplDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdl s t NdOdPdicjckcPm0l1lqlQmRmSmTmUmVmWm2l3lrlXmYmZm0m1m2m3m4l5lsl4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVdn w x WdXdYdlcmcnc)m6l7lCl*m+m,m-m.m/m:m8l9lDl;m=m?m@m[m]m^m!l#lEl_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dz E F 5d6d7d!c#c$cgn$l%lFlhninjnknlnmnnn'l(lGlonpnqnrnsntnun)l*lHlvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dB I J 'd(d)d%c'c(c

521 raise ConfigError( 

522 "You must have the config attribute orm_mode=True to use from_orm" 

523 ) 

524 if not isinstance(obj, Mapping): 2+lOlPlkl,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg *dzdh Adfc_lQlRlll`l{l|l}l~lambmSlTlmlcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdj p FdGdgchcomUlVlnlpmqmrmsmtmumvmWlXlolwmxmymzmAmBmCmYlZlplDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdl s t NdOdPdicjckcPm0l1lqlQmRmSmTmUmVmWm2l3lrlXmYmZm0m1m2m3m4l5lsl4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVdn w x WdXdYdlcmcnc)m6l7lCl*m+m,m-m.m/m:m8l9lDl;m=m?m@m[m]m^m!l#lEl_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dz E F 5d6d7d!c#c$cgn$l%lFlhninjnknlnmnnn'l(lGlonpnqnrnsntnun)l*lHlvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dB I J 'd(d)d%c'c(c

525 obj = ( 2+lOlPlkl,l-l.l/l:l;lqo=l?l@l[l]l^lyd`d{d|d}dg *dzdh Adfc_lQlRlll`l{l|l}l~lambmSlTlmlcmdmemfmgmhmroimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdj p FdGdgchcomUlVlnlpmqmrmsmtmumvmWlXlolwmxmymzmAmBmCmYlZlplDmEmFmGmHmImsoJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdl s t NdOdPdicjckcPm0l1lqlQmRmSmTmUmVmWm2l3lrlXmYmZm0m1m2m3m4l5lsl4m5m6m7m8m9mto!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVdn w x WdXdYdlcmcnc)m6l7lCl*m+m,m-m.m/m:m8l9lDl;m=m?m@m[m]m^m!l#lEl_m`m{m|m}m~mGoanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dz E F 5d6d7d!c#c$cgn$l%lFlhninjnknlnmnnn'l(lGlonpnqnrnsntnun)l*lHlvnwnxnynznAnHoBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dB I J 'd(d)d%c'c(c

526 {ROOT_KEY: obj} 

527 if cls.__custom_root_type__ # type: ignore[attr-defined] # noqa 

528 else cls._decompose_class(obj) # type: ignore[attr-defined] # noqa 

529 ) 

530 # SQLModel, support update dict 

531 if update is not None: 2+lOlPlkl,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg *dzdh Adfc_lQlRlll`l{l|l}l~lambmSlTlmlcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdj p FdGdgchcomUlVlnlpmqmrmsmtmumvmWlXlolwmxmymzmAmBmCmYlZlplDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdl s t NdOdPdicjckcPm0l1lqlQmRmSmTmUmVmWm2l3lrlXmYmZm0m1m2m3m4l5lsl4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVdn w x WdXdYdlcmcnc)m6l7lCl*m+m,m-m.m/m:m8l9lDl;m=m?m@m[m]m^m!l#lEl_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dz E F 5d6d7d!c#c$cgn$l%lFlhninjnknlnmnnn'l(lGlonpnqnrnsntnun)l*lHlvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dB I J 'd(d)d%c'c(c

532 obj = {**obj, **update} 2fcgchcicjckclcmcnc!c#c$c%c'c(c

533 # End SQLModel support dict 

534 if not getattr(cls.__config__, "table", False): # noqa 2+lOlPlkl,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg *dzdh Adfc_lQlRlll`l{l|l}l~lambmSlTlmlcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdj p FdGdgchcomUlVlnlpmqmrmsmtmumvmWlXlolwmxmymzmAmBmCmYlZlplDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdl s t NdOdPdicjckcPm0l1lqlQmRmSmTmUmVmWm2l3lrlXmYmZm0m1m2m3m4l5lsl4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVdn w x WdXdYdlcmcnc)m6l7lCl*m+m,m-m.m/m:m8l9lDl;m=m?m@m[m]m^m!l#lEl_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dz E F 5d6d7d!c#c$cgn$l%lFlhninjnknlnmnnn'l(lGlonpnqnrnsntnun)l*lHlvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dB I J 'd(d)d%c'c(c

535 # If not table, normal Pydantic code 

536 m: _TSQLModel = cls.__new__(cls) 2+lOlPlkl,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg zdh Adfc_lQlRlll`l{l|l}l~lambmSlTlmlcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcomUlVlnlpmqmrmsmtmumvmWlXlolwmxmymzmAmBmCmYlZlplDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcPm0l1lqlQmRmSmTmUmVmWm2l3lrlXmYmZm0m1m2m3m4l5lsl4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcnc)m6l7lCl*m+m,m-m.m/m:m8l9lDl;m=m?m@m[m]m^m!l#lEl_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cgn$l%lFlhninjnknlnmnnn'l(lGlonpnqnrnsntnun)l*lHlvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(c

537 else: 

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

539 # the _sa_instance_state attribute 

540 m = cls() 2+l,l-l.l/l:l;l=l?l@l[l]l^lyd`d{d|d}dg *dzdh Adfc_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdj p FdGdgchcompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdl s t NdOdPdicjckcPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVdn w x WdXdYdlcmcnc)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~manbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dz E F 5d6d7d!c#c$cgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dB I J 'd(d)d%c'c(c

541 values, fields_set, validation_error = validate_model(cls, obj) 2+lOlPlkl,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg *dzdh Adfc_lQlRlll`l{l|l}l~lambmSlTlmlcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdj p FdGdgchcomUlVlnlpmqmrmsmtmumvmWlXlolwmxmymzmAmBmCmYlZlplDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdl s t NdOdPdicjckcPm0l1lqlQmRmSmTmUmVmWm2l3lrlXmYmZm0m1m2m3m4l5lsl4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVdn w x WdXdYdlcmcnc)m6l7lCl*m+m,m-m.m/m:m8l9lDl;m=m?m@m[m]m^m!l#lEl_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dz E F 5d6d7d!c#c$cgn$l%lFlhninjnknlnmnnn'l(lGlonpnqnrnsntnun)l*lHlvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dB I J 'd(d)d%c'c(c

542 if validation_error: 2+lOlPlkl,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg *dzdh Adfc_lQlRlll`l{l|l}l~lambmSlTlmlcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdj p FdGdgchcomUlVlnlpmqmrmsmtmumvmWlXlolwmxmymzmAmBmCmYlZlplDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdl s t NdOdPdicjckcPm0l1lqlQmRmSmTmUmVmWm2l3lrlXmYmZm0m1m2m3m4l5lsl4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVdn w x WdXdYdlcmcnc)m6l7lCl*m+m,m-m.m/m:m8l9lDl;m=m?m@m[m]m^m!l#lEl_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dz E F 5d6d7d!c#c$cgn$l%lFlhninjnknlnmnnn'l(lGlonpnqnrnsntnun)l*lHlvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dB I J 'd(d)d%c'c(c

543 raise validation_error 

544 # Updated to trigger SQLAlchemy internal handling 

545 if not getattr(cls.__config__, "table", False): # noqa 2+lOlPlkl,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg *dzdh Adfc_lQlRlll`l{l|l}l~lambmSlTlmlcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdj p FdGdgchcomUlVlnlpmqmrmsmtmumvmWlXlolwmxmymzmAmBmCmYlZlplDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdl s t NdOdPdicjckcPm0l1lqlQmRmSmTmUmVmWm2l3lrlXmYmZm0m1m2m3m4l5lsl4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVdn w x WdXdYdlcmcnc)m6l7lCl*m+m,m-m.m/m:m8l9lDl;m=m?m@m[m]m^m!l#lEl_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dz E F 5d6d7d!c#c$cgn$l%lFlhninjnknlnmnnn'l(lGlonpnqnrnsntnun)l*lHlvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dB I J 'd(d)d%c'c(c

546 object.__setattr__(m, "__dict__", values) 2+lOlPlkl,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg zdh Adfc_lQlRlll`l{l|l}l~lambmSlTlmlcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchcomUlVlnlpmqmrmsmtmumvmWlXlolwmxmymzmAmBmCmYlZlplDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckcPm0l1lqlQmRmSmTmUmVmWm2l3lrlXmYmZm0m1m2m3m4l5lsl4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcnc)m6l7lCl*m+m,m-m.m/m:m8l9lDl;m=m?m@m[m]m^m!l#lEl_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cgn$l%lFlhninjnknlnmnnn'l(lGlonpnqnrnsntnun)l*lHlvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(c

547 else: 

548 for key, value in values.items(): 2+l,l-l.l/l:l;l=l?l@l[l]l^lyd`d{d|d}dg *dzdh Adfc_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdj p FdGdgchcompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdl s t NdOdPdicjckcPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVdn w x WdXdYdlcmcnc)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~manbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dz E F 5d6d7d!c#c$cgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dB I J 'd(d)d%c'c(c

549 setattr(m, key, value) 2+l,l-l.l/l:l;l=l?l@l[l]l^lyd`d{d|d}dg *dzdh Adfc_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdj p FdGdgchcompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdl s t NdOdPdicjckcPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVdn w x WdXdYdlcmcnc)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~manbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dz E F 5d6d7d!c#c$cgnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dB I J 'd(d)d%c'c(c

550 # Continue with standard Pydantic logic 

551 object.__setattr__(m, "__fields_set__", fields_set) 2+lOlPlkl,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg *dzdh Adfc_lQlRlll`l{l|l}l~lambmSlTlmlcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdj p FdGdgchcomUlVlnlpmqmrmsmtmumvmWlXlolwmxmymzmAmBmCmYlZlplDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdl s t NdOdPdicjckcPm0l1lqlQmRmSmTmUmVmWm2l3lrlXmYmZm0m1m2m3m4l5lsl4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVdn w x WdXdYdlcmcnc)m6l7lCl*m+m,m-m.m/m:m8l9lDl;m=m?m@m[m]m^m!l#lEl_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dz E F 5d6d7d!c#c$cgn$l%lFlhninjnknlnmnnn'l(lGlonpnqnrnsntnun)l*lHlvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dB I J 'd(d)d%c'c(c

552 m._init_private_attributes() # type: ignore[attr-defined] # noqa 2+lOlPlkl,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg *dzdh Adfc_lQlRlll`l{l|l}l~lambmSlTlmlcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdj p FdGdgchcomUlVlnlpmqmrmsmtmumvmWlXlolwmxmymzmAmBmCmYlZlplDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdl s t NdOdPdicjckcPm0l1lqlQmRmSmTmUmVmWm2l3lrlXmYmZm0m1m2m3m4l5lsl4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVdn w x WdXdYdlcmcnc)m6l7lCl*m+m,m-m.m/m:m8l9lDl;m=m?m@m[m]m^m!l#lEl_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dz E F 5d6d7d!c#c$cgn$l%lFlhninjnknlnmnnn'l(lGlonpnqnrnsntnun)l*lHlvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dB I J 'd(d)d%c'c(c

553 return m 2+lOlPlkl,l-l.l/l:l;lqo;o=l?l@l[l]l^lyd`d{d|d}dg *dzdh Adfc_lQlRlll`l{l|l}l~lambmSlTlmlcmdmemfmgmhmro=oimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdj p FdGdgchcomUlVlnlpmqmrmsmtmumvmWlXlolwmxmymzmAmBmCmYlZlplDmEmFmGmHmImso?oJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdl s t NdOdPdicjckcPm0l1lqlQmRmSmTmUmVmWm2l3lrlXmYmZm0m1m2m3m4l5lsl4m5m6m7m8m9mto@o!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVdn w x WdXdYdlcmcnc)m6l7lCl*m+m,m-m.m/m:m8l9lDl;m=m?m@m[m]m^m!l#lEl_m`m{m|m}m~mGo[oanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dz E F 5d6d7d!c#c$cgn$l%lFlhninjnknlnmnnn'l(lGlonpnqnrnsntnun)l*lHlvnwnxnynznAnHo]oBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dB I J 'd(d)d%c'c(c

554 

555 def sqlmodel_init(*, self: "SQLModel", data: Dict[str, Any]) -> None: 1abcdef

556 values, fields_set, validation_error = validate_model(self.__class__, data) 2Jp+l4p5pboOlPlkl,l-l.l/l:l;l3e,e-erpqo^o1kvp%ehkikjk}k|o}ohpkk.e/eK L :e;e=e?e@e[e]e^e_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCf|pKp_l6p7pcoQlRlll`l{l|l}l~lamLpbm8p9pdoSlTlmlcmdmemfmgmhm4eDfEfspro_o2kwp'eqkrksk~k~oapiptkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQfimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f}pMpom!p#peoUlVlnlpmqmrmsmtmumNpvm$p%pfoWlXlolwmxmymzmAmBmOpCm'p(pgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@ftpso`o3kxp(ezkAkBkalbpcpjpCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g~pPpPm)p*pho0l1lqlQmRmSmTmUmVmQpWm+p,pio2l3lrlXmYmZm0m1m2mRp3m-p.pjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gupto{o4kyp)eNkOkPkbldpepkpQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{haqSp)m/p:puo6l7lCl*m+m,m-m.m/mTp:m;p=pvo8l9lDl;m=m?m@m[m]mUp^m?p@pwo!l#lEl_m`m{m|m}m~m9e!e|h}h~haizpGofp{kFp*e5k6k7kcllpmppp8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyianbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjbqVpgn[p]pxo$l%lFlhninjnknlnmnWpnn^p_pyo'l(lGlonpnqnrnsntnXpun`p{pzo)l*lHlvnwnxnynznAn#e$ecjdjejfjApHogp|kHp+e,k-k.kdlnpopqp/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkcq

557 # Only raise errors if not a SQLModel model 

558 if ( 2Jp+l4p5pboOlPlkl,l-l.l/l:l;l3e,e-erpqo^o1kvp%ehkikjk}k|o}ohpkk.e/eK L :e;e=e?e@e[e]e^e_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCf|pKp_l6p7pcoQlRlll`l{l|l}l~lamLpbm8p9pdoSlTlmlcmdmemfmgmhm4eDfEfspro_o2kwp'eqkrksk~k~oapiptkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQfimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f}pMpom!p#peoUlVlnlpmqmrmsmtmumNpvm$p%pfoWlXlolwmxmymzmAmBmOpCm'p(pgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@ftpso`o3kxp(ezkAkBkalbpcpjpCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g~pPpPm)p*pho0l1lqlQmRmSmTmUmVmQpWm+p,pio2l3lrlXmYmZm0m1m2mRp3m-p.pjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gupto{o4kyp)eNkOkPkbldpepkpQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{haq

559 not is_table_model_class(self.__class__) # noqa 

560 and validation_error 

561 ): 

562 raise validation_error 24p5pvp|o}o|p6p7p8p9pwp~oap}p!p#p$p%p'p(pxpbpcp~p)p*p+p,p-p.pypdpepaq/p:p;p=p?p@pFplpmpbq[p]p^p_p`p{pHpnpopcq

563 if not is_table_model_class(self.__class__): 2Jp+lboOlPlkl,l-l.l/l:l;l3e,e-erpqo^o1k%ehkikjk}k|o}ohpkk.e/eK L :e;e=e?e@e[e]e^e_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCf|pKp_lcoQlRlll`l{l|l}l~lamLpbmdoSlTlmlcmdmemfmgmhm4eDfEfspro_o2k'eqkrksk~k~oapiptkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQfimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f}pMpomeoUlVlnlpmqmrmsmtmumNpvmfoWlXlolwmxmymzmAmBmOpCmgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@ftpso`o3k(ezkAkBkalbpcpjpCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g~pPpPmho0l1lqlQmRmSmTmUmVmQpWmio2l3lrlXmYmZm0m1m2mRp3mjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gupto{o4k)eNkOkPkbldpepkpQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{haqSp)muo6l7lCl*m+m,m-m.m/mTp:mvo8l9lDl;m=m?m@m[m]mUp^mwo!l#lEl_m`m{m|m}m~m9e!e|h}h~haizpGofp{k*e5k6k7kcllpmppp8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyianbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjbqVpgnxo$l%lFlhninjnknlnmnWpnnyo'l(lGlonpnqnrnsntnXpunzo)l*lHlvnwnxnynznAn#e$ecjdjejfjApHogp|k+e,k-k.kdlnpopqp/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkcq

564 object.__setattr__(self, "__dict__", values) 2Jp+lkl,l-l.l/l:l;lrpqo^o|o}ohp=l?l@l[l]l^lyd`d{d|d}dg zdh Adfc|pKp_lll`l{l|l}l~lamLpbmmlcmdmemfmgmhmspro_o~oapipimjmkmlmmmnmBdCd~daebecedeeefegei o DdEdj p FdGdgchc}pMpomnlpmqmrmsmtmumNpvmolwmxmymzmAmBmOpCmplDmEmFmGmHmImtpso`obpcpjpJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r KdLdMdl s t NdOdPdicjckc~pPpPmqlQmRmSmTmUmVmQpWmrlXmYmZm0m1m2mRp3msl4m5m6m7m8m9mupto{odpepkp!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v TdUdVdn w x WdXdYdlcmcncaqSp)mCl*m+m,m-m.m/mTp:mDl;m=m?m@m[m]mUp^mEl_m`m{m|m}m~mzpGofplpmpppanbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D 2d3d4dz E F 5d6d7d!c#c$cbqVpgnFlhninjnknlnmnWpnnGlonpnqnrnsntnXpunHlvnwnxnynznAnApHogpnpopqpBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H #d$d%dB I J 'd(d)d%c'c(ccq

565 else: 

566 # Do not set values as in Pydantic, pass them through setattr, so 

567 # SQLAlchemy can handle them 

568 for key, value in values.items(): 2+lboOlPlkl,l-l.l/l:l;l3e,e-e1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCf_lcoQlRlll`l{l|l}l~lambmdoSlTlmlcmdmemfmgmhm4eDfEf2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQfimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fomeoUlVlnlpmqmrmsmtmumvmfoWlXlolwmxmymzmAmBmCmgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@f3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gPmho0l1lqlQmRmSmTmUmVmWmio2l3lrlXmYmZm0m1m2m3mjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`g4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{h)muo6l7lCl*m+m,m-m.m/m:mvo8l9lDl;m=m?m@m[m]m^mwo!l#lEl_m`m{m|m}m~m9e!e|h}h~hai{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyianbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjgnxo$l%lFlhninjnknlnmnnnyo'l(lGlonpnqnrnsntnunzo)l*lHlvnwnxnynznAn#e$ecjdjejfj|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

569 setattr(self, key, value) 2+lboOlPlkl,l-l.l/l:l;l3e,e-e1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCf_lcoQlRlll`l{l|l}l~lambmdoSlTlmlcmdmemfmgmhm4eDfEf2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQfimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fomeoUlVlnlpmqmrmsmtmumvmfoWlXlolwmxmymzmAmBmCmgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@f3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gPmho0l1lqlQmRmSmTmUmVmWmio2l3lrlXmYmZm0m1m2m3mjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`g4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{h)muo6l7lCl*m+m,m-m.m/m:mvo8l9lDl;m=m?m@m[m]m^mwo!l#lEl_m`m{m|m}m~m9e!e|h}h~hai{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyianbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjgnxo$l%lFlhninjnknlnmnnnyo'l(lGlonpnqnrnsntnunzo)l*lHlvnwnxnynznAn#e$ecjdjejfj|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

570 object.__setattr__(self, "__fields_set__", fields_set) 2Jp+lboOlPlkl,l-l.l/l:l;l3e,e-erpqo^o1k%ehkikjk}k|o}ohpkk.e/eK L :e;e=e?e@e[e]e^e_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCf|pKp_lcoQlRlll`l{l|l}l~lamLpbmdoSlTlmlcmdmemfmgmhm4eDfEfspro_o2k'eqkrksk~k~oapiptkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQfimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f}pMpomeoUlVlnlpmqmrmsmtmumNpvmfoWlXlolwmxmymzmAmBmOpCmgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@ftpso`o3k(ezkAkBkalbpcpjpCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g~pPpPmho0l1lqlQmRmSmTmUmVmQpWmio2l3lrlXmYmZm0m1m2mRp3mjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gupto{o4k)eNkOkPkbldpepkpQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{haqSp)muo6l7lCl*m+m,m-m.m/mTp:mvo8l9lDl;m=m?m@m[m]mUp^mwo!l#lEl_m`m{m|m}m~m9e!e|h}h~haizpGofp{k*e5k6k7kcllpmppp8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyianbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjbqVpgnxo$l%lFlhninjnknlnmnWpnnyo'l(lGlonpnqnrnsntnXpunzo)l*lHlvnwnxnynznAn#e$ecjdjejfjApHogp|k+e,k-k.kdlnpopqp/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkcq

571 non_pydantic_keys = data.keys() - values.keys() 2Jp+lboOlPlkl,l-l.l/l:l;l3e,e-erpqo^o1k%ehkikjk}k|o}ohpkk.e/eK L :e;e=e?e@e[e]e^e_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCf|pKp_lcoQlRlll`l{l|l}l~lamLpbmdoSlTlmlcmdmemfmgmhm4eDfEfspro_o2k'eqkrksk~k~oapiptkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQfimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f}pMpomeoUlVlnlpmqmrmsmtmumNpvmfoWlXlolwmxmymzmAmBmOpCmgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@ftpso`o3k(ezkAkBkalbpcpjpCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g~pPpPmho0l1lqlQmRmSmTmUmVmQpWmio2l3lrlXmYmZm0m1m2mRp3mjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gupto{o4k)eNkOkPkbldpepkpQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{haqSp)muo6l7lCl*m+m,m-m.m/mTp:mvo8l9lDl;m=m?m@m[m]mUp^mwo!l#lEl_m`m{m|m}m~m9e!e|h}h~haizpGofp{k*e5k6k7kcllpmppp8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyianbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjbqVpgnxo$l%lFlhninjnknlnmnWpnnyo'l(lGlonpnqnrnsntnXpunzo)l*lHlvnwnxnynznAn#e$ecjdjejfjApHogp|k+e,k-k.kdlnpopqp/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkcq

572 

573 if is_table_model_class(self.__class__): 2Jp+lboOlPlkl,l-l.l/l:l;l3e,e-erpqo^o1k%ehkikjk}k|o}ohpkk.e/eK L :e;e=e?e@e[e]e^e_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCf|pKp_lcoQlRlll`l{l|l}l~lamLpbmdoSlTlmlcmdmemfmgmhm4eDfEfspro_o2k'eqkrksk~k~oapiptkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQfimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f}pMpomeoUlVlnlpmqmrmsmtmumNpvmfoWlXlolwmxmymzmAmBmOpCmgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@ftpso`o3k(ezkAkBkalbpcpjpCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g~pPpPmho0l1lqlQmRmSmTmUmVmQpWmio2l3lrlXmYmZm0m1m2mRp3mjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`gupto{o4k)eNkOkPkbldpepkpQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{haqSp)muo6l7lCl*m+m,m-m.m/mTp:mvo8l9lDl;m=m?m@m[m]mUp^mwo!l#lEl_m`m{m|m}m~m9e!e|h}h~haizpGofp{k*e5k6k7kcllpmppp8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyianbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjbqVpgnxo$l%lFlhninjnknlnmnWpnnyo'l(lGlonpnqnrnsntnXpunzo)l*lHlvnwnxnynznAn#e$ecjdjejfjApHogp|k+e,k-k.kdlnpopqp/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgkcq

574 for key in non_pydantic_keys: 2+lboOlPlkl,l-l.l/l:l;l3e,e-e1k%ehkikjk}kkk.e/eK L :e;e=e?e@e[e]e^e_e`e=l?l@l[l]l^lyd`d{d|d}dg *dzd{eh Adfc|e}elkmknk~eafbfcf_c`c)cdfokefffgfhfifjfpkM N O P Q R S T U V W kflfmfnfofpfqfrfsftfufvfwfxfyfzfAfBfCf_lcoQlRlll`l{l|l}l~lambmdoSlTlmlcmdmemfmgmhm4eDfEf2k'eqkrksk~ktkFfGfX ebY Z HfIfJfKfLfMfNfOfPfQfimjmkmlmmmnmBdCd~daebecedeeefegei o +d,dDdEdRfj p FdGdgchcSfTfukvkwkUfVfWfXf{ccd|cdd*c+cYfxkZf0f1f2f3f4fyk0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb5f6f7f8f9f!f#f$f%f'f(f)f*f+f,f-f.f/f:fomeoUlVlnlpmqmrmsmtmumvmfoWlXlolwmxmymzmAmBmCmgoYlZlplDmEmFmGmHmIm5e6e;f=f?f@f3k(ezkAkBkalCk[f]f^f_f# qbrb$ % ' `f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogJmKmLmMmNmOmHdIdJdheiejekelemeneoepeqeresek q r -d.d/dKdLdMdpgqgl s t NdOdPdicjckcrgsgtgugDkEkFkGkHkIkvgwgxgygzgAgBgCg}cedfd~cgdhd,c-c.cDgEgJkKkFgGgHgIgJgKgLgMgNgOgPgQgLkMk( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNbRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g6g7g8g9g!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[gPmho0l1lqlQmRmSmTmUmVmWmio2l3lrlXmYmZm0m1m2m3mjo4l5lsl4m5m6m7m8m9m7e8e]g^g_g`g4k)eNkOkPkblQk{g|g}g~g? ObPb@ [ ] ahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshth!m#m$m%m'm(mQdRdSdteuevewexeyezeAeBeCeDeEem u v :d;d=dTdUdVduhvhn w x WdXdYdlcmcncwhxhyhzhRkSkTkUkVkWkAhBhChDhEhFhGhHhadidjdbdkdld/c:c;cIhJhXkYkKhLhMhNhOhPhQhRhShThUhVhZk0k^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#bWhXhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h_h`h{h)muo6l7lCl*m+m,m-m.m/m:mvo8l9lDl;m=m?m@m[m]m^mwo!l#lEl_m`m{m|m}m~m9e!e|h}h~hai{k*e5k6k7kcl8kbicidiei$bocpc%b'b(bfigihiiijikiliminioipiqirisitiuiviwixiyianbncndnenfnZd0d1dFeGeHeIeJeKeLeMeNeOePeQey C D ?d@d[d2d3d4dziAiz E F 5d6d7d!c#c$cBiCiDiEi9k!k#k$k%k'kFiGiHiIiJiKiLiMimdqdrdndsdtd=c?c@cNiOi(k)kPiQiRiSiTiUiViWiXiYiZi0i*k+k)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc1i2i3i4i5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i`i{i|i}i~iajbjgnxo$l%lFlhninjnknlnmnnnyo'l(lGlonpnqnrnsntnunzo)l*lHlvnwnxnynznAn#e$ecjdjejfj|k+e,k-k.kdl/kgjhjijjj@bMcNc[b]b^bkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjBnCnDnEnFnGn8d9d!dReSeTeUeVeWeXeYeZe0e1e2eA G H ]d^d_d#d$d%dEjFjB I J 'd(d)d%c'c(cGjHjIjJj:k;k=k?k@k[kKjLjMjNjOjPjQjRjodudvdpdwdxd[c]c^cSjTj]k^kUjVjWjXjYjZj0j1j2j3j4j5j_k`k_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfkgk

575 if key in self.__sqlmodel_relationships__: 2%eK L _c`c)cM N O P Q R S T U V W 'eX ebY Z {ccd|cdd*c+c0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb(e# qbrb$ % ' }cedfd~cgdhd,c-c.c( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNb)e? ObPb@ [ ] adidjdbdkdld/c:c;c^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#b*e$bocpc%b'b(bmdqdrdndsdtd=c?c@c)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc+e@bMcNc[b]b^bodudvdpdwdxd[c]c^c_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c

576 setattr(self, key, data[key]) 2%eK L _c`c)cM N O P Q R S T U V W 'eX ebY Z {ccd|cdd*c+c0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mb8 nb9 ob! pb(e# qbrb$ % ' }cedfd~cgdhd,c-c.c( sbtb) ubvb* wbxb+ ybzb, AbBb- CbDb. EbFb/ GbHb: IbJb; KbLb= MbNb)e? ObPb@ [ ] adidjdbdkdld/c:c;c^ QbRb_ SbTb` UbVb{ WbXb| YbZb} 0b1b~ 2b3bab4b5bbb6b7bcb8b9bdb!b#b*e$bocpc%b'b(bmdqdrdndsdtd=c?c@c)bqcrc*bsctc+bucvc,bwcxc-byczc.bAcBc/bCcDc:bEcFc;bGcHc=bIcJc?bKcLc+e@bMcNc[b]b^bodudvdpdwdxd[c]c^c_bOcPc`bQcRc{bScTc|bUcVc}bWcXc~bYcZcac0c1cbc2c3ccc4c5cdc6c7cec8c9c