Coverage for fastapi/_compat/v1.py: 100%

143 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2025-12-04 08:29 +0000

1from copy import copy 1abcdef

2from dataclasses import dataclass, is_dataclass 1abcdef

3from enum import Enum 1abcdef

4from typing import ( 1abcdef

5 Any, 

6 Callable, 

7 Dict, 

8 List, 

9 Sequence, 

10 Set, 

11 Tuple, 

12 Type, 

13 Union, 

14) 

15 

16from fastapi._compat import shared 1abcdef

17from fastapi.openapi.constants import REF_PREFIX as REF_PREFIX 1abcdef

18from fastapi.types import ModelNameMap 1abcdef

19from pydantic.version import VERSION as PYDANTIC_VERSION 1abcdef

20from typing_extensions import Literal 1abcdef

21 

22PYDANTIC_VERSION_MINOR_TUPLE = tuple(int(x) for x in PYDANTIC_VERSION.split(".")[:2]) 1abcdef

23PYDANTIC_V2 = PYDANTIC_VERSION_MINOR_TUPLE[0] == 2 1abcdef

24# Keeping old "Required" functionality from Pydantic V1, without 

25# shadowing typing.Required. 

26RequiredParam: Any = Ellipsis 1abcdef

27 

28if not PYDANTIC_V2: 1abcdef

29 from pydantic import BaseConfig as BaseConfig 1abcdef

30 from pydantic import BaseModel as BaseModel 1abcdef

31 from pydantic import ValidationError as ValidationError 1abcdef

32 from pydantic import create_model as create_model 1abcdef

33 from pydantic.class_validators import Validator as Validator 1abcdef

34 from pydantic.color import Color as Color 1abcdef

35 from pydantic.error_wrappers import ErrorWrapper as ErrorWrapper 1abcdef

36 from pydantic.errors import MissingError 1abcdef

37 from pydantic.fields import ( # type: ignore[attr-defined] 1abcdef

38 SHAPE_FROZENSET, 

39 SHAPE_LIST, 

40 SHAPE_SEQUENCE, 

41 SHAPE_SET, 

42 SHAPE_SINGLETON, 

43 SHAPE_TUPLE, 

44 SHAPE_TUPLE_ELLIPSIS, 

45 ) 

46 from pydantic.fields import FieldInfo as FieldInfo 1abcdef

47 from pydantic.fields import ModelField as ModelField # type: ignore[attr-defined] 1abcdef

48 from pydantic.fields import Undefined as Undefined # type: ignore[attr-defined] 1abcdef

49 from pydantic.fields import ( # type: ignore[attr-defined] 1abcdef

50 UndefinedType as UndefinedType, 

51 ) 

52 from pydantic.networks import AnyUrl as AnyUrl 1abcdef

53 from pydantic.networks import NameEmail as NameEmail 1abcdef

54 from pydantic.schema import TypeModelSet as TypeModelSet 1abcdef

55 from pydantic.schema import ( 1abcdef

56 field_schema, 

57 model_process_schema, 

58 ) 

59 from pydantic.schema import ( 1abcdef

60 get_annotation_from_field_info as get_annotation_from_field_info, 

61 ) 

62 from pydantic.schema import get_flat_models_from_field as get_flat_models_from_field 1abcdef

63 from pydantic.schema import ( 1abcdef

64 get_flat_models_from_fields as get_flat_models_from_fields, 

65 ) 

66 from pydantic.schema import get_model_name_map as get_model_name_map 1abcdef

67 from pydantic.types import SecretBytes as SecretBytes 1abcdef

68 from pydantic.types import SecretStr as SecretStr 1abcdef

69 from pydantic.typing import evaluate_forwardref as evaluate_forwardref 1abcdef

70 from pydantic.utils import lenient_issubclass as lenient_issubclass 1abcdef

71 

72 

73else: 

74 from pydantic.v1 import BaseConfig as BaseConfig # type: ignore[assignment] 1abcdef

75 from pydantic.v1 import BaseModel as BaseModel # type: ignore[assignment] 1abcdef

76 from pydantic.v1 import ( # type: ignore[assignment] 1abcdef

77 ValidationError as ValidationError, 

78 ) 

79 from pydantic.v1 import create_model as create_model # type: ignore[no-redef] 1abcdef

80 from pydantic.v1.class_validators import Validator as Validator 1abcdef

81 from pydantic.v1.color import Color as Color # type: ignore[assignment] 1abcdef

82 from pydantic.v1.error_wrappers import ErrorWrapper as ErrorWrapper 1abcdef

83 from pydantic.v1.errors import MissingError 1abcdef

84 from pydantic.v1.fields import ( 1abcdef

85 SHAPE_FROZENSET, 

86 SHAPE_LIST, 

87 SHAPE_SEQUENCE, 

88 SHAPE_SET, 

89 SHAPE_SINGLETON, 

90 SHAPE_TUPLE, 

91 SHAPE_TUPLE_ELLIPSIS, 

92 ) 

93 from pydantic.v1.fields import FieldInfo as FieldInfo # type: ignore[assignment] 1abcdef

94 from pydantic.v1.fields import ModelField as ModelField 1abcdef

95 from pydantic.v1.fields import Undefined as Undefined 1abcdef

96 from pydantic.v1.fields import UndefinedType as UndefinedType 1abcdef

97 from pydantic.v1.networks import AnyUrl as AnyUrl 1abcdef

98 from pydantic.v1.networks import ( # type: ignore[assignment] 1abcdef

99 NameEmail as NameEmail, 

100 ) 

101 from pydantic.v1.schema import TypeModelSet as TypeModelSet 1abcdef

102 from pydantic.v1.schema import ( 1abcdef

103 field_schema, 

104 model_process_schema, 

105 ) 

106 from pydantic.v1.schema import ( 1abcdef

107 get_annotation_from_field_info as get_annotation_from_field_info, 

108 ) 

109 from pydantic.v1.schema import ( 1abcdef

110 get_flat_models_from_field as get_flat_models_from_field, 

111 ) 

112 from pydantic.v1.schema import ( 1abcdef

113 get_flat_models_from_fields as get_flat_models_from_fields, 

114 ) 

115 from pydantic.v1.schema import get_model_name_map as get_model_name_map 1abcdef

116 from pydantic.v1.types import ( # type: ignore[assignment] 1abcdef

117 SecretBytes as SecretBytes, 

118 ) 

119 from pydantic.v1.types import ( # type: ignore[assignment] 1abcdef

120 SecretStr as SecretStr, 

121 ) 

122 from pydantic.v1.typing import evaluate_forwardref as evaluate_forwardref 1abcdef

123 from pydantic.v1.utils import lenient_issubclass as lenient_issubclass 1abcdef

124 

125 

126GetJsonSchemaHandler = Any 1abcdef

127JsonSchemaValue = Dict[str, Any] 1abcdef

128CoreSchema = Any 1abcdef

129Url = AnyUrl 1abcdef

130 

131sequence_shapes = { 1abcdef

132 SHAPE_LIST, 

133 SHAPE_SET, 

134 SHAPE_FROZENSET, 

135 SHAPE_TUPLE, 

136 SHAPE_SEQUENCE, 

137 SHAPE_TUPLE_ELLIPSIS, 

138} 

139sequence_shape_to_type = { 1abcdef

140 SHAPE_LIST: list, 

141 SHAPE_SET: set, 

142 SHAPE_TUPLE: tuple, 

143 SHAPE_SEQUENCE: list, 

144 SHAPE_TUPLE_ELLIPSIS: list, 

145} 

146 

147 

148@dataclass 1abcdef

149class GenerateJsonSchema: 1abcdef

150 ref_template: str 1abcdef

151 

152 

153class PydanticSchemaGenerationError(Exception): 1abcdef

154 pass 1abcdef

155 

156 

157RequestErrorModel: Type[BaseModel] = create_model("Request") 1abcdef

158 

159 

160def with_info_plain_validator_function( 1abcdef

161 function: Callable[..., Any], 

162 *, 

163 ref: Union[str, None] = None, 

164 metadata: Any = None, 

165 serialization: Any = None, 

166) -> Any: 

167 return {} 2'L(L)L*L+L

168 

169 

170def get_model_definitions( 1abcdef

171 *, 

172 flat_models: Set[Union[Type[BaseModel], Type[Enum]]], 

173 model_name_map: Dict[Union[Type[BaseModel], Type[Enum]], str], 

174) -> Dict[str, Any]: 

175 definitions: Dict[str, Dict[str, Any]] = {} 2dbeb@kLqfbgbMhhbibNhOhjbMq[kkblb]kmbPhnbobNqpbq r s t u v w qb^k0g6 rbQhRhsbtbSh7 ub8 Th_kOqPq`kUh{kVhvbwbxbybzbWhXhYhAb9 BbCbDbEbg Qq|k}k~kalblcldlelflglhliljlklllmlnlolplqlrlFbsltlGbHbulvlwlxlylZhIbzlJbKbLbMbNbAlBlClDlEl0hObPbQbRb1hRqSbSq2h3h4hFlGlHlIlJlKlLlTbUbTqVb5h6h7h8h9hMl!hNlWbXbYb#hOlZb$h%h'h(h0b)h*h+h,h-h.h/hPlQlRl1b2bSlTlUlUq3bVlWlVqXlYlWq4bZl:h! GgHgIg;h=h?h@h[h]h^h_h0lXq5b6b7b8b9b!bYq#b$b%b'b(b`h1l{h)b*b+bZq,b-b.b2l/b:b3l0q1q;b=b4l5l6l7l?b2q@b[b]b^b_b8l3q`b{b|h|b}b}h~h~b4q9lacbc!lccaidcec5qfcx y z A B C D gc#l1g# hcbiciicjcdi$ kc% ei$l6q7q%lfi'lgilcmcncocpchiiijiqc' rcsctcuch 8q(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}lvc~lamwcxcbmcmdmemfmkiycgmzcAcBcCcDchmimjmkmlmliEcFcGcHcmi9qIc!qnioipimmnmompmqmrmsmJcKc#qLcqirisitiuitmviumMcNcOcwivmPcxiyiziAiQcBiCiDiEiFiGiHiwmxmymRcSczmAmBm$qTcCmDm%qEmFm'qUcGmIi( JgKgLgJiKiLiMiNiOiPiQiHm(qVcWcXcYcZc0c)q1c2c3c4c5cRiImSi6c7c8c*q9c!c#cJm$c%cKm+q,q'c(cLmMmNmOm)c-q*c+c,c-c.cPm.q/c:cTi;c=cUiVi?c/qQm@c[cRm]cWi^c_c:q`cE F G H I J K {cSm2g) |cXiYi}c~cZi* ad+ 0iTm;q=qUm1iVm2ibdcdddedfdi , 3i4i5igd- hdidjdkd?qj @qWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(m)mld*m+mmdnd,m-m.m/m:m6iod;mpdqdrdsdtd=m?m@m[m]m7iudvdwdxd8i[qyd]q9i!i#i^m_m`m{m|m}m~mzdAd^qBd$i%i'i(i)ian*ibnCdDdEd+icnFd,i-i.i/iGd:i;i=i?i@i[i]idnenfnHdIdgnhnin_qJdjnkn`qlnmn{qKdnn^i. MgNgOg_i`i{i|i}i~iajbjon|qLdMdNdOdPdQd}qRdSdTdUdVdcjpndjWdXdYd~qZd0d1dqn2d3drnarbr4d5dsntnunvn6dcr7d8d9d!d#dwndr$d%dej'd(dfjgj)derxn*d+dyn,dhj-d.dfr/dL M N O P Q R :dzn3g/ ;dijjj=d?dkj: @d; ljAngrhrBnmjCnnj[d]d^d_d`dk = ojpjqj{d? |d}d~daeirl jrDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnbeYnZncede0n1n2n3n4nrjee5nfegeheieje6n7n8n9n!nsjkelemenetjkroelrujvjwj#n$n%n'n(n)n*npeqemrrexjyjzjAjBj+nCj,nseteueDj-nveEjFjGjHjweIjJjKjLjMjNjOj.n/n:nxeye;n=n?nnrze@n[nor]n^nprAe_nPj@ PgQgRgQjRjSjTjUjVjWjXj`nqrBeCeDeEeFeGerrHeIeJeKeLeYj{nZjMeNeOesrPeQeRe|nSeTe}ntrurUeVe~naobocoWevrXeYeZe0e1edowr2e3e0j4e5e1j2j6exreo7e8efo9e3j!e#eyr$eS T U V W X Y %ego4g[ 'e4j5j(e)e6j] *e^ 7jhozrArio8jjo9j+e,e-e.e/em _ !j#j$j:e` ;e=e?e@eBrn CrkolomonooopoqorosotouovowoxoyozoAoBoCoDoEo[eFoGo]e^eHoIoJoKoLo%j_eMo`e{e|e}e~eNoOoPoQoRo'jafbfcfdf(jDrefEr)j*j+jSoToUoVoWoXoYoffgfFrhf,j-j.j/j:jZo;j0oifjfkf=j1olf?j@j[j]jmf^j_j`j{j|j}j~j2o3o4onfof5o6o7oGrpf8o9oHr!o#oIrqf$oak{ SgTgUgbkckdkekfkgkhkik%oJrrfsftfufvfwfKrxfyfzfAfBfjk'okkCfDfEfLrFfGfHf(oIfJf)oMrNrKfLf*o+o,o-oMfOrNfOfPfQfRf.oPrSfTflkUfVfmknkWfQr/oXfYf:oZfok0f1fRr2fZ 0 1 2 3 4 5 3f;o5g| 4fpkqk5f6frk} 7f~ sk=oSrTr?otk@ouk8f9f!f#f$fo abvkwkxk%fbb'f(f)f*fUrp Vr[o]o^o_o`o{o|o}o~oapbpcpdpepfpgphpipjpkplp+fmpnp,f-fopppqprpspyk.ftp/f:f;f=f?fupvpwpxpypzk@f[f]f^fAkWr_fXrBkCkDkzpApBpCpDpEpFp`f{fYr|fEkFkGkHkIkGpJkHp}f~fagKkIpbgLkMkNkOkcgPkQkRkSkTkUkVkJpKpLpdgegMpNpOpZrfgPpQp0rRpSp1rggTpWkcbVgWgXgXkYkZk0k1k2k3k4kUp2rhgigjgkglgmg3rngogpgqgrg5kVp6ksgtgug4rvgwgxgWpygzgXp5r6rAgBgYpZp0p1pCg7rDgEgFg

176 for model in flat_models: 2dbeb@kLqfbgbMhhbibNhOhjbMq[kkblb]kmbPhnbobNqpbq r s t u v w qb^k0g6 rbQhRhsbtbSh7 ub8 Th_kOqPq`kUh{kVhvbwbxbybzbWhXhYhAb9 BbCbDbEbg Qq|k}k~kalblcldlelflglhliljlklllmlnlolplqlrlFbsltlGbHbulvlwlxlylZhIbzlJbKbLbMbNbAlBlClDlEl0hObPbQbRb1hRqSbSq2h3h4hFlGlHlIlJlKlLlTbUbTqVb5h6h7h8h9hMl!hNlWbXbYb#hOlZb$h%h'h(h0b)h*h+h,h-h.h/hPlQlRl1b2bSlTlUlUq3bVlWlVqXlYlWq4bZl:h! GgHgIg;h=h?h@h[h]h^h_h0lXq5b6b7b8b9b!bYq#b$b%b'b(b`h1l{h)b*b+bZq,b-b.b2l/b:b3l0q1q;b=b4l5l6l7l?b2q@b[b]b^b_b8l3q`b{b|h|b}b}h~h~b4q9lacbc!lccaidcec5qfcx y z A B C D gc#l1g# hcbiciicjcdi$ kc% ei$l6q7q%lfi'lgilcmcncocpchiiijiqc' rcsctcuch 8q(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}lvc~lamwcxcbmcmdmemfmkiycgmzcAcBcCcDchmimjmkmlmliEcFcGcHcmi9qIc!qnioipimmnmompmqmrmsmJcKc#qLcqirisitiuitmviumMcNcOcwivmPcxiyiziAiQcBiCiDiEiFiGiHiwmxmymRcSczmAmBm$qTcCmDm%qEmFm'qUcGmIi( JgKgLgJiKiLiMiNiOiPiQiHm(qVcWcXcYcZc0c)q1c2c3c4c5cRiImSi6c7c8c*q9c!c#cJm$c%cKm+q,q'c(cLmMmNmOm)c-q*c+c,c-c.cPm.q/c:cTi;c=cUiVi?c/qQm@c[cRm]cWi^c_c:q`cE F G H I J K {cSm2g) |cXiYi}c~cZi* ad+ 0iTm;q=qUm1iVm2ibdcdddedfdi , 3i4i5igd- hdidjdkd?qj @qWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(m)mld*m+mmdnd,m-m.m/m:m6iod;mpdqdrdsdtd=m?m@m[m]m7iudvdwdxd8i[qyd]q9i!i#i^m_m`m{m|m}m~mzdAd^qBd$i%i'i(i)ian*ibnCdDdEd+icnFd,i-i.i/iGd:i;i=i?i@i[i]idnenfnHdIdgnhnin_qJdjnkn`qlnmn{qKdnn^i. MgNgOg_i`i{i|i}i~iajbjon|qLdMdNdOdPdQd}qRdSdTdUdVdcjpndjWdXdYd~qZd0d1dqn2d3drnarbr4d5dsntnunvn6dcr7d8d9d!d#dwndr$d%dej'd(dfjgj)derxn*d+dyn,dhj-d.dfr/dL M N O P Q R :dzn3g/ ;dijjj=d?dkj: @d; ljAngrhrBnmjCnnj[d]d^d_d`dk = ojpjqj{d? |d}d~daeirl jrDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnbeYnZncede0n1n2n3n4nrjee5nfegeheieje6n7n8n9n!nsjkelemenetjkroelrujvjwj#n$n%n'n(n)n*npeqemrrexjyjzjAjBj+nCj,nseteueDj-nveEjFjGjHjweIjJjKjLjMjNjOj.n/n:nxeye;n=n?nnrze@n[nor]n^nprAe_nPj@ PgQgRgQjRjSjTjUjVjWjXj`nqrBeCeDeEeFeGerrHeIeJeKeLeYj{nZjMeNeOesrPeQeRe|nSeTe}ntrurUeVe~naobocoWevrXeYeZe0e1edowr2e3e0j4e5e1j2j6exreo7e8efo9e3j!e#eyr$eS T U V W X Y %ego4g[ 'e4j5j(e)e6j] *e^ 7jhozrArio8jjo9j+e,e-e.e/em _ !j#j$j:e` ;e=e?e@eBrn CrkolomonooopoqorosotouovowoxoyozoAoBoCoDoEo[eFoGo]e^eHoIoJoKoLo%j_eMo`e{e|e}e~eNoOoPoQoRo'jafbfcfdf(jDrefEr)j*j+jSoToUoVoWoXoYoffgfFrhf,j-j.j/j:jZo;j0oifjfkf=j1olf?j@j[j]jmf^j_j`j{j|j}j~j2o3o4onfof5o6o7oGrpf8o9oHr!o#oIrqf$oak{ SgTgUgbkckdkekfkgkhkik%oJrrfsftfufvfwfKrxfyfzfAfBfjk'okkCfDfEfLrFfGfHf(oIfJf)oMrNrKfLf*o+o,o-oMfOrNfOfPfQfRf.oPrSfTflkUfVfmknkWfQr/oXfYf:oZfok0f1fRr2fZ 0 1 2 3 4 5 3f;o5g| 4fpkqk5f6frk} 7f~ sk=oSrTr?otk@ouk8f9f!f#f$fo abvkwkxk%fbb'f(f)f*fUrp Vr[o]o^o_o`o{o|o}o~oapbpcpdpepfpgphpipjpkplp+fmpnp,f-fopppqprpspyk.ftp/f:f;f=f?fupvpwpxpypzk@f[f]f^fAkWr_fXrBkCkDkzpApBpCpDpEpFp`f{fYr|fEkFkGkHkIkGpJkHp}f~fagKkIpbgLkMkNkOkcgPkQkRkSkTkUkVkJpKpLpdgegMpNpOpZrfgPpQp0rRpSp1rggTpWkcbVgWgXgXkYkZk0k1k2k3k4kUp2rhgigjgkglgmg3rngogpgqgrg5kVp6ksgtgug4rvgwgxgWpygzgXp5r6rAgBgYpZp0p1pCg7rDgEgFg

177 m_schema, m_definitions, m_nested_models = model_process_schema( 2dbebfbgbhbibjbkblbmbnbobpbq r s t u v w qb0g6 rbsbtb7 ub8 vbwbxbybzbAb9 BbCbDbEbg FbGbHbIbJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b! GgHgIg5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b`b{b|b}b~bacbcccdcecfcx y z A B C D gc1g# hcicjc$ kc% lcmcncocpcqc' rcsctcuch vcwcxcyczcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUc( JgKgLgVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`cE F G H I J K {c2g) |c}c~c* ad+ bdcdddedfdi gd- hdidjdkdj ldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKd. MgNgOgLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/dL M N O P Q R :d3g/ ;d=d?d: @d; [d]d^d_d`dk {d? |d}d~dael becedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAe@ PgQgRgBeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$eS T U V W X Y %e4g[ 'e(e)e] *e^ +e,e-e.e/em :e` ;e=e?e@en [e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfmfnfofpfqf{ SgTgUgrfsftfufvfwfxfyfzfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2fZ 0 1 2 3 4 5 3f5g| 4f5f6f} 7f~ 8f9f!f#f$fo %fbb'f(f)f*fp +f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfgggcbVgWgXghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFg

178 model, model_name_map=model_name_map, ref_prefix=REF_PREFIX 

179 ) 

180 definitions.update(m_definitions) 2dbebfbgbhbibjbkblbmbnbobpbq r s t u v w qb0g6 rbsbtb7 ub8 vbwbxbybzbAb9 BbCbDbEbg FbGbHbIbJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b! GgHgIg5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b`b{b|b}b~bacbcccdcecfcx y z A B C D gc1g# hcicjc$ kc% lcmcncocpcqc' rcsctcuch vcwcxcyczcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUc( JgKgLgVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`cE F G H I J K {c2g) |c}c~c* ad+ bdcdddedfdi gd- hdidjdkdj ldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKd. MgNgOgLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/dL M N O P Q R :d3g/ ;d=d?d: @d; [d]d^d_d`dk {d? |d}d~dael becedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAe@ PgQgRgBeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$eS T U V W X Y %e4g[ 'e(e)e] *e^ +e,e-e.e/em :e` ;e=e?e@en [e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfmfnfofpfqf{ SgTgUgrfsftfufvfwfxfyfzfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2fZ 0 1 2 3 4 5 3f5g| 4f5f6f} 7f~ 8f9f!f#f$fo %fbb'f(f)f*fp +f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfgggcbVgWgXghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFg

181 model_name = model_name_map[model] 2dbebfbgbhbibjbkblbmbnbobpbq r s t u v w qb0g6 rbsbtb7 ub8 vbwbxbybzbAb9 BbCbDbEbg FbGbHbIbJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b! GgHgIg5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b`b{b|b}b~bacbcccdcecfcx y z A B C D gc1g# hcicjc$ kc% lcmcncocpcqc' rcsctcuch vcwcxcyczcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUc( JgKgLgVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`cE F G H I J K {c2g) |c}c~c* ad+ bdcdddedfdi gd- hdidjdkdj ldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKd. MgNgOgLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/dL M N O P Q R :d3g/ ;d=d?d: @d; [d]d^d_d`dk {d? |d}d~dael becedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAe@ PgQgRgBeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$eS T U V W X Y %e4g[ 'e(e)e] *e^ +e,e-e.e/em :e` ;e=e?e@en [e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfmfnfofpfqf{ SgTgUgrfsftfufvfwfxfyfzfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2fZ 0 1 2 3 4 5 3f5g| 4f5f6f} 7f~ 8f9f!f#f$fo %fbb'f(f)f*fp +f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfgggcbVgWgXghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFg

182 definitions[model_name] = m_schema 2dbebfbgbhbibjbkblbmbnbobpbq r s t u v w qb0g6 rbsbtb7 ub8 vbwbxbybzbAb9 BbCbDbEbg FbGbHbIbJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b! GgHgIg5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b`b{b|b}b~bacbcccdcecfcx y z A B C D gc1g# hcicjc$ kc% lcmcncocpcqc' rcsctcuch vcwcxcyczcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUc( JgKgLgVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`cE F G H I J K {c2g) |c}c~c* ad+ bdcdddedfdi gd- hdidjdkdj ldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKd. MgNgOgLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/dL M N O P Q R :d3g/ ;d=d?d: @d; [d]d^d_d`dk {d? |d}d~dael becedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAe@ PgQgRgBeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$eS T U V W X Y %e4g[ 'e(e)e] *e^ +e,e-e.e/em :e` ;e=e?e@en [e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfmfnfofpfqf{ SgTgUgrfsftfufvfwfxfyfzfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2fZ 0 1 2 3 4 5 3f5g| 4f5f6f} 7f~ 8f9f!f#f$fo %fbb'f(f)f*fp +f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfgggcbVgWgXghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFg

183 for m_schema in definitions.values(): 2dbeb@kLqfbgbMhhbibNhOhjbMq[kkblb]kmbPhnbobNqpbq r s t u v w qb^k0g6 rbQhRhsbtbSh7 ub8 Th_kOqPq`kUh{kVhvbwbxbybzbWhXhYhAb9 BbCbDbEbg Qq|k}k~kalblcldlelflglhliljlklllmlnlolplqlrlFbsltlGbHbulvlwlxlylZhIbzlJbKbLbMbNbAlBlClDlEl0hObPbQbRb1hRqSbSq2h3h4hFlGlHlIlJlKlLlTbUbTqVb5h6h7h8h9hMl!hNlWbXbYb#hOlZb$h%h'h(h0b)h*h+h,h-h.h/hPlQlRl1b2bSlTlUlUq3bVlWlVqXlYlWq4bZl:h! GgHgIg;h=h?h@h[h]h^h_h0lXq5b6b7b8b9b!bYq#b$b%b'b(b`h1l{h)b*b+bZq,b-b.b2l/b:b3l0q1q;b=b4l5l6l7l?b2q@b[b]b^b_b8l3q`b{b|h|b}b}h~h~b4q9lacbc!lccaidcec5qfcx y z A B C D gc#l1g# hcbiciicjcdi$ kc% ei$l6q7q%lfi'lgilcmcncocpchiiijiqc' rcsctcuch 8q(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}lvc~lamwcxcbmcmdmemfmkiycgmzcAcBcCcDchmimjmkmlmliEcFcGcHcmi9qIc!qnioipimmnmompmqmrmsmJcKc#qLcqirisitiuitmviumMcNcOcwivmPcxiyiziAiQcBiCiDiEiFiGiHiwmxmymRcSczmAmBm$qTcCmDm%qEmFm'qUcGmIi( JgKgLgJiKiLiMiNiOiPiQiHm(qVcWcXcYcZc0c)q1c2c3c4c5cRiImSi6c7c8c*q9c!c#cJm$c%cKm+q,q'c(cLmMmNmOm)c-q*c+c,c-c.cPm.q/c:cTi;c=cUiVi?c/qQm@c[cRm]cWi^c_c:q`cE F G H I J K {cSm2g) |cXiYi}c~cZi* ad+ 0iTm;q=qUm1iVm2ibdcdddedfdi , 3i4i5igd- hdidjdkd?qj @qWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(m)mld*m+mmdnd,m-m.m/m:m6iod;mpdqdrdsdtd=m?m@m[m]m7iudvdwdxd8i[qyd]q9i!i#i^m_m`m{m|m}m~mzdAd^qBd$i%i'i(i)ian*ibnCdDdEd+icnFd,i-i.i/iGd:i;i=i?i@i[i]idnenfnHdIdgnhnin_qJdjnkn`qlnmn{qKdnn^i. MgNgOg_i`i{i|i}i~iajbjon|qLdMdNdOdPdQd}qRdSdTdUdVdcjpndjWdXdYd~qZd0d1dqn2d3drnarbr4d5dsntnunvn6dcr7d8d9d!d#dwndr$d%dej'd(dfjgj)derxn*d+dyn,dhj-d.dfr/dL M N O P Q R :dzn3g/ ;dijjj=d?dkj: @d; ljAngrhrBnmjCnnj[d]d^d_d`dk = ojpjqj{d? |d}d~daeirl jrDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnbeYnZncede0n1n2n3n4nrjee5nfegeheieje6n7n8n9n!nsjkelemenetjkroelrujvjwj#n$n%n'n(n)n*npeqemrrexjyjzjAjBj+nCj,nseteueDj-nveEjFjGjHjweIjJjKjLjMjNjOj.n/n:nxeye;n=n?nnrze@n[nor]n^nprAe_nPj@ PgQgRgQjRjSjTjUjVjWjXj`nqrBeCeDeEeFeGerrHeIeJeKeLeYj{nZjMeNeOesrPeQeRe|nSeTe}ntrurUeVe~naobocoWevrXeYeZe0e1edowr2e3e0j4e5e1j2j6exreo7e8efo9e3j!e#eyr$eS T U V W X Y %ego4g[ 'e4j5j(e)e6j] *e^ 7jhozrArio8jjo9j+e,e-e.e/em _ !j#j$j:e` ;e=e?e@eBrn CrkolomonooopoqorosotouovowoxoyozoAoBoCoDoEo[eFoGo]e^eHoIoJoKoLo%j_eMo`e{e|e}e~eNoOoPoQoRo'jafbfcfdf(jDrefEr)j*j+jSoToUoVoWoXoYoffgfFrhf,j-j.j/j:jZo;j0oifjfkf=j1olf?j@j[j]jmf^j_j`j{j|j}j~j2o3o4onfof5o6o7oGrpf8o9oHr!o#oIrqf$oak{ SgTgUgbkckdkekfkgkhkik%oJrrfsftfufvfwfKrxfyfzfAfBfjk'okkCfDfEfLrFfGfHf(oIfJf)oMrNrKfLf*o+o,o-oMfOrNfOfPfQfRf.oPrSfTflkUfVfmknkWfQr/oXfYf:oZfok0f1fRr2fZ 0 1 2 3 4 5 3f;o5g| 4fpkqk5f6frk} 7f~ sk=oSrTr?otk@ouk8f9f!f#f$fo abvkwkxk%fbb'f(f)f*fUrp Vr[o]o^o_o`o{o|o}o~oapbpcpdpepfpgphpipjpkplp+fmpnp,f-fopppqprpspyk.ftp/f:f;f=f?fupvpwpxpypzk@f[f]f^fAkWr_fXrBkCkDkzpApBpCpDpEpFp`f{fYr|fEkFkGkHkIkGpJkHp}f~fagKkIpbgLkMkNkOkcgPkQkRkSkTkUkVkJpKpLpdgegMpNpOpZrfgPpQp0rRpSp1rggTpWkcbVgWgXgXkYkZk0k1k2k3k4kUp2rhgigjgkglgmg3rngogpgqgrg5kVp6ksgtgug4rvgwgxgWpygzgXp5r6rAgBgYpZp0p1pCg7rDgEgFg

184 if "description" in m_schema: 2dbebfbgbhbibjbkblbmbnbobpbq r s t u v w qb0g6 rbsbtb7 ub8 vbwbxbybzbAb9 BbCbDbEbg FbGbHbIbJbKbLbMbNbObPbQbRbSbTbUbVbWbXbYbZb0b1b2b3b4b! GgHgIg5b6b7b8b9b!b#b$b%b'b(b)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b`b{b|b}b~bacbcccdcecfcx y z A B C D gc1g# hcicjc$ kc% lcmcncocpcqc' rcsctcuch vcwcxcyczcAcBcCcDcEcFcGcHcIcJcKcLcMcNcOcPcQcRcScTcUc( JgKgLgVcWcXcYcZc0c1c2c3c4c5c6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.c/c:c;c=c?c@c[c]c^c_c`cE F G H I J K {c2g) |c}c~c* ad+ bdcdddedfdi gd- hdidjdkdj ldmdndodpdqdrdsdtdudvdwdxdydzdAdBdCdDdEdFdGdHdIdJdKd. MgNgOgLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%d'd(d)d*d+d,d-d.d/dL M N O P Q R :d3g/ ;d=d?d: @d; [d]d^d_d`dk {d? |d}d~dael becedeeefegeheiejekelemeneoepeqereseteuevewexeyezeAe@ PgQgRgBeCeDeEeFeGeHeIeJeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e4e5e6e7e8e9e!e#e$eS T U V W X Y %e4g[ 'e(e)e] *e^ +e,e-e.e/em :e` ;e=e?e@en [e]e^e_e`e{e|e}e~eafbfcfdfefffgfhfifjfkflfmfnfofpfqf{ SgTgUgrfsftfufvfwfxfyfzfAfBfCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTfUfVfWfXfYfZf0f1f2fZ 0 1 2 3 4 5 3f5g| 4f5f6f} 7f~ 8f9f!f#f$fo %fbb'f(f)f*fp +f,f-f.f/f:f;f=f?f@f[f]f^f_f`f{f|f}f~fagbgcgdgegfgggcbVgWgXghgigjgkglgmgngogpgqgrgsgtgugvgwgxgygzgAgBgCgDgEgFg

185 m_schema["description"] = m_schema["description"].split("\f")[0] 20g6 7 8 9 ! 1g# $ % ' ( 2g) * + - . 3g/ : ; ? @ 4g[ ] ^ ` { 5g| } ~ bbcb

186 return definitions 2dbeb@kLqfbgbMhhbibNhOhjbMq[kkblb]kmbPhnbobNqpbq r s t u v w qb^k0g6 rbQhRhsbtbSh7 ub8 Th_kOqPq`kUh{kVhvbwbxbybzbWhXhYhAb9 BbCbDbEbg Qq|k}k~kalblcldlelflglhliljlklllmlnlolplqlrlFbsltlGbHbulvlwlxlylZhIbzlJbKbLbMbNbAlBlClDlEl0hObPbQbRb1hRqSbSq2h3h4hFlGlHlIlJlKlLlTbUbTqVb5h6h7h8h9hMl!hNlWbXbYb#hOlZb$h%h'h(h0b)h*h+h,h-h.h/hPlQlRl1b2bSlTlUlUq3bVlWlVqXlYlWq4bZl:h! GgHgIg;h=h?h@h[h]h^h_h0lXq5b6b7b8b9b!bYq#b$b%b'b(b`h1l{h)b*b+bZq,b-b.b2l/b:b3l0q1q;b=b4l5l6l7l?b2q@b[b]b^b_b8l3q`b{b|h|b}b}h~h~b4q9lacbc!lccaidcec5qfcx y z A B C D gc#l1g# hcbiciicjcdi$ kc% ei$l6q7q%lfi'lgilcmcncocpchiiijiqc' rcsctcuch 8q(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}lvc~lamwcxcbmcmdmemfmkiycgmzcAcBcCcDchmimjmkmlmliEcFcGcHcmi9qIc!qnioipimmnmompmqmrmsmJcKc#qLcqirisitiuitmviumMcNcOcwivmPcxiyiziAiQcBiCiDiEiFiGiHiwmxmymRcSczmAmBm$qTcCmDm%qEmFm'qUcGmIi( JgKgLgJiKiLiMiNiOiPiQiHm(qVcWcXcYcZc0c)q1c2c3c4c5cRiImSi6c7c8c*q9c!c#cJm$c%cKm+q,q'c(cLmMmNmOm)c-q*c+c,c-c.cPm.q/c:cTi;c=cUiVi?c/qQm@c[cRm]cWi^c_c:q`cE F G H I J K {cSm2g) |cXiYi}c~cZi* ad+ 0iTm;q=qUm1iVm2ibdcdddedfdi , 3i4i5igd- hdidjdkd?qj @qWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(m)mld*m+mmdnd,m-m.m/m:m6iod;mpdqdrdsdtd=m?m@m[m]m7iudvdwdxd8i[qyd]q9i!i#i^m_m`m{m|m}m~mzdAd^qBd$i%i'i(i)ian*ibnCdDdEd+icnFd,i-i.i/iGd:i;i=i?i@i[i]idnenfnHdIdgnhnin_qJdjnkn`qlnmn{qKdnn^i. MgNgOg_i`i{i|i}i~iajbjon|qLdMdNdOdPdQd}qRdSdTdUdVdcjpndjWdXdYd~qZd0d1dqn2d3drnarbr4d5dsntnunvn6dcr7d8d9d!d#dwndr$d%dej'd(dfjgj)derxn*d+dyn,dhj-d.dfr/dL M N O P Q R :dzn3g/ ;dijjj=d?dkj: @d; ljAngrhrBnmjCnnj[d]d^d_d`dk = ojpjqj{d? |d}d~daeirl jrDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnbeYnZncede0n1n2n3n4nrjee5nfegeheieje6n7n8n9n!nsjkelemenetjkroelrujvjwj#n$n%n'n(n)n*npeqemrrexjyjzjAjBj+nCj,nseteueDj-nveEjFjGjHjweIjJjKjLjMjNjOj.n/n:nxeye;n=n?nnrze@n[nor]n^nprAe_nPj@ PgQgRgQjRjSjTjUjVjWjXj`nqrBeCeDeEeFeGerrHeIeJeKeLeYj{nZjMeNeOesrPeQeRe|nSeTe}ntrurUeVe~naobocoWevrXeYeZe0e1edowr2e3e0j4e5e1j2j6exreo7e8efo9e3j!e#eyr$eS T U V W X Y %ego4g[ 'e4j5j(e)e6j] *e^ 7jhozrArio8jjo9j+e,e-e.e/em _ !j#j$j:e` ;e=e?e@eBrn CrkolomonooopoqorosotouovowoxoyozoAoBoCoDoEo[eFoGo]e^eHoIoJoKoLo%j_eMo`e{e|e}e~eNoOoPoQoRo'jafbfcfdf(jDrefEr)j*j+jSoToUoVoWoXoYoffgfFrhf,j-j.j/j:jZo;j0oifjfkf=j1olf?j@j[j]jmf^j_j`j{j|j}j~j2o3o4onfof5o6o7oGrpf8o9oHr!o#oIrqf$oak{ SgTgUgbkckdkekfkgkhkik%oJrrfsftfufvfwfKrxfyfzfAfBfjk'okkCfDfEfLrFfGfHf(oIfJf)oMrNrKfLf*o+o,o-oMfOrNfOfPfQfRf.oPrSfTflkUfVfmknkWfQr/oXfYf:oZfok0f1fRr2fZ 0 1 2 3 4 5 3f;o5g| 4fpkqk5f6frk} 7f~ sk=oSrTr?otk@ouk8f9f!f#f$fo abvkwkxk%fbb'f(f)f*fUrp Vr[o]o^o_o`o{o|o}o~oapbpcpdpepfpgphpipjpkplp+fmpnp,f-fopppqprpspyk.ftp/f:f;f=f?fupvpwpxpypzk@f[f]f^fAkWr_fXrBkCkDkzpApBpCpDpEpFp`f{fYr|fEkFkGkHkIkGpJkHp}f~fagKkIpbgLkMkNkOkcgPkQkRkSkTkUkVkJpKpLpdgegMpNpOpZrfgPpQp0rRpSp1rggTpWkcbVgWgXgXkYkZk0k1k2k3k4kUp2rhgigjgkglgmg3rngogpgqgrg5kVp6ksgtgug4rvgwgxgWpygzgXp5r6rAgBgYpZp0p1pCg7rDgEgFg

187 

188 

189def is_pv1_scalar_field(field: ModelField) -> bool: 1abcdef

190 from fastapi import params 2a 7k8k9k6g2p7g8g3p9g!g4p#g5p$g%g6p'g:s;s=s?s@s[s]s^g_g`gYg!kg 7p8p9p!p#p$p%p'p8r9r(gb #k$k%k)g(p*g+g)p,g-g*p.g+p/g:g,p;g^s_s`s{s|s}s~s{g|g}gZg'kh -p.p/p:p;p=p?p@p!r#r=gc [p]p^p~g$rahbh%rchdh'reh(rfhgh)rhh)t*t+t,t-t.t/t(k)k*k?g, _p`p{p|pj *r+r,r-r.r/r:r;ratbtihd }p~paqjh=rkhlh?rmhnh@roh[rphqh]rrh:t;t=t?t@t[t]t+k,k-k@g= bqcqdqeql ^r_r`r{r|r}r~rasctdtshe fqgqhqthbsuhvhcswhxhdsyheszhAhfsBh^t_t`t{t|t}t~t.k/k:k[g_ iqjqkqlqn gshsisjskslsmsnsetftChf mqnqoqosDhEhpsFhGhqsHhrsIhJhssKhaubucudueufugu;k=k?k]gabpqqqrqsqp tsusvswsxsyszsAsgthtLh

191 

192 field_info = field.field_info 2a 7k8k9k6g2p7g8g3p9g!g4p#g5p$g%g6p'g:s;s=s?s@s[s]s^g_g`gYg!kg 7p8p9p!p#p$p%p'p8r9r(gb #k$k%k)g(p*g+g)p,g-g*p.g+p/g:g,p;g^s_s`s{s|s}s~s{g|g}gZg'kh -p.p/p:p;p=p?p@p!r#r=gc [p]p^p~g$rahbh%rchdh'reh(rfhgh)rhh)t*t+t,t-t.t/t(k)k*k?g, _p`p{p|pj *r+r,r-r.r/r:r;ratbtihd }p~paqjh=rkhlh?rmhnh@roh[rphqh]rrh:t;t=t?t@t[t]t+k,k-k@g= bqcqdqeql ^r_r`r{r|r}r~rasctdtshe fqgqhqthbsuhvhcswhxhdsyheszhAhfsBh^t_t`t{t|t}t~t.k/k:k[g_ iqjqkqlqn gshsisjskslsmsnsetftChf mqnqoqosDhEhpsFhGhqsHhrsIhJhssKhaubucudueufugu;k=k?k]gabpqqqrqsqp tsusvswsxsyszsAsgthtLh

193 if not ( 2a 7k8k9k6g2p7g8g3p9g!g4p#g5p$g%g6p'g:s;s=s?s@s[s]s^g_g`gYg!kg 7p8p9p!p#p$p%p'p8r9r(gb #k$k%k)g(p*g+g)p,g-g*p.g+p/g:g,p;g^s_s`s{s|s}s~s{g|g}gZg'kh -p.p/p:p;p=p?p@p!r#r=g

194 field.shape == SHAPE_SINGLETON 

195 and not lenient_issubclass(field.type_, BaseModel) 

196 and not lenient_issubclass(field.type_, dict) 

197 and not shared.field_annotation_is_sequence(field.type_) 

198 and not is_dataclass(field.type_) 

199 and not isinstance(field_info, params.Body) 

200 ): 

201 return False 2a 6g:s;s=s?s@s[s]s^g_g`gYgb )g^s_s`s{s|s}s~s{g|g}gZgc ~g)t*t+t,t-t.t/t(k)k*k?gd jh:t;t=t?t@t[t]t+k,k-k@ge th^t_t`t{t|t}t~t.k/k:k[gf aubucudueufugu;k=k?k]g

202 if field.sub_fields: 2a 7k8k9k6g2p7g8g3p9g!g4p#g5p$g%g6p'g!kg 7p8p9p!p#p$p%p'p8r9r(gb #k$k%k)g(p*g+g)p,g-g*p.g+p/g:g,p;g'kh -p.p/p:p;p=p?p@p!r#r=gc [p]p^p~g$rahbh%rchdh'reh(rfhgh)rhh, _p`p{p|pj *r+r,r-r.r/r:r;ratbtihd }p~paqjh=rkhlh?rmhnh@roh[rphqh]rrh= bqcqdqeql ^r_r`r{r|r}r~rasctdtshe fqgqhqthbsuhvhcswhxhdsyheszhAhfsBh_ iqjqkqlqn gshsisjskslsmsnsetftChf mqnqoqosDhEhpsFhGhqsHhrsIhJhssKhabpqqqrqsqp tsusvswsxsyszsAsgthtLh

203 if not all(is_pv1_scalar_field(f) for f in field.sub_fields): 26g)g~gjhth

204 return False 26g)g~gjhth

205 return True 2a 7k8k9k6g2p7g8g3p9g!g4p#g5p$g%g6p'g!kg 7p8p9p!p#p$p%p'p8r9r(gb #k$k%k)g(p*g+g)p,g-g*p.g+p/g:g,p;g'kh -p.p/p:p;p=p?p@p!r#r=gc [p]p^p~g$rahbh%rchdh'reh(rfhgh)rhh, _p`p{p|pj *r+r,r-r.r/r:r;ratbtihd }p~paqjh=rkhlh?rmhnh@roh[rphqh]rrh= bqcqdqeql ^r_r`r{r|r}r~rasctdtshe fqgqhqthbsuhvhcswhxhdsyheszhAhfsBh_ iqjqkqlqn gshsisjskslsmsnsetftChf mqnqoqosDhEhpsFhGhqsHhrsIhJhssKhabpqqqrqsqp tsusvswsxsyszsAsgthtLh

206 

207 

208def is_pv1_scalar_sequence_field(field: ModelField) -> bool: 1abcdef

209 if (field.shape in sequence_shapes) and not lenient_issubclass( 2a ^g_g`gYgb {g|g}gZgc (k)k*k?gd +k,k-k@ge .k/k:k[gf ;k=k?k]g

210 field.type_, BaseModel 

211 ): 

212 if field.sub_fields is not None: 2a Ygb Zgc ?gd @ge [gf ]g

213 for sub_field in field.sub_fields: 2a Ygb Zgc ?gd @ge [gf ]g

214 if not is_pv1_scalar_field(sub_field): 2a Ygb Zgc ?gd @ge [gf ]g

215 return False 2YgZg?g@g[g]g

216 return True 1abcdef

217 if shared._annotation_is_sequence(field.type_): 2a ^g_g`gb {g|g}gc (k)k*kd +k,k-ke .k/k:kf ;k=k?k

218 return True 1abcdef

219 return False 2a ^g_g`gb {g|g}gc (k)k*kd +k,k-ke .k/k:kf ;k=k?k

220 

221 

222def _model_rebuild(model: Type[BaseModel]) -> None: 1abcdef

223 model.update_forward_refs() 1abcdef

224 

225 

226def _model_dump( 1abcdef

227 model: BaseModel, mode: Literal["json", "python"] = "json", **kwargs: Any 

228) -> Any: 

229 return model.dict(**kwargs) 2db,Leb@kfbgbMhhbibNhOh-L.L/LhAjb[kkb:LiA;L=Llb?L]k@LmbPhjAnbkAOxobPxQxRxhuiupbq r s t u v w qb^k6 [LrbQhRh]L^L_L`L{L|L}L~LaMbMcMsbtbdMShSx7 lAub8 Th_kmAeMnAoA`kUh{kVhfMpAqArAgMvbsAhMtAuAiMvAwAjMwbxbxAyAzAAAkMBAlMCADAEAFAGAmMHAnMIAybJAKALAMANAOAPAQARASATAUAzboMVAWAXApMYAZA0A1A2A3ATx4A5AWhXhYhAb9 qMrMsMtMuMvM6A7A8ABbCb9A!AwMxM#A$A%A'A(AyMDb)A*AzMAM+A,A-ABMCM.A/A:ADMEMFM;A=AUx?A@AVx[A]AGM^A_AHM`AIM{AJMEb!kg |kKM}kLM~kMMalNMblOMclPMdlQMelRMflSMglhliljlklllmlnlolplqlrlFbTMUMsltlGbVMWMHbXMYMulvlwlZM0Mxl1M2Myl3M4M5M6M7M8M9M!M#M$M|A}A~AaBbBcBdBeBfBgBhBiBjBZhIbzl%MJb'MKbkBLblBMbmBNbnBAlBlClDlEl0h(M)M*M+MOb,M-M.MoBpBPbQbqBRbrB1hsBSbtBWxuBvB2hXxwB3h4hFlGlHlIlJlKlLlTb/MUb:MVbxB5h6h7h8h9hMl!hNlWbyBzBXb;MYb#hOl=MZb?M@M$h%h'h(h0b[M)hYxABBB*hZxCB+h0xDBEB,h-h.h/hPlQlRl1b2bSlTlUl3bFBVlWlXl]MYl4bGBZl:h! ^M_M;h1xHBIB=h2xJB?h@h[h]h^h_h0l5b6b7b8b9b!bju#bku$b%b'bKB(bLB`h1l{hMB)b*bNBOB+bPBQB,bRB-bSB.bTB2l/b`Mlu:bmunuoupuqu3l{MUB|MVB3x;b4x=b4l5l6l5x7l?b}M~M@b6x7x[baNbNWBcN]bXB^bdN_b8l`b{b|h|b}b}h~heNfNgNYB~b9lachNZBiNjNbckN!llNccai0Bdc1B8xec9x!x#xrusufcx y z A B C D gc#l# mNhcbicinNoNpNqNrNsNtNuNvNwNxNicjcyNdi$x$ 2Bkc% ei$l3BzN4B5B%lfi'lgiAN6B7B8BBNlc9BCN!B#BDN$B%BENmcnc'B(B)B*BFN+BGN,B-B.B/B:BHN;BIN=Boc?B@B[B]B^B_B`B{B|B}B~BaCpcJNbCcCdCKNeCfCgChCiCjC%xkClChiiijiqc' LNMNNNONPNQNmCnCoCrcscpCqCRNSNrCsCtCuCvCTNtcwCxCUNVNyCzCACWNXNBCCCDCYNZN0NECFC'xGCHC(xICJC1NKCLC2NMC3NNC4Nuc'kh (l5N)l6N*l7N+l8N,l9N-l!N.l#N/l$N:l%N;l=l?l@l[l]l^l_l`l{l|l}lvc'N(N~lamwc)N*Nxc+N,Nbmcmdm-N.Nem/N:Nfm;N=N?N@N[N]N^N_N`N{NOCPCQCRCSCTCUCVCWCXCYCZC0Ckiycgm|Nzc}NAc1CBc2CCc3CDc4Chmimjmkmlmli~NaObOcOEcdOeOfO5C6CFcGc7CHc8Cmi9CIc!C)x#C$Cni*x%CoipimmnmompmqmrmsmJcgOKchOLc'CqirisitiuitmviumMc(C)CNciOOcwivmjOPckOlOxiyiziAiQcmOBi+x*C+CCi,x,CDi-x-C.CEiFiGiHiwmxmymRcSczmAmBmTc/CCmDmEmnOFmUc:CGmIi( oOpOJi.x;C=CKi/x?CLiMiNiOiPiQiHmVcWcXcYcZc0ctu1cuu2c3c4c@C5c[CRiImSi]C6c7c^C_C8c`C{C9c|C!c}C#c~CJm$cqOvu%cwuxuyuzuAuKmrOaDsObD:x'c;x(cLmMmNm=xOm)ctOuO*c?x@x+cvOwOcDxO,cdD-cyO.cPm/c:cTi;c=cUiVizOAOBOeD?cQm@cCOfDDOEO[cFORmGO]cWigD^chD[x_c]x^x_xBuCu`cE F G H I J K {cSm) HO|cXiYiIOJOKOLOMONOOOPOQOROSO}c~cTOZi`x* iDad+ 0iTmjDUOkDlDUm1iVm2iVOmDnDoDWObdpDXOqDrDYOsDtDZOcddduDvDwDxD0OyD1OzDADBDCDDD2OED3OFDedGDHDIDJDKDLDMDNDODPDQDRDfd4OSDTDUD5OVDWDXDYDZD0D{x1D2Di , 3i4i5igd- 6O7O8O9O!O#O3D4D5Dhdid6D7D$O%O8D9D!D#D$D'Ojd%D'D(O)O(D)D*D*O+O+D,D-D,O-O.O.D/D|x:D;D}x=D?D/O@D[D:O]D;O^D=Okd|pj Wm?OXm@OYm[OZm]O0m^O1m_O2m`O3m{O4m|O5m6m7m8m9m!m#m$m%m'm(m)mld}O~O*m+mmdaPbPndcPdP,m-m.mePfP/mgPhP:miPjPkPlPmPnPoPpPqPrP_D`D{D|D}D~DaEbEcEdEeEfEgE6iod;msPpdtPqdhErdiEsdjEtdkE=m?m@m[m]m7iuPvPwPxPudyPzPAPlEmEvdwdnExdoE8ipEydqE~xrEsE9iaytE!i#i^m_m`m{m|m}m~mzdBPAdCPBduE$i%i'i(i)ian*ibnCdvEwEDdDPEd+icnEPFdFPGP,i-i.i/iGdHP:ibyxEyE;icyzE=idyAEBE?i@i[i]idnenfnHdIdgnhninJdCEjnknlnIPmnKdDEnn^i. JPKP_ieyEEFE`ifyGE{i|i}i~iajbjonLdMdNdOdPdQdDuRdEuSdTdUdHEVdIEcjpndjJEWdXdKELEYdMENEZdOE0dPE1dQEqn2dLPFu3dGuHuIuJuKurnMPRENPSEgy4dhy5dsntnuniyvn6dOPPP7djyky8dQPRPTESP9dUE!dTP#dwn$d%dej'd(dfjgjUPVPWPVE)dxn*dXPWEYPZP+d0Pyn1P,dhjXE-dYEly.dmynyoyLuMu/dL M N O P Q R :dzn/ 2P;dijjj3P4P5P6P7P8P9P!P#P$P%P=d?d'Pkjpy: ZE@d; ljAn0E(P1E2EBnmjCnnj)P3E4E5E*P[d6E+P7E8E,P9E!E-P]d^d#E$E%E'E.P(E/P)E*E+E,E-E:P.E;P/E_d:E;E=E?E@E[E]E^E_E`E{E|E`d=P}E~EaF?PbFcFdFeFfFgFqyhFiFk = ojpjqj{d? @P[P]P^P_P`PjFkFlF|d}dmFnF{P|PoFpFqFrFsF}P~dtFuF~PaQvFwFxFbQcQyFzFAFdQeQfQBFCFryDFEFsyFFGFgQHFIFhQJFiQKFjQaeeql DnkQEnlQFnmQGnnQHnoQInpQJnqQKnrQLnsQMnNnOnPnQnRnSnTnUnVnWnXnbetQuQYnZncevQwQdexQyQ0n1n2nzQAQ3nBQCQ4nDQEQFQGQHQIQJQKQLQMQLFMFNFOFPFQFRFSFTFUFVFWFXFrjee5nNQfeOQgeYFheZFie0Fje1F6n7n8n9n!nsjPQQQRQSQkeTQUQVQ2F3Fleme4Fne5Ftj6Foe7Fty8F9Fujuy!Fvjwj#n$n%n'n(n)n*npeWQqeXQre#FxjyjzjAjBj+nCj,nse$F%FteYQueDj-nZQve0Q1QEjFjGjHjwe2QIjvy'F(FJjwy)FKjxy*F+FLjMjNjOj.n/n:nxeye;n=n?nze,F@n[n]n3Q^nAe-F_nPj@ 4Q5QQjyy.F/FRjzy:FSjTjUjVjWjXj`nBeCeDeEeFeGeNuHeOuIeJeKe;FLe=FYj{nZj?FMeNe@F[FOe]F^FPe_FQe`FRe{F|nSe6QPuTeQuRuSuTuUu}n7Q|F8Q}FAyUeByVe~naoboCycoWe9Q!QXeDyEyYe#Q$Q~F%QZeaG0e'Q1edo2e3e0j4e5e1j2j(Q)Q*QbG6eeo7e+QcG,Q-Q8e.Qfo/Q9e3jdG!eeGFy#eGyHyIyVuWu$eS T U V W X Y %ego[ :Q'e4j5j;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q(e)e}Q6jJy] fG*e^ 7jhogG~QhGiGio8jjo9jaRjGkGlGbR+emGcRnGoGdRpGqGeR,e-erGsGtGuGfRvGgRwGxGyGzGAGhRBGiRCG.eDGEGFGGGHGIGJGKGLGMGNGOG/ejRPGQGRGkRSGTGUGVGWGXGKyYGZGm _ !j#j$j:e` lRmRnRoRpRqR0G1G2G;e=e3G4GrRsR5G6G7G8G9GtR?e!G#GuRvR$G%G'GwRxR(G)G*GyRzRAR+G,GLy-G.GMy/G:GBR;G=GCR?GDR@GER@elqn koFRloGRmoHRnoIRooJRpoKRqoLRroMRsoNRtouovowoxoyozoAoBoCoDoEo[eORPRFoGo]eQRRR^eSRTRHoIoJoURVRKoWRXRLoYRZR0R1R2R3R4R5R6R7R[G]G^G_G`G{G|G}G~GaHbHcHdH%j_eMo8R`e9R{eeH|efH}egH~ehHNoOoPoQoRo'j!R#R$R%Raf'R(R)RiHjHbfcfkHdflH(jmHefnHNyoHpH)jOyqH*j+jSoToUoVoWoXoYoff*Rgf+RhfrH,j-j.j/j:jZo;j0oifsHtHjf,Rkf=j1o-Rlf.R/R?j@j[j]jmf:R^jPyuHvH_jQywH`jRyxHyH{j|j}j~j2o3o4onfof5o6o7opfzH8o9o!o;R#oqfAH$oak{ =R?RbkSyBHCHckTyDHdkekfkgkhkik%orfsftfufvfwfXuxfYuyfzfAfEHBfFHjk'okkGHCfDfHHIHEfJHKHFfLHGfMHHfNH(oIf@RZuJf0u1u2u3u4u)o[ROH]RPHUyKfVyLf*o+o,oWy-oMf^R_RNfXyYyOf`R{RQH|RPfRHQf}RRf.oSfTflkUfVfmknk~RaSbSSHWf/oXfcSTHdSeSYffS:ogSZfokUH0fVHZy1f0y1y2y5u6u2fZ 0 1 2 3 4 5 3f;o| hS4fpkqkiSjSkSlSmSnSoSpSqSrSsS5f6ftSrk3y} WH7f~ sk=oXHuSYHZH?otk@oukvS0H1H2HwS8f3HxS4H5HyS6H7HzS9f!f8H9H!H#HAS$HBS%H'H(H)H*HCS+HDS,H#f-H.H/H:H;H=H?H@H[H]H^H_H$fES`H{H|HFS}H~HaIbIcIdI4yeIfIo abvkwkxk%fbbGSHSISJSKSLSgIhIiI'f(fjIkIMSNSlImInIoIpIOS)fqIrIPSQSsItIuIRSSSvIwIxITSUSVSyIzI5yAIBI6yCIDIWSEIFIXSGIYSHIZS*fsqp [o0S]o1S^o2S_o3S`o4S{o5S|o6S}o7S~o8Sapbpcpdpepfpgphpipjpkplp+f9S!Smpnp,f#S$S-f%S'Sopppqp(S)Srp*S+Ssp,S-S.S/S:S;S=S?S@S[SIIJIKILIMINIOIPIQIRISITIUIyk.ftp]S/f^S:fVI;fWI=fXI?fYIupvpwpxpypzk_S`S{S|S@f}S~SaTZI0I[f]f1I^f2IAk3I_f4I7y5I6IBk8y7ICkDkzpApBpCpDpEpFp`fbT{fcT|f8IEkFkGkHkIkGpJkHp}f9I!I~fdTagKkIpeTbgfTgTLkMkNkOkcghTPk9y#I$IQk!y%IRk#y'I(ISkTkUkVkJpKpLpdgegMpNpOpfg)IPpQpRpiTSpgg*ITpWkcbjTkTXk$y+I,IYk%y-IZk0k1k2k3k4kUphgigjgkglgmg7ung8uogpgqg.Irg/I5kVp6k:Isgtg;I=Iug?I@Ivg[Iwg]Ixg^IWpyglT9uzg!u#u$u%u'uXpmT_InT`I'yAg(yBgYpZp0p)y1pCgoTpTDg*y+yEgqTrT{IsTFg|I

230 

231 

232def _get_model_config(model: BaseModel) -> Any: 1abcdef

233 return model.__config__ # type: ignore[attr-defined] 2iAOxPxSxmAnAoApAqArAsAtAuAvAwAxAyAzAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;A=AUx?A@AVx[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBFBGBKBLBlumunuoupuquUBVB3x4x5xXBZB8x9x$x3B4B5B6B7B8B9B!B#B$B%B'B(B)B*B+B,B-B.B/B:B;B=B?B@B[B]B^B_B`B{B|B}B~BaCbCcCdCeCfCgClCmCnCoCpCqCrCsCtCuCvCwCxCyCzCACBCCCDCECFC'xGCHC(xICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZC0C/C:C@C[CvuwuxuyuzuAuaDbD:x;x=xdDfD[x]x`xjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDHDIDJDKDLDMDNDODPDQDRDSDTDUDVDWDXD2D3D4D5D6D7D8D9D!D#D$D%D'D(D)D*D+D,D-D.D/D|x:D;D}x=D?D@D[D]D^D_D`D{D|D}D~DaEbEcEdEeEfEgECEDEHEIEFuGuHuIuJuKuRESEgyhyiyUEWElymypy0E1E2E3E4E5E6E7E8E9E!E#E$E%E'E(E)E*E+E,E-E.E/E:E;E=E?E@E[E]E^E_E`E{E|E}E~EaFbFcFdFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFryDFEFsyFFGFHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXF,F-F;F=FPuQuRuSuTuUu|F}FAyByCyaGcGFyGyJygGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzGAGBGCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGZG0G1G2G3G4G5G6G7G8G9G!G#G$G%G'G(G)G*G+G,GLy-G.GMy/G:G;G=G?G@G[G]G^G_G`G{G|G}G~GaHbHcHdHzHAHEHFHZu0u1u2u3u4uOHPHUyVyWyRHTHZy0y3yXHYHZH0H1H2H3H4H5H6H7H8H9H!H#H$H%H'H(H)H*H+H,H-H.H/H:H;H=H?H@H[H]H^H_H`H{H|H}H~HaIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzI5yAIBI6yCIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUI)I*I.I/I9u!u#u$u%u'u_I`I'y(y)y|I

234 

235 

236def get_schema_from_model_field( 1abcdef

237 *, 

238 field: ModelField, 

239 model_name_map: ModelNameMap, 

240 field_mapping: Dict[ 

241 Tuple[ModelField, Literal["validation", "serialization"]], JsonSchemaValue 

242 ], 

243 separate_input_output_schemas: bool = True, 

244) -> Dict[str, Any]: 

245 return field_schema( # type: ignore[no-any-return] 2dbebfbgbMhhbibNhOhjbkblbmbPhnbobpbq r s t u v w qb6 rbQhRhsbtbSh7 ub8 ThUhVhvbwbxbybzbWhXhYhAb9 BbCbDbEbg FbGbHbZhIbJbKbLbMbNb0hObPbQbRb1hSb2h3h4hTbUbVb5h6h7h8h9h!hWbXbYb#hZb$h%h'h(h0b)h*h+h,h-h.h/h1b2b3b4b:h! GgHgIg;h=h?h@h[h]h^h_h5b6b7b8b9b!b#b$b%b'b(b`h{h)b*b+b,b-b.b/b:b;b=b?b@b[b]b^b_b`b{b|h|b}b}h~h~bacbcccaidcecfcx y z A B C D gc# hcbiciicjcdi$ kc% eifigilcmcncocpchiiijiqc' rcsctcuch vcwcxckiyczcAcBcCcDcliEcFcGcHcmiIcnioipiJcKcLcqirisitiuiviMcNcOcwiPcxiyiziAiQcBiCiDiEiFiGiHiRcScTcUcIi( JgKgLgJiKiLiMiNiOiPiQiVcWcXcYcZc0c1c2c3c4c5cRiSi6c7c8c9c!c#c$c%c'c(c)c*c+c,c-c.c/c:cTi;c=cUiVi?c@c[c]cWi^c_c`cE F G H I J K {c) |cXiYi}c~cZi* ad+ 0i1i2ibdcdddedfdi , 3i4i5igd- hdidjdkdj ldmdnd6iodpdqdrdsdtd7iudvdwdxd8iyd9i!i#izdAdBd$i%i'i(i)i*iCdDdEd+iFd,i-i.i/iGd:i;i=i?i@i[i]iHdIdJdKd^i. MgNgOg_i`i{i|i}i~iajbjLdMdNdOdPdQdRdSdTdUdVdcjdjWdXdYdZd0d1d2d3d4d5d6d7d8d9d!d#d$d%dej'd(dfjgj)d*d+d,dhj-d.d/dL M N O P Q R :d/ ;dijjj=d?dkj: @d; ljmjnj[d]d^d_d`dk = ojpjqj{d? |d}d~dael becederjeefegeheiejesjkelemenetjoeujvjwjpeqerexjyjzjAjBjCjseteueDjveEjFjGjHjweIjJjKjLjMjNjOjxeyezeAePj@ PgQgRgQjRjSjTjUjVjWjXjBeCeDeEeFeGeHeIeJeKeLeYjZjMeNeOePeQeReSeTeUeVeWeXeYeZe0e1e2e3e0j4e5e1j2j6e7e8e9e3j!e#e$eS T U V W X Y %e[ 'e4j5j(e)e6j] *e^ 7j8j9j+e,e-e.e/em _ !j#j$j:e` ;e=e?e@en [e]e^e%j_e`e{e|e}e~e'jafbfcfdf(jef)j*j+jffgfhf,j-j.j/j:j;jifjfkf=jlf?j@j[j]jmf^j_j`j{j|j}j~jnfofpfqfak{ SgTgUgbkckdkekfkgkhkikrfsftfufvfwfxfyfzfAfBfjkkkCfDfEfFfGfHfIfJfKfLfMfNfOfPfQfRfSfTflkUfVfmknkWfXfYfZfok0f1f2fZ 0 1 2 3 4 5 3f| 4fpkqk5f6frk} 7f~ sktkuk8f9f!f#f$fo abvkwkxk%fbb'f(f)f*fp +f,f-fyk.f/f:f;f=f?fzk@f[f]f^fAk_fBkCkDk`f{f|fEkFkGkHkIkJk}f~fagKkbgLkMkNkOkcgPkQkRkSkTkUkVkdgegfgggWkcbVgWgXgXkYkZk0k1k2k3k4khgigjgkglgmgngogpgqgrg5k6ksgtgugvgwgxgygzgAgBgCgDgEgFg

246 field, model_name_map=model_name_map, ref_prefix=REF_PREFIX 

247 )[0] 

248 

249 

250# def get_compat_model_name_map(fields: List[ModelField]) -> ModelNameMap: 

251# models = get_flat_models_from_fields(fields, known_models=set()) 

252# return get_model_name_map(models) # type: ignore[no-any-return] 

253 

254 

255def get_definitions( 1abcdef

256 *, 

257 fields: List[ModelField], 

258 model_name_map: ModelNameMap, 

259 separate_input_output_schemas: bool = True, 

260) -> Tuple[ 

261 Dict[Tuple[ModelField, Literal["validation", "serialization"]], JsonSchemaValue], 

262 Dict[str, Dict[str, Any]], 

263]: 

264 models = get_flat_models_from_fields(fields, known_models=set()) 2dbeb@kLqfbgbMhhbibNhOhjbMq[kkblb]kmbPhnbobNqpbq r s t u v w qb^k6 rbQhRhsbtbSh7 ub8 Th_kOqPq`kUh{kVhvbwbxbybzbWhXhYhAb9 BbCbDbEbg Qq|k}k~kalblcldlelflglhliljlklllmlnlolplqlrlFbsltlGbHbulvlwlxlylZhIbzlJbKbLbMbNbAlBlClDlEl0hObPbQbRb1hRqSbSq2h3h4hFlGlHlIlJlKlLlTbUbTqVb5h6h7h8h9hMl!hNlWbXbYb#hOlZb$h%h'h(h0b)h*h+h,h-h.h/hPlQlRl1b2bSlTlUlUq3bVlWlVqXlYlWq4bZl:h! GgHgIg;h=h?h@h[h]h^h_h0lXq5b6b7b8b9b!bYq#b$b%b'b(b`h1l{h)b*b+bZq,b-b.b2l/b:b3l0q1q;b=b4l5l6l7l?b2q@b[b]b^b_b8l3q`b{b|h|b}b}h~h~b4q9lacbc!lccaidcec5qfcx y z A B C D gc#l# hcbiciicjcdi$ kc% ei$l6q7q%lfi'lgilcmcncocpchiiijiqc' rcsctcuch 8q(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}lvc~lamwcxcbmcmdmemfmkiycgmzcAcBcCcDchmimjmkmlmliEcFcGcHcmi9qIc!qnioipimmnmompmqmrmsmJcKc#qLcqirisitiuitmviumMcNcOcwivmPcxiyiziAiQcBiCiDiEiFiGiHiwmxmymRcSczmAmBm$qTcCmDm%qEmFm'qUcGmIi( JgKgLgJiKiLiMiNiOiPiQiHm(qVcWcXcYcZc0c)q1c2c3c4c5cRiImSi6c7c8c*q9c!c#cJm$c%cKm+q,q'c(cLmMmNmOm)c-q*c+c,c-c.cPm.q/c:cTi;c=cUiVi?c/qQm@c[cRm]cWi^c_c:q`cE F G H I J K {cSm) |cXiYi}c~cZi* ad+ 0iTm;q=qUm1iVm2ibdcdddedfdi , 3i4i5igd- hdidjdkd?qj @qWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(m)mld*m+mmdnd,m-m.m/m:m6iod;mpdqdrdsdtd=m?m@m[m]m7iudvdwdxd8i[qyd]q9i!i#i^m_m`m{m|m}m~mzdAd^qBd$i%i'i(i)ian*ibnCdDdEd+icnFd,i-i.i/iGd:i;i=i?i@i[i]idnenfnHdIdgnhnin_qJdjnkn`qlnmn{qKdnn^i. MgNgOg_i`i{i|i}i~iajbjon|qLdMdNdOdPdQd}qRdSdTdUdVdcjpndjWdXdYd~qZd0d1dqn2d3drnarbr4d5dsntnunvn6dcr7d8d9d!d#dwndr$d%dej'd(dfjgj)derxn*d+dyn,dhj-d.dfr/dL M N O P Q R :dzn/ ;dijjj=d?dkj: @d; ljAngrhrBnmjCnnj[d]d^d_d`dk = ojpjqj{d? |d}d~daeirl jrDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnbeYnZncede0n1n2n3n4nrjee5nfegeheieje6n7n8n9n!nsjkelemenetjkroelrujvjwj#n$n%n'n(n)n*npeqemrrexjyjzjAjBj+nCj,nseteueDj-nveEjFjGjHjweIjJjKjLjMjNjOj.n/n:nxeye;n=n?nnrze@n[nor]n^nprAe_nPj@ PgQgRgQjRjSjTjUjVjWjXj`nqrBeCeDeEeFeGerrHeIeJeKeLeYj{nZjMeNeOesrPeQeRe|nSeTe}ntrurUeVe~naobocoWevrXeYeZe0e1edowr2e3e0j4e5e1j2j6exreo7e8efo9e3j!e#eyr$eS T U V W X Y %ego[ 'e4j5j(e)e6j] *e^ 7jhozrArio8jjo9j+e,e-e.e/em _ !j#j$j:e` ;e=e?e@eBrn CrkolomonooopoqorosotouovowoxoyozoAoBoCoDoEo[eFoGo]e^eHoIoJoKoLo%j_eMo`e{e|e}e~eNoOoPoQoRo'jafbfcfdf(jDrefEr)j*j+jSoToUoVoWoXoYoffgfFrhf,j-j.j/j:jZo;j0oifjfkf=j1olf?j@j[j]jmf^j_j`j{j|j}j~j2o3o4onfof5o6o7oGrpf8o9oHr!o#oIrqf$oak{ SgTgUgbkckdkekfkgkhkik%oJrrfsftfufvfwfKrxfyfzfAfBfjk'okkCfDfEfLrFfGfHf(oIfJf)oMrNrKfLf*o+o,o-oMfOrNfOfPfQfRf.oPrSfTflkUfVfmknkWfQr/oXfYf:oZfok0f1fRr2fZ 0 1 2 3 4 5 3f;o| 4fpkqk5f6frk} 7f~ sk=oSrTr?otk@ouk8f9f!f#f$fo abvkwkxk%fbb'f(f)f*fUrp Vr[o]o^o_o`o{o|o}o~oapbpcpdpepfpgphpipjpkplp+fmpnp,f-fopppqprpspyk.ftp/f:f;f=f?fupvpwpxpypzk@f[f]f^fAkWr_fXrBkCkDkzpApBpCpDpEpFp`f{fYr|fEkFkGkHkIkGpJkHp}f~fagKkIpbgLkMkNkOkcgPkQkRkSkTkUkVkJpKpLpdgegMpNpOpZrfgPpQp0rRpSp1rggTpWkcbVgWgXgXkYkZk0k1k2k3k4kUp2rhgigjgkglgmg3rngogpgqgrg5kVp6ksgtgug4rvgwgxgWpygzgXp5r6rAgBgYpZp0p1pCg7rDgEgFg

265 return {}, get_model_definitions(flat_models=models, model_name_map=model_name_map) 2dbeb@kLqfbgbMhhbibNhOhjbMq[kkblb]kmbPhnbobNqpbq r s t u v w qb^k6 rbQhRhsbtbSh7 ub8 Th_kOqPq`kUh{kVhvbwbxbybzbWhXhYhAb9 BbCbDbEbg Qq|k}k~kalblcldlelflglhliljlklllmlnlolplqlrlFbsltlGbHbulvlwlxlylZhIbzlJbKbLbMbNbAlBlClDlEl0hObPbQbRb1hRqSbSq2h3h4hFlGlHlIlJlKlLlTbUbTqVb5h6h7h8h9hMl!hNlWbXbYb#hOlZb$h%h'h(h0b)h*h+h,h-h.h/hPlQlRl1b2bSlTlUlUq3bVlWlVqXlYlWq4bZl:h! GgHgIg;h=h?h@h[h]h^h_h0lXq5b6b7b8b9b!bYq#b$b%b'b(b`h1l{h)b*b+bZq,b-b.b2l/b:b3l0q1q;b=b4l5l6l7l?b2q@b[b]b^b_b8l3q`b{b|h|b}b}h~h~b4q9lacbc!lccaidcec5qfcx y z A B C D gc#l# hcbiciicjcdi$ kc% ei$l6q7q%lfi'lgilcmcncocpchiiijiqc' rcsctcuch 8q(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}lvc~lamwcxcbmcmdmemfmkiycgmzcAcBcCcDchmimjmkmlmliEcFcGcHcmi9qIc!qnioipimmnmompmqmrmsmJcKc#qLcqirisitiuitmviumMcNcOcwivmPcxiyiziAiQcBiCiDiEiFiGiHiwmxmymRcSczmAmBm$qTcCmDm%qEmFm'qUcGmIi( JgKgLgJiKiLiMiNiOiPiQiHm(qVcWcXcYcZc0c)q1c2c3c4c5cRiImSi6c7c8c*q9c!c#cJm$c%cKm+q,q'c(cLmMmNmOm)c-q*c+c,c-c.cPm.q/c:cTi;c=cUiVi?c/qQm@c[cRm]cWi^c_c:q`cE F G H I J K {cSm) |cXiYi}c~cZi* ad+ 0iTm;q=qUm1iVm2ibdcdddedfdi , 3i4i5igd- hdidjdkd?qj @qWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(m)mld*m+mmdnd,m-m.m/m:m6iod;mpdqdrdsdtd=m?m@m[m]m7iudvdwdxd8i[qyd]q9i!i#i^m_m`m{m|m}m~mzdAd^qBd$i%i'i(i)ian*ibnCdDdEd+icnFd,i-i.i/iGd:i;i=i?i@i[i]idnenfnHdIdgnhnin_qJdjnkn`qlnmn{qKdnn^i. MgNgOg_i`i{i|i}i~iajbjon|qLdMdNdOdPdQd}qRdSdTdUdVdcjpndjWdXdYd~qZd0d1dqn2d3drnarbr4d5dsntnunvn6dcr7d8d9d!d#dwndr$d%dej'd(dfjgj)derxn*d+dyn,dhj-d.dfr/dL M N O P Q R :dzn/ ;dijjj=d?dkj: @d; ljAngrhrBnmjCnnj[d]d^d_d`dk = ojpjqj{d? |d}d~daeirl jrDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnbeYnZncede0n1n2n3n4nrjee5nfegeheieje6n7n8n9n!nsjkelemenetjkroelrujvjwj#n$n%n'n(n)n*npeqemrrexjyjzjAjBj+nCj,nseteueDj-nveEjFjGjHjweIjJjKjLjMjNjOj.n/n:nxeye;n=n?nnrze@n[nor]n^nprAe_nPj@ PgQgRgQjRjSjTjUjVjWjXj`nqrBeCeDeEeFeGerrHeIeJeKeLeYj{nZjMeNeOesrPeQeRe|nSeTe}ntrurUeVe~naobocoWevrXeYeZe0e1edowr2e3e0j4e5e1j2j6exreo7e8efo9e3j!e#eyr$eS T U V W X Y %ego[ 'e4j5j(e)e6j] *e^ 7jhozrArio8jjo9j+e,e-e.e/em _ !j#j$j:e` ;e=e?e@eBrn CrkolomonooopoqorosotouovowoxoyozoAoBoCoDoEo[eFoGo]e^eHoIoJoKoLo%j_eMo`e{e|e}e~eNoOoPoQoRo'jafbfcfdf(jDrefEr)j*j+jSoToUoVoWoXoYoffgfFrhf,j-j.j/j:jZo;j0oifjfkf=j1olf?j@j[j]jmf^j_j`j{j|j}j~j2o3o4onfof5o6o7oGrpf8o9oHr!o#oIrqf$oak{ SgTgUgbkckdkekfkgkhkik%oJrrfsftfufvfwfKrxfyfzfAfBfjk'okkCfDfEfLrFfGfHf(oIfJf)oMrNrKfLf*o+o,o-oMfOrNfOfPfQfRf.oPrSfTflkUfVfmknkWfQr/oXfYf:oZfok0f1fRr2fZ 0 1 2 3 4 5 3f;o| 4fpkqk5f6frk} 7f~ sk=oSrTr?otk@ouk8f9f!f#f$fo abvkwkxk%fbb'f(f)f*fUrp Vr[o]o^o_o`o{o|o}o~oapbpcpdpepfpgphpipjpkplp+fmpnp,f-fopppqprpspyk.ftp/f:f;f=f?fupvpwpxpypzk@f[f]f^fAkWr_fXrBkCkDkzpApBpCpDpEpFp`f{fYr|fEkFkGkHkIkGpJkHp}f~fagKkIpbgLkMkNkOkcgPkQkRkSkTkUkVkJpKpLpdgegMpNpOpZrfgPpQp0rRpSp1rggTpWkcbVgWgXgXkYkZk0k1k2k3k4kUp2rhgigjgkglgmg3rngogpgqgrg5kVp6ksgtgug4rvgwgxgWpygzgXp5r6rAgBgYpZp0p1pCg7rDgEgFg

266 

267 

268def is_scalar_field(field: ModelField) -> bool: 1abcdef

269 return is_pv1_scalar_field(field) 2a 7k8k9k6g2p7g8g3p9g!g4p#g5p$g%g6p'g:s;s=s?s@s[s]s^g_g`gYg!kg 7p8p9p!p#p$p%p'p8r9r(gb #k$k%k)g(p*g+g)p,g-g*p.g+p/g:g,p;g^s_s`s{s|s}s~s{g|g}gZg'kh -p.p/p:p;p=p?p@p!r#r=gc [p]p^p~g$rahbh%rchdh'reh(rfhgh)rhh)t*t+t,t-t.t/t(k)k*k?g, _p`p{p|pj *r+r,r-r.r/r:r;ratbtihd }p~paqjh=rkhlh?rmhnh@roh[rphqh]rrh:t;t=t?t@t[t]t+k,k-k@g= bqcqdqeql ^r_r`r{r|r}r~rasctdtshe fqgqhqthbsuhvhcswhxhdsyheszhAhfsBh^t_t`t{t|t}t~t.k/k:k[g_ iqjqkqlqn gshsisjskslsmsnsetftChf mqnqoqosDhEhpsFhGhqsHhrsIhJhssKhaubucudueufugu;k=k?k]gabpqqqrqsqp tsusvswsxsyszsAsgthtLh

270 

271 

272def is_sequence_field(field: ModelField) -> bool: 1abcdef

273 return field.shape in sequence_shapes or shared._annotation_is_sequence(field.type_) 2tTuTvTwTxT7k(u8k9kyTzTATBT}I~IaJbJCTDTEThAFTGTHTITJTKTLTMTNTOT,y-y)u*u.ytqPT+uQTRT,uSTTT2p7g8g3p9g!g4p#g5p$g%g6p'g-uUTVT.uWTXTYTZT/u0T1TjA2T3T4T5TkA6T/y:uOxPx:ycJdJeJfJQxRxhugJhJiuiJ7T8T9T!T#T$T%T'T(T)T*T+T,TSxlA-T;u;y.T/T:T;T=T?T@T[T]T^T_T`T{T|T}T~TaUbUcUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUsUtUuUvUwUxUyUzUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUUVUWUXUYUZU0U1U2U3U4U5U6U7U8U9U!U#U$U%U=u'U?u(U)U*U@u+U,U-U.U/U:U;U=U?U[u]u@U[U]U^U_U^u_u`U{U|U}U1A2A3ATx4A~UaVbVcVdVeVfVjJgV`uhV{uiVUxVxjVkVlV!kkJlJitjtmJnJktltmtoJpJntmVnVoVpVqVrVsVtVuVqJrJkBvVlBwVmBxVnByVzVAVBVCVDV|uEVFVGV}u~uHVIVavbvJVKVcvdvLVevMVfvNVgvOVPVhvQVoBpBqBRVSVTVivjvrBsBtBUVVVWVWxuBvBXVXxwBYVZV0V1V2VxB3V4V5V6Vkv7V8V9V!V#V$V%V'V(V)V*V+V,V-V.V/Vlvmv:V;V=V?V@VyBzB[V]V^V_V`V{V|V}V~VaWbWcWYxABBBdWZxCBeWfW0xDBEBgWhWiWjWkWlWmWnWoWpWqWrW1xHBIBsW2xJBtWuWvWnvwWovxWyWzWAWBWCWDWEWFWGWHWIWBssJCstJ=yuJ?y@y[yvJ]yDspvEs^yqv_yjuwJxJyJzJAJkuBJCJDJEJFJotptqtrtFsGs`yHsIsJWKWLWMWNWMBNBOBPBQBRBSBTBGJHJIJluJJKJmunuoupuqu3x4x7p5x8pOWPW9p!p#p$p%p'pQWRWSWTWUWVWLJMJ6x7xWBWW(gXWYWZW0W1W2W#krv$k%k3W4W5W6WNJOJPJQJ7W8W9WYB!W#W$W%W'W(W)W*W+W,W{y|ysvtv}yuq-Wuv.W/Wvv:W;W(p*g+g)p,g-g*p.g+p/g:g,p;gwv=W?Wxv@W[W]W^Wyv_W`W0B{W|W}W~W1BaX~yzv8x9xazRJSJTJUJ!x#xruVJWJsuXJbXcXdXeXfXgXhXiXjXkXlXmXnX$x2BoXAvbzpXqXrXsXtXuXvXwXxXyXzXAXBXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWXXXYXZX0X1X2X3X4X5X6X7X8X9X!X#X$X%X'X(X)X*X+X,X-X.X/X:X;X=X?X@X[X]X^X_X`X{X|X}X~XaYbYcYdYeYfYgYhYBviYCvjYkYlYDvmYnYoYpYqYrYsYtYuYEvFvvYwYxYyYzYGvHvAYBYCYDYhCiCjC%xkCEYFYGYHYIYJYKYYJLYIvMYJvNY'x(xOYPYQY'kZJ0Jsttt1J2Jutvtwt3J4JxtRYSYTYUYVYWYXYYYZY5J6J1C0Y2C1Y3C2Y4C3Y4Y5Y6Y7Y8YKv9Y!Y#YLvMv$Y%YNvOv'Y(YPvQv)YRv*YSv+YTv,Y-YUv.Y5C6C7C/Y:Y;YVvWv8C9C!C=Y?Y@Y)x#C$C[Y*x%C]Y^Y_Y`Y{Y'C|Y}Y~YaZXvbZcZdZeZfZgZhZiZjZkZlZmZnZoZpZqZYvZvrZsZtZuZvZ(C)CwZxZyZzZAZBZCZDZEZFZGZHZ+x*C+CIZ,x,CJZKZ-x-C.CLZMZNZOZPZQZRZSZTZUZVZWZ.x;C=CXZ/x?CYZZZ0Z0v1Z1v2Z3Z4Z5Z6Z7Z8Z9Z!Z#Z$Z%ZJs7JKs8Jcz9Jdzezfz!JgzLs2vMshz3viztu#J$J%J'J(Juu)J*J+J,J-JytztAtBtNsOsjzPsQs'Z(Z)Z*Z+Z]C^C_C`C{C|C}C~C.J/J:Jvu;J=JwuxuyuzuAu:x;x-p=x.p,Z-Z/p:p;p=p?p@p.Z/Z:Z;Z=Z?Z@Z?J@J?x@xcD[Z=g]Z^Z_Z`Z{Z|Z[p4v]p^p}Z~Za0b0[J]J^J_Jc0d0e0eDf0g0h0i0j0k0l0m0n0o0kzlz5v6vmzvqp07vq0r08vs0t0$rahbh%rchdh'reh(rfhgh)rhh9vu0v0!vw0x0y0z0#vA0B0gDC0D0E0F0hDG0nz$v[x]xoz`J{J|J}J^x_xBu~JaKCubKH0I0J0K0L0M0N0O0P0Q0R0S0T0`xiDU0%vpzV0W0X0Y0Z000102030405060708090!0#0$0%0'0(0)0*0+0,0-0.0/0:0;0=0?0@0[0]0^0_0`0{0|0}0~0a1b1c1d1e1f1g1h1i1j1k1l1m1n1o1p1q1r1s1t1u1v1w1x1y1z1A1B1C1D1E1F1G1H1I1J1K1L1M1N1'vO1(vP1Q1R1)vS1T1U1V1W1X1Y1Z101*v+v1121314151,v-v61718191YDZD0D{x1Dwqxqyq_p`p{p!1#1$1%1'1(1)1cK*1.v+1/v,1|x}x-1.1/1|pdKeKCtDtfKgKEtFtGthKiKHt:1;1=1?1@1[1]1^1_1jKkKhE`1iE{1jE|1kE}1~1a2b2c2d2:ve2f2g2;v=vh2i2?v@vj2k2[v]vl2^vm2_vn2`vo2p2{vq2lEmEnEr2s2t2|v}voEpEqEu2v2w2~xrEsEx2aytEy2z2A2B2C2uED2E2F2G2~vH2I2J2K2L2M2N2O2P2Q2R2S2T2U2V2W2awbwX2Y2Z20212vEwE2232425262728292!2#2$2%2byxEyE'2cyzE(2)2dyAEBE*2+2,2-2.2/2:2;2=2?2@2[2eyEEFE]2fyGE^2_2`2cw{2dw|2}2~2a3b3c3d3e3f3g3h3i3RslKSsmKqznKrzsztzoKuzTsewUsvzfwwzDupKqKrKsKtKEuuKvKwKxKyKItJtKtLtVsWsxzXsYsj3k3l3m3n3JEKELEMENEOEPEQEzKAKBKFuCKDKGuHuIuJuKugyhy*riy+ro3p3,r-r.r/r:r;rq3r3s3t3u3v3w3EKFKjykyTEx3ihy3z3A3B3C3D3}pgw~paqE3F3G3H3GKHKIKJKI3J3K3VEL3M3N3O3P3Q3R3S3T3U3yzzzhwiwAzzqV3jwW3X3kwY3Z3=rkhlh?rmhnh@roh[rphqh]rrhlw0313mw23334353nw6373XE8393!3#3YE$3BzowlymyCzKKLKMKNKnyoyLuOKPKMuQK%3'3(3)3*3+3,3-3.3/3:3;3=3pyZE?3pwDz@3[3]3^3_3`3{3|3}3~3a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4A4B4C4D4E4F4G4H4I4J4K4L4M4N4O4P4Q4R4S4T4U4V4W4X4Y4Z404142434445464748494!4#4$4%4'4(4)4*4+4,4qw-4rw.4/4:4sw;4=4?4@4[4]4^4_4`4twuw{4|4}4~4a5vwwwb5c5d5e5eFfFgFqyhFAqBqCqbqcqdqf5g5h5i5j5k5l5RKm5xwn5ywo5rysyp5q5r5eqSKTKMtNtUKVKOtPtQtWKXKRts5t5u5v5w5x5y5z5A5YKZKYFB5ZFC50FD51FE5F5G5H5I5J5zwK5L5M5AwBwN5O5CwDwP5Q5EwFwR5GwS5HwT5IwU5V5JwW52F3F4FX5Y5Z5KwLw5F6F7F051525ty8F9F35uy!F4555657585#F95!5#5$5Mw%5'5(5)5*5+5,5-5.5/5:5;5=5?5@5[5NwOw]5^5_5`5{5$F%F|5}5~5a6b6c6d6e6f6g6h6i6vy'F(Fj6wy)Fk6l6xy*F+Fm6n6o6p6q6r6s6t6u6v6w6x6yy.F/Fy6zy:Fz6A6B6PwC6QwD6E6F6G6H6I6J6K6L6M6N6O6Zs0K0s1KEz2KFzGzHz3KIz1sRw2sJzSwKzNu4K5K6K7K8KOu9K!K#K$K%KStTtUtVt3s4sLz5s6sP6Q6R6S6T6?F@F[F]F^F_F`F{F'K(K)KPu*K+KQuRuSuTuUuAyBy^rCy_rU6V6`r{r|r}r~rasW6X6Y6Z6061626,K-KDyEy~F36sh465666768696fqTwgqhq!6#6$6%6.K/K:K;K'6(6)6bG*6+6,6-6.6/6:6;6=6?6MzNzUwVwOzDq@6Ww[6]6Xw^6_6bsuhvhcswhxhdsyheszhAhfsBhYw`6{6Zw|6}6~6a70wb7c7dGd7e7f7g7eGh7Pz1wFyGyQz=K?K@K[KHyIyVu]K^KWu_Ki7j7k7l7m7n7o7p7q7r7s7t7u7JyfGv72wRzw7x7y7z7A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7Q7R7S7T7U7V7W7X7Y7Z707172737475767778797!7#7$7%7'7(7)7*7+7,7-7.7/7:7;7=7?7@7[7]7^7_7`7{7|7}7~7a8b8c8d8e8f8g8h8i8j8k8l8m8n8o83wp84wq8r8s85wt8u8v8w8x8y8z8A8B86w7wC8D8E8F8G88w9wH8I8J8K8VGWGXGKyYGEqFqGqiqjqkqL8M8N8O8P8Q8R8`KS8!wT8#wU8LyMyV8W8X8lq{K|KWtXt}K~KYtZt0taLbL1tY8Z808182838485868cLdLeH78fH88gH98hH!8#8$8%8'8(8$w)8*8+8%w'w,8-8(w)w.8/8*w+w:8,w;8-w=8.w?8@8/w[8iHjHkH]8^8_8:w;wlHmHnH`8{8|8NyoHpH}8OyqH~8a9b9c9d9rHe9f9g9h9=wi9j9k9l9m9n9o9p9q9r9s9t9u9v9w9x9?w@wy9z9A9B9C9sHtHD9E9F9G9H9I9J9K9L9M9N9O9PyuHvHP9QywHQ9R9RyxHyHS9T9U9V9W9X9Y9Z909192939SyBHCH49TyDH596979[w89]w99!9#9$9%9'9(9)9*9+9,9-97seL8sfLSzgLTzUzVzhLWz9s^w!sXz_wYzXuiLjLkLlLmLYunLoLpLqLrL2t3t4t5t#s$sZz%s's.9/9:9;9=9GHHHIHJHKHLHMHNHsLtLuLZuvLwL0u1u2u3u4uUyVygsWyhs?9@9isjskslsmsns[9]9^9_9`9{9|9xLyLXyYyQH}9Ch~9a!b!c!d!e!mq`wnqoqf!g!h!i!zLALBLCLj!k!l!SHm!n!o!p!q!r!s!t!u!v!0z1z{w|w2zHqw!}wx!y!~wz!A!osDhEhpsFhGhqsHhrsIhJhssKhaxB!C!bxD!E!F!G!cxH!I!UHJ!K!L!M!VHN!3zdxZy0y4zDLELFLGL1y2y5uHLIL6uJLO!P!Q!R!S!T!U!V!W!X!Y!Z!0!3yWH1!ex5z2!3!4!5!6!7!8!9!!!#!$!%!'!(!)!*!+!,!-!.!/!:!;!=!?!@![!]!^!_!`!{!|!}!~!a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#v#w#x#y#z#A#B#C#D#E#F#G#H#I#J#K#L#M#N#O#P#Q#R#S#T#U#fxV#gxW#X#Y#hxZ#0#1#2#3#4#5#6#7#ixjx8#9#!###$#kxlx%#'#(#)#bIcIdI4yeIIqJqKqpqqqrq*#+#,#-#.#/#:#KL;#mx=#nx?#5y6y@#[#]#sqLLML6t7tNLOL8t9t!tPLQL#t^#_#`#{#|#}#~#a$b$RLSLVIc$WId$XIe$YIf$g$h$i$j$k$oxl$m$n$pxqxo$p$rxsxq$r$txuxs$vxt$wxu$xxv$w$yxx$ZI0I1Iy$z$A$zxAx2I3I4IB$C$D$7y5I6IE$8y7IF$G$H$I$J$8IK$L$M$N$BxO$P$Q$R$S$T$U$V$W$X$Y$Z$0$1$2$3$CxDx4$5$6$7$8$9I!I9$!$#$$$%$'$($)$*$+$,$-$9y#I$I.$!y%I/$:$#y'I(I;$=$?$@$[$]$^$_$`${$|$}$$y+I,I~$%y-Ia%b%c%Exd%Fxe%f%g%h%i%j%k%l%m%n%o%p%(sTL)sUL6zVL7z8z9zWL!z*sGx+s#zHx$z7uXLYLZL0L1L8u2L3L4L5L6L$t%t't(t,s-s%z.s/sq%r%s%t%u%:I;I=I?I@I[I]I^I7L8L9L9u!L#L!u#u$u%u'u'y(yts)yusv%w%vswsxsyszsAsx%y%z%A%B%C%D%$L%L*y+y{IE%LhF%

274 

275 

276def is_scalar_sequence_field(field: ModelField) -> bool: 1abcdef

277 return is_pv1_scalar_sequence_field(field) 2a ^g_g`gYgb {g|g}gZgc (k)k*k?gd +k,k-k@ge .k/k:k[gf ;k=k?k]g

278 

279 

280def is_bytes_field(field: ModelField) -> bool: 1abcdef

281 return lenient_issubclass(field.type_, bytes) # type: ignore[no-any-return] 2,y-y)u*u.ytq/y:u:y;u;yBssJCstJ=yuJ?y@y[yvJ]yDspvEs^yqv_yFsGs`yHsIs{y|ysvtv}yuq~yzvazAvbzJs7JKs8Jcz9Jdzezfz!JgzLs2vMshz3vizNsOsjzPsQskzlz5v6vmzvqnz$voz%vpzRslKSsmKqznKrzsztzoKuzTsewUsvzfwwzVsWsxzXsYsyzzzhwiwAzzqBzowCzpwDzZs0K0s1KEz2KFzGzHz3KIz1sRw2sJzSwKz3s4sLz5s6sMzNzUwVwOzDqPz1wQz2wRz7seL8sfLSzgLTzUzVzhLWz9s^w!sXz_wYz#s$sZz%s's0z1z{w|w2zHq3zdx4zex5z(sTL)sUL6zVL7z8z9zWL!z*sGx+s#zHx$z,s-s%z.s/s

282 

283 

284def is_bytes_sequence_field(field: ModelField) -> bool: 1abcdef

285 return field.shape in sequence_shapes and lenient_issubclass(field.type_, bytes) 2}I~IaJbJ,y-y)u*u.ytq/y:u:ycJdJeJfJQxRxhugJhJiuiJ;u;ykJlJitjtmJnJktltmtoJpJntqJrJBsCs=y?y@y[y]yDspvEs^yqv_yjuwJxJyJzJAJkuBJCJDJEJFJotptqtrtFsGs`yHsIsGJHJIJluJJKJmunuoupuquLJMJ6x7xNJOJPJQJ{y|ysvtv}yuq~yzvazRJSJTJUJ!x#xruVJWJsuXJAvbzZJ0Jsttt1J2Jutvtwt3J4Jxt5J6JJsKsczdzezfzgzLs2vMshz3viztu#J$J%J'J(Juu)J*J+J,J-JytztAtBtNsOsjzPsQs.J/J:Jvu;J=JwuxuyuzuAu?J@J?x@x[J]J^J_Jkzlz5v6vmzvqnz$voz`J{J|J}J^x_xBu~JaKCubK%vpzwqxqyqdKeKCtDtfKgKEtFtGthKiKHtjKkKRsSsqzrzsztzuzTsewUsvzfwwzDupKqKrKsKtKEuuKvKwKxKyKItJtKtLtVsWsxzXsYszKAKBKFuCKDKGuHuIuJuKuEKFKjykyGKHKIKJKyzzzhwiwAzzqBzowCzKKLKMKNKnyoyLuOKPKMuQKpwDzAqBqCqSKTKMtNtUKVKOtPtQtWKXKRtYKZKZs0sEzFzGzHzIz1sRw2sJzSwKzNu4K5K6K7K8KOu9K!K#K$K%KStTtUtVt3s4sLz5s6s'K(K)KPu*K+KQuRuSuTuUu,K-KDyEy.K/K:K;KMzNzUwVwOzDqPz1wQz=K?K@K[KHyIyVu]K^KWu_K2wRzEqFqGq{K|KWtXt}K~KYtZt0taLbL1tcLdL7s8sSzTzUzVzWz9s^w!sXz_wYzXuiLjLkLlLmLYunLoLpLqLrL2t3t4t5t#s$sZz%s'ssLtLuLZuvLwL0u1u2u3u4uxLyLXyYyzLALBLCL0z1z{w|w2zHq3zdx4zDLELFLGL1y2y5uHLIL6uJLex5zIqJqKqLLML6t7tNLOL8t9t!tPLQL#tRLSL(s)s6z7z8z9z!z*sGx+s#zHx$z7uXLYLZL0L1L8u2L3L4L5L6L$t%t't(t,s-s%z.s/s7L8L9L9u!L#L!u#u$u%u'u$L%L*y+y

286 

287 

288def copy_field_info(*, field_info: FieldInfo, annotation: Any) -> FieldInfo: 1abcdef

289 return copy(field_info) 2a 7kG%8k9kb #kH%$k%kc [pI%]p^pwqi xqyq, _p`p{pd }pJ%~paqAqk BqCq= bqcqdqe fqK%gqhqEqm FqGq_ iqjqkqf mqL%nqoqIqo JqKqabpqqqrq

290 

291 

292def serialize_sequence_value(*, field: ModelField, value: Any) -> Sequence[Any]: 1abcdef

293 return sequence_shape_to_type[field.shape](value) # type: ignore[no-any-return] 2)u*u:u;upvqvsvtvzvAv2v3v5v6v$v%vewfwhwiwowpwRwSwUwVw1w2w^w_w{w|wdxexGxHx

294 

295 

296def get_missing_field_error(loc: Tuple[str, ...]) -> Dict[str, Any]: 1abcdef

297 missing_field_error = ErrorWrapper(MissingError(), loc=loc) 2(u'z(z+u,u7g8g9g!g#g$g%g'g-u.u/u=u?u@u[u]u^u_u)z*z`u{uitjtktltmtnt|u}u~uavbvcvdvevfvgvhv+zivjvkvlvmvnvovBsCsDsEsotptqtrtFsGsHsIs(grv,z-zuvvv*g+g,g-g.g/g:g;gwvxvyvBvCvDvEvFvGvHv.z/zIvJvstttutvtwtxtKvLvMvNvOvPvQvRvSvTvUv:zVvWvXvYvZv0v1vJsKsLsMsytztAtBtNsOsPsQs=g4v;z=z7v8vahbhchdhehfhghhh9v!v#v'v(v)v*v+v,v-v?z@z.v/vCtDtEtFtGtHt:v;v=v?v@v[v]v^v_v`v{v[z|v}v~vawbwcwdwRsSsTsUsItJtKtLtVsWsXsYsihgw]z^zjwkwkhlhmhnhohphqhrhlwmwnwqwrwswtwuwvwww_z`zxwywMtNtOtPtQtRtzwAwBwCwDwEwFwGwHwIwJw{zKwLwMwNwOwPwQwZs0s1s2sStTtUtVt3s4s5s6sshTw|z}zWwXwuhvhwhxhyhzhAhBhYwZw0w3w4w5w6w7w8w9w~zaA!w#wWtXtYtZt0t1t$w%w'w(w)w*w+w,w-w.w/wbA:w;w=w?w@w[w]w7s8s9s!s2t3t4t5t#s$s%s'sCh`wcAdA}w~wDhEhFhGhHhIhJhKhaxbxcxfxgxhxixjxkxlxeAfAmxnx6t7t8t9t!t#toxpxqxrxsxtxuxvxwxxxyxgAzxAxBxCxDxExFx(s)s*s+s$t%t't(t,s-s.s/sLh

298 new_error = ValidationError([missing_field_error], RequestErrorModel) 2(u'z(z+u,u7g8g9g!g#g$g%g'g-u.u/u=u?u@u[u]u^u_u)z*z`u{uitjtktltmtnt|u}u~uavbvcvdvevfvgvhv+zivjvkvlvmvnvovBsCsDsEsotptqtrtFsGsHsIs(grv,z-zuvvv*g+g,g-g.g/g:g;gwvxvyvBvCvDvEvFvGvHv.z/zIvJvstttutvtwtxtKvLvMvNvOvPvQvRvSvTvUv:zVvWvXvYvZv0v1vJsKsLsMsytztAtBtNsOsPsQs=g4v;z=z7v8vahbhchdhehfhghhh9v!v#v'v(v)v*v+v,v-v?z@z.v/vCtDtEtFtGtHt:v;v=v?v@v[v]v^v_v`v{v[z|v}v~vawbwcwdwRsSsTsUsItJtKtLtVsWsXsYsihgw]z^zjwkwkhlhmhnhohphqhrhlwmwnwqwrwswtwuwvwww_z`zxwywMtNtOtPtQtRtzwAwBwCwDwEwFwGwHwIwJw{zKwLwMwNwOwPwQwZs0s1s2sStTtUtVt3s4s5s6sshTw|z}zWwXwuhvhwhxhyhzhAhBhYwZw0w3w4w5w6w7w8w9w~zaA!w#wWtXtYtZt0t1t$w%w'w(w)w*w+w,w-w.w/wbA:w;w=w?w@w[w]w7s8s9s!s2t3t4t5t#s$s%s'sCh`wcAdA}w~wDhEhFhGhHhIhJhKhaxbxcxfxgxhxixjxkxlxeAfAmxnx6t7t8t9t!t#toxpxqxrxsxtxuxvxwxxxyxgAzxAxBxCxDxExFx(s)s*s+s$t%t't(t,s-s.s/sLh

299 return new_error.errors()[0] # type: ignore[return-value] 2(u'z(z+u,u7g8g9g!g#g$g%g'g-u.u/u=u?u@u[u]u^u_u)z*z`u{uitjtktltmtnt|u}u~uavbvcvdvevfvgvhv+zivjvkvlvmvnvovBsCsDsEsotptqtrtFsGsHsIs(grv,z-zuvvv*g+g,g-g.g/g:g;gwvxvyvBvCvDvEvFvGvHv.z/zIvJvstttutvtwtxtKvLvMvNvOvPvQvRvSvTvUv:zVvWvXvYvZv0v1vJsKsLsMsytztAtBtNsOsPsQs=g4v;z=z7v8vahbhchdhehfhghhh9v!v#v'v(v)v*v+v,v-v?z@z.v/vCtDtEtFtGtHt:v;v=v?v@v[v]v^v_v`v{v[z|v}v~vawbwcwdwRsSsTsUsItJtKtLtVsWsXsYsihgw]z^zjwkwkhlhmhnhohphqhrhlwmwnwqwrwswtwuwvwww_z`zxwywMtNtOtPtQtRtzwAwBwCwDwEwFwGwHwIwJw{zKwLwMwNwOwPwQwZs0s1s2sStTtUtVt3s4s5s6sshTw|z}zWwXwuhvhwhxhyhzhAhBhYwZw0w3w4w5w6w7w8w9w~zaA!w#wWtXtYtZt0t1t$w%w'w(w)w*w+w,w-w.w/wbA:w;w=w?w@w[w]w7s8s9s!s2t3t4t5t#s$s%s'sCh`wcAdA}w~wDhEhFhGhHhIhJhKhaxbxcxfxgxhxixjxkxlxeAfAmxnx6t7t8t9t!t#toxpxqxrxsxtxuxvxwxxxyxgAzxAxBxCxDxExFx(s)s*s+s$t%t't(t,s-s.s/sLh

300 

301 

302def create_body_model( 1abcdef

303 *, fields: Sequence[ModelField], model_name: str 

304) -> Type[BaseModel]: 

305 BodyModel = create_model(model_name) 2a tqq r s t u v w Ixb uqx y z A B C D Jxc vqE F G H I J K Kxwqi xqyqd zqL M N O P Q R LxAqk BqCqe DqS T U V W X Y MxEqm FqGqf HqZ 0 1 2 3 4 5 NxIqo JqKq

306 for f in fields: 2a tqq r s t u v w Ixb uqx y z A B C D Jxc vqE F G H I J K Kxwqi xqyqd zqL M N O P Q R LxAqk BqCqe DqS T U V W X Y MxEqm FqGqf HqZ 0 1 2 3 4 5 NxIqo JqKq

307 BodyModel.__fields__[f.name] = f # type: ignore[index] 2a tqq r s t u v w Ixb uqx y z A B C D Jxc vqE F G H I J K Kxwqi xqyqd zqL M N O P Q R LxAqk BqCqe DqS T U V W X Y MxEqm FqGqf HqZ 0 1 2 3 4 5 NxIqo JqKq

308 return BodyModel 2a tqq r s t u v w Ixb uqx y z A B C D Jxc vqE F G H I J K Kxwqi xqyqd zqL M N O P Q R LxAqk BqCqe DqS T U V W X Y MxEqm FqGqf HqZ 0 1 2 3 4 5 NxIqo JqKq

309 

310 

311def get_model_fields(model: Type[BaseModel]) -> List[ModelField]: 1abcdef

312 return list(model.__fields__.values()) # type: ignore[attr-defined] 2M%6ghuiuTxjJWxXxYxZx0x1x2xjukuN%)grusu%xYJ)x*x+x,x-x.x/xtuuuO%~gBuCu{xcK~xaybycydyeyfyDuEuP%jhLuMuqyRKtyuyvywyxyyyzyNuOuQ%thVuWuKy`KNyOyPyQyRySyTyXuYu5u6u4yKL7y8y9y!y#y$y%y7u8u