Coverage for sqlmodel/_compat.py: 93%

295 statements  

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

1import types 1Fabcde

2from contextlib import contextmanager 1Fabcde

3from contextvars import ContextVar 1Fabcde

4from dataclasses import dataclass 1Fabcde

5from typing import ( 1Fabcde

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 1Fabcde

22from pydantic import BaseModel 1Fabcde

23from pydantic.fields import FieldInfo 1Fabcde

24from typing_extensions import Annotated, get_args, get_origin 1Fabcde

25 

26# Reassign variable to make it reexported for mypy 

27PYDANTIC_VERSION = P_VERSION 1Fabcde

28IS_PYDANTIC_V2 = PYDANTIC_VERSION.startswith("2.") 1Fabcde

29 

30 

31if TYPE_CHECKING: 1Fabcde

32 from .main import RelationshipInfo, SQLModel 

33 

34UnionType = getattr(types, "UnionType", Union) 1Fabcde

35NoneType = type(None) 1Fabcde

36T = TypeVar("T") 1Fabcde

37InstanceOrType = Union[T, Type[T]] 1Fabcde

38_TSQLModel = TypeVar("_TSQLModel", bound="SQLModel") 1Fabcde

39 

40 

41class FakeMetadata: 1Fabcde

42 max_length: Optional[int] = None 1Fabcde

43 max_digits: Optional[int] = None 1Fabcde

44 decimal_places: Optional[int] = None 1Fabcde

45 

46 

47@dataclass 1Fabcde

48class ObjectWithUpdateWrapper: 1abcde

49 obj: Any 1Fabcde

50 update: Dict[str, Any] 1Fabcde

51 

52 def __getattribute__(self, __name: str) -> Any: 1Fabcde

53 update = super().__getattribute__("update") 2Sc:b;b=b?b@b[b]b^b_btcucvc

54 obj = super().__getattribute__("obj") 2Sc:b;b=b?b@b[b]b^b_btcucvc

55 if __name in update: 2Sc:b;b=b?b@b[b]b^b_btcucvc

56 return update[__name] 2Sc:b;b=b?b@b[b]b^b_btcucvc

57 return getattr(obj, __name) 2Sc:b;b=b?b@b[b]b^b_btcucvc

58 

59 

60def _is_union_type(t: Any) -> bool: 1Fabcde

61 return t is UnionType or t is Union 2F ne^i_i}lfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqere^ljm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$e_lnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyf`lsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDg{lBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIh|lKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

62 

63 

64finish_init: ContextVar[bool] = ContextVar("finish_init", default=True) 1Fabcde

65 

66 

67@contextmanager 1Fabcde

68def partial_init() -> Generator[None, None, None]: 1Fabcde

69 token = finish_init.set(False) 2*l+l,l-l.l/l:l;l=l?l@l[l]lwd|d}d~daeD xdE ydScQkRkSkTkUkVkWkXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[bnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_bOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc

70 yield 2*l+l,l-l.l/l:l;l=l?l@l[l]lwd|d}d~daeD xdE ydScQkRkSkTkUkVkWkXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[bnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_bOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc

71 finish_init.reset(token) 2*l+l,l-l.l/l:l;l=l?l@l[l]lwd|d}d~daeD xdE ydScQkRkSkTkUkVkWkXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[bnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_bOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc

72 

73 

74if IS_PYDANTIC_V2: 1Fabcde

75 from annotated_types import MaxLen 1Fabcde

76 from pydantic import ConfigDict as BaseConfig 1Fabcde

77 from pydantic._internal._fields import PydanticMetadata 1Fabcde

78 from pydantic._internal._model_construction import ModelMetaclass 1Fabcde

79 from pydantic._internal._repr import Representation as Representation 1Fabcde

80 from pydantic_core import PydanticUndefined as Undefined 1Fabcde

81 from pydantic_core import PydanticUndefinedType as UndefinedType 1Fabcde

82 

83 # Dummy for types, to make it importable 

84 class ModelField: 1Fabcde

85 pass 1Fabcde

86 

87 class SQLModelConfig(BaseConfig, total=False): 1Fabcde

88 table: Optional[bool] 1Fabcde

89 registry: Optional[Any] 1Fabcde

90 

91 def get_config_value( 1abcde

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

93 ) -> Any: 

94 return model.model_config.get(parameter, default) 2F ne^i_i}lrnsnfm2m(mboNn)j)npe6j7j8jfn/j~lgnmkXnYn5n9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNj*na beqere^ltnunjm3m)mcoJnOj#njeKiLiMihn*jaminnkOnPnZnNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e+nb ce#e$e_lvnwnnm4m*mdoKnPj$nkeTiUiVijn+jbmknokQnRn0nWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfuf,nc deeevfwfxfyf`lxnynsm5m+meoLnQj%nle2i3i4iln,jcmmnpkSnTn1n5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg-nd fegeAgBgCgDg{lznAnBm6m,mfoMnRj'nme)i*i+inn-jdmonqkUnVn2n,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh.ne heieFhGhHhIh|lBnCnKm7m-mgoWn(j/noeSjTjUjpn.jemqnrk3n4n6nVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi:n

95 

96 def set_config_value( 1abcde

97 *, 

98 model: InstanceOrType["SQLModel"], 

99 parameter: str, 

100 value: Any, 

101 ) -> None: 

102 model.model_config[parameter] = value # type: ignore[literal-required] 2F ne^i_i}lrnsnfm2m(mbo)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqere^ltnunjm3m)mcoOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$e_lvnwnnm4m*mdoPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyf`lxnynsm5m+meoQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDg{lznAnBm6m,mfoRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIh|lBnCnKm7m-mgo(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

103 

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

105 return model.model_fields 2F ne^i_i}lrnsnfm2m(mbo)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqere^ltnunjm3m)mcoOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$e_lvnwnnm4m*mdoPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyf`lxnynsm5m+meoQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDg{lznAnBm6m,mfoRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIh|lBnCnKm7m-mgo(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

106 

107 def get_fields_set( 1abcde

108 object: InstanceOrType["SQLModel"], 

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

110 return object.model_fields_set 2NnJnKnLnMnWn

111 

112 def init_pydantic_private_attrs(new_object: InstanceOrType["SQLModel"]) -> None: 1Fabcde

113 object.__setattr__(new_object, "__pydantic_fields_set__", set()) 2|n*lzoAo.m(l)llk+l,l-l.l/l:lne^i_i}l;n:mDnNn)j)npe6j7j8j/jXnYn5n9j`i{iwcxc|i}i~iajbjcjdjejfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNj*n=nQkhoioTmsktk]jRkSkTkUkVkWkbeqere^l7n8mEnJnOj#njeKiLiMi*jOnPnZnNiseteG H uevewexeyezeAeBeCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e+n?n3kjokoUmukvk^j4k5k6k7k8k9k@n!klomoVmwkxk_j#k$k%k'k(k)kce#e$e_l8n9mFnKnPj$nkeTiUiVi+jQnRn0nWi%e'eT abU V (e)e*e+e,e-e.e/e:e;e*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfuf,n[n:knoooWmykzk`j;k=k?k@k[k]k]n^kpoqoXmAkBk{j_k`k{k|k}k~k^nalrosoYmCkDk|jblcldlelflgldeeevfwfxfyf`l9n!mGnLnQj%nle2i3i4i,jSnTn1n5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg-n_nnltouoZmEkFk}jolplqlrlsltl`nulvowo0mGkHk~jvlwlxlylzlAl{nBlxoyo1mIkJkakClDlElFlGlHlfegeAgBgCgDg{l!n#mHnMnRj'nme)i*i+i-jUnVn2n,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh.n}nOlBoCo$mKkLkikPlQlRlSlTlUl~nVlDoEo%mMkNkjkWlXlYlZl0l1lao2lFoGo'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh|l(n/mInWn(j/noeSjTjUj.j3n4n6nVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi:n

114 object.__setattr__(new_object, "__pydantic_extra__", None) 2|n*lzoAo.m(l)llk+l,l-l.l/l:lne^i_i}l;n:mDnNn)j)npe6j7j8j/jXnYn5n9j`i{iwcxc|i}i~iajbjcjdjejfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNj*n=nQkhoioTmsktk]jRkSkTkUkVkWkbeqere^l7n8mEnJnOj#njeKiLiMi*jOnPnZnNiseteG H uevewexeyezeAeBeCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e+n?n3kjokoUmukvk^j4k5k6k7k8k9k@n!klomoVmwkxk_j#k$k%k'k(k)kce#e$e_l8n9mFnKnPj$nkeTiUiVi+jQnRn0nWi%e'eT abU V (e)e*e+e,e-e.e/e:e;e*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfuf,n[n:knoooWmykzk`j;k=k?k@k[k]k]n^kpoqoXmAkBk{j_k`k{k|k}k~k^nalrosoYmCkDk|jblcldlelflgldeeevfwfxfyf`l9n!mGnLnQj%nle2i3i4i,jSnTn1n5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg-n_nnltouoZmEkFk}jolplqlrlsltl`nulvowo0mGkHk~jvlwlxlylzlAl{nBlxoyo1mIkJkakClDlElFlGlHlfegeAgBgCgDg{l!n#mHnMnRj'nme)i*i+i-jUnVn2n,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh.n}nOlBoCo$mKkLkikPlQlRlSlTlUl~nVlDoEo%mMkNkjkWlXlYlZl0l1lao2lFoGo'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh|l(n/mInWn(j/noeSjTjUj.j3n4n6nVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi:n

115 object.__setattr__(new_object, "__pydantic_private__", None) 2|n*lzoAo.m(l)llk+l,l-l.l/l:lne^i_i}l;n:mDnNn)j)npe6j7j8j/jXnYn5n9j`i{iwcxc|i}i~iajbjcjdjejfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNj*n=nQkhoioTmsktk]jRkSkTkUkVkWkbeqere^l7n8mEnJnOj#njeKiLiMi*jOnPnZnNiseteG H uevewexeyezeAeBeCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e+n?n3kjokoUmukvk^j4k5k6k7k8k9k@n!klomoVmwkxk_j#k$k%k'k(k)kce#e$e_l8n9mFnKnPj$nkeTiUiVi+jQnRn0nWi%e'eT abU V (e)e*e+e,e-e.e/e:e;e*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfuf,n[n:knoooWmykzk`j;k=k?k@k[k]k]n^kpoqoXmAkBk{j_k`k{k|k}k~k^nalrosoYmCkDk|jblcldlelflgldeeevfwfxfyf`l9n!mGnLnQj%nle2i3i4i,jSnTn1n5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg-n_nnltouoZmEkFk}jolplqlrlsltl`nulvowo0mGkHk~jvlwlxlylzlAl{nBlxoyo1mIkJkakClDlElFlGlHlfegeAgBgCgDg{l!n#mHnMnRj'nme)i*i+i-jUnVn2n,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh.n}nOlBoCo$mKkLkikPlQlRlSlTlUl~nVlDoEo%mMkNkjkWlXlYlZl0l1lao2lFoGo'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh|l(n/mInWn(j/noeSjTjUj.j3n4n6nVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi:n

116 

117 def get_annotations(class_dict: Dict[str, Any]) -> Dict[str, Any]: 1Fabcde

118 return class_dict.get("__annotations__", {}) 2F ne^i_i}lrnsnfm2m(mboNn)j)npe6j7j8jfn/j~lgnmkXnYn5n9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNj*na beqere^ltnunjm3m)mcoJnOj#njeKiLiMihn*jaminnkOnPnZnNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e+nb ce#e$e_lvnwnnm4m*mdoKnPj$nkeTiUiVijn+jbmknokQnRn0nWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfuf,nc deeevfwfxfyf`lxnynsm5m+meoLnQj%nle2i3i4iln,jcmmnpkSnTn1n5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg-nd fegeAgBgCgDg{lznAnBm6m,mfoMnRj'nme)i*i+inn-jdmonqkUnVn2n,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh.ne heieFhGhHhIh|lBnCnKm7m-mgoWn(j/noeSjTjUjpn.jemqnrk3n4n6nVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi:n

119 

120 def is_table_model_class(cls: Type[Any]) -> bool: 1Fabcde

121 config = getattr(cls, "model_config", {}) 2F |n*lzoAo.m(l)llk+l,l-l.l/l:lne^i_i}l;n:mDnrnsnfm2m(mboNn)j)npe6j7j8jfn/j~lgnmkXnYn5n9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNj*na =nQkhoioTmsktk]jRkSkTkUkVkWkbeqere^l7n8mEntnunjm3m)mcoJnOj#njeKiLiMihn*jaminnkOnPnZnNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e+nb ?n3kjokoUmukvk^j4k5k6k7k8k9k@n!klomoVmwkxk_j#k$k%k'k(k)kce#e$e_l8n9mFnvnwnnm4m*mdoKnPj$nkeTiUiVijn+jbmknokQnRn0nWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfuf,nc [n:knoooWmykzk`j;k=k?k@k[k]k]n^kpoqoXmAkBk{j_k`k{k|k}k~k^nalrosoYmCkDk|jblcldlelflgldeeevfwfxfyf`l9n!mGnxnynsm5m+meoLnQj%nle2i3i4iln,jcmmnpkSnTn1n5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAmhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg-nd _nnltouoZmEkFk}jolplqlrlsltl`nulvowo0mGkHk~jvlwlxlylzlAl{nBlxoyo1mIkJkakClDlElFlGlHlfegeAgBgCgDg{l!n#mHnznAnBm6m,mfoMnRj'nme)i*i+inn-jdmonqkUnVn2n,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh.ne }nOlBoCo$mKkLkikPlQlRlSlTlUl~nVlDoEo%mMkNkjkWlXlYlZl0l1lao2lFoGo'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh|l(n/mInBnCnKm7m-mgoWn(j/noeSjTjUjpn.jemqnrk3n4n6nVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSm9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi:n

122 if config: 2F |n*lzoAo.m(l)llk+l,l-l.l/l:lne^i_i}l;n:mDnrnsnfm2m(mboNn)j)npe6j7j8jfn/j~lgnmkXnYn5n9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNj*na =nQkhoioTmsktk]jRkSkTkUkVkWkbeqere^l7n8mEntnunjm3m)mcoJnOj#njeKiLiMihn*jaminnkOnPnZnNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e+nb ?n3kjokoUmukvk^j4k5k6k7k8k9k@n!klomoVmwkxk_j#k$k%k'k(k)kce#e$e_l8n9mFnvnwnnm4m*mdoKnPj$nkeTiUiVijn+jbmknokQnRn0nWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfuf,nc [n:knoooWmykzk`j;k=k?k@k[k]k]n^kpoqoXmAkBk{j_k`k{k|k}k~k^nalrosoYmCkDk|jblcldlelflgldeeevfwfxfyf`l9n!mGnxnynsm5m+meoLnQj%nle2i3i4iln,jcmmnpkSnTn1n5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAmhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg-nd _nnltouoZmEkFk}jolplqlrlsltl`nulvowo0mGkHk~jvlwlxlylzlAl{nBlxoyo1mIkJkakClDlElFlGlHlfegeAgBgCgDg{l!n#mHnznAnBm6m,mfoMnRj'nme)i*i+inn-jdmonqkUnVn2n,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh.ne }nOlBoCo$mKkLkikPlQlRlSlTlUl~nVlDoEo%mMkNkjkWlXlYlZl0l1lao2lFoGo'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh|l(n/mInBnCnKm7m-mgoWn(j/noeSjTjUjpn.jemqnrk3n4n6nVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSm9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi:n

123 return config.get("table", False) or False 2F |n*lzoAo.m(l)llk+l,l-l.l/l:lne^i_i}l;n:mDnrnsnfm2m(mboNn)j)npe6j7j8jfn/j~lgnmkXnYn5n9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNj*na =nQkhoioTmsktk]jRkSkTkUkVkWkbeqere^l7n8mEntnunjm3m)mcoJnOj#njeKiLiMihn*jaminnkOnPnZnNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e+nb ?n3kjokoUmukvk^j4k5k6k7k8k9k@n!klomoVmwkxk_j#k$k%k'k(k)kce#e$e_l8n9mFnvnwnnm4m*mdoKnPj$nkeTiUiVijn+jbmknokQnRn0nWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfuf,nc [n:knoooWmykzk`j;k=k?k@k[k]k]n^kpoqoXmAkBk{j_k`k{k|k}k~k^nalrosoYmCkDk|jblcldlelflgldeeevfwfxfyf`l9n!mGnxnynsm5m+meoLnQj%nle2i3i4iln,jcmmnpkSnTn1n5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAmhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg-nd _nnltouoZmEkFk}jolplqlrlsltl`nulvowo0mGkHk~jvlwlxlylzlAl{nBlxoyo1mIkJkakClDlElFlGlHlfegeAgBgCgDg{l!n#mHnznAnBm6m,mfoMnRj'nme)i*i+inn-jdmonqkUnVn2n,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh.ne }nOlBoCo$mKkLkikPlQlRlSlTlUl~nVlDoEo%mMkNkjkWlXlYlZl0l1lao2lFoGo'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh|l(n/mInBnCnKm7m-mgoWn(j/noeSjTjUjpn.jemqnrk3n4n6nVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSm9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi:n

124 return False 1Fabcde

125 

126 def get_relationship_to( 1abcde

127 name: str, 

128 rel_info: "RelationshipInfo", 

129 annotation: Any, 

130 ) -> Any: 

131 origin = get_origin(annotation) 2mkwcxcD E .c/c4cyczc:jAcBcCcDcEcFcGcHcIcnkG H f g WcXcJcI J ;jK L M N O P Q R S okT abU V h n i o Yc5cZc6cKcLcW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbpk7 mbnb8 9 ! j p q k r s 0c7c8c1c9c!cMcNcOc# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJbqk/ KbLb: ; = l t u m v w 2c#c$c3c%c'cPcQcRc? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7brk8b`b{b9b!b#bx z A y B C (c*c+c)c,c-cTcUcVc$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

132 use_annotation = annotation 2mkwcxcD E .c/c4cyczc:jAcBcCcDcEcFcGcHcIcnkG H f g WcXcJcI J ;jK L M N O P Q R S okT abU V h n i o Yc5cZc6cKcLcW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbpk7 mbnb8 9 ! j p q k r s 0c7c8c1c9c!cMcNcOc# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJbqk/ KbLb: ; = l t u m v w 2c#c$c3c%c'cPcQcRc? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7brk8b`b{b9b!b#bx z A y B C (c*c+c)c,c-cTcUcVc$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

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

134 if origin is None: 2mkwcxcD E .c/c4cyczc:jAcBcCcDcEcFcGcHcIcnkG H f g WcXcJcI J ;jK L M N O P Q R S okT abU V h n i o Yc5cZc6cKcLcW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbpk7 mbnb8 9 ! j p q k r s 0c7c8c1c9c!cMcNcOc# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJbqk/ KbLb: ; = l t u m v w 2c#c$c3c%c'cPcQcRc? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7brk8b`b{b9b!b#bx z A y B C (c*c+c)c,c-cTcUcVc$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

135 if isinstance(use_annotation, ForwardRef): 2mkwcxcD E .c/c4cyczc:jAcBcCcDcEcFcGcHcIcnkG H f g WcXcJcI J ;jK L M N O P Q R S okT abU V h n i o Yc5cZc6cKcLcW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbpk7 mbnb8 9 ! j p q k r s 0c7c8c1c9c!cMcNcOc# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJbqk/ KbLb: ; = l t u m v w 2c#c$c3c%c'cPcQcRc? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7brk8b`b{b9b!b#bx z A y B C (c*c+c)c,c-cTcUcVc$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

136 use_annotation = use_annotation.__forward_arg__ 2mkwcxcD E .c/cyczc:jAcBcCcDcEcFcGcHcIcnkG H f g WcXcI J ;jK L M N O P Q R S okT U V h i YcZcW X =jY Z 0 1 2 3 4 5 6 pk7 8 9 ! j k 0c1c# $ ?j% ' ( ) * + , - . qk/ : ; = l m 2c3c? @ @j[ ] ^ _ ` { | } ~ rk8b9b!b#bx y (c)c$b%b[j'b(b)b*b+b,b-b.b/b

137 else: 

138 return use_annotation 2mkwcxcD E .c/c4cyczc:jAcBcCcDcEcFcGcHcIcnkG H f g WcXcJcI J ;jK L M N O P Q R S okT abU V h n i o Yc5cZc6cKcLcW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbpk7 mbnb8 9 ! j p q k r s 0c7c8c1c9c!cMcNcOc# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJbqk/ KbLb: ; = l t u m v w 2c#c$c3c%c'cPcQcRc? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7brk8b`b{b9b!b#bx z A y B C (c*c+c)c,c-cTcUcVc$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

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

140 elif _is_union_type(origin): 2mkwcxcD E .c/c4cyczc:jAcBcCcDcEcFcGcHcIcnkG H f g WcXcJcI J ;jK L M N O P Q R S okT abU V h n i o Yc5cZc6cKcLcW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbpk7 mbnb8 9 ! j p q k r s 0c7c8c1c9c!cMcNcOc# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJbqk/ KbLb: ; = l t u m v w 2c#c$c3c%c'cPcQcRc? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7brk8b`b{b9b!b#bx z A y B C (c*c+c)c,c-cTcUcVc$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

141 use_annotation = get_args(annotation) 2wcxcD E yczc:jAcBcCcDcEcFcGcHcIcG H f g I J ;jK L M N O P Q R S T abU V h n i o W bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mbnb8 9 ! j p q k r s # obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb/ KbLb: ; = l t u m v w ? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b8b`b{b9b!b#bx z A y B C $b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

142 if len(use_annotation) > 2: 2wcxcD E yczc:jAcBcCcDcEcFcGcHcIcG H f g I J ;jK L M N O P Q R S T abU V h n i o W bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mbnb8 9 ! j p q k r s # obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb/ KbLb: ; = l t u m v w ? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b8b`b{b9b!b#bx z A y B C $b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

143 raise ValueError( 

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

145 ) 

146 arg1, arg2 = use_annotation 2wcxcD E yczc:jAcBcCcDcEcFcGcHcIcG H f g I J ;jK L M N O P Q R S T abU V h n i o W bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mbnb8 9 ! j p q k r s # obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb/ KbLb: ; = l t u m v w ? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b8b`b{b9b!b#bx z A y B C $b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

147 if arg1 is NoneType and arg2 is not NoneType: 2wcxcD E yczc:jAcBcCcDcEcFcGcHcIcG H f g I J ;jK L M N O P Q R S T abU V h n i o W bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mbnb8 9 ! j p q k r s # obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb/ KbLb: ; = l t u m v w ? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b8b`b{b9b!b#bx z A y B C $b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

148 use_annotation = arg2 

149 elif arg2 is NoneType and arg1 is not NoneType: 2wcxcD E yczc:jAcBcCcDcEcFcGcHcIcG H f g I J ;jK L M N O P Q R S T abU V h n i o W bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mbnb8 9 ! j p q k r s # obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb/ KbLb: ; = l t u m v w ? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b8b`b{b9b!b#bx z A y B C $b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

150 use_annotation = arg1 2wcxcD E yczc:jAcBcCcDcEcFcGcHcIcG H f g I J ;jK L M N O P Q R S T abU V h n i o W bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lb7 mbnb8 9 ! j p q k r s # obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb/ KbLb: ; = l t u m v w ? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b8b`b{b9b!b#bx z A y B C $b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

151 else: 

152 raise ValueError( 

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

154 ) 

155 

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

157 elif origin is list: 2mkwcxcD E .c/c4cyczc:jAcBcCcDcEcFcGcHcIcnkG H f g WcXcJcI J ;jK L M N O P Q R S okT abU V h n i o Yc5cZc6cKcLcW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbpk7 mbnb8 9 ! j p q k r s 0c7c8c1c9c!cMcNcOc# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJbqk/ KbLb: ; = l t u m v w 2c#c$c3c%c'cPcQcRc? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7brk8b`b{b9b!b#bx z A y B C (c*c+c)c,c-cTcUcVc$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

158 use_annotation = get_args(annotation)[0] 2mkwcxcD E .c/c4cyczc:jAcBcCcDcEcFcGcHcIcnkG H f g WcXcJcI J ;jK L M N O P Q R S okT abU V h n i o Yc5cZc6cKcLcW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbpk7 mbnb8 9 ! j p q k r s 0c7c8c1c9c!cMcNcOc# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJbqk/ KbLb: ; = l t u m v w 2c#c$c3c%c'cPcQcRc? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7brk8b`b{b9b!b#bx z A y B C (c*c+c)c,c-cTcUcVc$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

159 

160 return get_relationship_to( 2mkwcxcD E .c/c4cyczc:jAcBcCcDcEcFcGcHcIcnkG H f g WcXcJcI J ;jK L M N O P Q R S okT abU V h n i o Yc5cZc6cKcLcW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbpk7 mbnb8 9 ! j p q k r s 0c7c8c1c9c!cMcNcOc# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJbqk/ KbLb: ; = l t u m v w 2c#c$c3c%c'cPcQcRc? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7brk8b`b{b9b!b#bx z A y B C (c*c+c)c,c-cTcUcVc$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

161 name=name, rel_info=rel_info, annotation=use_annotation 

162 ) 

163 

164 def is_field_noneable(field: "FieldInfo") -> bool: 1Fabcde

165 if getattr(field, "nullable", Undefined) is not Undefined: 2F ne^i_irnsnfm2m(m)jpe6j7j8j/j~lmk9j`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqeretnunjm3m)mOjjeKiLiMi*jamnkNiseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$evnwnnm4m*mPjkeTiUiVi+jbmokWi%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfxnynsm5m+mQjle2i3i4i,jcmpk5izfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgznAnBm6m,mRjme)i*i+i-jdmqk,iEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhBnCnKm7m-m(joeSjTjUj.jemrkVjJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

166 return field.nullable # type: ignore 2/j~l*jam+jbm,jcm-jdm.jem

167 origin = get_origin(field.annotation) 2F ne^i_irnsnfm2m(m)jpe6j7j8j~lmk9j`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqeretnunjm3m)mOjjeKiLiMiamnkNiseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$evnwnnm4m*mPjkeTiUiVibmokWi%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfxnynsm5m+mQjle2i3i4icmpk5izfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgznAnBm6m,mRjme)i*i+idmqk,iEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhBnCnKm7m-m(joeSjTjUjemrkVjJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

168 if origin is not None and _is_union_type(origin): 2F ne^i_irnsnfm2m(m)jpe6j7j8j~lmk9j`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqeretnunjm3m)mOjjeKiLiMiamnkNiseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$evnwnnm4m*mPjkeTiUiVibmokWi%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfxnynsm5m+mQjle2i3i4icmpk5izfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgznAnBm6m,mRjme)i*i+idmqk,iEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhBnCnKm7m-m(joeSjTjUjemrkVjJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

169 args = get_args(field.annotation) 2F ne^i_ifm2m)jpe6j7j8j~lmk9j`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqerejm3mOjjeKiLiMiamnkNiseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$enm4mPjkeTiUiVibmokWi%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfsm5mQjle2i3i4icmpk5izfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgBm6mRjme)i*i+idmqk,iEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhKm7m(joeSjTjUjemrkVjJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

170 if any(arg is NoneType for arg in args): 2F ne^i_ifm2m)jpe6j7j8j~lmk9j`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqerejm3mOjjeKiLiMiamnkNiseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$enm4mPjkeTiUiVibmokWi%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfsm5mQjle2i3i4icmpk5izfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgBm6mRjme)i*i+idmqk,iEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhKm7m(joeSjTjUjemrkVjJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

171 return True 2F ne^i_ifm2m)jpe6j7j8j~lmk9j`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqerejm3mOjjeKiLiMiamnkNiseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$enm4mPjkeTiUiVibmokWi%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfsm5mQjle2i3i4icmpk5izfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgBm6mRjme)i*i+idmqk,iEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhKm7m(joeSjTjUjemrkVjJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

172 if not field.is_required(): 2F ne^i_irnsnfm(m)jpe6j7j8j~lmk9j`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqeretnunjm)mOjjeKiLiMiamnkNiseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$evnwnnm*mPjkeTiUiVibmokWi%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfxnynsm+mQjle2i3i4icmpk5izfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgznAnBm,mRjme)i*i+idmqk,iEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhBnCnKm-m(joeSjTjUjemrkVjJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

173 if field.default is Undefined: 2ne~l4cbeamJccebmKcLcdeeecmMcNcOcfegedmPcQcRcheieemTcUcVc

174 return False 

175 if field.annotation is None or field.annotation is NoneType: # type: ignore[comparison-overlap] 2ne~l4cbeamJccebmKcLcdeeecmMcNcOcfegedmPcQcRcheieemTcUcVc

176 return True 

177 return False 2ne~l4cbeamJccebmKcLcdeeecmMcNcOcfegedmPcQcRcheieemTcUcVc

178 return False 2F ne^i_irnsnfm(m)jpe6j7j8j~lmk9j`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqeretnunjm)mOjjeKiLiMiamnkNiseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$evnwnnm*mPjkeTiUiVibmokWi%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfxnynsm+mQjle2i3i4icmpk5izfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgznAnBm,mRjme)i*i+idmqk,iEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhBnCnKm-m(joeSjTjUjemrkVjJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

179 

180 def get_sa_type_from_type_annotation(annotation: Any) -> Any: 1Fabcde

181 # Resolve Optional fields 

182 if annotation is None: 2F ne^i_i}lrnsnfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqere^ltnunjm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$e_lvnwnnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyf`lxnynsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDg{lznAnBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIh|lBnCnKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

183 raise ValueError("Missing field type") 

184 origin = get_origin(annotation) 2F ne^i_i}lrnsnfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqere^ltnunjm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$e_lvnwnnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyf`lxnynsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDg{lznAnBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIh|lBnCnKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

185 if origin is None: 2F ne^i_i}lrnsnfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqere^ltnunjm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$e_lvnwnnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyf`lxnynsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDg{lznAnBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIh|lBnCnKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

186 return annotation 2F ne^i_i}lrnsnfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqere^ltnunjm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$e_lvnwnnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyf`lxnynsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDg{lznAnBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIh|lBnCnKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

187 elif origin is Annotated: 2F ne^i_i}lfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqere^ljm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$e_lnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyf`lsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDg{lBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIh|lKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

188 return get_sa_type_from_type_annotation(get_args(annotation)[0]) 2}l^l_l`l{l|l

189 if _is_union_type(origin): 2F ne^i_i}lfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqere^ljm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$e_lnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyf`lsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDg{lBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIh|lKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

190 bases = get_args(annotation) 2F ne^i_i}lfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqere^ljm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$e_lnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyf`lsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDg{lBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIh|lKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

191 if len(bases) > 2: 2F ne^i_i}lfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqere^ljm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$e_lnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyf`lsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDg{lBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIh|lKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

192 raise ValueError( 

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

194 ) 

195 # Non optional unions are not allowed 

196 if bases[0] is not NoneType and bases[1] is not NoneType: 2F ne^i_i}lfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqere^ljm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$e_lnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyf`lsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDg{lBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIh|lKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

197 raise ValueError( 2?m]m`m}mbnen

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

199 ) 

200 # Optional unions are allowed 

201 use_type = bases[0] if bases[0] is not NoneType else bases[1] 2F ne^i_i}lfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqere^ljm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$e_lnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyf`lsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDg{lBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIh|lKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

202 return get_sa_type_from_type_annotation(use_type) 2F ne^i_i}lfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqere^ljm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$e_lnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyf`lsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDg{lBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIh|lKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

203 return origin 2;m=m@m[m^m_m{m|m~mancndn

204 

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

206 type_: Any = field.annotation 2F ne^i_i}lrnsnfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqere^ltnunjm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$e_lvnwnnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyf`lxnynsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDg{lznAnBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIh|lBnCnKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

207 return get_sa_type_from_type_annotation(type_) 2F ne^i_i}lrnsnfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqere^ltnunjm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$e_lvnwnnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyf`lxnynsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDg{lznAnBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIh|lBnCnKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

208 

209 def get_field_metadata(field: Any) -> Any: 1Fabcde

210 for meta in field.metadata: 2F ne^i_i}lrnsnfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqere^ltnunjm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$e_lvnwnnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyf`lxnynsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDg{lznAnBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIh|lBnCnKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

211 if isinstance(meta, (PydanticMetadata, MaxLen)): 2nebecedeeefegeheie

212 return meta 2nebecedeeefegeheie

213 return FakeMetadata() 2F ne^i_i}lrnsnfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqere^ltnunjm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$e_lvnwnnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyf`lxnynsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDg{lznAnBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIh|lBnCnKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

214 

215 def post_init_field_info(field_info: FieldInfo) -> None: 1Fabcde

216 return None 2F ne^i_i}lrnsnfm2m(mboNoOoNn)j)npe6j7j8jfn/j~lgnPomkXnYn5n9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqere^ltnunjm3m)mcoQoRoJnOj#njeKiLiMihn*jaminSonkOnPnZnNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$e_lvnwnnm4m*mdoToUoKnPj$nkeTiUiVijn+jbmknVookQnRn0nWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyf`lxnynsm5m+meoWoXoLnQj%nle2i3i4iln,jcmmnYopkSnTn1n5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDg{lznAnBm6m,mfoZo0oMnRj'nme)i*i+inn-jdmon1oqkUnVn2n,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIh|lBnCnKm7m-mgo2o3oWn(j/noeSjTjUjpn.jemqn4ork3n4n6nVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

217 

218 # Dummy to make it importable 

219 def _calculate_keys( 1abcde

220 self: "SQLModel", 1abcde

221 include: Optional[Mapping[Union[int, str], Any]], 1abcde

222 exclude: Optional[Mapping[Union[int, str], Any]], 1abcde

223 exclude_unset: bool, 1abcde

224 update: Optional[Dict[str, Any]] = None, 1Fabcde

225 ) -> Optional[AbstractSet[str]]: # pragma: no cover 1Fabcde

226 return None 

227 

228 def sqlmodel_table_construct( 1abcde

229 *, 

230 self_instance: _TSQLModel, 

231 values: Dict[str, Any], 

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

233 ) -> _TSQLModel: 

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

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

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

237 # set relationships 

238 # SQLModel override to get class SQLAlchemy __dict__ attributes and 

239 # set them back in after creating the object 

240 # new_obj = cls.__new__(cls) 

241 cls = type(self_instance) 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

242 old_dict = self_instance.__dict__.copy() 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

243 # End SQLModel override 

244 

245 fields_values: Dict[str, Any] = {} 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

246 defaults: Dict[ 2Tmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

247 str, Any 

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

249 for name, field in cls.model_fields.items(): 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

250 if field.alias and field.alias in values: 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

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

252 elif name in values: 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

253 fields_values[name] = values.pop(name) 2.m(l)llkne^i_ipe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqerejeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$ekeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyfle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDgme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIhoeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

254 elif not field.is_required(): 2.m(l)llkne^i_i}l)jpe6j7j8j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMiNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiViWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUjVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

255 defaults[name] = field.get_default(call_default_factory=True) 2.m(l)llkne^i_i}l)jpe6j7j8j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMiNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiViWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUjVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

256 if _fields_set is None: 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

257 _fields_set = set(fields_values.keys()) 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

258 fields_values.update(defaults) 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

259 

260 _extra: Union[Dict[str, Any], None] = None 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

261 if cls.model_config.get("extra") == "allow": 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

262 _extra = {} 

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

264 _extra[k] = v 

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

266 # else: 

267 # fields_values.update(values) 

268 # End SQLModel override 

269 # SQLModel override 

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

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

272 # instrumentation 

273 for key, value in {**old_dict, **fields_values}.items(): 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

274 setattr(self_instance, key, value) 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

275 # End SQLModel override 

276 object.__setattr__(self_instance, "__pydantic_fields_set__", _fields_set) 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

277 if not cls.__pydantic_root_model__: 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

278 object.__setattr__(self_instance, "__pydantic_extra__", _extra) 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

279 

280 if cls.__pydantic_post_init__: 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

281 self_instance.model_post_init(None) 

282 elif not cls.__pydantic_root_model__: 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

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

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

285 object.__setattr__(self_instance, "__pydantic_private__", None) 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

286 # SQLModel override, set relationships 

287 # Get and set any relationship objects 

288 for key in self_instance.__sqlmodel_relationships__: 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

289 value = values.get(key, Undefined) 2pewcxc.c/c4cyczcAcBcCcDcEcFcGcHcIcjeG H WcXcJcI J K L M N O P Q R S keT abU V Yc5cZc6cKcLcW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lble7 mbnb8 9 ! 0c7c8c1c9c!cMcNcOc# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJbme/ KbLb: ; = 2c#c$c3c%c'cPcQcRc? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7boe8b`b{b9b!b#b(c*c+c)c,c-cTcUcVc$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

290 if value is not Undefined: 2pewcxc.c/c4cyczcAcBcCcDcEcFcGcHcIcjeG H WcXcJcI J K L M N O P Q R S keT abU V Yc5cZc6cKcLcW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lble7 mbnb8 9 ! 0c7c8c1c9c!cMcNcOc# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJbme/ KbLb: ; = 2c#c$c3c%c'cPcQcRc? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7boe8b`b{b9b!b#b(c*c+c)c,c-cTcUcVc$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

291 setattr(self_instance, key, value) 2pewcxc.c/c4cyczcAcBcCcDcEcFcGcHcIcjeG H WcXcJcI J K L M N O P Q R S keT abU V Yc5cZc6cKcLcW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lble7 mbnb8 9 ! 0c7c8c1c9c!cMcNcOc# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJbme/ KbLb: ; = 2c#c$c3c%c'cPcQcRc? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7boe8b`b{b9b!b#b(c*c+c)c,c-cTcUcVc$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

292 # End SQLModel override 

293 return self_instance 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

294 

295 def sqlmodel_validate( 1abcde

296 cls: Type[_TSQLModel], 

297 obj: Any, 

298 *, 

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

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

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

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

303 ) -> _TSQLModel: 

304 if not is_table_model_class(cls): 2*l+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD xdE ydSc*nQkRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b+n3k4k5k6k7k8k9k!k#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b,n:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[b-nnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_b.nOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc:n

305 new_obj: _TSQLModel = cls.__new__(cls) 2:mDn*n8mEn+n9mFn,n!mGn-n#mHn.n/mIn:n

306 else: 

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

308 # the _sa_instance_state attribute 

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

310 with partial_init(): 2*l+l,l-l.l/l:l;l=l?l@l[l]lwd|d}d~daeD xdE ydScQkRkSkTkUkVkWkXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[bnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_bOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc

311 new_obj = cls() 2*l+l,l-l.l/l:l;l=l?l@l[l]lwd|d}d~daeD xdE ydScQkRkSkTkUkVkWkXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[bnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_bOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc

312 # SQLModel Override to get class SQLAlchemy __dict__ attributes and 

313 # set them back in after creating the object 

314 old_dict = new_obj.__dict__.copy() 2*l+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD xdE ydSc*nQkRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b+n3k4k5k6k7k8k9k!k#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b,n:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[b-nnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_b.nOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc:n

315 use_obj = obj 2*l+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD xdE ydSc*nQkRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b+n3k4k5k6k7k8k9k!k#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b,n:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[b-nnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_b.nOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc:n

316 if isinstance(obj, dict) and update: 2*l+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD xdE ydSc*nQkRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b+n3k4k5k6k7k8k9k!k#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b,n:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[b-nnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_b.nOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc:n

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

318 elif update: 2*l+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD xdE ydSc*nQkRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b+n3k4k5k6k7k8k9k!k#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b,n:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[b-nnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_b.nOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc:n

319 use_obj = ObjectWithUpdateWrapper(obj=obj, update=update) 2Sc:b;b=b?b@b[b]b^b_btcucvc

320 cls.__pydantic_validator__.validate_python( 2*l+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD xdE ydSc*nQkRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b+n3k4k5k6k7k8k9k!k#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b,n:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[b-nnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_b.nOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc:n

321 use_obj, 

322 strict=strict, 

323 from_attributes=from_attributes, 

324 context=context, 

325 self_instance=new_obj, 

326 ) 

327 # Capture fields set to restore it later 

328 fields_set = new_obj.__pydantic_fields_set__.copy() 2*l+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD xdE ydSc*nQkRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b+n3k4k5k6k7k8k9k!k#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b,n:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[b-nnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_b.nOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc:n

329 if not is_table_model_class(cls): 2*l+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD xdE ydSc*nQkRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b+n3k4k5k6k7k8k9k!k#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b,n:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[b-nnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_b.nOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc:n

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

331 new_obj.__dict__ = {**old_dict, **new_obj.__dict__} 2:mDn*n8mEn+n9mFn,n!mGn-n#mHn.n/mIn:n

332 else: 

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

334 # instrumentation 

335 for key, value in {**old_dict, **new_obj.__dict__}.items(): 2*l+l,l-l.l/l:l;l=l?l@l[l]lwd|d}d~daeD xdE ydScQkRkSkTkUkVkWkXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[bnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_bOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc

336 setattr(new_obj, key, value) 2*l+l,l-l.l/l:l;l=l?l@l[l]lwd|d}d~daeD xdE ydScQkRkSkTkUkVkWkXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[bnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_bOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc

337 # Restore fields set 

338 object.__setattr__(new_obj, "__pydantic_fields_set__", fields_set) 2*l+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD xdE ydSc*nQkRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b+n3k4k5k6k7k8k9k!k#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b,n:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[b-nnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_b.nOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc:n

339 # Get and set any relationship objects 

340 if is_table_model_class(cls): 2*l+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD xdE ydSc*nQkRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b+n3k4k5k6k7k8k9k!k#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b,n:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[b-nnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_b.nOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc:n

341 for key in new_obj.__sqlmodel_relationships__: 2*l+l,l-l.l/l:l;l=l?l@l[l]lwd|d}d~daeD xdE ydScQkRkSkTkUkVkWkXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[bnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_bOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc

342 value = getattr(use_obj, key, Undefined) 1DEfghniojpqkrsltumvwxzAyBC

343 if value is not Undefined: 1DEfghniojpqkrsltumvwxzAyBC

344 setattr(new_obj, key, value) 

345 return new_obj 2*l+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD xdE ydSc*nQkRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b+n3k4k5k6k7k8k9k!k#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b,n:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[b-nnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_b.nOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc:n

346 

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

348 old_dict = self.__dict__.copy() 2|n*lzoAo.m(l)llk+l,l-l.l/l:lne^i_i}l;n:mNn)j)npe6j7j8j/jXnYn5n9j`i{iwcxc|i}i~iajbjcjdjejfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNj=nQkhoioTmsktk]jRkSkTkUkVkWkbeqere^l7n8mJnOj#njeKiLiMi*jOnPnZnNiseteG H uevewexeyezeAeBeCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e?n3kjokoUmukvk^j4k5k6k7k8k9k@n!klomoVmwkxk_j#k$k%k'k(k)kce#e$e_l8n9mKnPj$nkeTiUiVi+jQnRn0nWi%e'eT abU V (e)e*e+e,e-e.e/e:e;e*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfuf[n:knoooWmykzk`j;k=k?k@k[k]k]n^kpoqoXmAkBk{j_k`k{k|k}k~k^nalrosoYmCkDk|jblcldlelflgldeeevfwfxfyf`l9n!mLnQj%nle2i3i4i,jSnTn1n5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg_nnltouoZmEkFk}jolplqlrlsltl`nulvowo0mGkHk~jvlwlxlylzlAl{nBlxoyo1mIkJkakClDlElFlGlHlfegeAgBgCgDg{l!n#mMnRj'nme)i*i+i-jUnVn2n,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh}nOlBoCo$mKkLkikPlQlRlSlTlUl~nVlDoEo%mMkNkjkWlXlYlZl0l1lao2lFoGo'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh|l(n/mWn(j/noeSjTjUj.j3n4n6nVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

349 if not is_table_model_class(self.__class__): 2|n*lzoAo.m(l)llk+l,l-l.l/l:lne^i_i}l;n:mNn)j)npe6j7j8j/jXnYn5n9j`i{iwcxc|i}i~iajbjcjdjejfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNj=nQkhoioTmsktk]jRkSkTkUkVkWkbeqere^l7n8mJnOj#njeKiLiMi*jOnPnZnNiseteG H uevewexeyezeAeBeCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e?n3kjokoUmukvk^j4k5k6k7k8k9k@n!klomoVmwkxk_j#k$k%k'k(k)kce#e$e_l8n9mKnPj$nkeTiUiVi+jQnRn0nWi%e'eT abU V (e)e*e+e,e-e.e/e:e;e*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfuf[n:knoooWmykzk`j;k=k?k@k[k]k]n^kpoqoXmAkBk{j_k`k{k|k}k~k^nalrosoYmCkDk|jblcldlelflgldeeevfwfxfyf`l9n!mLnQj%nle2i3i4i,jSnTn1n5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg_nnltouoZmEkFk}jolplqlrlsltl`nulvowo0mGkHk~jvlwlxlylzlAl{nBlxoyo1mIkJkakClDlElFlGlHlfegeAgBgCgDg{l!n#mMnRj'nme)i*i+i-jUnVn2n,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh}nOlBoCo$mKkLkikPlQlRlSlTlUl~nVlDoEo%mMkNkjkWlXlYlZl0l1lao2lFoGo'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh|l(n/mWn(j/noeSjTjUj.j3n4n6nVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

350 self.__pydantic_validator__.validate_python( 2|n*lzoAolk+l,l-l.l/l:l;n:mNn)nXnYn5n;l=l?l@l[l]lwd|d}d~daeD xdE ydSc=nQkhoio]jRkSkTkUkVkWk7n8mJn#nOnPnZnXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b?n3kjoko^j4k5k6k7k8k9k@n!klomo_j#k$k%k'k(k)k8n9mKn$nQnRn0n*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b[n:knooo`j;k=k?k@k[k]k]n^kpoqo{j_k`k{k|k}k~k^nalroso|jblcldlelflgl9n!mLn%nSnTn1nhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[b_nnltouo}jolplqlrlsltl`nulvowo~jvlwlxlylzlAl{nBlxoyoakClDlElFlGlHl!n#mMn'nUnVn2nIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_b}nOlBoCoikPlQlRlSlTlUl~nVlDoEojkWlXlYlZl0l1lao2lFoGokk3l4l5l6l7l8l(n/mWn/n3n4n6n9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc

351 data, 

352 self_instance=self, 

353 ) 

354 else: 

355 sqlmodel_table_construct( 2.m(l)llkne^i_i}l)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj.dhjijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjTmsktk]jbeqere^lOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDezdEeFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eUmukvk^jVmwkxk_jce#e$e_lPjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;eAdBd=e?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufWmykzk`jXmAkBk{jYmCkDk|jdeeevfwfxfyf`lQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfCdDdEdXfYfZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgZmEkFk}j0mGkHk~j1mIkJkakfegeAgBgCgDg{lRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gFdGdHd2g3g4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh$mKkLkik%mMkNkjk'mOkPkkkheieFhGhHhIh|l(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6hIdJdKd7h8h9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

356 self_instance=self, 

357 values=data, 

358 ) 

359 object.__setattr__( 2|n*l.m(l)llk+l,l-l.l/l:lne^i_i}l;n:mNn)jpe6j7j8j/jXnYn5n9j`i{iwcxc|i}i~iajbjcjdjejfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNj=nQkTmsktk]jRkSkTkUkVkWkbeqere^l7n8mJnOjjeKiLiMi*jOnPnZnNiseteG H uevewexeyezeAeBeCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e?n3kUmukvk^j4k5k6k7k8k9k@n!kVmwkxk_j#k$k%k'k(k)kce#e$e_l8n9mKnPjkeTiUiVi+jQnRn0nWi%e'eT abU V (e)e*e+e,e-e.e/e:e;e*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfuf[n:kWmykzk`j;k=k?k@k[k]k]n^kXmAkBk{j_k`k{k|k}k~k^nalYmCkDk|jblcldlelflgldeeevfwfxfyf`l9n!mLnQjle2i3i4i,jSnTn1n5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzg_nnlZmEkFk}jolplqlrlsltl`nul0mGkHk~jvlwlxlylzlAl{nBl1mIkJkakClDlElFlGlHlfegeAgBgCgDg{l!n#mMnRjme)i*i+i-jUnVn2n,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEh}nOl$mKkLkikPlQlRlSlTlUl~nVl%mMkNkjkWlXlYlZl0l1lao2l'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh|l(n/mWn(joeSjTjUj.j3n4n6nVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

360 self, 

361 "__dict__", 

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

363 ) 

364 

365else: 

366 from pydantic import BaseConfig as BaseConfig # type: ignore[assignment] 1Fabcde

367 from pydantic.errors import ConfigError 1Fabcde

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

369 SHAPE_SINGLETON, 

370 ModelField, 

371 ) 

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

373 Undefined as Undefined, # noqa 

374 ) 

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

376 UndefinedType as UndefinedType, 

377 ) 

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

379 ModelMetaclass as ModelMetaclass, 

380 ) 

381 from pydantic.main import validate_model 1Fabcde

382 from pydantic.typing import resolve_annotations 1Fabcde

383 from pydantic.utils import ROOT_KEY, ValueItems 1Fabcde

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

385 Representation as Representation, 

386 ) 

387 

388 class SQLModelConfig(BaseConfig): # type: ignore[no-redef] 1Fabcde

389 table: Optional[bool] = None # type: ignore[misc] 1Fabcde

390 registry: Optional[Any] = None # type: ignore[misc] 1Fabcde

391 

392 def get_config_value( 1abcde

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

394 ) -> Any: 

395 return getattr(model.__config__, parameter, default) # type: ignore[union-attr] 2F ne^i_irnsnfm2m(mboNn)j)npe6j7j8jfn/j~lgnmkXnYn5n9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjLoa beqeretnunjm3m)mcoJnOj#njeKiLiMihn*jaminnkOnPnZnNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eHob ce#e$evnwnnm4m*mdoKnPj$nkeTiUiVijn+jbmknokQnRn0nWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufIoc deeevfwfxfyfxnynsm5m+meoLnQj%nle2i3i4iln,jcmmnpkSnTn1n5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgJod fegeAgBgCgDgznAnBm6m,mfoMnRj'nme)i*i+inn-jdmonqkUnVn2n,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhKoe heieFhGhHhIhBnCnKm7m-mgoWn(j/noeSjTjUjpn.jemqnrk3n4n6nVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiMo

396 

397 def set_config_value( 1abcde

398 *, 

399 model: InstanceOrType["SQLModel"], 

400 parameter: str, 

401 value: Any, 

402 ) -> None: 

403 setattr(model.__config__, parameter, value) # type: ignore 2F ne^i_irnsnfm2m(mbo)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqeretnunjm3m)mcoOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$evnwnnm4m*mdoPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfxnynsm5m+meoQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgznAnBm6m,mfoRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhBnCnKm7m-mgo(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

404 

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

406 return model.__fields__ # type: ignore 2F ne^i_irnsnfm2m(mbo)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqeretnunjm3m)mcoOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$evnwnnm4m*mdoPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfxnynsm5m+meoQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgznAnBm6m,mfoRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhBnCnKm7m-mgo(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

407 

408 def get_fields_set( 1abcde

409 object: InstanceOrType["SQLModel"], 

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

411 return object.__fields_set__ 2NnJnKnLnMnWn

412 

413 def init_pydantic_private_attrs(new_object: InstanceOrType["SQLModel"]) -> None: 1Fabcde

414 object.__setattr__(new_object, "__fields_set__", set()) 2|n*lzoAo.m(l)llk+l,l-l.l/l:lne^i_i;n:mDnNn)j)npe6j7j8j/jXnYn5n9j`i{iwcxc|i}i~iajbjcjdjejfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjLo=nQkhoioTmsktk]jRkSkTkUkVkWkbeqere7n8mEnJnOj#njeKiLiMi*jOnPnZnNiseteG H uevewexeyezeAeBeCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eHo?n3kjokoUmukvk^j4k5k6k7k8k9k@n!klomoVmwkxk_j#k$k%k'k(k)kce#e$e8n9mFnKnPj$nkeTiUiVi+jQnRn0nWi%e'eT abU V (e)e*e+e,e-e.e/e:e;e*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufIo[n:knoooWmykzk`j;k=k?k@k[k]k]n^kpoqoXmAkBk{j_k`k{k|k}k~k^nalrosoYmCkDk|jblcldlelflgldeeevfwfxfyf9n!mGnLnQj%nle2i3i4i,jSnTn1n5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgJo_nnltouoZmEkFk}jolplqlrlsltl`nulvowo0mGkHk~jvlwlxlylzlAl{nBlxoyo1mIkJkakClDlElFlGlHlfegeAgBgCgDg!n#mHnMnRj'nme)i*i+i-jUnVn2n,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhKo}nOlBoCo$mKkLkikPlQlRlSlTlUl~nVlDoEo%mMkNkjkWlXlYlZl0l1lao2lFoGo'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh(n/mInWn(j/noeSjTjUj.j3n4n6nVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiMo

415 

416 def get_annotations(class_dict: Dict[str, Any]) -> Dict[str, Any]: 1Fabcde

417 return resolve_annotations( # type: ignore[no-any-return] 2F ne^i_irnsnfm2m(mboNn)j)npe6j7j8jfn/j~lgnmkXnYn5n9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjLoa beqeretnunjm3m)mcoJnOj#njeKiLiMihn*jaminnkOnPnZnNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eHob ce#e$evnwnnm4m*mdoKnPj$nkeTiUiVijn+jbmknokQnRn0nWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufIoc deeevfwfxfyfxnynsm5m+meoLnQj%nle2i3i4iln,jcmmnpkSnTn1n5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgJod fegeAgBgCgDgznAnBm6m,mfoMnRj'nme)i*i+inn-jdmonqkUnVn2n,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhKoe heieFhGhHhIhBnCnKm7m-mgoWn(j/noeSjTjUjpn.jemqnrk3n4n6nVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiMo

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

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

420 ) 

421 

422 def is_table_model_class(cls: Type[Any]) -> bool: 1Fabcde

423 config = getattr(cls, "__config__", None) 2F |n*lzoAo.m(l)llk+l,l-l.l/l:lne^i_i;n:mrnsnfm2m(mboNn)j)npe6j7j8jfn/j~lgnmkXnYn5n9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjLoa =nQkhoioTmsktk]jRkSkTkUkVkWkbeqere7n8mtnunjm3m)mcoJnOj#njeKiLiMihn*jaminnkOnPnZnNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eHob ?n3kjokoUmukvk^j4k5k6k7k8k9k@n!klomoVmwkxk_j#k$k%k'k(k)kce#e$e8n9mvnwnnm4m*mdoKnPj$nkeTiUiVijn+jbmknokQnRn0nWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufIoc [n:knoooWmykzk`j;k=k?k@k[k]k]n^kpoqoXmAkBk{j_k`k{k|k}k~k^nalrosoYmCkDk|jblcldlelflgldeeevfwfxfyf9n!mxnynsm5m+meoLnQj%nle2i3i4iln,jcmmnpkSnTn1n5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAmhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgJod _nnltouoZmEkFk}jolplqlrlsltl`nulvowo0mGkHk~jvlwlxlylzlAl{nBlxoyo1mIkJkakClDlElFlGlHlfegeAgBgCgDg!n#mznAnBm6m,mfoMnRj'nme)i*i+inn-jdmonqkUnVn2n,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhKoe }nOlBoCo$mKkLkikPlQlRlSlTlUl~nVlDoEo%mMkNkjkWlXlYlZl0l1lao2lFoGo'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh(n/mBnCnKm7m-mgoWn(j/noeSjTjUjpn.jemqnrk3n4n6nVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSm9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiMo

424 if config: 2F |n*lzoAo.m(l)llk+l,l-l.l/l:lne^i_i;n:mrnsnfm2m(mboNn)j)npe6j7j8jfn/j~lgnmkXnYn5n9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjLoa =nQkhoioTmsktk]jRkSkTkUkVkWkbeqere7n8mtnunjm3m)mcoJnOj#njeKiLiMihn*jaminnkOnPnZnNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eHob ?n3kjokoUmukvk^j4k5k6k7k8k9k@n!klomoVmwkxk_j#k$k%k'k(k)kce#e$e8n9mvnwnnm4m*mdoKnPj$nkeTiUiVijn+jbmknokQnRn0nWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufIoc [n:knoooWmykzk`j;k=k?k@k[k]k]n^kpoqoXmAkBk{j_k`k{k|k}k~k^nalrosoYmCkDk|jblcldlelflgldeeevfwfxfyf9n!mxnynsm5m+meoLnQj%nle2i3i4iln,jcmmnpkSnTn1n5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAmhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgJod _nnltouoZmEkFk}jolplqlrlsltl`nulvowo0mGkHk~jvlwlxlylzlAl{nBlxoyo1mIkJkakClDlElFlGlHlfegeAgBgCgDg!n#mznAnBm6m,mfoMnRj'nme)i*i+inn-jdmonqkUnVn2n,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhKoe }nOlBoCo$mKkLkikPlQlRlSlTlUl~nVlDoEo%mMkNkjkWlXlYlZl0l1lao2lFoGo'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh(n/mBnCnKm7m-mgoWn(j/noeSjTjUjpn.jemqnrk3n4n6nVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSm9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiMo

425 return getattr(config, "table", False) 2F |n*lzoAo.m(l)llk+l,l-l.l/l:lne^i_i;n:mrnsnfm2m(mboNn)j)npe6j7j8jfn/j~lgnmkXnYn5n9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjLoa =nQkhoioTmsktk]jRkSkTkUkVkWkbeqere7n8mtnunjm3m)mcoJnOj#njeKiLiMihn*jaminnkOnPnZnNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eHob ?n3kjokoUmukvk^j4k5k6k7k8k9k@n!klomoVmwkxk_j#k$k%k'k(k)kce#e$e8n9mvnwnnm4m*mdoKnPj$nkeTiUiVijn+jbmknokQnRn0nWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufIoc [n:knoooWmykzk`j;k=k?k@k[k]k]n^kpoqoXmAkBk{j_k`k{k|k}k~k^nalrosoYmCkDk|jblcldlelflgldeeevfwfxfyf9n!mxnynsm5m+meoLnQj%nle2i3i4iln,jcmmnpkSnTn1n5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAmhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgJod _nnltouoZmEkFk}jolplqlrlsltl`nulvowo0mGkHk~jvlwlxlylzlAl{nBlxoyo1mIkJkakClDlElFlGlHlfegeAgBgCgDg!n#mznAnBm6m,mfoMnRj'nme)i*i+inn-jdmonqkUnVn2n,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhKoe }nOlBoCo$mKkLkikPlQlRlSlTlUl~nVlDoEo%mMkNkjkWlXlYlZl0l1lao2lFoGo'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh(n/mBnCnKm7m-mgoWn(j/noeSjTjUjpn.jemqnrk3n4n6nVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSm9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiMo

426 return False 

427 

428 def get_relationship_to( 1abcde

429 name: str, 

430 rel_info: "RelationshipInfo", 

431 annotation: Any, 

432 ) -> Any: 

433 temp_field = ModelField.infer( # type: ignore[attr-defined] 2mkwcxcD E .c/c4cyczc:jAcBcCcDcEcFcGcHcIcnkG H f g WcXcJcI J ;jK L M N O P Q R S okT abU V h n i o Yc5cZc6cKcLcW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbpk7 mbnb8 9 ! j p q k r s 0c7c8c1c9c!cMcNcOc# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJbqk/ KbLb: ; = l t u m v w 2c#c$c3c%c'cPcQcRc? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7brk8b`b{b9b!b#bx z A y B C (c*c+c)c,c-cTcUcVc$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

434 name=name, 

435 value=rel_info, 

436 annotation=annotation, 

437 class_validators=None, 

438 config=SQLModelConfig, 

439 ) 

440 relationship_to = temp_field.type_ 2mkwcxcD E .c/c4cyczc:jAcBcCcDcEcFcGcHcIcnkG H f g WcXcJcI J ;jK L M N O P Q R S okT abU V h n i o Yc5cZc6cKcLcW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbpk7 mbnb8 9 ! j p q k r s 0c7c8c1c9c!cMcNcOc# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJbqk/ KbLb: ; = l t u m v w 2c#c$c3c%c'cPcQcRc? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7brk8b`b{b9b!b#bx z A y B C (c*c+c)c,c-cTcUcVc$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

441 if isinstance(temp_field.type_, ForwardRef): 2mkwcxcD E .c/c4cyczc:jAcBcCcDcEcFcGcHcIcnkG H f g WcXcJcI J ;jK L M N O P Q R S okT abU V h n i o Yc5cZc6cKcLcW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbpk7 mbnb8 9 ! j p q k r s 0c7c8c1c9c!cMcNcOc# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJbqk/ KbLb: ; = l t u m v w 2c#c$c3c%c'cPcQcRc? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7brk8b`b{b9b!b#bx z A y B C (c*c+c)c,c-cTcUcVc$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

442 relationship_to = temp_field.type_.__forward_arg__ 2mkwcxcD E .c/c4cyczc:jAcBcCcDcEcFcGcHcIcnkG H f g WcXcJcI J ;jK L M N O P Q R S okT abU V h n i o Yc5cZc6cKcLcW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbpk7 mbnb8 9 ! j p q k r s 0c7c8c1c9c!cMcNcOc# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJbqk/ KbLb: ; = l t u m v w 2c#c$c3c%c'cPcQcRc? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7brk8b`b{b9b!b#bx z A y B C (c*c+c)c,c-cTcUcVc$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

443 return relationship_to 2mkwcxcD E .c/c4cyczc:jAcBcCcDcEcFcGcHcIcnkG H f g WcXcJcI J ;jK L M N O P Q R S okT abU V h n i o Yc5cZc6cKcLcW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbpk7 mbnb8 9 ! j p q k r s 0c7c8c1c9c!cMcNcOc# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJbqk/ KbLb: ; = l t u m v w 2c#c$c3c%c'cPcQcRc? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7brk8b`b{b9b!b#bx z A y B C (c*c+c)c,c-cTcUcVc$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

444 

445 def is_field_noneable(field: "FieldInfo") -> bool: 1Fabcde

446 if not field.required: # type: ignore[attr-defined] 2F ne^i_irnsnfm2m(m)jpe6j7j8j/j~lmk9j`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqeretnunjm3m)mOjjeKiLiMi*jamnkNiseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$evnwnnm4m*mPjkeTiUiVi+jbmokWi%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfxnynsm5m+mQjle2i3i4i,jcmpk5izfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgznAnBm6m,mRjme)i*i+i-jdmqk,iEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhBnCnKm7m-m(joeSjTjUj.jemrkVjJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

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

448 return field.allow_none and ( # type: ignore[attr-defined] 2F ne^i_ifm2m)jpe6j7j8j/j~lmk9j`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqerejm3mOjjeKiLiMi*jamnkNiseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$enm4mPjkeTiUiVi+jbmokWi%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfsm5mQjle2i3i4i,jcmpk5izfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgBm6mRjme)i*i+i-jdmqk,iEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhKm7m(joeSjTjUj.jemrkVjJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

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

450 ) 

451 return field.allow_none # type: ignore[no-any-return, attr-defined] 2F ne^i_irnsnfm(m)jpe6j7j8j~lmk9j`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqeretnunjm)mOjjeKiLiMiamnkNiseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$evnwnnm*mPjkeTiUiVibmokWi%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfxnynsm+mQjle2i3i4icmpk5izfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgznAnBm,mRjme)i*i+idmqk,iEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhBnCnKm-m(joeSjTjUjemrkVjJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

452 

453 def get_sa_type_from_field(field: Any) -> Any: 1Fabcde

454 if isinstance(field.type_, type) and field.shape == SHAPE_SINGLETON: 2F ne^i_irnsnfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqeretnunjm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$evnwnnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfxnynsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgznAnBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhBnCnKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

455 return field.type_ 2F ne^i_irnsnfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqeretnunjm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$evnwnnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfxnynsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgznAnBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhBnCnKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

456 raise ValueError(f"The field {field.name} has no matching SQLAlchemy type") 2;m=m?m@m[m]m^m_m`m{m|m}m~manbncndnen

457 

458 def get_field_metadata(field: Any) -> Any: 1Fabcde

459 metadata = FakeMetadata() 2F ne^i_irnsnfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqeretnunjm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$evnwnnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfxnynsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgznAnBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhBnCnKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

460 metadata.max_length = field.field_info.max_length 2F ne^i_irnsnfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqeretnunjm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$evnwnnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfxnynsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgznAnBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhBnCnKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

461 metadata.max_digits = getattr(field.type_, "max_digits", None) 2F ne^i_irnsnfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqeretnunjm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$evnwnnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfxnynsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgznAnBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhBnCnKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

462 metadata.decimal_places = getattr(field.type_, "decimal_places", None) 2F ne^i_irnsnfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqeretnunjm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$evnwnnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfxnynsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgznAnBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhBnCnKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

463 return metadata 2F ne^i_irnsnfm2m(m)jpe6j7j8jfn/j~lgnmk9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqeretnunjm3m)mOjjeKiLiMihn*jaminnkNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$evnwnnm4m*mPjkeTiUiVijn+jbmknokWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfxnynsm5m+mQjle2i3i4iln,jcmmnpk5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgznAnBm6m,mRjme)i*i+inn-jdmonqk,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhBnCnKm7m-m(joeSjTjUjpn.jemqnrkVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

464 

465 def post_init_field_info(field_info: FieldInfo) -> None: 1Fabcde

466 field_info._validate() # type: ignore[attr-defined] 2F ne^i_irnsnfm2m(mboNoOoNn)j)npe6j7j8jfn/j~lgnPomkXnYn5n9j;m=m?m`i{iwcxcgm|i}i~iajbjcjdjejhmimfjgjwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczc:jAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNja beqeretnunjm3m)mcoQoRoJnOj#njeKiLiMihn*jaminSonkOnPnZnNi@m[m]mseteG H kmuevewexeyezeAeBelmmmCeDe:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J ;jK L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eb ce#e$evnwnnm4m*mdoToUoKnPj$nkeTiUiVijn+jbmknVookQnRn0nWi^m_m`m%e'eT abU V om(e)e*e+e,e-e.e/epmqm:e;erm?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cb=jbkY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufc deeevfwfxfyfxnynsm5m+meoWoXoLnQj%nle2i3i4iln,jcmmnYopkSnTn1n5i{m|m}mzfAfBfCf7 mbnb8 9 ! tmumDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfvmwmxmymTfUfVfWfzmAm`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb?jckdk% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgd fegeAgBgCgDgznAnBm6m,mfoZo0oMnRj'nme)i*i+inn-jdmon1oqkUnVn2n,i~manbnEgFgGgHg/ KbLb: ; = CmDmIgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgEmFmGmHmYgZg0g1gImJmedfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb@jekfk[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhe heieFhGhHhIhBnCnKm7m-mgo2o3oWn(j/noeSjTjUjpn.jemqn4ork3n4n6nVjcndnenJhKhLhMh8b`b{b9b!b#bLmMmNhOhPhQhRhShThUhVhWhXhYhZh0h1h2hNmOmPmQm3h4h5h6hRmSmndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac[jgkhk'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

467 

468 def _calculate_keys( 1abcde

469 self: "SQLModel", 

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

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

472 exclude_unset: bool, 

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

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

475 if include is None and exclude is None and not exclude_unset: 2*l(l)llk+l,l-l.l/l:lne^i_i;n`i{iwcxc|i}i~iajbjcjdjejfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjjkjljmjnj.c/c4cojpjqjrjsjtjujyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjQksktk]jRkSkTkUkVkWkbeqere7nseteG H uevewexeyezeAeBeCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeHeIeJeKeWcXcJcLeMeNeOePeQeReI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e3kukvk^j4k5k6k7k8k9k!kwkxk_j#k$k%k'k(k)kce#e$e8n%e'eT abU V (e)e*e+e,e-e.e/e:e;e*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@e[e]e^e_eYc5cZc6cKcLc`e{e|e}e~eafbfW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfuf:kykzk`j;k=k?k@k[k]k^kAkBk{j_k`k{k|k}k~kalCkDk|jblcldlelflgldeeevfwfxfyf9nzfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f%f'f(f)f*f+f,f-f.f/f:f;f# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgnlEkFk}jolplqlrlsltlulGkHk~jvlwlxlylzlAlBlIkJkakClDlElFlGlHlfegeAgBgCgDg!nEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g+g,g-g.g/g:g;g=g?g@g[g]g? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhOlKkLkikPlQlRlSlTlUlVlMkNkjkWlXlYlZl0l1l2lOkPkkk3l4l5l6l7l8lheieFhGhHhIh(nJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$h%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h:h;h=h?h@h[h]h^h_h`h{h|h$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

476 # Original in Pydantic: 

477 # return None 

478 # Updated to not return SQLAlchemy attributes 

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

480 # recursion, or traversing the whole database 

481 return ( 2Qksktk]jRkSkTkUkVkWkbeqere7nseteG H uevewexeyezeAeBeCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeHeIeJeKeWcXcJcLeMeNeOePeQeReI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e3kukvk^j4k5k6k7k8k9k!kwkxk_j#k$k%k'k(k)kce#e$e8n%e'eT abU V (e)e*e+e,e-e.e/e:e;e*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@e[e]e^e_eYc5cZc6cKcLc`e{e|e}e~eafbfW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfuf:kykzk`j;k=k?k@k[k]k^kAkBk{j_k`k{k|k}k~kalCkDk|jblcldlelflgldeeevfwfxfyf9nzfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f%f'f(f)f*f+f,f-f.f/f:f;f# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgnlEkFk}jolplqlrlsltlulGkHk~jvlwlxlylzlAlBlIkJkakClDlElFlGlHlfegeAgBgCgDg!nEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g+g,g-g.g/g:g;g=g?g@g[g]g? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhOlKkLkikPlQlRlSlTlUlVlMkNkjkWlXlYlZl0l1l2lOkPkkk3l4l5l6l7l8lheieFhGhHhIh(nJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$h%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h:h;h=h?h@h[h]h^h_h`h{h|h$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

482 self.__fields__.keys() # noqa 

483 ) # | self.__sqlmodel_relationships__.keys() 

484 

485 keys: AbstractSet[str] 

486 if exclude_unset: 2lkwdD xdE ydSc]j:cf ;cg =c:b^j_j?c@ch n [c]ci o ^c_c;b=b`j{j|j`c{c|cj p q }c~cadk r s bdcddd?b@b[b}j~jakedfdgdl t u hdidjdm v w kdldmd]b^b_bikjkkkndodpdx z A qdrdsdy B C tdudvdtcucvc

487 keys = self.__fields_set__.copy() # noqa 2lkwdD xdE ydSc]j:cf ;cg =c:b^j_j?c@ch n [c]ci o ^c_c;b=b`j{j|j`c{c|cj p q }c~cadk r s bdcddd?b@b[b}j~jakedfdgdl t u hdidjdm v w kdldmd]b^b_bikjkkkndodpdx z A qdrdsdy B C tdudvdtcucvc

488 else: 

489 # Original in Pydantic: 

490 # keys = self.__dict__.keys() 

491 # Updated to not return SQLAlchemy attributes 

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

493 # recursion, or traversing the whole database 

494 keys = ( 

495 self.__fields__.keys() # noqa 

496 ) # | self.__sqlmodel_relationships__.keys() 

497 if include is not None: 2lkwdD xdE ydSc]j:cf ;cg =c:b^j_j?c@ch n [c]ci o ^c_c;b=b`j{j|j`c{c|cj p q }c~cadk r s bdcddd?b@b[b}j~jakedfdgdl t u hdidjdm v w kdldmd]b^b_bikjkkkndodpdx z A qdrdsdy B C tdudvdtcucvc

498 keys &= include.keys() 

499 

500 if update: 2lkwdD xdE ydSc]j:cf ;cg =c:b^j_j?c@ch n [c]ci o ^c_c;b=b`j{j|j`c{c|cj p q }c~cadk r s bdcddd?b@b[b}j~jakedfdgdl t u hdidjdm v w kdldmd]b^b_bikjkkkndodpdx z A qdrdsdy B C tdudvdtcucvc

501 keys -= update.keys() 

502 

503 if exclude: 2lkwdD xdE ydSc]j:cf ;cg =c:b^j_j?c@ch n [c]ci o ^c_c;b=b`j{j|j`c{c|cj p q }c~cadk r s bdcddd?b@b[b}j~jakedfdgdl t u hdidjdm v w kdldmd]b^b_bikjkkkndodpdx z A qdrdsdy B C tdudvdtcucvc

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

505 

506 return keys 2lkwdD xdE ydSc]j:cf ;cg =c:b^j_j?c@ch n [c]ci o ^c_c;b=b`j{j|j`c{c|cj p q }c~cadk r s bdcddd?b@b[b}j~jakedfdgdl t u hdidjdm v w kdldmd]b^b_bikjkkkndodpdx z A qdrdsdy B C tdudvdtcucvc

507 

508 def sqlmodel_validate( 1abcde

509 cls: Type[_TSQLModel], 

510 obj: Any, 

511 *, 

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

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

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

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

516 ) -> _TSQLModel: 

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

518 # Duplicated from Pydantic 

519 if not cls.__config__.orm_mode: # type: ignore[attr-defined] # noqa 2*l(l)llk+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD .dxdE ydScQksktk]jRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf zd;cg =c:b3kukvk^j4k5k6k7k8k9k!kwkxk_j#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]ci o ^c_c;b=b:kykzk`j;k=k?k@k[k]k^kAkBk{j_k`k{k|k}k~kalCkDk|jblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadk r s bdcddd?b@b[bnlEkFk}jolplqlrlsltlulGkHk~jvlwlxlylzlAlBlIkJkakClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjdm v w kdldmd]b^b_bOlKkLkikPlQlRlSlTlUlVlMkNkjkWlXlYlZl0l1l2lOkPkkk3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsdy B C tdudvdtcucvc

520 raise ConfigError( 

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

522 ) 

523 if not isinstance(obj, Mapping): 2*l(l)llk+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD .dxdE ydScQksktk]jRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf zd;cg =c:b3kukvk^j4k5k6k7k8k9k!kwkxk_j#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]ci o ^c_c;b=b:kykzk`j;k=k?k@k[k]k^kAkBk{j_k`k{k|k}k~kalCkDk|jblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadk r s bdcddd?b@b[bnlEkFk}jolplqlrlsltlulGkHk~jvlwlxlylzlAlBlIkJkakClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjdm v w kdldmd]b^b_bOlKkLkikPlQlRlSlTlUlVlMkNkjkWlXlYlZl0l1l2lOkPkkk3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsdy B C tdudvdtcucvc

524 obj = ( 2Qksktk]jRkSkTkUkVkWk8mXkYkZk0k1k2k:cLdMdNdOdf zd;cg =c:b3kukvk^j4k5k6k7k8k9k!kwkxk_j#k$k%k'k(k)k9m*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]ci o ^c_c;b=b:kykzk`j;k=k?k@k[k]k^kAkBk{j_k`k{k|k}k~kalCkDk|jblcldlelflgl!mhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadk r s bdcddd?b@b[bnlEkFk}jolplqlrlsltlulGkHk~jvlwlxlylzlAlBlIkJkakClDlElFlGlHl#mIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjdm v w kdldmd]b^b_bOlKkLkikPlQlRlSlTlUlVlMkNkjkWlXlYlZl0l1l2lOkPkkk3l4l5l6l7l8l/m9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsdy B C tdudvdtcucvc

525 {ROOT_KEY: obj} 

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

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

528 ) 

529 # SQLModel, support update dict 

530 if update is not None: 2*l(l)llk+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD .dxdE ydScQksktk]jRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf zd;cg =c:b3kukvk^j4k5k6k7k8k9k!kwkxk_j#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]ci o ^c_c;b=b:kykzk`j;k=k?k@k[k]k^kAkBk{j_k`k{k|k}k~kalCkDk|jblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadk r s bdcddd?b@b[bnlEkFk}jolplqlrlsltlulGkHk~jvlwlxlylzlAlBlIkJkakClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjdm v w kdldmd]b^b_bOlKkLkikPlQlRlSlTlUlVlMkNkjkWlXlYlZl0l1l2lOkPkkk3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsdy B C tdudvdtcucvc

531 obj = {**obj, **update} 2Sc:b;b=b?b@b[b]b^b_btcucvc

532 # End SQLModel support dict 

533 if not getattr(cls.__config__, "table", False): # noqa 2*l(l)llk+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD .dxdE ydScQksktk]jRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf zd;cg =c:b3kukvk^j4k5k6k7k8k9k!kwkxk_j#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]ci o ^c_c;b=b:kykzk`j;k=k?k@k[k]k^kAkBk{j_k`k{k|k}k~kalCkDk|jblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadk r s bdcddd?b@b[bnlEkFk}jolplqlrlsltlulGkHk~jvlwlxlylzlAlBlIkJkakClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjdm v w kdldmd]b^b_bOlKkLkikPlQlRlSlTlUlVlMkNkjkWlXlYlZl0l1l2lOkPkkk3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsdy B C tdudvdtcucvc

534 # If not table, normal Pydantic code 

535 m: _TSQLModel = cls.__new__(cls) 2*l(l)llk+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD xdE ydScQksktk]jRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b3kukvk^j4k5k6k7k8k9k!kwkxk_j#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b:kykzk`j;k=k?k@k[k]k^kAkBk{j_k`k{k|k}k~kalCkDk|jblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[bnlEkFk}jolplqlrlsltlulGkHk~jvlwlxlylzlAlBlIkJkakClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_bOlKkLkikPlQlRlSlTlUlVlMkNkjkWlXlYlZl0l1l2lOkPkkk3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc

536 else: 

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

538 # the _sa_instance_state attribute 

539 m = cls() 2*l+l,l-l.l/l:l;l=l?l@l[l]lwd|d}d~daeD .dxdE ydScQkRkSkTkUkVkWkXkYkZk0k1k2k:cLdMdNdOdf zd;cg =c:b3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]ci o ^c_c;b=b:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadk r s bdcddd?b@b[bnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjdm v w kdldmd]b^b_bOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsdy B C tdudvdtcucvc

540 values, fields_set, validation_error = validate_model(cls, obj) 2*l(l)llk+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD .dxdE ydScQksktk]jRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf zd;cg =c:b3kukvk^j4k5k6k7k8k9k!kwkxk_j#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]ci o ^c_c;b=b:kykzk`j;k=k?k@k[k]k^kAkBk{j_k`k{k|k}k~kalCkDk|jblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadk r s bdcddd?b@b[bnlEkFk}jolplqlrlsltlulGkHk~jvlwlxlylzlAlBlIkJkakClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjdm v w kdldmd]b^b_bOlKkLkikPlQlRlSlTlUlVlMkNkjkWlXlYlZl0l1l2lOkPkkk3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsdy B C tdudvdtcucvc

541 if validation_error: 2*l(l)llk+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD .dxdE ydScQksktk]jRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf zd;cg =c:b3kukvk^j4k5k6k7k8k9k!kwkxk_j#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]ci o ^c_c;b=b:kykzk`j;k=k?k@k[k]k^kAkBk{j_k`k{k|k}k~kalCkDk|jblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadk r s bdcddd?b@b[bnlEkFk}jolplqlrlsltlulGkHk~jvlwlxlylzlAlBlIkJkakClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjdm v w kdldmd]b^b_bOlKkLkikPlQlRlSlTlUlVlMkNkjkWlXlYlZl0l1l2lOkPkkk3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsdy B C tdudvdtcucvc

542 raise validation_error 

543 # Updated to trigger SQLAlchemy internal handling 

544 if not getattr(cls.__config__, "table", False): # noqa 2*l(l)llk+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD .dxdE ydScQksktk]jRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf zd;cg =c:b3kukvk^j4k5k6k7k8k9k!kwkxk_j#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]ci o ^c_c;b=b:kykzk`j;k=k?k@k[k]k^kAkBk{j_k`k{k|k}k~kalCkDk|jblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadk r s bdcddd?b@b[bnlEkFk}jolplqlrlsltlulGkHk~jvlwlxlylzlAlBlIkJkakClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjdm v w kdldmd]b^b_bOlKkLkikPlQlRlSlTlUlVlMkNkjkWlXlYlZl0l1l2lOkPkkk3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsdy B C tdudvdtcucvc

545 object.__setattr__(m, "__dict__", values) 2*l(l)llk+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD xdE ydScQksktk]jRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:b3kukvk^j4k5k6k7k8k9k!kwkxk_j#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=b:kykzk`j;k=k?k@k[k]k^kAkBk{j_k`k{k|k}k~kalCkDk|jblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[bnlEkFk}jolplqlrlsltlulGkHk~jvlwlxlylzlAlBlIkJkakClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_bOlKkLkikPlQlRlSlTlUlVlMkNkjkWlXlYlZl0l1l2lOkPkkk3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvc

546 else: 

547 for key, value in values.items(): 2*l+l,l-l.l/l:l;l=l?l@l[l]lwd|d}d~daeD .dxdE ydScQkRkSkTkUkVkWkXkYkZk0k1k2k:cLdMdNdOdf zd;cg =c:b3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]ci o ^c_c;b=b:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadk r s bdcddd?b@b[bnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjdm v w kdldmd]b^b_bOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsdy B C tdudvdtcucvc

548 setattr(m, key, value) 2*l+l,l-l.l/l:l;l=l?l@l[l]lwd|d}d~daeD .dxdE ydScQkRkSkTkUkVkWkXkYkZk0k1k2k:cLdMdNdOdf zd;cg =c:b3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]ci o ^c_c;b=b:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadk r s bdcddd?b@b[bnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjdm v w kdldmd]b^b_bOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsdy B C tdudvdtcucvc

549 # Continue with standard Pydantic logic 

550 object.__setattr__(m, "__fields_set__", fields_set) 2*l(l)llk+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD .dxdE ydScQksktk]jRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf zd;cg =c:b3kukvk^j4k5k6k7k8k9k!kwkxk_j#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]ci o ^c_c;b=b:kykzk`j;k=k?k@k[k]k^kAkBk{j_k`k{k|k}k~kalCkDk|jblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadk r s bdcddd?b@b[bnlEkFk}jolplqlrlsltlulGkHk~jvlwlxlylzlAlBlIkJkakClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjdm v w kdldmd]b^b_bOlKkLkikPlQlRlSlTlUlVlMkNkjkWlXlYlZl0l1l2lOkPkkk3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsdy B C tdudvdtcucvc

551 m._init_private_attributes() # type: ignore[attr-defined] # noqa 2*l(l)llk+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD .dxdE ydScQksktk]jRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf zd;cg =c:b3kukvk^j4k5k6k7k8k9k!kwkxk_j#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]ci o ^c_c;b=b:kykzk`j;k=k?k@k[k]k^kAkBk{j_k`k{k|k}k~kalCkDk|jblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadk r s bdcddd?b@b[bnlEkFk}jolplqlrlsltlulGkHk~jvlwlxlylzlAlBlIkJkakClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjdm v w kdldmd]b^b_bOlKkLkikPlQlRlSlTlUlVlMkNkjkWlXlYlZl0l1l2lOkPkkk3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsdy B C tdudvdtcucvc

552 return m 2*l(l)llk+l,l-l.l/l:l:mDn;l=l?l@l[l]lwd|d}d~daeD .dxdE ydScQksktk]jRkSkTkUkVkWk8mEnXkYkZk0k1k2k:cLdMdNdOdf zd;cg =c:b3kukvk^j4k5k6k7k8k9k!kwkxk_j#k$k%k'k(k)k9mFn*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]ci o ^c_c;b=b:kykzk`j;k=k?k@k[k]k^kAkBk{j_k`k{k|k}k~kalCkDk|jblcldlelflgl!mGnhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadk r s bdcddd?b@b[bnlEkFk}jolplqlrlsltlulGkHk~jvlwlxlylzlAlBlIkJkakClDlElFlGlHl#mHnIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjdm v w kdldmd]b^b_bOlKkLkikPlQlRlSlTlUlVlMkNkjkWlXlYlZl0l1l2lOkPkkk3l4l5l6l7l8l/mIn9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsdy B C tdudvdtcucvc

553 

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

555 values, fields_set, validation_error = validate_model(self.__class__, data) 2|n*lzoAo.m(l)llk+l,l-l.l/l:lne^i_i;n:mNn)j)npe6j7j8j/jXnYn5n9j`i{iwcxc|i}i~iajbjcjdjejfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjLo=nQkhoioTmsktk]jRkSkTkUkVkWkbeqere7n8mJnOj#njeKiLiMi*jOnPnZnNiseteG H uevewexeyezeAeBeCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eHo?n3kjokoUmukvk^j4k5k6k7k8k9k@n!klomoVmwkxk_j#k$k%k'k(k)kce#e$e8n9mKnPj$nkeTiUiVi+jQnRn0nWi%e'eT abU V (e)e*e+e,e-e.e/e:e;e*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufIo[n:knoooWmykzk`j;k=k?k@k[k]k]n^kpoqoXmAkBk{j_k`k{k|k}k~k^nalrosoYmCkDk|jblcldlelflgldeeevfwfxfyf9n!mLnQj%nle2i3i4i,jSnTn1n5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgJo_nnltouoZmEkFk}jolplqlrlsltl`nulvowo0mGkHk~jvlwlxlylzlAl{nBlxoyo1mIkJkakClDlElFlGlHlfegeAgBgCgDg!n#mMnRj'nme)i*i+i-jUnVn2n,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhKo}nOlBoCo$mKkLkikPlQlRlSlTlUl~nVlDoEo%mMkNkjkWlXlYlZl0l1lao2lFoGo'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh(n/mWn(j/noeSjTjUj.j3n4n6nVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiMo

556 # Only raise errors if not a SQLModel model 

557 if ( 2=nQkhoioTmsktk]jRkSkTkUkVkWkbeqere7n8mJnOj#njeKiLiMi*jOnPnZnNiseteG H uevewexeyezeAeBeCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eHo?n3kjokoUmukvk^j4k5k6k7k8k9k@n!klomoVmwkxk_j#k$k%k'k(k)kce#e$e8n9mKnPj$nkeTiUiVi+jQnRn0nWi%e'eT abU V (e)e*e+e,e-e.e/e:e;e*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufIo[n:knoooWmykzk`j;k=k?k@k[k]k]n^kpoqoXmAkBk{j_k`k{k|k}k~k^nalrosoYmCkDk|jblcldlelflgldeeevfwfxfyf9n!mLnQj%nle2i3i4i,jSnTn1n5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgJo_nnltouoZmEkFk}jolplqlrlsltl`nulvowo0mGkHk~jvlwlxlylzlAl{nBlxoyo1mIkJkakClDlElFlGlHlfegeAgBgCgDg!n#mMnRj'nme)i*i+i-jUnVn2n,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhKo

558 not is_table_model_class(self.__class__) # noqa 

559 and validation_error 

560 ): 

561 raise validation_error 2zoAo)nXnYnLohoio#nOnPnHojokolomo$nQnRnIonooopoqoroso%nSnTnJotouovowoxoyo'nUnVnKoBoCoDoEoFoGo/n3n4nMo

562 if not is_table_model_class(self.__class__): 2|n*l.m(l)llk+l,l-l.l/l:lne^i_i;n:mNn)jpe6j7j8j/jXnYn5n9j`i{iwcxc|i}i~iajbjcjdjejfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjLo=nQkTmsktk]jRkSkTkUkVkWkbeqere7n8mJnOjjeKiLiMi*jOnPnZnNiseteG H uevewexeyezeAeBeCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eHo?n3kUmukvk^j4k5k6k7k8k9k@n!kVmwkxk_j#k$k%k'k(k)kce#e$e8n9mKnPjkeTiUiVi+jQnRn0nWi%e'eT abU V (e)e*e+e,e-e.e/e:e;e*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufIo[n:kWmykzk`j;k=k?k@k[k]k]n^kXmAkBk{j_k`k{k|k}k~k^nalYmCkDk|jblcldlelflgldeeevfwfxfyf9n!mLnQjle2i3i4i,jSnTn1n5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgJo_nnlZmEkFk}jolplqlrlsltl`nul0mGkHk~jvlwlxlylzlAl{nBl1mIkJkakClDlElFlGlHlfegeAgBgCgDg!n#mMnRjme)i*i+i-jUnVn2n,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhKo}nOl$mKkLkikPlQlRlSlTlUl~nVl%mMkNkjkWlXlYlZl0l1lao2l'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh(n/mWn(joeSjTjUj.j3n4n6nVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiMo

563 object.__setattr__(self, "__dict__", values) 2|n*llk+l,l-l.l/l:l;n:mNnXnYn5n;l=l?l@l[l]lwd|d}d~daeD xdE ydScLo=nQk]jRkSkTkUkVkWk7n8mJnOnPnZnXkYkZk0k1k2k:cLdMdNdOdf ;cg =c:bHo?n3k^j4k5k6k7k8k9k@n!k_j#k$k%k'k(k)k8n9mKnQnRn0n*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n [c]ci o ^c_c;b=bIo[n:k`j;k=k?k@k[k]k]n^k{j_k`k{k|k}k~k^nal|jblcldlelflgl9n!mLnSnTn1nhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q }c~cadk r s bdcddd?b@b[bJo_nnl}jolplqlrlsltl`nul~jvlwlxlylzlAl{nBlakClDlElFlGlHl!n#mMnUnVn2nIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u hdidjdm v w kdldmd]b^b_bKo}nOlikPlQlRlSlTlUl~nVljkWlXlYlZl0l1lao2lkk3l4l5l6l7l8l(n/mWn3n4n6n9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A qdrdsdy B C tdudvdtcucvcMo

564 else: 

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

566 # SQLAlchemy can handle them 

567 for key, value in values.items(): 2*l.m(l)llk+l,l-l.l/l:lne^i_i)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjQkTmsktk]jRkSkTkUkVkWkbeqereOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e3kUmukvk^j4k5k6k7k8k9k!kVmwkxk_j#k$k%k'k(k)kce#e$ePjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;e*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfuf:kWmykzk`j;k=k?k@k[k]k^kXmAkBk{j_k`k{k|k}k~kalYmCkDk|jblcldlelflgldeeevfwfxfyfQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgnlZmEkFk}jolplqlrlsltlul0mGkHk~jvlwlxlylzlAlBl1mIkJkakClDlElFlGlHlfegeAgBgCgDgRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhOl$mKkLkikPlQlRlSlTlUlVl%mMkNkjkWlXlYlZl0l1l2l'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

568 setattr(self, key, value) 2*l.m(l)llk+l,l-l.l/l:lne^i_i)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjQkTmsktk]jRkSkTkUkVkWkbeqereOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e3kUmukvk^j4k5k6k7k8k9k!kVmwkxk_j#k$k%k'k(k)kce#e$ePjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;e*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfuf:kWmykzk`j;k=k?k@k[k]k^kXmAkBk{j_k`k{k|k}k~kalYmCkDk|jblcldlelflgldeeevfwfxfyfQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgnlZmEkFk}jolplqlrlsltlul0mGkHk~jvlwlxlylzlAlBl1mIkJkakClDlElFlGlHlfegeAgBgCgDgRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhOl$mKkLkikPlQlRlSlTlUlVl%mMkNkjkWlXlYlZl0l1l2l'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

569 object.__setattr__(self, "__fields_set__", fields_set) 2|n*l.m(l)llk+l,l-l.l/l:lne^i_i;n:mNn)jpe6j7j8j/jXnYn5n9j`i{iwcxc|i}i~iajbjcjdjejfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjLo=nQkTmsktk]jRkSkTkUkVkWkbeqere7n8mJnOjjeKiLiMi*jOnPnZnNiseteG H uevewexeyezeAeBeCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eHo?n3kUmukvk^j4k5k6k7k8k9k@n!kVmwkxk_j#k$k%k'k(k)kce#e$e8n9mKnPjkeTiUiVi+jQnRn0nWi%e'eT abU V (e)e*e+e,e-e.e/e:e;e*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufIo[n:kWmykzk`j;k=k?k@k[k]k]n^kXmAkBk{j_k`k{k|k}k~k^nalYmCkDk|jblcldlelflgldeeevfwfxfyf9n!mLnQjle2i3i4i,jSnTn1n5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgJo_nnlZmEkFk}jolplqlrlsltl`nul0mGkHk~jvlwlxlylzlAl{nBl1mIkJkakClDlElFlGlHlfegeAgBgCgDg!n#mMnRjme)i*i+i-jUnVn2n,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhKo}nOl$mKkLkikPlQlRlSlTlUl~nVl%mMkNkjkWlXlYlZl0l1lao2l'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh(n/mWn(joeSjTjUj.j3n4n6nVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiMo

570 non_pydantic_keys = data.keys() - values.keys() 2|n*l.m(l)llk+l,l-l.l/l:lne^i_i;n:mNn)jpe6j7j8j/jXnYn5n9j`i{iwcxc|i}i~iajbjcjdjejfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjLo=nQkTmsktk]jRkSkTkUkVkWkbeqere7n8mJnOjjeKiLiMi*jOnPnZnNiseteG H uevewexeyezeAeBeCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eHo?n3kUmukvk^j4k5k6k7k8k9k@n!kVmwkxk_j#k$k%k'k(k)kce#e$e8n9mKnPjkeTiUiVi+jQnRn0nWi%e'eT abU V (e)e*e+e,e-e.e/e:e;e*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufIo[n:kWmykzk`j;k=k?k@k[k]k]n^kXmAkBk{j_k`k{k|k}k~k^nalYmCkDk|jblcldlelflgldeeevfwfxfyf9n!mLnQjle2i3i4i,jSnTn1n5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgJo_nnlZmEkFk}jolplqlrlsltl`nul0mGkHk~jvlwlxlylzlAl{nBl1mIkJkakClDlElFlGlHlfegeAgBgCgDg!n#mMnRjme)i*i+i-jUnVn2n,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhKo}nOl$mKkLkikPlQlRlSlTlUl~nVl%mMkNkjkWlXlYlZl0l1lao2l'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh(n/mWn(joeSjTjUj.j3n4n6nVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiMo

571 

572 if is_table_model_class(self.__class__): 2|n*l.m(l)llk+l,l-l.l/l:lne^i_i;n:mNn)jpe6j7j8j/jXnYn5n9j`i{iwcxc|i}i~iajbjcjdjejfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjLo=nQkTmsktk]jRkSkTkUkVkWkbeqere7n8mJnOjjeKiLiMi*jOnPnZnNiseteG H uevewexeyezeAeBeCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!eHo?n3kUmukvk^j4k5k6k7k8k9k@n!kVmwkxk_j#k$k%k'k(k)kce#e$e8n9mKnPjkeTiUiVi+jQnRn0nWi%e'eT abU V (e)e*e+e,e-e.e/e:e;e*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfufIo[n:kWmykzk`j;k=k?k@k[k]k]n^kXmAkBk{j_k`k{k|k}k~k^nalYmCkDk|jblcldlelflgldeeevfwfxfyf9n!mLnQjle2i3i4i,jSnTn1n5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgJo_nnlZmEkFk}jolplqlrlsltl`nul0mGkHk~jvlwlxlylzlAl{nBl1mIkJkakClDlElFlGlHlfegeAgBgCgDg!n#mMnRjme)i*i+i-jUnVn2n,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhKo}nOl$mKkLkikPlQlRlSlTlUl~nVl%mMkNkjkWlXlYlZl0l1lao2l'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh(n/mWn(joeSjTjUj.j3n4n6nVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiMo

573 for key in non_pydantic_keys: 2*l.m(l)llk+l,l-l.l/l:lne^i_i)jpe6j7j8j/j9j`i{iwcxc|i}i~iajbjcjdjejfjgj;l=l?l@l[l]lwd|d}d~daeD .dxdhjE ydScijjj!j#j$jkjljmjnj.c/c4coj%jpjqjrjsjtjuj'jyczcAcBcCcDcEcFcGcHcIcvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjQkTmsktk]jRkSkTkUkVkWkbeqereOjjeKiLiMi*jNiseteG H uevewexeyezeAeBeCeDeXkYkZk0k1k2k:cLdMdNdOdf zd;cEeg =c:bFeGeOiPiQiHeIeJeKeWcXcJcLeRiMeNeOePeQeReSiI J K L M N O P Q R S SeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e3kUmukvk^j4k5k6k7k8k9k!kVmwkxk_j#k$k%k'k(k)kce#e$ePjkeTiUiVi+jWi%e'eT abU V (e)e*e+e,e-e.e/e:e;e*k+k,k-k.k/k?c@cPdQdRdSdTdUdVdWdh n AdBd[c]c=ei o ^c_c;b=b?e@eXiYiZi[e]e^e_eYc5cZc6cKcLc`e0i{e|e}e~eafbf1iW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lbcfdfefffgfhfifjfkflfmfnfofpfqfrfsftfuf:kWmykzk`j;k=k?k@k[k]k^kXmAkBk{j_k`k{k|k}k~kalYmCkDk|jblcldlelflgldeeevfwfxfyfQjle2i3i4i,j5izfAfBfCf7 mbnb8 9 ! DfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfhliljlklllml`c{c|cXdYdZd0d1d2d3d4d5d6d7d8dj p q CdDdEd}c~cadXfYfk r s bdcddd?b@b[bZf0f1f2f6i7i8i9i!i#i3f4f5f6f7f8f9f!f0c7c8c1c9c!cMcNcOc#f$f$i%i%f'f(f)f*f+f,f-f.f/f:f;f'i(i# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJb=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfggghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgnlZmEkFk}jolplqlrlsltlul0mGkHk~jvlwlxlylzlAlBl1mIkJkakClDlElFlGlHlfegeAgBgCgDgRjme)i*i+i-j,iEgFgGgHg/ KbLb: ; = IgJgKgLgMgNgOgPgQgRgSgTgUgVgWgXgYgZg0g1gIlJlKlLlMlNledfdgd9d!d#d$d%d'd(d)d*d+d,d-dl t u FdGdHdhdidjd2g3gm v w kdldmd]b^b_b4g5g6g7g-i.i/i:i;i=i8g9g!g#g$g%g'g(g2c#c$c3c%c'cPcQcRc)g*g?i@i+g,g-g.g/g:g;g=g?g@g[g]g[i]i? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7b^g_g`g{g|g}g~gahbhchdhehfhghhhihjhkhlhmhnhohphqhrhshthuhvhwhxhyhzhAhBhChDhEhOl$mKkLkikPlQlRlSlTlUlVl%mMkNkjkWlXlYlZl0l1l2l'mOkPkkk3l4l5l6l7l8lheieFhGhHhIh(joeSjTjUj.jVjJhKhLhMh8b`b{b9b!b#bNhOhPhQhRhShThUhVhWhXhYhZh0h1h2h3h4h5h6h9l!l#l$l%l'lndodpd/d:d;d=d?d@d[d]d^d_d`d{dx z A IdJdKdqdrdsd7h8hy B C tdudvdtcucvc9h!h#h$hWjXjYjZj0j1j%h'h(h)h*h+h,h-h(c*c+c)c,c-cTcUcVc.h/h2j3j:h;h=h?h@h[h]h^h_h`h{h|h4j5j$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJi

574 if key in self.__sqlmodel_relationships__: 2pewcxc.c/c4cyczcAcBcCcDcEcFcGcHcIcjeG H WcXcJcI J K L M N O P Q R S keT abU V Yc5cZc6cKcLcW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lble7 mbnb8 9 ! 0c7c8c1c9c!cMcNcOc# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJbme/ KbLb: ; = 2c#c$c3c%c'cPcQcRc? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7boe8b`b{b9b!b#b(c*c+c)c,c-cTcUcVc$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc

575 setattr(self, key, data[key]) 2pewcxc.c/c4cyczcAcBcCcDcEcFcGcHcIcjeG H WcXcJcI J K L M N O P Q R S keT abU V Yc5cZc6cKcLcW bbX cbY dbZ eb0 fb1 gb2 hb3 ib4 jb5 kb6 lble7 mbnb8 9 ! 0c7c8c1c9c!cMcNcOc# obpb$ qbrb% sbtb' ubvb( wbxb) ybzb* AbBb+ CbDb, EbFb- GbHb. IbJbme/ KbLb: ; = 2c#c$c3c%c'cPcQcRc? MbNb@ ObPb[ QbRb] SbTb^ UbVb_ WbXb` YbZb{ 0b1b| 2b3b} 4b5b~ 6b7boe8b`b{b9b!b#b(c*c+c)c,c-cTcUcVc$b|b}b%b~bac'bbccc(bdcec)bfcgc*bhcic+bjckc,blcmc-bncoc.bpcqc/brcsc