Coverage for sqlmodel/_compat.py: 93%

299 statements  

« prev     ^ index     » next       coverage.py v7.9.2, created at 2025-07-15 09:31 +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") 2abbbcbdbebfbgbhbibdcecfcgchcic

55 obj = super().__getattribute__("obj") 2abbbcbdbebfbgbhbibdcecfcgchcic

56 if __name in update: 2abbbcbdbebfbgbhbibdcecfcgchcic

57 return update[__name] 2abbbcbdbebfbgbhbibdcecfcgchcic

58 return getattr(obj, __name) 2abbbcbdbebfbgbhbibdcecfcgchcic

59 

60 

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

62 return t is UnionType or t is Union 2a Oe4e5e}mqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnf~mun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fanzn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gbnIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hcnRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#idn0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

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) 2JlKlLlMlNlOlPlQlRlSlTlUlVlbd*d+d,d-dg cdh ddabWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcb)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfc8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchcic

71 yield 2JlKlLlMlNlOlPlQlRlSlTlUlVlbd*d+d,d-dg cdh ddabWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcb)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfc8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchcic

72 finish_init.reset(token) 2JlKlLlMlNlOlPlQlRlSlTlUlVlbd*d+d,d-dg cdh ddabWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcb)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfc8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchcic

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 Oe4e5e}mPoQoqn%n.nBp7osk}oYe9j!j#jDo0kenEo~k#o$o.o$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfepb Pemfnf~mRoSoun'n/nCp8otk~oZe+j,j-jFo1kfnGoal%o'o/o.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4ffpc QeRe5f6f7f8fanToUozn(n:nDp9oukap0e@j[j]jHo2kgnIobl(o)o:o^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5ggpd SeTe6g7g8g9gbnVoWoIn)n;nEp!ovkbp1eekfkgkJo3khnKocl*o+o;ohkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hhpe UeVe7h8h9h!hcnXoYoRn*n=nFp,oYkip2ewkxkykLo4kinModl=o?o]ozkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7ijpf WeXe8i9i!i#idnZo0o0n+n?nGp-oZkkp3eKkLkMkNo5kjnOoel@o[o^oNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8jlp

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 Oe4e5e}mPoQoqn%n.nBpskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnf~mRoSoun'n/nCptkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fanToUozn(n:nDpuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gbnVoWoIn)n;nEpvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hcnXoYoRn*n=nFpYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#idnZo0o0n+n?nGpZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

104 

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

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

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

108 # this is for compatibility with Pydantic v3 

109 if isinstance(model, type): 2a 6kOe4e5e}mPoQoqn%n.nBpskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb 7k8kPemfnf~mRoSoun'n/nCptkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc 9k!k#kQeRe5f6f7f8fanToUozn(n:nDpuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd $k%k'kSeTe6g7g8g9gbnVoWoIn)n;nEpvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he (k)k*kUeVe7h8h9h!hcnXoYoRn*n=nFpYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if +k,k-kWeXe8i9i!i#idnZo0o0n+n?nGpZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

110 use_model = model 2a Oe4e5e}mPoQoqn%n.nBpskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnf~mRoSoun'n/nCptkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fanToUozn(n:nDpuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gbnVoWoIn)n;nEpvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hcnXoYoRn*n=nFpYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#idnZo0o0n+n?nGpZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

111 else: 

112 use_model = model.__class__ 26kbdg cdh ddab7k8kedfdi o gdhdj p idjdbbcb9k!k#kkdldmdk q r ndodpdl s t qdrdsddbebfb$k%k'ktdudvdm u v wdxdydn w x zdAdBdgbhbib(k)k*kKdLdMdy C D NdOdPdz E F QdRdSddcecfc+k,k-kTdUdVdA G H WdXdYdB I J Zd0d1dgchcic

113 return use_model.model_fields 2a 6kOe4e5e}mPoQoqn%n.nBpskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb 7k8kPemfnf~mRoSoun'n/nCptkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc 9k!k#kQeRe5f6f7f8fanToUozn(n:nDpuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd $k%k'kSeTe6g7g8g9gbnVoWoIn)n;nEpvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he (k)k*kUeVe7h8h9h!hcnXoYoRn*n=nFpYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if +k,k-kWeXe8i9i!i#idnZo0o0n+n?nGpZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

114 

115 def get_fields_set( 1abcdef

116 object: InstanceOrType["SQLModel"], 

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

118 return object.model_fields_set 27o8o9o!o,o-o

119 

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

121 object.__setattr__(new_object, "__pydantic_fields_set__", set()) 2mpJlHpIp@nflgl6kKlLlMlNlOlPlOe4e5e}m_o~n1o7osk}oYe9j!j#j0k#o$o.o$j9nknK 6e7e8e9e!e#e$e%e'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfepnpWlJpKp[nhlil7kXlYlZl0l1l2lop3lLpMp]njlkl8k4l5l6l7l8l9lPemfnf~m`oao2o8otk~oZe+j,j-j1k%o'o/o.j!nlnW X ofpfqfrfsftfufvfwfxf!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4ffppp)lNpOp^nllml9k*l+l,l-l.l/lqp:lPpQp_nnlol!k;l=l?l@l[l]lrp^lRpSp`nplql#k_l`l{l|l}l~lQeRe5f6f7f8fan{obo3o9oukap0e@j[j]j2k(o)o:o^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[fambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5ggpspgmTpUp{nrlsl$khmimjmkmlmmmtpnmVpWp|ntlul%kompmqmrmsmtmupumXpYp}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9gbn|oco4o!ovkbp1eekfkgk3k*o+o;ohk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]gBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hhpvpHmZp0pdoxlyl(kImJmKmLmMmNmwpOm1p2peozlAl)kPmQmRmSmTmUmxpVm3p4pfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcncpjo5o,oYkip2ewkxkyk4k=o?o]ozk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7ijpyp8m5p6pgoDlEl+k9m!m#m$m%m'mzp(m7p8phoFlGl,k)m*m+m,m-m.mAp/m9p!pioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idndpko6o-oZkkp3eKkLkMk5k@o[o^oNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8jlp

122 object.__setattr__(new_object, "__pydantic_extra__", None) 2mpJlHpIp@nflgl6kKlLlMlNlOlPlOe4e5e}m_o~n1o7osk}oYe9j!j#j0k#o$o.o$j9nknK 6e7e8e9e!e#e$e%e'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfepnpWlJpKp[nhlil7kXlYlZl0l1l2lop3lLpMp]njlkl8k4l5l6l7l8l9lPemfnf~m`oao2o8otk~oZe+j,j-j1k%o'o/o.j!nlnW X ofpfqfrfsftfufvfwfxf!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4ffppp)lNpOp^nllml9k*l+l,l-l.l/lqp:lPpQp_nnlol!k;l=l?l@l[l]lrp^lRpSp`nplql#k_l`l{l|l}l~lQeRe5f6f7f8fan{obo3o9oukap0e@j[j]j2k(o)o:o^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[fambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5ggpspgmTpUp{nrlsl$khmimjmkmlmmmtpnmVpWp|ntlul%kompmqmrmsmtmupumXpYp}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9gbn|oco4o!ovkbp1eekfkgk3k*o+o;ohk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]gBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hhpvpHmZp0pdoxlyl(kImJmKmLmMmNmwpOm1p2peozlAl)kPmQmRmSmTmUmxpVm3p4pfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcncpjo5o,oYkip2ewkxkyk4k=o?o]ozk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7ijpyp8m5p6pgoDlEl+k9m!m#m$m%m'mzp(m7p8phoFlGl,k)m*m+m,m-m.mAp/m9p!pioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idndpko6o-oZkkp3eKkLkMk5k@o[o^oNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8jlp

123 object.__setattr__(new_object, "__pydantic_private__", None) 2mpJlHpIp@nflgl6kKlLlMlNlOlPlOe4e5e}m_o~n1o7osk}oYe9j!j#j0k#o$o.o$j9nknK 6e7e8e9e!e#e$e%e'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfepnpWlJpKp[nhlil7kXlYlZl0l1l2lop3lLpMp]njlkl8k4l5l6l7l8l9lPemfnf~m`oao2o8otk~oZe+j,j-j1k%o'o/o.j!nlnW X ofpfqfrfsftfufvfwfxf!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4ffppp)lNpOp^nllml9k*l+l,l-l.l/lqp:lPpQp_nnlol!k;l=l?l@l[l]lrp^lRpSp`nplql#k_l`l{l|l}l~lQeRe5f6f7f8fan{obo3o9oukap0e@j[j]j2k(o)o:o^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[fambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5ggpspgmTpUp{nrlsl$khmimjmkmlmmmtpnmVpWp|ntlul%kompmqmrmsmtmupumXpYp}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9gbn|oco4o!ovkbp1eekfkgk3k*o+o;ohk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]gBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hhpvpHmZp0pdoxlyl(kImJmKmLmMmNmwpOm1p2peozlAl)kPmQmRmSmTmUmxpVm3p4pfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcncpjo5o,oYkip2ewkxkyk4k=o?o]ozk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7ijpyp8m5p6pgoDlEl+k9m!m#m$m%m'mzp(m7p8phoFlGl,k)m*m+m,m-m.mAp/m9p!pioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idndpko6o-oZkkp3eKkLkMk5k@o[o^oNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8jlp

124 

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

126 return class_dict.get("__annotations__", {}) 2a Oe4e5e}mPoQoqn%n.nBp7osk}oYe9j!j#jDo0kenEo~k#o$o.o$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfepb Pemfnf~mRoSoun'n/nCp8otk~oZe+j,j-jFo1kfnGoal%o'o/o.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4ffpc QeRe5f6f7f8fanToUozn(n:nDp9oukap0e@j[j]jHo2kgnIobl(o)o:o^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5ggpd SeTe6g7g8g9gbnVoWoIn)n;nEp!ovkbp1eekfkgkJo3khnKocl*o+o;ohkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hhpe UeVe7h8h9h!hcnXoYoRn*n=nFp,oYkip2ewkxkykLo4kinModl=o?o]ozkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7ijpf WeXe8i9i!i#idnZo0o0n+n?nGp-oZkkp3eKkLkMkNo5kjnOoel@o[o^oNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8jlp

127 

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

129 config = getattr(cls, "model_config", {}) 2a mpJlHpIp@nflgl6kKlLlMlNlOlPlOe4e5e}m_o~n1oPoQoqn%n.nBp7osk}oYe9j!j#jDo0kenEo~k#o$o.o$jlomono9nknK rn6e7e8e9e!e#e$e%esntn'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfepb npWlJpKp[nhlil7kXlYlZl0l1l2lop3lLpMp]njlkl8k4l5l6l7l8l9lPemfnf~m`oao2oRoSoun'n/nCp8otk~oZe+j,j-jFo1kfnGoal%o'o/o.joopoqo!nlnW X vnofpfqfrfsftfufvfwnxnwfxfyn!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4ffpc pp)lNpOp^nllml9k*l+l,l-l.l/lqp:lPpQp_nnlol!k;l=l?l@l[l]lrp^lRpSp`nplql#k_l`l{l|l}l~lQeRe5f6f7f8fan{obo3oToUozn(n:nDp9oukap0e@j[j]jHo2kgnIobl(o)o:o^jrosoto#nmn9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5ggpd spgmTpUp{nrlsl$khmimjmkmlmmmtpnmVpWp|ntlul%kompmqmrmsmtmupumXpYp}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9gbn|oco4oVoWoIn)n;nEp!ovkbp1eekfkgkJo3khnKocl*o+o;ohkuovowo$nnn: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQnBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hhpe vpHmZp0pdoxlyl(kImJmKmLmMmNmwpOm1p2peozlAl)kPmQmRmSmTmUmxpVm3p4pfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcncpjo5oXoYoRn*n=nFp,oYkip2ewkxkykLo4kinModl=o?o]ozkxoyozo,non$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZn2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7ijpf yp8m5p6pgoDlEl+k9m!m#m$m%m'mzp(m7p8phoFlGl,k)m*m+m,m-m.mAp/m9p!pioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idndpko6oZo0o0n+n?nGp-oZkkp3eKkLkMkNo5kjnOoel@o[o^oNkAoBoCo-npn?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8n]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8jlp

130 if config: 2a mpJlHpIp@nflgl6kKlLlMlNlOlPlOe4e5e}m_o~n1oPoQoqn%n.nBp7osk}oYe9j!j#jDo0kenEo~k#o$o.o$jlomono9nknK rn6e7e8e9e!e#e$e%esntn'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfepb npWlJpKp[nhlil7kXlYlZl0l1l2lop3lLpMp]njlkl8k4l5l6l7l8l9lPemfnf~m`oao2oRoSoun'n/nCp8otk~oZe+j,j-jFo1kfnGoal%o'o/o.joopoqo!nlnW X vnofpfqfrfsftfufvfwnxnwfxfyn!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4ffpc pp)lNpOp^nllml9k*l+l,l-l.l/lqp:lPpQp_nnlol!k;l=l?l@l[l]lrp^lRpSp`nplql#k_l`l{l|l}l~lQeRe5f6f7f8fan{obo3oToUozn(n:nDp9oukap0e@j[j]jHo2kgnIobl(o)o:o^jrosoto#nmn9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5ggpd spgmTpUp{nrlsl$khmimjmkmlmmmtpnmVpWp|ntlul%kompmqmrmsmtmupumXpYp}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9gbn|oco4oVoWoIn)n;nEp!ovkbp1eekfkgkJo3khnKocl*o+o;ohkuovowo$nnn: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQnBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hhpe vpHmZp0pdoxlyl(kImJmKmLmMmNmwpOm1p2peozlAl)kPmQmRmSmTmUmxpVm3p4pfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcncpjo5oXoYoRn*n=nFp,oYkip2ewkxkykLo4kinModl=o?o]ozkxoyozo,non$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZn2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7ijpf yp8m5p6pgoDlEl+k9m!m#m$m%m'mzp(m7p8phoFlGl,k)m*m+m,m-m.mAp/m9p!pioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idndpko6oZo0o0n+n?nGp-oZkkp3eKkLkMkNo5kjnOoel@o[o^oNkAoBoCo-npn?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8n]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8jlp

131 return config.get("table", False) or False 2a mpJlHpIp@nflgl6kKlLlMlNlOlPlOe4e5e}m_o~n1oPoQoqn%n.nBp7osk}oYe9j!j#jDo0kenEo~k#o$o.o$jlomono9nknK rn6e7e8e9e!e#e$e%esntn'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfepb npWlJpKp[nhlil7kXlYlZl0l1l2lop3lLpMp]njlkl8k4l5l6l7l8l9lPemfnf~m`oao2oRoSoun'n/nCp8otk~oZe+j,j-jFo1kfnGoal%o'o/o.joopoqo!nlnW X vnofpfqfrfsftfufvfwnxnwfxfyn!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4ffpc pp)lNpOp^nllml9k*l+l,l-l.l/lqp:lPpQp_nnlol!k;l=l?l@l[l]lrp^lRpSp`nplql#k_l`l{l|l}l~lQeRe5f6f7f8fan{obo3oToUozn(n:nDp9oukap0e@j[j]jHo2kgnIobl(o)o:o^jrosoto#nmn9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5ggpd spgmTpUp{nrlsl$khmimjmkmlmmmtpnmVpWp|ntlul%kompmqmrmsmtmupumXpYp}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9gbn|oco4oVoWoIn)n;nEp!ovkbp1eekfkgkJo3khnKocl*o+o;ohkuovowo$nnn: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQnBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hhpe vpHmZp0pdoxlyl(kImJmKmLmMmNmwpOm1p2peozlAl)kPmQmRmSmTmUmxpVm3p4pfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcncpjo5oXoYoRn*n=nFp,oYkip2ewkxkykLo4kinModl=o?o]ozkxoyozo,non$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZn2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7ijpf yp8m5p6pgoDlEl+k9m!m#m$m%m'mzp(m7p8phoFlGl,k)m*m+m,m-m.mAp/m9p!pioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idndpko6oZo0o0n+n?nGp-oZkkp3eKkLkMkNo5kjnOoel@o[o^oNkAoBoCo-npn?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8n]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8jlp

132 return False 1abcdef

133 

134 def get_relationship_to( 1abcdef

135 name: str, 

136 rel_info: "RelationshipInfo", 

137 annotation: Any, 

138 ) -> Any: 

139 origin = get_origin(annotation) 2a ~kK g h )c*c1cL M .kN O P Q R S T U V b alW X i o j p +c;c,c=c2c3cY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc bl9 ! # k q r l s t -c?c@c.c[c]c4c5c6c$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd cl: ; = m u v n w x /c^c_c:c`c{c7c8c9c? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be dl$b%b'by C D z E F |cCdDd}cEdFd!c#c$c(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf el?b@b[bA G H B I J ~cGdHdadIdJd%c'c(c]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

140 use_annotation = annotation 2a ~kK g h )c*c1cL M .kN O P Q R S T U V b alW X i o j p +c;c,c=c2c3cY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc bl9 ! # k q r l s t -c?c@c.c[c]c4c5c6c$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd cl: ; = m u v n w x /c^c_c:c`c{c7c8c9c? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be dl$b%b'by C D z E F |cCdDd}cEdFd!c#c$c(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf el?b@b[bA G H B I J ~cGdHdadIdJd%c'c(c]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

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

142 if origin is None: 2a ~kK g h )c*c1cL M .kN O P Q R S T U V b alW X i o j p +c;c,c=c2c3cY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc bl9 ! # k q r l s t -c?c@c.c[c]c4c5c6c$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd cl: ; = m u v n w x /c^c_c:c`c{c7c8c9c? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be dl$b%b'by C D z E F |cCdDd}cEdFd!c#c$c(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf el?b@b[bA G H B I J ~cGdHdadIdJd%c'c(c]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

143 if isinstance(use_annotation, ForwardRef): 2a ~kK g h )c*c1cL M .kN O P Q R S T U V b alW X i o j p +c;c,c=c2c3cY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc bl9 ! # k q r l s t -c?c@c.c[c]c4c5c6c$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd cl: ; = m u v n w x /c^c_c:c`c{c7c8c9c? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be dl$b%b'by C D z E F |cCdDd}cEdFd!c#c$c(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf el?b@b[bA G H B I J ~cGdHdadIdJd%c'c(c]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

144 use_annotation = use_annotation.__forward_arg__ 2a ~kK g h )c*cL M .kN O P Q R S T U V b alW X i j +c,cY Z /k0 1 2 3 4 5 6 7 8 c bl9 ! # k l -c.c$ % :k' ( ) * + , - . / d cl: ; = m n /c:c? @ ;k[ ] ^ _ ` { | } ~ e dl$b%b'by z |c}c(b)b=k*b+b,b-b.b/b:b;b=bf el?b@b[bA B ~cad]b^b?k_b`b{b|b}b~bacbccc

145 else: 

146 return use_annotation 2a ~kK g h )c*c1cL M .kN O P Q R S T U V b alW X i o j p +c;c,c=c2c3cY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc bl9 ! # k q r l s t -c?c@c.c[c]c4c5c6c$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd cl: ; = m u v n w x /c^c_c:c`c{c7c8c9c? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be dl$b%b'by C D z E F |cCdDd}cEdFd!c#c$c(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf el?b@b[bA G H B I J ~cGdHdadIdJd%c'c(c]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

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

148 elif _is_union_type(origin): 2a ~kK g h )c*c1cL M .kN O P Q R S T U V b alW X i o j p +c;c,c=c2c3cY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc bl9 ! # k q r l s t -c?c@c.c[c]c4c5c6c$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd cl: ; = m u v n w x /c^c_c:c`c{c7c8c9c? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be dl$b%b'by C D z E F |cCdDd}cEdFd!c#c$c(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf el?b@b[bA G H B I J ~cGdHdadIdJd%c'c(c]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

149 use_annotation = get_args(annotation) 2a K g h L M .kN O P Q R S T U V b W X i o j p Y jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc 9 ! # k q r l s t $ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd : ; = m u v n w x ? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be $b%b'by C D z E F (bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf ?b@b[bA G H B I J ]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

150 if len(use_annotation) > 2: 2a K g h L M .kN O P Q R S T U V b W X i o j p Y jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc 9 ! # k q r l s t $ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd : ; = m u v n w x ? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be $b%b'by C D z E F (bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf ?b@b[bA G H B I J ]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

151 raise ValueError( 

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

153 ) 

154 arg1, arg2 = use_annotation 2a K g h L M .kN O P Q R S T U V b W X i o j p Y jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc 9 ! # k q r l s t $ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd : ; = m u v n w x ? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be $b%b'by C D z E F (bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf ?b@b[bA G H B I J ]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

155 if arg1 is NoneType and arg2 is not NoneType: 2a K g h L M .kN O P Q R S T U V b W X i o j p Y jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc 9 ! # k q r l s t $ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd : ; = m u v n w x ? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be $b%b'by C D z E F (bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf ?b@b[bA G H B I J ]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

156 use_annotation = arg2 

157 elif arg2 is NoneType and arg1 is not NoneType: 2a K g h L M .kN O P Q R S T U V b W X i o j p Y jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc 9 ! # k q r l s t $ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd : ; = m u v n w x ? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be $b%b'by C D z E F (bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf ?b@b[bA G H B I J ]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

158 use_annotation = arg1 2a K g h L M .kN O P Q R S T U V b W X i o j p Y jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc 9 ! # k q r l s t $ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd : ; = m u v n w x ? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be $b%b'by C D z E F (bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf ?b@b[bA G H B I J ]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

159 else: 

160 raise ValueError( 

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

162 ) 

163 

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

165 elif origin is list: 2a ~kK g h )c*c1cL M .kN O P Q R S T U V b alW X i o j p +c;c,c=c2c3cY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc bl9 ! # k q r l s t -c?c@c.c[c]c4c5c6c$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd cl: ; = m u v n w x /c^c_c:c`c{c7c8c9c? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be dl$b%b'by C D z E F |cCdDd}cEdFd!c#c$c(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf el?b@b[bA G H B I J ~cGdHdadIdJd%c'c(c]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

166 use_annotation = get_args(annotation)[0] 2a ~kK g h )c*c1cL M .kN O P Q R S T U V b alW X i o j p +c;c,c=c2c3cY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc bl9 ! # k q r l s t -c?c@c.c[c]c4c5c6c$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd cl: ; = m u v n w x /c^c_c:c`c{c7c8c9c? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be dl$b%b'by C D z E F |cCdDd}cEdFd!c#c$c(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf el?b@b[bA G H B I J ~cGdHdadIdJd%c'c(c]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

167 

168 return get_relationship_to( 2a ~kK g h )c*c1cL M .kN O P Q R S T U V b alW X i o j p +c;c,c=c2c3cY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc bl9 ! # k q r l s t -c?c@c.c[c]c4c5c6c$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd cl: ; = m u v n w x /c^c_c:c`c{c7c8c9c? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be dl$b%b'by C D z E F |cCdDd}cEdFd!c#c$c(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf el?b@b[bA G H B I J ~cGdHdadIdJd%c'c(c]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

169 name=name, rel_info=rel_info, annotation=use_annotation 

170 ) 

171 

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

173 if getattr(field, "nullable", Undefined) is not Undefined: 2a Oe4e5ePoQoqn%n.nskYe9j!j#j0ken~k$jK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb PemfnfRoSoun'n/ntkZe+j,j-j1kfnal.jW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fToUozn(n:nuk0e@j[j]j2kgnbl^j9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gVoWoIn)n;nvk1eekfkgk3khnclhk: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hXoYoRn*n=nYk2ewkxkyk4kindlzk$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#iZo0o0n+n?nZk3eKkLkMk5kjnelNk?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

174 return field.nullable # type: ignore 20ken1kfn2kgn3khn4kin5kjn

175 origin = get_origin(field.annotation) 2a Oe4e5ePoQoqn%n.nskYe9j!j#jen~k$jK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb PemfnfRoSoun'n/ntkZe+j,j-jfnal.jW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fToUozn(n:nuk0e@j[j]jgnbl^j9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gVoWoIn)n;nvk1eekfkgkhnclhk: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hXoYoRn*n=nYk2ewkxkykindlzk$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#iZo0o0n+n?nZk3eKkLkMkjnelNk?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

176 if origin is not None and _is_union_type(origin): 2a Oe4e5ePoQoqn%n.nskYe9j!j#jen~k$jK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb PemfnfRoSoun'n/ntkZe+j,j-jfnal.jW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fToUozn(n:nuk0e@j[j]jgnbl^j9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gVoWoIn)n;nvk1eekfkgkhnclhk: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hXoYoRn*n=nYk2ewkxkykindlzk$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#iZo0o0n+n?nZk3eKkLkMkjnelNk?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

177 args = get_args(field.annotation) 2a Oe4e5eqn%nskYe9j!j#jen~k$jK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnfun'ntkZe+j,j-jfnal.jW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fzn(nuk0e@j[j]jgnbl^j9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gIn)nvk1eekfkgkhnclhk: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hRn*nYk2ewkxkykindlzk$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#i0n+nZk3eKkLkMkjnelNk?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

178 if any(arg is NoneType for arg in args): 2a Oe4e5eqn%nskYe9j!j#jen~k$jK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnfun'ntkZe+j,j-jfnal.jW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fzn(nuk0e@j[j]jgnbl^j9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gIn)nvk1eekfkgkhnclhk: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hRn*nYk2ewkxkykindlzk$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#i0n+nZk3eKkLkMkjnelNk?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

179 return True 2a Oe4e5eqn%nskYe9j!j#jen~k$jK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnfun'ntkZe+j,j-jfnal.jW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fzn(nuk0e@j[j]jgnbl^j9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gIn)nvk1eekfkgkhnclhk: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hRn*nYk2ewkxkykindlzk$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#i0n+nZk3eKkLkMkjnelNk?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

180 if not field.is_required(): 2a Oe4e5ePoQoqn.nskYe9j!j#jen~k$jK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb PemfnfRoSoun/ntkZe+j,j-jfnal.jW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fToUozn:nuk0e@j[j]jgnbl^j9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gVoWoIn;nvk1eekfkgkhnclhk: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hXoYoRn=nYk2ewkxkykindlzk$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#iZo0o0n?nZk3eKkLkMkjnelNk?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

181 if field.default is Undefined: 2Oeen1cPefn2c3cQeRegn4c5c6cSeTehn7c8c9cUeVein!c#c$cWeXejn%c'c(c

182 return False 

183 if field.annotation is None or field.annotation is NoneType: # type: ignore[comparison-overlap] 2Oeen1cPefn2c3cQeRegn4c5c6cSeTehn7c8c9cUeVein!c#c$cWeXejn%c'c(c

184 return True 

185 return False 2Oeen1cPefn2c3cQeRegn4c5c6cSeTehn7c8c9cUeVein!c#c$cWeXejn%c'c(c

186 return False 2a Oe4e5ePoQoqn.nskYe9j!j#jen~k$jK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb PemfnfRoSoun/ntkZe+j,j-jfnal.jW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fToUozn:nuk0e@j[j]jgnbl^j9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gVoWoIn;nvk1eekfkgkhnclhk: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hXoYoRn=nYk2ewkxkykindlzk$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#iZo0o0n?nZk3eKkLkMkjnelNk?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

187 

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

189 # Resolve Optional fields 

190 if annotation is None: 2a Oe4e5e}mPoQoqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnf~mRoSoun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fanToUozn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gbnVoWoIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hcnXoYoRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#idnZo0o0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

191 raise ValueError("Missing field type") 

192 origin = get_origin(annotation) 2a Oe4e5e}mPoQoqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnf~mRoSoun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fanToUozn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gbnVoWoIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hcnXoYoRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#idnZo0o0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

193 if origin is None: 2a Oe4e5e}mPoQoqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnf~mRoSoun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fanToUozn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gbnVoWoIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hcnXoYoRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#idnZo0o0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

194 return annotation 2a Oe4e5e}mPoQoqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnf~mRoSoun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fanToUozn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gbnVoWoIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hcnXoYoRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#idnZo0o0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

195 elif origin is Annotated: 2a Oe4e5e}mqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnf~mun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fanzn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gbnIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hcnRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#idn0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

196 return get_sa_type_from_type_annotation(get_args(annotation)[0]) 2}m~manbncndn

197 if _is_union_type(origin): 2a Oe4e5e}mqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnf~mun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fanzn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gbnIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hcnRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#idn0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

198 bases = get_args(annotation) 2a Oe4e5e}mqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnf~mun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fanzn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gbnIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hcnRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#idn0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

199 if len(bases) > 2: 2a Oe4e5e}mqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnf~mun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fanzn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gbnIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hcnRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#idn0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

200 raise ValueError( 

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

202 ) 

203 # Non optional unions are not allowed 

204 if bases[0] is not NoneType and bases[1] is not NoneType: 2a Oe4e5e}mqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnf~mun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fanzn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gbnIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hcnRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#idn0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

205 raise ValueError( 2noqotowozoCo

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

207 ) 

208 # Optional unions are allowed 

209 use_type = bases[0] if bases[0] is not NoneType else bases[1] 2a Oe4e5e}mqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnf~mun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fanzn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gbnIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hcnRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#idn0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

210 return get_sa_type_from_type_annotation(use_type) 2a Oe4e5e}mqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnf~mun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fanzn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gbnIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hcnRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#idn0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

211 return origin 2lomoooporosouovoxoyoAoBo

212 

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

214 type_: Any = field.annotation 2a Oe4e5e}mPoQoqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnf~mRoSoun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fanToUozn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gbnVoWoIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hcnXoYoRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#idnZo0o0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

215 return get_sa_type_from_type_annotation(type_) 2a Oe4e5e}mPoQoqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnf~mRoSoun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fanToUozn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gbnVoWoIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hcnXoYoRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#idnZo0o0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

216 

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

218 for meta in field.metadata: 2a Oe4e5e}mPoQoqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnf~mRoSoun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fanToUozn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gbnVoWoIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hcnXoYoRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#idnZo0o0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

219 if isinstance(meta, (PydanticMetadata, MaxLen)): 2OePeQeReSeTeUeVeWeXe

220 return meta 2OePeQeReSeTeUeVeWeXe

221 return FakeMetadata() 2a Oe4e5e}mPoQoqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnf~mRoSoun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fanToUozn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gbnVoWoIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hcnXoYoRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#idnZo0o0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

222 

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

224 return None 2a Oe4e5e}mPoQoqn%n.nBp*p+p7osk}oYe9j!j#jDo0kenEo,p~k#o$o.o$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnf~mRoSoun'n/nCp-p.p8otk~oZe+j,j-jFo1kfnGo/pal%o'o/o.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fanToUozn(n:nDp:p;p9oukap0e@j[j]jHo2kgnIo=pbl(o)o:o^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gbnVoWoIn)n;nEp?p@p!ovkbp1eekfkgkJo3khnKo[pcl*o+o;ohkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hcnXoYoRn*n=nFp]p^p,oYkip2ewkxkykLo4kinMo_pdl=o?o]ozkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#idnZo0o0n+n?nGp`p{p-oZkkp3eKkLkMkNo5kjnOo|pel@o[o^oNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

225 

226 # Dummy to make it importable 

227 def _calculate_keys( 1abcdef

228 self: "SQLModel", 1abcdef

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

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

231 exclude_unset: bool, 1abcdef

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

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

234 return None 

235 

236 def sqlmodel_table_construct( 1abcdef

237 *, 

238 self_instance: _TSQLModel, 

239 values: Dict[str, Any], 

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

241 ) -> _TSQLModel: 

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

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

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

245 # set relationships 

246 # SQLModel override to get class SQLAlchemy __dict__ attributes and 

247 # set them back in after creating the object 

248 # new_obj = cls.__new__(cls) 

249 cls = type(self_instance) 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

250 old_dict = self_instance.__dict__.copy() 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

251 # End SQLModel override 

252 

253 fields_values: Dict[str, Any] = {} 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

254 defaults: Dict[ 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

255 str, Any 

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

257 for name, field in cls.model_fields.items(): 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

258 if field.alias and field.alias in values: 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

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

260 elif name in values: 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

261 fields_values[name] = values.pop(name) 2@nflgl6kOe4e5eYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnfZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8f0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9g1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!h2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#i3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

262 elif not field.is_required(): 2@nflgl6kOe4e5e}mskYe9j!j#j$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgkhk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkykzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMkNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

263 defaults[name] = field.get_default(call_default_factory=True) 2@nflgl6kOe4e5e}mskYe9j!j#j$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgkhk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkykzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMkNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

264 if _fields_set is None: 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

265 _fields_set = set(fields_values.keys()) 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

266 fields_values.update(defaults) 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

267 

268 _extra: Union[Dict[str, Any], None] = None 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

269 if cls.model_config.get("extra") == "allow": 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

270 _extra = {} 

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

272 _extra[k] = v 

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

274 # else: 

275 # fields_values.update(values) 

276 # End SQLModel override 

277 # SQLModel override 

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

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

280 # instrumentation 

281 for key, value in {**old_dict, **fields_values}.items(): 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

282 setattr(self_instance, key, value) 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

283 # End SQLModel override 

284 object.__setattr__(self_instance, "__pydantic_fields_set__", _fields_set) 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

285 if not cls.__pydantic_root_model__: 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

286 object.__setattr__(self_instance, "__pydantic_extra__", _extra) 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

287 

288 if cls.__pydantic_post_init__: 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

289 self_instance.model_post_init(None) 

290 elif not cls.__pydantic_root_model__: 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

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

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

293 object.__setattr__(self_instance, "__pydantic_private__", None) 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

294 # SQLModel override, set relationships 

295 # Get and set any relationship objects 

296 for key in self_instance.__sqlmodel_relationships__: 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

297 value = values.get(key, Undefined) 2YeknK )c*c1cL M N O P Q R S T U V ZelnW X +c;c,c=c2c3cY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tb0emn9 ! # -c?c@c.c[c]c4c5c6c$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPb1enn: ; = /c^c_c:c`c{c7c8c9c? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#b2eon$b%b'b|cCdDd}cEdFd!c#c$c(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEc3epn?b@b[b~cGdHdadIdJd%c'c(c]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

298 if value is not Undefined: 2YeknK )c*c1cL M N O P Q R S T U V ZelnW X +c;c,c=c2c3cY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tb0emn9 ! # -c?c@c.c[c]c4c5c6c$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPb1enn: ; = /c^c_c:c`c{c7c8c9c? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#b2eon$b%b'b|cCdDd}cEdFd!c#c$c(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEc3epn?b@b[b~cGdHdadIdJd%c'c(c]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

299 setattr(self_instance, key, value) 2YeknK )c*c1cL M N O P Q R S T U V ZelnW X +c;c,c=c2c3cY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tb0emn9 ! # -c?c@c.c[c]c4c5c6c$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPb1enn: ; = /c^c_c:c`c{c7c8c9c? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#b2eon$b%b'b|cCdDd}cEdFd!c#c$c(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEc3epn?b@b[b~cGdHdadIdJd%c'c(c]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

300 # End SQLModel override 

301 return self_instance 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

302 

303 def sqlmodel_validate( 1abcdef

304 cls: Type[_TSQLModel], 

305 obj: Any, 

306 *, 

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

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

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

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

311 ) -> _TSQLModel: 

312 if not is_table_model_class(cls): 2JlKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg cdh ddabepWlXlYlZl0l1l2l3l4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcbfp)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgpgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibhpHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfcjp8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchciclp

313 new_obj: _TSQLModel = cls.__new__(cls) 2~n1oepao2ofpbo3ogpco4ohpjo5ojpko6olp

314 else: 

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

316 # the _sa_instance_state attribute 

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

318 with partial_init(): 2JlKlLlMlNlOlPlQlRlSlTlUlVlbd*d+d,d-dg cdh ddabWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcb)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfc8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchcic

319 new_obj = cls() 2JlKlLlMlNlOlPlQlRlSlTlUlVlbd*d+d,d-dg cdh ddabWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcb)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfc8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchcic

320 # SQLModel Override to get class SQLAlchemy __dict__ attributes and 

321 # set them back in after creating the object 

322 old_dict = new_obj.__dict__.copy() 2JlKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg cdh ddabepWlXlYlZl0l1l2l3l4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcbfp)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgpgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibhpHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfcjp8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchciclp

323 use_obj = obj 2JlKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg cdh ddabepWlXlYlZl0l1l2l3l4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcbfp)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgpgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibhpHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfcjp8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchciclp

324 if isinstance(obj, dict) and update: 2JlKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg cdh ddabepWlXlYlZl0l1l2l3l4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcbfp)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgpgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibhpHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfcjp8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchciclp

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

326 elif update: 2JlKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg cdh ddabepWlXlYlZl0l1l2l3l4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcbfp)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgpgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibhpHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfcjp8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchciclp

327 use_obj = ObjectWithUpdateWrapper(obj=obj, update=update) 2abbbcbdbebfbgbhbibdcecfcgchcic

328 cls.__pydantic_validator__.validate_python( 2JlKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg cdh ddabepWlXlYlZl0l1l2l3l4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcbfp)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgpgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibhpHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfcjp8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchciclp

329 use_obj, 

330 strict=strict, 

331 from_attributes=from_attributes, 

332 context=context, 

333 self_instance=new_obj, 

334 ) 

335 # Capture fields set to restore it later 

336 fields_set = new_obj.__pydantic_fields_set__.copy() 2JlKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg cdh ddabepWlXlYlZl0l1l2l3l4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcbfp)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgpgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibhpHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfcjp8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchciclp

337 if not is_table_model_class(cls): 2JlKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg cdh ddabepWlXlYlZl0l1l2l3l4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcbfp)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgpgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibhpHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfcjp8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchciclp

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

339 new_obj.__dict__ = {**old_dict, **new_obj.__dict__} 2~n1oepao2ofpbo3ogpco4ohpjo5ojpko6olp

340 else: 

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

342 # instrumentation 

343 for key, value in {**old_dict, **new_obj.__dict__}.items(): 2JlKlLlMlNlOlPlQlRlSlTlUlVlbd*d+d,d-dg cdh ddabWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcb)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfc8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchcic

344 setattr(new_obj, key, value) 2JlKlLlMlNlOlPlQlRlSlTlUlVlbd*d+d,d-dg cdh ddabWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcb)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfc8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchcic

345 # Restore fields set 

346 object.__setattr__(new_obj, "__pydantic_fields_set__", fields_set) 2JlKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg cdh ddabepWlXlYlZl0l1l2l3l4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcbfp)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgpgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibhpHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfcjp8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchciclp

347 # Get and set any relationship objects 

348 if is_table_model_class(cls): 2JlKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg cdh ddabepWlXlYlZl0l1l2l3l4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcbfp)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgpgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibhpHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfcjp8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchciclp

349 for key in new_obj.__sqlmodel_relationships__: 2JlKlLlMlNlOlPlQlRlSlTlUlVlbd*d+d,d-dg cdh ddabWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcb)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfc8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchcic

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

351 if value is not Undefined: 1ghiojpkqrlstmuvnwxyCDzEFAGHBIJ

352 setattr(new_obj, key, value) 

353 return new_obj 2JlKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg cdh ddabepWlXlYlZl0l1l2l3l4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcbfp)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgpgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibhpHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfcjp8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchciclp

354 

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

356 old_dict = self.__dict__.copy() 2mpJlHpIp@nflgl6kKlLlMlNlOlPlOe4e5e}m_o~n7osk}oYe9j!j#j0k#o$o.o$j9nknK 6e7e8e9e!e#e$e%e'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfnpWlJpKp[nhlil7kXlYlZl0l1l2lop3lLpMp]njlkl8k4l5l6l7l8l9lPemfnf~m`oao8otk~oZe+j,j-j1k%o'o/o.j!nlnW X ofpfqfrfsftfufvfwfxf!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fpp)lNpOp^nllml9k*l+l,l-l.l/lqp:lPpQp_nnlol!k;l=l?l@l[l]lrp^lRpSp`nplql#k_l`l{l|l}l~lQeRe5f6f7f8fan{obo9oukap0e@j[j]j2k(o)o:o^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[fambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gspgmTpUp{nrlsl$khmimjmkmlmmmtpnmVpWp|ntlul%kompmqmrmsmtmupumXpYp}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9gbn|oco!ovkbp1eekfkgk3k*o+o;ohk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]gBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hvpHmZp0pdoxlyl(kImJmKmLmMmNmwpOm1p2peozlAl)kPmQmRmSmTmUmxpVm3p4pfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcncpjo,oYkip2ewkxkyk4k=o?o]ozk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7iyp8m5p6pgoDlEl+k9m!m#m$m%m'mzp(m7p8phoFlGl,k)m*m+m,m-m.mAp/m9p!pioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idndpko-oZkkp3eKkLkMk5k@o[o^oNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

357 if not is_table_model_class(self.__class__): 2mpJlHpIp@nflgl6kKlLlMlNlOlPlOe4e5e}m_o~n7osk}oYe9j!j#j0k#o$o.o$j9nknK 6e7e8e9e!e#e$e%e'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfnpWlJpKp[nhlil7kXlYlZl0l1l2lop3lLpMp]njlkl8k4l5l6l7l8l9lPemfnf~m`oao8otk~oZe+j,j-j1k%o'o/o.j!nlnW X ofpfqfrfsftfufvfwfxf!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fpp)lNpOp^nllml9k*l+l,l-l.l/lqp:lPpQp_nnlol!k;l=l?l@l[l]lrp^lRpSp`nplql#k_l`l{l|l}l~lQeRe5f6f7f8fan{obo9oukap0e@j[j]j2k(o)o:o^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[fambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gspgmTpUp{nrlsl$khmimjmkmlmmmtpnmVpWp|ntlul%kompmqmrmsmtmupumXpYp}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9gbn|oco!ovkbp1eekfkgk3k*o+o;ohk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]gBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hvpHmZp0pdoxlyl(kImJmKmLmMmNmwpOm1p2peozlAl)kPmQmRmSmTmUmxpVm3p4pfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcncpjo,oYkip2ewkxkyk4k=o?o]ozk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7iyp8m5p6pgoDlEl+k9m!m#m$m%m'mzp(m7p8phoFlGl,k)m*m+m,m-m.mAp/m9p!pioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idndpko-oZkkp3eKkLkMk5k@o[o^oNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

358 self.__pydantic_validator__.validate_python( 2mpJlHpIp6kKlLlMlNlOlPl_o~n7o}o#o$o.oQlRlSlTlUlVlbd*d+d,d-dg cdh ddabnpWlJpKp7kXlYlZl0l1l2lop3lLpMp8k4l5l6l7l8l9l`oao8o~o%o'o/o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcbpp)lNpOp9k*l+l,l-l.l/lqp:lPpQp!k;l=l?l@l[l]lrp^lRpSp#k_l`l{l|l}l~l{obo9oap(o)o:oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbspgmTpUp$khmimjmkmlmmmtpnmVpWp%kompmqmrmsmtmupumXpYp'kvmwmxmymzmAm|oco!obp*o+o;oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibvpHmZp0p(kImJmKmLmMmNmwpOm1p2p)kPmQmRmSmTmUmxpVm3p4p*kWmXmYmZm0m1mcpjo,oip=o?o]o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfcyp8m5p6p+k9m!m#m$m%m'mzp(m7p8p,k)m*m+m,m-m.mAp/m9p!p-k:m;m=m?m@m[mdpko-okp@o[o^o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchcic

359 data, 

360 self_instance=self, 

361 ) 

362 else: 

363 sqlmodel_table_construct( 2@nflgl6kOe4e5e}mskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(e2d)e*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf[nhlil7k]njlkl8kPemfnf~mtkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf3d4dyfzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f^nllml9k_nnlol!k`nplql#kQeRe5f6f7f8fanuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[f5d6d7d]f^f_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g{nrlsl$k|ntlul%k}nvlwl'kSeTe6g7g8g9gbnvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]g8d9d!d^g_g`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hdoxlyl(keozlAl)kfoBlCl*kUeVe7h8h9h!hcnYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h#d$d%d_h`h{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7igoDlEl+khoFlGl,kioHlIl-kWeXe8i9i!i#idnZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i'd(d)d`i{i|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

364 self_instance=self, 

365 values=data, 

366 ) 

367 object.__setattr__( 2mpJl@nflgl6kKlLlMlNlOlPlOe4e5e}m_o~n7oskYe9j!j#j0k#o$o.o$j9nknK 6e7e8e9e!e#e$e%e'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfnpWl[nhlil7kXlYlZl0l1l2lop3l]njlkl8k4l5l6l7l8l9lPemfnf~m`oao8otkZe+j,j-j1k%o'o/o.j!nlnW X ofpfqfrfsftfufvfwfxf!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fpp)l^nllml9k*l+l,l-l.l/lqp:l_nnlol!k;l=l?l@l[l]lrp^l`nplql#k_l`l{l|l}l~lQeRe5f6f7f8fan{obo9ouk0e@j[j]j2k(o)o:o^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[fambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gspgm{nrlsl$khmimjmkmlmmmtpnm|ntlul%kompmqmrmsmtmupum}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9gbn|oco!ovk1eekfkgk3k*o+o;ohk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]gBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hvpHmdoxlyl(kImJmKmLmMmNmwpOmeozlAl)kPmQmRmSmTmUmxpVmfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcncpjo,oYk2ewkxkyk4k=o?o]ozk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7iyp8mgoDlEl+k9m!m#m$m%m'mzp(mhoFlGl,k)m*m+m,m-m.mAp/mioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idndpko-oZk3eKkLkMk5k@o[o^oNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

368 self, 

369 "__dict__", 

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

371 ) 

372 

373else: 

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

375 from pydantic.errors import ConfigError 1abcdef

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

377 SHAPE_SINGLETON, 

378 ModelField, 

379 ) 

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

381 Undefined as Undefined, # noqa 

382 ) 

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

384 UndefinedType as UndefinedType, 

385 ) 

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

387 ModelMetaclass as ModelMetaclass, 

388 ) 

389 from pydantic.main import validate_model 1abcdef

390 from pydantic.typing import resolve_annotations 1abcdef

391 from pydantic.utils import ROOT_KEY, ValueItems 1abcdef

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

393 Representation as Representation, 

394 ) 

395 

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

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

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

399 

400 def get_config_value( 1abcdef

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

402 ) -> Any: 

403 return getattr(model.__config__, parameter, default) # type: ignore[union-attr] 2a Oe4e5ePoQoqn%n.nBp7osk}oYe9j!j#jDo0kenEo~k#o$o.o$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf#pb PemfnfRoSoun'n/nCp8otk~oZe+j,j-jFo1kfnGoal%o'o/o.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f$pc QeRe5f6f7f8fToUozn(n:nDp9oukap0e@j[j]jHo2kgnIobl(o)o:o^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g%pd SeTe6g7g8g9gVoWoIn)n;nEp!ovkbp1eekfkgkJo3khnKocl*o+o;ohkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h'pe UeVe7h8h9h!hXoYoRn*n=nFp,oYkip2ewkxkykLo4kinModl=o?o]ozkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i(pf WeXe8i9i!i#iZo0o0n+n?nGp-oZkkp3eKkLkMkNo5kjnOoel@o[o^oNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j)p

404 

405 def set_config_value( 1abcdef

406 *, 

407 model: InstanceOrType["SQLModel"], 

408 parameter: str, 

409 value: Any, 

410 ) -> None: 

411 setattr(model.__config__, parameter, value) # type: ignore 2a Oe4e5ePoQoqn%n.nBpskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb PemfnfRoSoun'n/nCptkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fToUozn(n:nDpuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gVoWoIn)n;nEpvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hXoYoRn*n=nFpYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#iZo0o0n+n?nGpZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

412 

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

414 return model.__fields__ # type: ignore 2a 6kOe4e5ePoQoqn%n.nBpskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb 7k8kPemfnfRoSoun'n/nCptkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc 9k!k#kQeRe5f6f7f8fToUozn(n:nDpuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd $k%k'kSeTe6g7g8g9gVoWoIn)n;nEpvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he (k)k*kUeVe7h8h9h!hXoYoRn*n=nFpYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if +k,k-kWeXe8i9i!i#iZo0o0n+n?nGpZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

415 

416 def get_fields_set( 1abcdef

417 object: InstanceOrType["SQLModel"], 

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

419 return object.__fields_set__ 27o8o9o!o,o-o

420 

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

422 object.__setattr__(new_object, "__fields_set__", set()) 2mpJlHpIp@nflgl6kKlLlMlNlOlPlOe4e5e_o~n1o7osk}oYe9j!j#j0k#o$o.o$j9nknK 6e7e8e9e!e#e$e%e'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf#pnpWlJpKp[nhlil7kXlYlZl0l1l2lop3lLpMp]njlkl8k4l5l6l7l8l9lPemfnf`oao2o8otk~oZe+j,j-j1k%o'o/o.j!nlnW X ofpfqfrfsftfufvfwfxf!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f$ppp)lNpOp^nllml9k*l+l,l-l.l/lqp:lPpQp_nnlol!k;l=l?l@l[l]lrp^lRpSp`nplql#k_l`l{l|l}l~lQeRe5f6f7f8f{obo3o9oukap0e@j[j]j2k(o)o:o^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[fambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g%pspgmTpUp{nrlsl$khmimjmkmlmmmtpnmVpWp|ntlul%kompmqmrmsmtmupumXpYp}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9g|oco4o!ovkbp1eekfkgk3k*o+o;ohk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]gBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h'pvpHmZp0pdoxlyl(kImJmKmLmMmNmwpOm1p2peozlAl)kPmQmRmSmTmUmxpVm3p4pfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcpjo5o,oYkip2ewkxkyk4k=o?o]ozk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i(pyp8m5p6pgoDlEl+k9m!m#m$m%m'mzp(m7p8phoFlGl,k)m*m+m,m-m.mAp/m9p!pioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idpko6o-oZkkp3eKkLkMk5k@o[o^oNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j)p

423 

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

425 return resolve_annotations( # type: ignore[no-any-return] 2a Oe4e5ePoQoqn%n.nBp7osk}oYe9j!j#jDo0kenEo~k#o$o.o$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf#pb PemfnfRoSoun'n/nCp8otk~oZe+j,j-jFo1kfnGoal%o'o/o.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f$pc QeRe5f6f7f8fToUozn(n:nDp9oukap0e@j[j]jHo2kgnIobl(o)o:o^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g%pd SeTe6g7g8g9gVoWoIn)n;nEp!ovkbp1eekfkgkJo3khnKocl*o+o;ohkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h'pe UeVe7h8h9h!hXoYoRn*n=nFp,oYkip2ewkxkykLo4kinModl=o?o]ozkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i(pf WeXe8i9i!i#iZo0o0n+n?nGp-oZkkp3eKkLkMkNo5kjnOoel@o[o^oNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j)p

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

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

428 ) 

429 

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

431 config = getattr(cls, "__config__", None) 2a mpJlHpIp@nflgl6kKlLlMlNlOlPlOe4e5e_o~nPoQoqn%n.nBp7osk}oYe9j!j#jDo0kenEo~k#o$o.o$jlomono9nknK rn6e7e8e9e!e#e$e%esntn'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf#pb npWlJpKp[nhlil7kXlYlZl0l1l2lop3lLpMp]njlkl8k4l5l6l7l8l9lPemfnf`oaoRoSoun'n/nCp8otk~oZe+j,j-jFo1kfnGoal%o'o/o.joopoqo!nlnW X vnofpfqfrfsftfufvfwnxnwfxfyn!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f$pc pp)lNpOp^nllml9k*l+l,l-l.l/lqp:lPpQp_nnlol!k;l=l?l@l[l]lrp^lRpSp`nplql#k_l`l{l|l}l~lQeRe5f6f7f8f{oboToUozn(n:nDp9oukap0e@j[j]jHo2kgnIobl(o)o:o^jrosoto#nmn9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g%pd spgmTpUp{nrlsl$khmimjmkmlmmmtpnmVpWp|ntlul%kompmqmrmsmtmupumXpYp}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9g|ocoVoWoIn)n;nEp!ovkbp1eekfkgkJo3khnKocl*o+o;ohkuovowo$nnn: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQnBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h'pe vpHmZp0pdoxlyl(kImJmKmLmMmNmwpOm1p2peozlAl)kPmQmRmSmTmUmxpVm3p4pfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcpjoXoYoRn*n=nFp,oYkip2ewkxkykLo4kinModl=o?o]ozkxoyozo,non$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZn2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i(pf yp8m5p6pgoDlEl+k9m!m#m$m%m'mzp(m7p8phoFlGl,k)m*m+m,m-m.mAp/m9p!pioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idpkoZo0o0n+n?nGp-oZkkp3eKkLkMkNo5kjnOoel@o[o^oNkAoBoCo-npn?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8n]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j)p

432 if config: 2a mpJlHpIp@nflgl6kKlLlMlNlOlPlOe4e5e_o~nPoQoqn%n.nBp7osk}oYe9j!j#jDo0kenEo~k#o$o.o$jlomono9nknK rn6e7e8e9e!e#e$e%esntn'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf#pb npWlJpKp[nhlil7kXlYlZl0l1l2lop3lLpMp]njlkl8k4l5l6l7l8l9lPemfnf`oaoRoSoun'n/nCp8otk~oZe+j,j-jFo1kfnGoal%o'o/o.joopoqo!nlnW X vnofpfqfrfsftfufvfwnxnwfxfyn!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f$pc pp)lNpOp^nllml9k*l+l,l-l.l/lqp:lPpQp_nnlol!k;l=l?l@l[l]lrp^lRpSp`nplql#k_l`l{l|l}l~lQeRe5f6f7f8f{oboToUozn(n:nDp9oukap0e@j[j]jHo2kgnIobl(o)o:o^jrosoto#nmn9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g%pd spgmTpUp{nrlsl$khmimjmkmlmmmtpnmVpWp|ntlul%kompmqmrmsmtmupumXpYp}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9g|ocoVoWoIn)n;nEp!ovkbp1eekfkgkJo3khnKocl*o+o;ohkuovowo$nnn: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQnBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h'pe vpHmZp0pdoxlyl(kImJmKmLmMmNmwpOm1p2peozlAl)kPmQmRmSmTmUmxpVm3p4pfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcpjoXoYoRn*n=nFp,oYkip2ewkxkykLo4kinModl=o?o]ozkxoyozo,non$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZn2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i(pf yp8m5p6pgoDlEl+k9m!m#m$m%m'mzp(m7p8phoFlGl,k)m*m+m,m-m.mAp/m9p!pioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idpkoZo0o0n+n?nGp-oZkkp3eKkLkMkNo5kjnOoel@o[o^oNkAoBoCo-npn?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8n]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j)p

433 return getattr(config, "table", False) 2a mpJlHpIp@nflgl6kKlLlMlNlOlPlOe4e5e_o~nPoQoqn%n.nBp7osk}oYe9j!j#jDo0kenEo~k#o$o.o$jlomono9nknK rn6e7e8e9e!e#e$e%esntn'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf#pb npWlJpKp[nhlil7kXlYlZl0l1l2lop3lLpMp]njlkl8k4l5l6l7l8l9lPemfnf`oaoRoSoun'n/nCp8otk~oZe+j,j-jFo1kfnGoal%o'o/o.joopoqo!nlnW X vnofpfqfrfsftfufvfwnxnwfxfyn!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f$pc pp)lNpOp^nllml9k*l+l,l-l.l/lqp:lPpQp_nnlol!k;l=l?l@l[l]lrp^lRpSp`nplql#k_l`l{l|l}l~lQeRe5f6f7f8f{oboToUozn(n:nDp9oukap0e@j[j]jHo2kgnIobl(o)o:o^jrosoto#nmn9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g%pd spgmTpUp{nrlsl$khmimjmkmlmmmtpnmVpWp|ntlul%kompmqmrmsmtmupumXpYp}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9g|ocoVoWoIn)n;nEp!ovkbp1eekfkgkJo3khnKocl*o+o;ohkuovowo$nnn: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQnBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h'pe vpHmZp0pdoxlyl(kImJmKmLmMmNmwpOm1p2peozlAl)kPmQmRmSmTmUmxpVm3p4pfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcpjoXoYoRn*n=nFp,oYkip2ewkxkykLo4kinModl=o?o]ozkxoyozo,non$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZn2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i(pf yp8m5p6pgoDlEl+k9m!m#m$m%m'mzp(m7p8phoFlGl,k)m*m+m,m-m.mAp/m9p!pioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idpkoZo0o0n+n?nGp-oZkkp3eKkLkMkNo5kjnOoel@o[o^oNkAoBoCo-npn?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8n]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j)p

434 return False 

435 

436 def get_relationship_to( 1abcdef

437 name: str, 

438 rel_info: "RelationshipInfo", 

439 annotation: Any, 

440 ) -> Any: 

441 temp_field = ModelField.infer( # type: ignore[attr-defined] 2a ~kK g h )c*c1cL M .kN O P Q R S T U V b alW X i o j p +c;c,c=c2c3cY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc bl9 ! # k q r l s t -c?c@c.c[c]c4c5c6c$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd cl: ; = m u v n w x /c^c_c:c`c{c7c8c9c? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be dl$b%b'by C D z E F |cCdDd}cEdFd!c#c$c(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf el?b@b[bA G H B I J ~cGdHdadIdJd%c'c(c]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

442 name=name, 

443 value=rel_info, 

444 annotation=annotation, 

445 class_validators=None, 

446 config=SQLModelConfig, 

447 ) 

448 relationship_to = temp_field.type_ 2a ~kK g h )c*c1cL M .kN O P Q R S T U V b alW X i o j p +c;c,c=c2c3cY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc bl9 ! # k q r l s t -c?c@c.c[c]c4c5c6c$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd cl: ; = m u v n w x /c^c_c:c`c{c7c8c9c? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be dl$b%b'by C D z E F |cCdDd}cEdFd!c#c$c(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf el?b@b[bA G H B I J ~cGdHdadIdJd%c'c(c]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

449 if isinstance(temp_field.type_, ForwardRef): 2a ~kK g h )c*c1cL M .kN O P Q R S T U V b alW X i o j p +c;c,c=c2c3cY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc bl9 ! # k q r l s t -c?c@c.c[c]c4c5c6c$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd cl: ; = m u v n w x /c^c_c:c`c{c7c8c9c? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be dl$b%b'by C D z E F |cCdDd}cEdFd!c#c$c(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf el?b@b[bA G H B I J ~cGdHdadIdJd%c'c(c]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

450 relationship_to = temp_field.type_.__forward_arg__ 2a ~kK g h )c*c1cL M .kN O P Q R S T U V b alW X i o j p +c;c,c=c2c3cY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc bl9 ! # k q r l s t -c?c@c.c[c]c4c5c6c$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd cl: ; = m u v n w x /c^c_c:c`c{c7c8c9c? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be dl$b%b'by C D z E F |cCdDd}cEdFd!c#c$c(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf el?b@b[bA G H B I J ~cGdHdadIdJd%c'c(c]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

451 return relationship_to 2a ~kK g h )c*c1cL M .kN O P Q R S T U V b alW X i o j p +c;c,c=c2c3cY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbc bl9 ! # k q r l s t -c?c@c.c[c]c4c5c6c$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbd cl: ; = m u v n w x /c^c_c:c`c{c7c8c9c? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#be dl$b%b'by C D z E F |cCdDd}cEdFd!c#c$c(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcf el?b@b[bA G H B I J ~cGdHdadIdJd%c'c(c]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

452 

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

454 if not field.required: # type: ignore[attr-defined] 2a Oe4e5ePoQoqn%n.nskYe9j!j#j0ken~k$jK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb PemfnfRoSoun'n/ntkZe+j,j-j1kfnal.jW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fToUozn(n:nuk0e@j[j]j2kgnbl^j9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gVoWoIn)n;nvk1eekfkgk3khnclhk: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hXoYoRn*n=nYk2ewkxkyk4kindlzk$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#iZo0o0n+n?nZk3eKkLkMk5kjnelNk?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

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

456 return field.allow_none and ( # type: ignore[attr-defined] 2a Oe4e5eqn%nskYe9j!j#j0ken~k$jK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb Pemfnfun'ntkZe+j,j-j1kfnal.jW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fzn(nuk0e@j[j]j2kgnbl^j9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gIn)nvk1eekfkgk3khnclhk: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hRn*nYk2ewkxkyk4kindlzk$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#i0n+nZk3eKkLkMk5kjnelNk?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

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

458 ) 

459 return field.allow_none # type: ignore[no-any-return, attr-defined] 2a Oe4e5ePoQoqn.nskYe9j!j#jen~k$jK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb PemfnfRoSoun/ntkZe+j,j-jfnal.jW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fToUozn:nuk0e@j[j]jgnbl^j9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gVoWoIn;nvk1eekfkgkhnclhk: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hXoYoRn=nYk2ewkxkykindlzk$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#iZo0o0n?nZk3eKkLkMkjnelNk?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

460 

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

462 if isinstance(field.type_, type) and field.shape == SHAPE_SINGLETON: 2a Oe4e5ePoQoqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb PemfnfRoSoun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fToUozn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gVoWoIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hXoYoRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#iZo0o0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

463 return field.type_ 2a Oe4e5ePoQoqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb PemfnfRoSoun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fToUozn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gVoWoIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hXoYoRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#iZo0o0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

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

465 

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

467 metadata = FakeMetadata() 2a Oe4e5ePoQoqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb PemfnfRoSoun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fToUozn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gVoWoIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hXoYoRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#iZo0o0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

468 metadata.max_length = field.field_info.max_length 2a Oe4e5ePoQoqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb PemfnfRoSoun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fToUozn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gVoWoIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hXoYoRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#iZo0o0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

469 metadata.max_digits = getattr(field.type_, "max_digits", None) 2a Oe4e5ePoQoqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb PemfnfRoSoun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fToUozn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gVoWoIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hXoYoRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#iZo0o0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

470 metadata.decimal_places = getattr(field.type_, "decimal_places", None) 2a Oe4e5ePoQoqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb PemfnfRoSoun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fToUozn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gVoWoIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hXoYoRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#iZo0o0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

471 return metadata 2a Oe4e5ePoQoqn%n.nskYe9j!j#jDo0kenEo~k$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb PemfnfRoSoun'n/ntkZe+j,j-jFo1kfnGoal.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fToUozn(n:nuk0e@j[j]jHo2kgnIobl^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gVoWoIn)n;nvk1eekfkgkJo3khnKoclhkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hXoYoRn*n=nYk2ewkxkykLo4kinModlzkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#iZo0o0n+n?nZk3eKkLkMkNo5kjnOoelNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

472 

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

474 field_info._validate() # type: ignore[attr-defined] 2a Oe4e5ePoQoqn%n.nBp*p+p7osk}oYe9j!j#jDo0kenEo,p~k#o$o.o$jlomonoK rn6e7e8e9e!e#e$e%esntn'e(ebd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M .kN O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfb PemfnfRoSoun'n/nCp-p.p8otk~oZe+j,j-jFo1kfnGo/pal%o'o/o.joopoqoW X vnofpfqfrfsftfufvfwnxnwfxfynedfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb/k@k0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4fc QeRe5f6f7f8fToUozn(n:nDp:p;p9oukap0e@j[j]jHo2kgnIo=pbl(o)o:o^jrosoto9 ! # AnBn9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;fCnDnEnFn=f?f@f[fGnHnkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb:k[k]k' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5gd SeTe6g7g8g9gVoWoIn)n;nEp?p@p!ovkbp1eekfkgkJo3khnKo[pcl*o+o;ohkuovowo: ; = JnKn!g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=gLnMnNnOn?g@g[g]gPnQntdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb;k^k_k[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6he UeVe7h8h9h!hXoYoRn*n=nFp]p^p,oYkip2ewkxkykLo4kinMo_pdl=o?o]ozkxoyozo$b%b'bSnTn#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?hUnVnWnXn@h[h]h^hYnZnKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc=k`k{k*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7if WeXe8i9i!i#iZo0o0n+n?nGp`p{p-oZkkp3eKkLkMkNo5kjnOo|pel@o[o^oNkAoBoCo?b@b[b1n2n$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i3n4n5n6n[i]i^i_i7n8nTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc?k|k}k_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

475 

476 def _calculate_keys( 1abcdef

477 self: "SQLModel", 

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

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

480 exclude_unset: bool, 

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

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

483 if include is None and exclude is None and not exclude_unset: 2Jlflgl6kKlLlMlNlOlPlOe4e5e_o9nknK 6e7e8e9e!e#e$e%e'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e,e-e.e/e)c*c1c:e;e=e?e@e[e]eL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfWlhlil7kXlYlZl0l1l2l3ljlkl8k4l5l6l7l8l9lPemfnf`o!nlnW X ofpfqfrfsftfufvfwfxf!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAfBfCfDfEf+c;c,c=c2c3cFfGfHfIfJfKfLfY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f)lllml9k*l+l,l-l.l/l:lnlol!k;l=l?l@l[l]l^lplql#k_l`l{l|l}l~lQeRe5f6f7f8f{o#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[fambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgigjgkglgmgngogpgqgrgsgtg$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5ggmrlsl$khmimjmkmlmmmnmtlul%kompmqmrmsmtmumvlwl'kvmwmxmymzmAmSeTe6g7g8g9g|o$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]gBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}g~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihjhkhlhmhnhohphqhrhshthuh? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hHmxlyl(kImJmKmLmMmNmOmzlAl)kPmQmRmSmTmUmVmBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcp,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~haibicidieifigihi|cCdDd}cEdFd!c#c$ciijikiliminioipiqirisitiuivi(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8mDlEl+k9m!m#m$m%m'm(mFlGl,k)m*m+m,m-m.m/mHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idp-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjljmjnjojpjqjrjsjtjujvjwj]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

484 # Original in Pydantic: 

485 # return None 

486 # Updated to not return SQLAlchemy attributes 

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

488 # recursion, or traversing the whole database 

489 return ( 2Jlflgl6kKlLlMlNlOlPlOe4e5e_o9nknK 6e7e8e9e!e#e$e%e'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e,e-e.e/e)c*c1c:e;e=e?e@e[e]eL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfWlhlil7kXlYlZl0l1l2l3ljlkl8k4l5l6l7l8l9lPemfnf`o!nlnW X ofpfqfrfsftfufvfwfxf!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAfBfCfDfEf+c;c,c=c2c3cFfGfHfIfJfKfLfY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f)lllml9k*l+l,l-l.l/l:lnlol!k;l=l?l@l[l]l^lplql#k_l`l{l|l}l~lQeRe5f6f7f8f{o#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[fambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgigjgkglgmgngogpgqgrgsgtg$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5ggmrlsl$khmimjmkmlmmmnmtlul%kompmqmrmsmtmumvlwl'kvmwmxmymzmAmSeTe6g7g8g9g|o$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]gBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}g~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihjhkhlhmhnhohphqhrhshthuh? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hHmxlyl(kImJmKmLmMmNmOmzlAl)kPmQmRmSmTmUmVmBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcp,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~haibicidieifigihi|cCdDd}cEdFd!c#c$ciijikiliminioipiqirisitiuivi(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8mDlEl+k9m!m#m$m%m'm(mFlGl,k)m*m+m,m-m.m/mHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idp-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjljmjnjojpjqjrjsjtjujvjwj]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

490 self.__fields__.keys() # noqa 

491 ) # | self.__sqlmodel_relationships__.keys() 

492 

493 keys: AbstractSet[str] 

494 if exclude_unset: 26kbdg cdh ddab7k8kedfdi o gdhdj p idjdbbcb9k!k#kkdldmdk q r ndodpdl s t qdrdsddbebfb$k%k'ktdudvdm u v wdxdydn w x zdAdBdgbhbib(k)k*kKdLdMdy C D NdOdPdz E F QdRdSddcecfc+k,k-kTdUdVdA G H WdXdYdB I J Zd0d1dgchcic

495 keys = self.__fields_set__.copy() # noqa 26kbdg cdh ddab7k8kedfdi o gdhdj p idjdbbcb9k!k#kkdldmdk q r ndodpdl s t qdrdsddbebfb$k%k'ktdudvdm u v wdxdydn w x zdAdBdgbhbib(k)k*kKdLdMdy C D NdOdPdz E F QdRdSddcecfc+k,k-kTdUdVdA G H WdXdYdB I J Zd0d1dgchcic

496 else: 

497 # Original in Pydantic: 

498 # keys = self.__dict__.keys() 

499 # Updated to not return SQLAlchemy attributes 

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

501 # recursion, or traversing the whole database 

502 keys = ( 

503 self.__fields__.keys() # noqa 

504 ) # | self.__sqlmodel_relationships__.keys() 

505 if include is not None: 26kbdg cdh ddab7k8kedfdi o gdhdj p idjdbbcb9k!k#kkdldmdk q r ndodpdl s t qdrdsddbebfb$k%k'ktdudvdm u v wdxdydn w x zdAdBdgbhbib(k)k*kKdLdMdy C D NdOdPdz E F QdRdSddcecfc+k,k-kTdUdVdA G H WdXdYdB I J Zd0d1dgchcic

506 keys &= include.keys() 

507 

508 if update: 26kbdg cdh ddab7k8kedfdi o gdhdj p idjdbbcb9k!k#kkdldmdk q r ndodpdl s t qdrdsddbebfb$k%k'ktdudvdm u v wdxdydn w x zdAdBdgbhbib(k)k*kKdLdMdy C D NdOdPdz E F QdRdSddcecfc+k,k-kTdUdVdA G H WdXdYdB I J Zd0d1dgchcic

509 keys -= update.keys() 

510 

511 if exclude: 26kbdg cdh ddab7k8kedfdi o gdhdj p idjdbbcb9k!k#kkdldmdk q r ndodpdl s t qdrdsddbebfb$k%k'ktdudvdm u v wdxdydn w x zdAdBdgbhbib(k)k*kKdLdMdy C D NdOdPdz E F QdRdSddcecfc+k,k-kTdUdVdA G H WdXdYdB I J Zd0d1dgchcic

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

513 

514 return keys 26kbdg cdh ddab7k8kedfdi o gdhdj p idjdbbcb9k!k#kkdldmdk q r ndodpdl s t qdrdsddbebfb$k%k'ktdudvdm u v wdxdydn w x zdAdBdgbhbib(k)k*kKdLdMdy C D NdOdPdz E F QdRdSddcecfc+k,k-kTdUdVdA G H WdXdYdB I J Zd0d1dgchcic

515 

516 def sqlmodel_validate( 1abcdef

517 cls: Type[_TSQLModel], 

518 obj: Any, 

519 *, 

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

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

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

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

524 ) -> _TSQLModel: 

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

526 # Duplicated from Pydantic 

527 if not cls.__config__.orm_mode: # type: ignore[attr-defined] # noqa 2Jlflgl6kKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg 2dcdh ddabWlhlil7kXlYlZl0l1l2l3ljlkl8k4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdj p idjdbbcb)lllml9k*l+l,l-l.l/l:lnlol!k;l=l?l@l[l]l^lplql#k_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpdl s t qdrdsddbebfbgmrlsl$khmimjmkmlmmmnmtlul%kompmqmrmsmtmumvlwl'kvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdydn w x zdAdBdgbhbibHmxlyl(kImJmKmLmMmNmOmzlAl)kPmQmRmSmTmUmVmBlCl*kWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPdz E F QdRdSddcecfc8mDlEl+k9m!m#m$m%m'm(mFlGl,k)m*m+m,m-m.m/mHlIl-k:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYdB I J Zd0d1dgchcic

528 raise ConfigError( 

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

530 ) 

531 if not isinstance(obj, Mapping): 2Jlflgl6kKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg 2dcdh ddabWlhlil7kXlYlZl0l1l2l3ljlkl8k4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdj p idjdbbcb)lllml9k*l+l,l-l.l/l:lnlol!k;l=l?l@l[l]l^lplql#k_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpdl s t qdrdsddbebfbgmrlsl$khmimjmkmlmmmnmtlul%kompmqmrmsmtmumvlwl'kvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdydn w x zdAdBdgbhbibHmxlyl(kImJmKmLmMmNmOmzlAl)kPmQmRmSmTmUmVmBlCl*kWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPdz E F QdRdSddcecfc8mDlEl+k9m!m#m$m%m'm(mFlGl,k)m*m+m,m-m.m/mHlIl-k:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYdB I J Zd0d1dgchcic

532 obj = ( 2Jlflgl6kKlLlMlNlOlPl~nQlRlSlTlUlVlbd*d+d,d-dg 2dcdh ddabWlhlil7kXlYlZl0l1l2l3ljlkl8k4l5l6l7l8l9lao!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdj p idjdbbcb)lllml9k*l+l,l-l.l/l:lnlol!k;l=l?l@l[l]l^lplql#k_l`l{l|l}l~lboambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpdl s t qdrdsddbebfbgmrlsl$khmimjmkmlmmmnmtlul%kompmqmrmsmtmumvlwl'kvmwmxmymzmAmcoBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdydn w x zdAdBdgbhbibHmxlyl(kImJmKmLmMmNmOmzlAl)kPmQmRmSmTmUmVmBlCl*kWmXmYmZm0m1mjo2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPdz E F QdRdSddcecfc8mDlEl+k9m!m#m$m%m'm(mFlGl,k)m*m+m,m-m.m/mHlIl-k:m;m=m?m@m[mko]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYdB I J Zd0d1dgchcic

533 {ROOT_KEY: obj} 

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

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

536 ) 

537 # SQLModel, support update dict 

538 if update is not None: 2Jlflgl6kKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg 2dcdh ddabWlhlil7kXlYlZl0l1l2l3ljlkl8k4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdj p idjdbbcb)lllml9k*l+l,l-l.l/l:lnlol!k;l=l?l@l[l]l^lplql#k_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpdl s t qdrdsddbebfbgmrlsl$khmimjmkmlmmmnmtlul%kompmqmrmsmtmumvlwl'kvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdydn w x zdAdBdgbhbibHmxlyl(kImJmKmLmMmNmOmzlAl)kPmQmRmSmTmUmVmBlCl*kWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPdz E F QdRdSddcecfc8mDlEl+k9m!m#m$m%m'm(mFlGl,k)m*m+m,m-m.m/mHlIl-k:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYdB I J Zd0d1dgchcic

539 obj = {**obj, **update} 2abbbcbdbebfbgbhbibdcecfcgchcic

540 # End SQLModel support dict 

541 if not getattr(cls.__config__, "table", False): # noqa 2Jlflgl6kKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg 2dcdh ddabWlhlil7kXlYlZl0l1l2l3ljlkl8k4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdj p idjdbbcb)lllml9k*l+l,l-l.l/l:lnlol!k;l=l?l@l[l]l^lplql#k_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpdl s t qdrdsddbebfbgmrlsl$khmimjmkmlmmmnmtlul%kompmqmrmsmtmumvlwl'kvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdydn w x zdAdBdgbhbibHmxlyl(kImJmKmLmMmNmOmzlAl)kPmQmRmSmTmUmVmBlCl*kWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPdz E F QdRdSddcecfc8mDlEl+k9m!m#m$m%m'm(mFlGl,k)m*m+m,m-m.m/mHlIl-k:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYdB I J Zd0d1dgchcic

542 # If not table, normal Pydantic code 

543 m: _TSQLModel = cls.__new__(cls) 2Jlflgl6kKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg cdh ddabWlhlil7kXlYlZl0l1l2l3ljlkl8k4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcb)lllml9k*l+l,l-l.l/l:lnlol!k;l=l?l@l[l]l^lplql#k_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgmrlsl$khmimjmkmlmmmnmtlul%kompmqmrmsmtmumvlwl'kvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibHmxlyl(kImJmKmLmMmNmOmzlAl)kPmQmRmSmTmUmVmBlCl*kWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfc8mDlEl+k9m!m#m$m%m'm(mFlGl,k)m*m+m,m-m.m/mHlIl-k:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchcic

544 else: 

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

546 # the _sa_instance_state attribute 

547 m = cls() 2JlKlLlMlNlOlPlQlRlSlTlUlVlbd*d+d,d-dg 2dcdh ddabWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdj p idjdbbcb)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpdl s t qdrdsddbebfbgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdydn w x zdAdBdgbhbibHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPdz E F QdRdSddcecfc8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYdB I J Zd0d1dgchcic

548 values, fields_set, validation_error = validate_model(cls, obj) 2Jlflgl6kKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg 2dcdh ddabWlhlil7kXlYlZl0l1l2l3ljlkl8k4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdj p idjdbbcb)lllml9k*l+l,l-l.l/l:lnlol!k;l=l?l@l[l]l^lplql#k_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpdl s t qdrdsddbebfbgmrlsl$khmimjmkmlmmmnmtlul%kompmqmrmsmtmumvlwl'kvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdydn w x zdAdBdgbhbibHmxlyl(kImJmKmLmMmNmOmzlAl)kPmQmRmSmTmUmVmBlCl*kWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPdz E F QdRdSddcecfc8mDlEl+k9m!m#m$m%m'm(mFlGl,k)m*m+m,m-m.m/mHlIl-k:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYdB I J Zd0d1dgchcic

549 if validation_error: 2Jlflgl6kKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg 2dcdh ddabWlhlil7kXlYlZl0l1l2l3ljlkl8k4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdj p idjdbbcb)lllml9k*l+l,l-l.l/l:lnlol!k;l=l?l@l[l]l^lplql#k_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpdl s t qdrdsddbebfbgmrlsl$khmimjmkmlmmmnmtlul%kompmqmrmsmtmumvlwl'kvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdydn w x zdAdBdgbhbibHmxlyl(kImJmKmLmMmNmOmzlAl)kPmQmRmSmTmUmVmBlCl*kWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPdz E F QdRdSddcecfc8mDlEl+k9m!m#m$m%m'm(mFlGl,k)m*m+m,m-m.m/mHlIl-k:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYdB I J Zd0d1dgchcic

550 raise validation_error 

551 # Updated to trigger SQLAlchemy internal handling 

552 if not getattr(cls.__config__, "table", False): # noqa 2Jlflgl6kKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg 2dcdh ddabWlhlil7kXlYlZl0l1l2l3ljlkl8k4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdj p idjdbbcb)lllml9k*l+l,l-l.l/l:lnlol!k;l=l?l@l[l]l^lplql#k_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpdl s t qdrdsddbebfbgmrlsl$khmimjmkmlmmmnmtlul%kompmqmrmsmtmumvlwl'kvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdydn w x zdAdBdgbhbibHmxlyl(kImJmKmLmMmNmOmzlAl)kPmQmRmSmTmUmVmBlCl*kWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPdz E F QdRdSddcecfc8mDlEl+k9m!m#m$m%m'm(mFlGl,k)m*m+m,m-m.m/mHlIl-k:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYdB I J Zd0d1dgchcic

553 object.__setattr__(m, "__dict__", values) 2Jlflgl6kKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg cdh ddabWlhlil7kXlYlZl0l1l2l3ljlkl8k4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcb)lllml9k*l+l,l-l.l/l:lnlol!k;l=l?l@l[l]l^lplql#k_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfbgmrlsl$khmimjmkmlmmmnmtlul%kompmqmrmsmtmumvlwl'kvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbibHmxlyl(kImJmKmLmMmNmOmzlAl)kPmQmRmSmTmUmVmBlCl*kWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfc8mDlEl+k9m!m#m$m%m'm(mFlGl,k)m*m+m,m-m.m/mHlIl-k:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchcic

554 else: 

555 for key, value in values.items(): 2JlKlLlMlNlOlPlQlRlSlTlUlVlbd*d+d,d-dg 2dcdh ddabWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdj p idjdbbcb)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpdl s t qdrdsddbebfbgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdydn w x zdAdBdgbhbibHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPdz E F QdRdSddcecfc8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYdB I J Zd0d1dgchcic

556 setattr(m, key, value) 2JlKlLlMlNlOlPlQlRlSlTlUlVlbd*d+d,d-dg 2dcdh ddabWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdj p idjdbbcb)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpdl s t qdrdsddbebfbgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdydn w x zdAdBdgbhbibHmImJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPdz E F QdRdSddcecfc8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYdB I J Zd0d1dgchcic

557 # Continue with standard Pydantic logic 

558 object.__setattr__(m, "__fields_set__", fields_set) 2Jlflgl6kKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg 2dcdh ddabWlhlil7kXlYlZl0l1l2l3ljlkl8k4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdj p idjdbbcb)lllml9k*l+l,l-l.l/l:lnlol!k;l=l?l@l[l]l^lplql#k_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpdl s t qdrdsddbebfbgmrlsl$khmimjmkmlmmmnmtlul%kompmqmrmsmtmumvlwl'kvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdydn w x zdAdBdgbhbibHmxlyl(kImJmKmLmMmNmOmzlAl)kPmQmRmSmTmUmVmBlCl*kWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPdz E F QdRdSddcecfc8mDlEl+k9m!m#m$m%m'm(mFlGl,k)m*m+m,m-m.m/mHlIl-k:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYdB I J Zd0d1dgchcic

559 m._init_private_attributes() # type: ignore[attr-defined] # noqa 2Jlflgl6kKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg 2dcdh ddabWlhlil7kXlYlZl0l1l2l3ljlkl8k4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdj p idjdbbcb)lllml9k*l+l,l-l.l/l:lnlol!k;l=l?l@l[l]l^lplql#k_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpdl s t qdrdsddbebfbgmrlsl$khmimjmkmlmmmnmtlul%kompmqmrmsmtmumvlwl'kvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdydn w x zdAdBdgbhbibHmxlyl(kImJmKmLmMmNmOmzlAl)kPmQmRmSmTmUmVmBlCl*kWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPdz E F QdRdSddcecfc8mDlEl+k9m!m#m$m%m'm(mFlGl,k)m*m+m,m-m.m/mHlIl-k:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYdB I J Zd0d1dgchcic

560 return m 2Jlflgl6kKlLlMlNlOlPl~n1oQlRlSlTlUlVlbd*d+d,d-dg 2dcdh ddabWlhlil7kXlYlZl0l1l2l3ljlkl8k4l5l6l7l8l9lao2o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdj p idjdbbcb)lllml9k*l+l,l-l.l/l:lnlol!k;l=l?l@l[l]l^lplql#k_l`l{l|l}l~lbo3oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpdl s t qdrdsddbebfbgmrlsl$khmimjmkmlmmmnmtlul%kompmqmrmsmtmumvlwl'kvmwmxmymzmAmco4oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdydn w x zdAdBdgbhbibHmxlyl(kImJmKmLmMmNmOmzlAl)kPmQmRmSmTmUmVmBlCl*kWmXmYmZm0m1mjo5o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPdz E F QdRdSddcecfc8mDlEl+k9m!m#m$m%m'm(mFlGl,k)m*m+m,m-m.m/mHlIl-k:m;m=m?m@m[mko6o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYdB I J Zd0d1dgchcic

561 

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

563 values, fields_set, validation_error = validate_model(self.__class__, data) 2mpJlHpIp@nflgl6kKlLlMlNlOlPlOe4e5e_o~n7osk}oYe9j!j#j0k#o$o.o$j9nknK 6e7e8e9e!e#e$e%e'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf#pnpWlJpKp[nhlil7kXlYlZl0l1l2lop3lLpMp]njlkl8k4l5l6l7l8l9lPemfnf`oao8otk~oZe+j,j-j1k%o'o/o.j!nlnW X ofpfqfrfsftfufvfwfxf!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f$ppp)lNpOp^nllml9k*l+l,l-l.l/lqp:lPpQp_nnlol!k;l=l?l@l[l]lrp^lRpSp`nplql#k_l`l{l|l}l~lQeRe5f6f7f8f{obo9oukap0e@j[j]j2k(o)o:o^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[fambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g%pspgmTpUp{nrlsl$khmimjmkmlmmmtpnmVpWp|ntlul%kompmqmrmsmtmupumXpYp}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9g|oco!ovkbp1eekfkgk3k*o+o;ohk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]gBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h'pvpHmZp0pdoxlyl(kImJmKmLmMmNmwpOm1p2peozlAl)kPmQmRmSmTmUmxpVm3p4pfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcpjo,oYkip2ewkxkyk4k=o?o]ozk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i(pyp8m5p6pgoDlEl+k9m!m#m$m%m'mzp(m7p8phoFlGl,k)m*m+m,m-m.mAp/m9p!pioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idpko-oZkkp3eKkLkMk5k@o[o^oNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j)p

564 # Only raise errors if not a SQLModel model 

565 if ( 2mpJlHpIp@nflgl6kKlLlMlNlOlPlOe4e5e_o~n7osk}oYe9j!j#j0k#o$o.o$j9nknK 6e7e8e9e!e#e$e%e'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf#pnpWlJpKp[nhlil7kXlYlZl0l1l2lop3lLpMp]njlkl8k4l5l6l7l8l9lPemfnf`oao8otk~oZe+j,j-j1k%o'o/o.j!nlnW X ofpfqfrfsftfufvfwfxf!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f$ppp)lNpOp^nllml9k*l+l,l-l.l/lqp:lPpQp_nnlol!k;l=l?l@l[l]lrp^lRpSp`nplql#k_l`l{l|l}l~lQeRe5f6f7f8f{obo9oukap0e@j[j]j2k(o)o:o^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[fambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g%pspgmTpUp{nrlsl$khmimjmkmlmmmtpnmVpWp|ntlul%kompmqmrmsmtmupumXpYp}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9g|oco!ovkbp1eekfkgk3k*o+o;ohk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]gBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h'p

566 not is_table_model_class(self.__class__) # noqa 

567 and validation_error 

568 ): 

569 raise validation_error 2HpIp}o#o$o#pJpKpLpMp~o%o'o$pNpOpPpQpRpSpap(o)o%pTpUpVpWpXpYpbp*o+o'pZp0p1p2p3p4pip=o?o(p5p6p7p8p9p!pkp@o[o)p

570 if not is_table_model_class(self.__class__): 2mpJl@nflgl6kKlLlMlNlOlPlOe4e5e_o~n7oskYe9j!j#j0k#o$o.o$j9nknK 6e7e8e9e!e#e$e%e'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf#pnpWl[nhlil7kXlYlZl0l1l2lop3l]njlkl8k4l5l6l7l8l9lPemfnf`oao8otkZe+j,j-j1k%o'o/o.j!nlnW X ofpfqfrfsftfufvfwfxf!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f$ppp)l^nllml9k*l+l,l-l.l/lqp:l_nnlol!k;l=l?l@l[l]lrp^l`nplql#k_l`l{l|l}l~lQeRe5f6f7f8f{obo9ouk0e@j[j]j2k(o)o:o^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[fambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g%pspgm{nrlsl$khmimjmkmlmmmtpnm|ntlul%kompmqmrmsmtmupum}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9g|oco!ovk1eekfkgk3k*o+o;ohk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]gBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h'pvpHmdoxlyl(kImJmKmLmMmNmwpOmeozlAl)kPmQmRmSmTmUmxpVmfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcpjo,oYk2ewkxkyk4k=o?o]ozk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i(pyp8mgoDlEl+k9m!m#m$m%m'mzp(mhoFlGl,k)m*m+m,m-m.mAp/mioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idpko-oZk3eKkLkMk5k@o[o^oNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j)p

571 object.__setattr__(self, "__dict__", values) 2mpJl6kKlLlMlNlOlPl_o~n7o#o$o.oQlRlSlTlUlVlbd*d+d,d-dg cdh ddab#pnpWl7kXlYlZl0l1l2lop3l8k4l5l6l7l8l9l`oao8o%o'o/o!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o gdhdj p idjdbbcb$ppp)l9k*l+l,l-l.l/lqp:l!k;l=l?l@l[l]lrp^l#k_l`l{l|l}l~l{obo9o(o)o:oambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r ndodpdl s t qdrdsddbebfb%pspgm$khmimjmkmlmmmtpnm%kompmqmrmsmtmupum'kvmwmxmymzmAm|oco!o*o+o;oBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v wdxdydn w x zdAdBdgbhbib'pvpHm(kImJmKmLmMmNmwpOm)kPmQmRmSmTmUmxpVm*kWmXmYmZm0m1mcpjo,o=o?o]o2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D NdOdPdz E F QdRdSddcecfc(pyp8m+k9m!m#m$m%m'mzp(m,k)m*m+m,m-m.mAp/m-k:m;m=m?m@m[mdpko-o@o[o^o]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H WdXdYdB I J Zd0d1dgchcic)p

572 else: 

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

574 # SQLAlchemy can handle them 

575 for key, value in values.items(): 2Jl@nflgl6kKlLlMlNlOlPlOe4e5eskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfWl[nhlil7kXlYlZl0l1l2l3l]njlkl8k4l5l6l7l8l9lPemfnftkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f)l^nllml9k*l+l,l-l.l/l:l_nnlol!k;l=l?l@l[l]l^l`nplql#k_l`l{l|l}l~lQeRe5f6f7f8fuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[fambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5ggm{nrlsl$khmimjmkmlmmmnm|ntlul%kompmqmrmsmtmum}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9gvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]gBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hHmdoxlyl(kImJmKmLmMmNmOmeozlAl)kPmQmRmSmTmUmVmfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8mgoDlEl+k9m!m#m$m%m'm(mhoFlGl,k)m*m+m,m-m.m/mioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#iZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

576 setattr(self, key, value) 2Jl@nflgl6kKlLlMlNlOlPlOe4e5eskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfWl[nhlil7kXlYlZl0l1l2l3l]njlkl8k4l5l6l7l8l9lPemfnftkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f)l^nllml9k*l+l,l-l.l/l:l_nnlol!k;l=l?l@l[l]l^l`nplql#k_l`l{l|l}l~lQeRe5f6f7f8fuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[fambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5ggm{nrlsl$khmimjmkmlmmmnm|ntlul%kompmqmrmsmtmum}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9gvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]gBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hHmdoxlyl(kImJmKmLmMmNmOmeozlAl)kPmQmRmSmTmUmVmfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8mgoDlEl+k9m!m#m$m%m'm(mhoFlGl,k)m*m+m,m-m.m/mioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#iZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

577 object.__setattr__(self, "__fields_set__", fields_set) 2mpJl@nflgl6kKlLlMlNlOlPlOe4e5e_o~n7oskYe9j!j#j0k#o$o.o$j9nknK 6e7e8e9e!e#e$e%e'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf#pnpWl[nhlil7kXlYlZl0l1l2lop3l]njlkl8k4l5l6l7l8l9lPemfnf`oao8otkZe+j,j-j1k%o'o/o.j!nlnW X ofpfqfrfsftfufvfwfxf!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f$ppp)l^nllml9k*l+l,l-l.l/lqp:l_nnlol!k;l=l?l@l[l]lrp^l`nplql#k_l`l{l|l}l~lQeRe5f6f7f8f{obo9ouk0e@j[j]j2k(o)o:o^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[fambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g%pspgm{nrlsl$khmimjmkmlmmmtpnm|ntlul%kompmqmrmsmtmupum}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9g|oco!ovk1eekfkgk3k*o+o;ohk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]gBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h'pvpHmdoxlyl(kImJmKmLmMmNmwpOmeozlAl)kPmQmRmSmTmUmxpVmfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcpjo,oYk2ewkxkyk4k=o?o]ozk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i(pyp8mgoDlEl+k9m!m#m$m%m'mzp(mhoFlGl,k)m*m+m,m-m.mAp/mioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idpko-oZk3eKkLkMk5k@o[o^oNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j)p

578 non_pydantic_keys = data.keys() - values.keys() 2mpJl@nflgl6kKlLlMlNlOlPlOe4e5e_o~n7oskYe9j!j#j0k#o$o.o$j9nknK 6e7e8e9e!e#e$e%e'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf#pnpWl[nhlil7kXlYlZl0l1l2lop3l]njlkl8k4l5l6l7l8l9lPemfnf`oao8otkZe+j,j-j1k%o'o/o.j!nlnW X ofpfqfrfsftfufvfwfxf!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f$ppp)l^nllml9k*l+l,l-l.l/lqp:l_nnlol!k;l=l?l@l[l]lrp^l`nplql#k_l`l{l|l}l~lQeRe5f6f7f8f{obo9ouk0e@j[j]j2k(o)o:o^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[fambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g%pspgm{nrlsl$khmimjmkmlmmmtpnm|ntlul%kompmqmrmsmtmupum}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9g|oco!ovk1eekfkgk3k*o+o;ohk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]gBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h'pvpHmdoxlyl(kImJmKmLmMmNmwpOmeozlAl)kPmQmRmSmTmUmxpVmfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcpjo,oYk2ewkxkyk4k=o?o]ozk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i(pyp8mgoDlEl+k9m!m#m$m%m'mzp(mhoFlGl,k)m*m+m,m-m.mAp/mioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idpko-oZk3eKkLkMk5k@o[o^oNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j)p

579 

580 if is_table_model_class(self.__class__): 2mpJl@nflgl6kKlLlMlNlOlPlOe4e5e_o~n7oskYe9j!j#j0k#o$o.o$j9nknK 6e7e8e9e!e#e$e%e'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflf#pnpWl[nhlil7kXlYlZl0l1l2lop3l]njlkl8k4l5l6l7l8l9lPemfnf`oao8otkZe+j,j-j1k%o'o/o.j!nlnW X ofpfqfrfsftfufvfwfxf!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f$ppp)l^nllml9k*l+l,l-l.l/lqp:l_nnlol!k;l=l?l@l[l]lrp^l`nplql#k_l`l{l|l}l~lQeRe5f6f7f8f{obo9ouk0e@j[j]j2k(o)o:o^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[fambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5g%pspgm{nrlsl$khmimjmkmlmmmtpnm|ntlul%kompmqmrmsmtmupum}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9g|oco!ovk1eekfkgk3k*o+o;ohk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]gBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h'pvpHmdoxlyl(kImJmKmLmMmNmwpOmeozlAl)kPmQmRmSmTmUmxpVmfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hcpjo,oYk2ewkxkyk4k=o?o]ozk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i(pyp8mgoDlEl+k9m!m#m$m%m'mzp(mhoFlGl,k)m*m+m,m-m.mAp/mioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#idpko-oZk3eKkLkMk5k@o[o^oNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j)p

581 for key in non_pydantic_keys: 2Jl@nflgl6kKlLlMlNlOlPlOe4e5eskYe9j!j#j0k$j9nknK 6e7e8e9e!e#e$e%e'e(eQlRlSlTlUlVlbd*d+d,d-dg 2dcd)eh ddab*e+e%j'j(j,e-e.e/e)c*c1c:e)j;e=e?e@e[e]e*jL M N O P Q R S T U V ^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfWl[nhlil7kXlYlZl0l1l2l3l]njlkl8k4l5l6l7l8l9lPemfnftkZe+j,j-j1k.j!nlnW X ofpfqfrfsftfufvfwfxf!l#l$l%l'l(ledfd.d/d:d;d=d?d@d[di o 3d4dgdhdyfj p idjdbbcbzfAf/j:j;jBfCfDfEf+c;c,c=c2c3cFf=jGfHfIfJfKfLf?jY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tbMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2f3f4f)l^nllml9k*l+l,l-l.l/l:l_nnlol!k;l=l?l@l[l]l^l`nplql#k_l`l{l|l}l~lQeRe5f6f7f8fuk0e@j[j]j2k^j#nmn9 ! # 9f!f#f$f%f'f(f)f*f+f,f-f.f/f:f;f=f?f@f[fambmcmdmemfmkdldmd]d^d_d`d{d|d}d~daebecedek q r 5d6d7dndodpd]f^fl s t qdrdsddbebfb_f`f{f|f_j`j{j|j}j~j}f~fagbgcgdgegfg-c?c@c.c[c]c4c5c6cgghgakbkigjgkglgmgngogpgqgrgsgtgckdk$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPbugvgwgxgygzgAgBgCgDgEgFgGgHgIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1g2g3g4g5ggm{nrlsl$khmimjmkmlmmmnm|ntlul%kompmqmrmsmtmum}nvlwl'kvmwmxmymzmAmSeTe6g7g8g9gvk1eekfkgk3khk$nnn: ; = !g#g$g%g'g(g)g*g+g,g-g.g/g:g;g=g?g@g[g]gBmCmDmEmFmGmtdudvdeefegeheiejekelemeneoepem u v 8d9d!dwdxdyd^g_gn w x zdAdBdgbhbib`g{g|g}gikjkkklkmknk~gahbhchdhehfhgh/c^c_c:c`c{c7c8c9chhihokpkjhkhlhmhnhohphqhrhshthuhqkrk? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#bvhwhxhyhzhAhBhChDhEhFhGhHhIhJhKhLhMhNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hHmdoxlyl(kImJmKmLmMmNmOmeozlAl)kPmQmRmSmTmUmVmfoBlCl*kWmXmYmZm0m1mUeVe7h8h9h!hYk2ewkxkyk4kzk,non$b%b'b#h$h%h'h(h)h*h+h,h-h.h/h:h;h=h?h@h[h]h^h2m3m4m5m6m7mKdLdMdqereseteuevewexeyezeAeBey C D #d$d%dNdOdPd_h`hz E F QdRdSddcecfc{h|h}h~hAkBkCkDkEkFkaibicidieifigihi|cCdDd}cEdFd!c#c$ciijiGkHkkiliminioipiqirisitiuiviIkJk(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEcwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7i8mgoDlEl+k9m!m#m$m%m'm(mhoFlGl,k)m*m+m,m-m.m/mioHlIl-k:m;m=m?m@m[mWeXe8i9i!i#iZk3eKkLkMk5kNk-npn?b@b[b$i%i'i(i)i*i+i,i-i.i/i:i;i=i?i@i[i]i^i_i]m^m_m`m{m|mTdUdVdCeDeEeFeGeHeIeJeKeLeMeNeA G H 'd(d)dWdXdYd`i{iB I J Zd0d1dgchcic|i}i~iajOkPkQkRkSkTkbjcjdjejfjgjhjij~cGdHdadIdJd%c'c(cjjkjUkVkljmjnjojpjqjrjsjtjujvjwjWkXk]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0cxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j

582 if key in self.__sqlmodel_relationships__: 2YeknK )c*c1cL M N O P Q R S T U V ZelnW X +c;c,c=c2c3cY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tb0emn9 ! # -c?c@c.c[c]c4c5c6c$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPb1enn: ; = /c^c_c:c`c{c7c8c9c? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#b2eon$b%b'b|cCdDd}cEdFd!c#c$c(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEc3epn?b@b[b~cGdHdadIdJd%c'c(c]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c

583 setattr(self, key, data[key]) 2YeknK )c*c1cL M N O P Q R S T U V ZelnW X +c;c,c=c2c3cY jbZ kb0 lb1 mb2 nb3 ob4 pb5 qb6 rb7 sb8 tb0emn9 ! # -c?c@c.c[c]c4c5c6c$ ubvb% wbxb' ybzb( AbBb) CbDb* EbFb+ GbHb, IbJb- KbLb. MbNb/ ObPb1enn: ; = /c^c_c:c`c{c7c8c9c? QbRb@ SbTb[ UbVb] WbXb^ YbZb_ 0b1b` 2b3b{ 4b5b| 6b7b} 8b9b~ !b#b2eon$b%b'b|cCdDd}cEdFd!c#c$c(bjckc)blcmc*bncoc+bpcqc,brcsc-btcuc.bvcwc/bxcyc:bzcAc;bBcCc=bDcEc3epn?b@b[b~cGdHdadIdJd%c'c(c]bFcGc^bHcIc_bJcKc`bLcMc{bNcOc|bPcQc}bRcSc~bTcUcacVcWcbcXcYcccZc0c