Coverage for fastapi/utils.py: 100%
92 statements
« prev ^ index » next coverage.py v7.6.1, created at 2025-09-22 00:03 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2025-09-22 00:03 +0000
1import re 1abcdef
2import warnings 1abcdef
3from dataclasses import is_dataclass 1abcdef
4from typing import ( 1abcdef
5 TYPE_CHECKING,
6 Any,
7 Dict,
8 MutableMapping,
9 Optional,
10 Set,
11 Type,
12 Union,
13 cast,
14)
15from weakref import WeakKeyDictionary 1abcdef
17import fastapi 1abcdef
18from fastapi._compat import ( 1abcdef
19 PYDANTIC_V2,
20 BaseConfig,
21 ModelField,
22 PydanticSchemaGenerationError,
23 Undefined,
24 UndefinedType,
25 Validator,
26 lenient_issubclass,
27)
28from fastapi.datastructures import DefaultPlaceholder, DefaultType 1abcdef
29from pydantic import BaseModel, create_model 1abcdef
30from pydantic.fields import FieldInfo 1abcdef
31from typing_extensions import Literal 1abcdef
33if TYPE_CHECKING: # pragma: nocover 1abcdef
34 from .routing import APIRoute
36# Cache for `create_cloned_field`
37_CLONED_TYPES_CACHE: MutableMapping[Type[BaseModel], Type[BaseModel]] = ( 1abcdef
38 WeakKeyDictionary()
39)
42def is_body_allowed_for_status_code(status_code: Union[int, str, None]) -> bool: 1abcdef
43 if status_code is None: 2a XhYhZh0h1h2h#Z3h$Z%Z4h'Z)g*g(Z+g5h6h7h8h,g9h!h#h$h,b%h-b.b)Z'h(hjh)h/bPb*h4g+h,h-h*Z+Z.h/h:by Qb:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDi,ZEiFiGiHiIiJiKi]d^d_d`d{dLiMiNiOiPikhlhQi-ZRi.ZSiTi/ZUiViWi:ZXiYiZi0i;Z1i=Z2i3i4i5i6i?Z7iz A B C D m g :d8i@Z[Z9i]Z!i#i$i-g%i'i(i)i*i+i,i-i.i/i^Z6e7e_Z:i`Z;i=i{Z?i@i[i|Z}Z]i.g^i/go E F DbEbG _i~Z`i{i|ia0}i~iajbjcjb0djejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjc0SjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!jRbH #j$jd0%je0'j(jf0)j*j+jg0,j-j.j/j:j;j=j?j@j[j:g]j2gOc^j_j`j{j|j}j~jakbkckh0dkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkSbPcTbQc;gJk8eKkLkMk$ % ' Nkrbsb;b$ci0OkPkj0QkRkk0SkTkl0UkVkm0WkXkn0YkZko00k1kp02k3kq04k5kr06k7ks08k9kt0!k#ku0$k%k'k(kv0)k*k+k,kw0-k.k/k:kx0;k=k?ky0@k[k]kz0^k_k`kA0{k|k}kB0~kalblC0cldlelD0flglhliljlklE0llmlnlF0olG0plqlrlslH0tlulvlwlxlylI0zlAlBlJ0ClK0DlElFlL0GlHlIlM0JlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'lN0(l)l*l+l,lO0-l.lP0/l:l=g;l5g=l6g?l7g@l[l]l^l_l`l{l|l}lQ0~lamR0bmS0cmT0dmemfmgmhmimjm?gkmlmmmnmompmqmrmsmtmumvmU0wmxmymzmAmBmV0W0CmDmEmX0FmY0GmHmZ000Im~e9e!eJmKmLmMmNmOm10PmQm20Rm30SmTmUmVmWmXmYmZm0m1m4050602m70803m4m5m6m907m8m!09m#0$0!m#m%0$m'0%m'm(m(0)m*m+m,m-m.m/m:m;m=m?m@m[m)0]m*0^m+0_m,0`m-0{m.0|m}m/0~m:0an;0bn=0cn?0dnenfngn@0hnin[0jn]0kn^0_0lnmnnn`0onpnqn{0rnsn|0tnunvn}0wn~0xna1ynb1znc1And1e1BnCnf1Dng1Enh1Fni1Gnj1k1HnIn@g[gJn]gKnLnMn^gNnOnPnQnRnl1m1n1Sno1TnUnp1VnWnXnYnq1r1Zn0n1ns12n3n4nt15nu1v16n7n8n9nw1!n#n$nx1%ny1'n(n)nz1*n+n,nA1B1-n.n/nC1:n;n=n?nD1@n[nE1]n^nF1_n`nG1{nH1|nI1}nJ1~nK1aobocodoL1eoM1foN1O1RcgoP1hoQ1R1iojoS1koloT1moU1noV1ooW1poqoroX1sotouovowoxoyozoY1AoBoCoDoEoFoGoZ1HoIoJoKoLoMoNoOoPo01QoRoSoToUo11VoWo21XomhYoZo310o411o51612o3o714o5o816o=b7o8o|d}d~daebece9o91!o#o!1$o%o#1'o(o)o*o+o$1b ,o-o.o/o:o;o%1=o'1(1?o)1_g`g*1{g@o[o]o^o|g_o`o{o|o?b}o@b[b+1~oapnhbp]bUbcp8gdpepfp,1-1gphp^bI VbipjpkplpmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp.10p1p2p3p4p5p6pdeeefegehe7p8p9p!p#pohph$p/1%p:1'p(p;1)p*p+p=1,p-p.p/p?1:p@1;p=p?p@p[p[1]pJ K L M N n h ;d^p]1^1_p_1`p{p|p}g}p~paqbqcqdqeqfqgqhq`1#e$e{1iq|1jqkq}1lqmqnq~1a2oq~gpqahp O P FbGbQ qqb2rqsqtqc2uqvqwqxqyqd2zqAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q%qe2'q(q)q*q+q,q-q.q/q:q;q=q?q@q[q]q^q_q`qWbR {q|qf2}qg2~qarh2brcrdri2erfrgrhrirjrkrlrmrnrbhor3gScprqrrrsrtrurvrwrxryrj2zrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4rXbTcYbUcch5r%e6r7r8r( ) * 9rtbub_b%ck2!r#rl2$r%rm2'r(rn2)r*ro2+r,rp2-r.rq2/r:rr2;r=rs2?r@rt2[r]ru2^r_rv2`r{rw2|r}r~rasx2bscsdsesy2fsgshsisz2jskslsA2msnsosB2psqsrsC2sstsusD2vswsxsE2yszsAsF2BsCsDsEsFsGsG2HsIsJsH2KsI2LsMsNsOsJ2PsQsRsSsTsUsK2VsWsXsL2YsM2Zs0s1sN22s3s4sO25s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~sP2atbtctdtetQ2ftgtR2htitdhjt9gkt!glt#gmtntotptqtrtstttutS2vtwtT2xtU2ytV2ztAtBtCtDtEtFtehGtHtItJtKtLtMtNtOtPtQtRtW2StTtUtVtWtXtX2Y2YtZt0tZ21t022t3t12224taf'e(e5t6t7t8t9t!t32#t$t42%t52't(t)t*t+t,t-t.t/t:t627282;t92!2=t?t@t[t#2]t^t$2_t%2'2`t{t(2|t)2}t~tau*2bucudueufuguhuiujukulumunu+2ou,2pu-2qu.2ru/2su:2tuuu;2vu=2wu?2xu@2yu[2zuAuBuCu]2DuEu^2Fu_2Gu`2{2HuIuJu|2KuLuMu}2NuOu~2PuQuRua3Sub3Tuc3Uud3Vue3Wuf3g3XuYuh3Zui30uj31uk32ul3m33u4ufhgh5uhh6u7u8uih9u!u#u$u%un3o3p3'uq3(u)ur3*u+u,u-us3t3.u/u:uu3;u=u?uv3@uw3x3[u]u^u_uy3`u{u|uz3}uA3~uavbvB3cvdvevC3D3fvgvhvE3ivjvkvlvF3mvnvG3ovpvH3qvrvI3svJ3tvK3uvL3vvM3wvxvyvzvN3AvO3BvP3Q3VcCvR3DvS3T3EvFvU3GvHvV3IvW3JvX3KvY3LvMvNvZ3OvPvQvRvSvTvUvVv03WvXvYvZv0v1v2v133v4v5v6v7v8v9v!v#v23$v%v'v(v)v33*v+v43,vqh-v.v53/v63:v7383;v=v93?v@v!3[v`b]v^viejekelemene_v#3`v{v$3|v}v%3~vawbwcwdw'3c ewfwgwhwiwjw(3kw)3*3lw+3mwnw,3owpwqwrwswtwuwvwwwxw{byw|b}b-3zwAwrhBw~bZbCwshDwEwFw.3/3GwHwacS 0bIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w:3?w@w[w]w^w_w`woepeqerese{w|w}w~waxthuhbx;3cx=3dxex?3fxgxhx@3ixjxkxlx[3mx]3nxoxpxqxrx^3sx+ , - . / u i =dtx_3`3ux{3vxwxxxyxzxAxBxCxDxExFxGxHxIx|3)e*e}3Jx~3KxLxa4MxNxOxb4c4PxQxRxSxq T U HbIbV Txd4UxVxWxe4XxYxZx0x1xf42x3x4x5x6x7x8x9x!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~xaybycydyeyfyg4gyhyiyjykylymynyoypyqyrysytyuyvywyxyyy1bW bc'ccc(cdceczyAyh4Byi4CyDyj4EyFyGyk4HyIyJyKyLyMyNyOyPyQyRySy$gWcTyUyVyWyXyYyZy0y1y2yl43y4y5y6y7y8y9y!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y=y?y@y[y]y^y_y`y{y|y2bXc3bYc}y~y+eazbzcz: ; = dzvbwbfc)cm4ezfzn4gzhzo4izjzp4kzlzq4mznzr4ozpzs4qzrzt4sztzu4uzvzv4wzxzw4yzzzx4AzBzy4CzDzEzFzz4GzHzIzJzA4KzLzMzNzB4OzPzQzC4RzSzTzD4UzVzWzE4XzYzZzF40z1z2zG43z4z5zH46z7z8z9z!z#zI4$z%z'zJ4(zK4)z*z+z,zL4-z.z/z:z;z=zM4?z@z[zN4]zO4^z_z`zP4{z|z}zQ4~zaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzAAABACADAEAR4FAGAHAIAJAS4KALAT4MANAOAPAvhQAwhRAxhSATAUAVAWAXAYAZA0AU41A2AV43AW44AX45A6A7A8A9A!A#A$A%A'A(A)A*A+A,A-A.A/A:A;AY4=A?A@A[A]A^AZ404_A`A{A14|A24}A~A3444aBbf,e-ebBcBdBeBfBgB54hBiB64jB74kBlBmBnBoBpBqBrBsBtB8494!4uB#4$4vBwBxByB%4zBAB'4BB(4)4CBDB*4EB+4FBGBHB,4IBJBKBLBMBNBOBPBQBRBSBTBUB-4VB.4WB/4XB:4YB;4ZB=40B1B?42B@43B[44B]45B^46B7B8B9B_4!B#B`4$B{4%B|4}4'B(B)B~4*B+B,Ba5-B.Bb5/B:B;Bc5=Bd5?Be5@Bf5[Bg5]Bh5i5^B_Bj5`Bk5{Bl5|Bm5}Bn5o5~BaCbCcCdCeCfCgChCiCjCkClCmCnCp5q5r5oCs5pCqCt5rCsCtCuCu5v5vCwCxCw5yCzCACx5BCy5z5CCDCECFCA5GCHCICB5JCC5KCLCMCD5NCOCPCE5F5QCRCSCG5TCUCVCWCH5XCYCI5ZC0CJ51C2CK53CL54CM55CN56CO57C8C9C!CP5#CQ5$CR5S5Zc%CT5'CU5V5(C)CW5*C+CX5,CY5-CZ5.C05/C:C;C15=C?C@C[C]C^C_C`C25{C|C}C~CaDbDcD35dDeDfDgDhDiDjDkDlD45mDnDoDpDqD55rDsD65tDyhuDvD75wD85xD95!5yDzD#5ADBD$5CDgcDDEDteuevewexeyeFD? %5GDHD'5IDJD(5KDLDMDNDOD)5d PDQDRDSDTDUD*5VD+5,5WD-5XDYD.5ZD0D1D2D3D4D5D6D7D8Dhc9Dicjc/5!D#Dzh$Dkc4b%DAh'D(D)D:5;5*D+DlcX 5b,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DaEbEcEdEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEuEvEwExEyEzE=5AEBECEDEEEFEGEzeAeBeCeDeHEIEJEKELEBhChME?5NE@5OEPE[5QERESE]5TEUEVEWE^5XE_5YEZE0E1E2E`53E@ [ ] ^ _ v j ?d4E{5|55E}56E7E8E9E!E#E$E%E'E(E)E*E+E,E~5.e/ea6-Eb6.E/Ec6:E;E=Ed6e6?E@E[E]Er Y Z JbKb0 ^Ef6_E`E{Eg6|E}E~EaFbFh6cFdFeFfFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKFLFMFNFOFPFQFi6RFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F6b1 mc*cnc+cocpc!F#Fj6$Fk6%F'Fl6(F)F*Fm6+F,F-F.F/F:F;F=F?F@F[F]F%g0c^F_F`F{F|F}F~FaGbGcGn6dGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzGAGBGCGDGEGFGGGHGIG7b1c8b2cJGKG:eLGMGNG` { | OGxbybqc,co6PGQGp6RGSGq6TGUGr6VGWGs6XGYGt6ZG0Gu61G2Gv63G4Gw65G6Gx67G8Gy69G!Gz6#G$GA6%G'G(G)GB6*G+G,G-GC6.G/G:G;GD6=G?G@GE6[G]G^GF6_G`G{GG6|G}G~GH6aHbHcHI6dHeHfHJ6gHhHiHjHkHlHK6mHnHoHL6pHM6qHrHsHtHN6uHvHwHxHyHzHO6AHBHCHP6DHQ6EHFHGHR6HHIHJHS6KHLHMHNHOHPHQHRHSHTHUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!H#H$H%H'H(HT6)H*H+H,H-HU6.H/HV6:H;H=H?HDh@HEh[HFh]H^H_H`H{H|H}H~HaIW6bIcIX6dIY6eIZ6fIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyI06zIAIBICIDIEI1626FIGIHI36II46JIKI5666LIcf;e=eMINIOIPIQIRI76SITI86UI96VIWIXIYIZI0I1I2I3I4I!6#6$65I%6'66I7I8I9I(6!I#I)6$I*6+6%I'I,6(I-6)I*I+I.6,I-I.I/I:I;I=I?I@I[I]I^I_I/6`I:6{I;6|I=6}I?6~I@6aJbJ[6cJ]6dJ^6eJ_6fJ`6gJhJiJjJ{6kJlJ|6mJ}6nJ~6a7oJpJqJb7rJsJtJc7uJvJd7wJxJyJe7zJf7AJg7BJh7CJi7DJj7k7EJFJl7GJm7HJn7IJo7JJp7q7KJLJMJNJOJPJQJRJSJTJUJVJWJXJYJr7s7t7ZJu70J1Jv72J3J4J5Jw7x76J7J8Jy79J!J#Jz7$JA7B7%J'J(J)JC7*J+J,JD7-JE7.J/J:JF7;J=J?JG7H7@J[J]JI7^J_J`J{JJ7|J}JK7~JaKL7bKcKM7dKN7eKO7fKP7gKQ7hKiKjKkKR7lKS7mKT7U73cnKV7oKW7X7pKqKY7rKsKZ7tK07uK17vK27wKxKyK37zKAKBKCKDKEKFKGK47HKIKJKKKLKMKNK57OKPKQKRKSKTKUKVKWK67XKYKZK0K1K772K3K874KGh5K6K977K!78K#7$79K!K%7#K$K'7%Krc'K(KEeFeGeHeIeJe)K} (7*K+K)7,K-K*7.K/K:K;K=K+7e ?K@K[K]K^K_K,7`K-7.7{K/7|K}K:7~KaLbLcLdLeLfLgLhLiLscjLtcuc;7kLlLHhmLvc9bnLIhoLpLqL=7?7rLsLwc2 !btLuLvLwLxLyLzLALBLCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLTLULVLWLXLYLZL0L1L2L3L4L5L6L7L8L9L!L@7#L$L%L'L(L)L*LKeLeMeNeOe+L,L-L.L/LJhKh:L[7;L]7=L?L^7@L[L]L_7^L_L`L{L`7|L{7}L~LaMbMcM|7dM~ abbbcbdbw k @deM}7~7fMa8gMhMiMjMkMlMmMnMoMpMqMrMsMtMb8?e@ec8uMd8vMwMe8xMyMzMf8g8AMBMCMDMs 3 4 LbMb5 EMh8FMGMHMi8IMJMKMLMMMj8NMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@Mk8[M]M^M_M`M{M|M}M~MaNbNcNdNeNfNgNhNiNjN#b6 xc-cyc.czcAckNlNl8mNm8nNoNn8pNqNrNo8sNtNuNvNwNxNyNzNANBNCNDN'g4cENFNGNHNINJNKNLNMNNNp8ONPNQNRNSNTNUNVNWNXNYNZN0N1N2N3N4N5N6N7N8N9N!N#N$N%N'N(N)N*N+N,N$b5c%b6c-N.N[e/N:N;Nebfbgb=NzbAbBc/cq8?N@Nr8[N]Ns8^N_Nt8`N{Nu8|N}Nv8~NaOw8bOcOx8dOeOy8fOgOz8hOiOA8jOkOB8lOmOC8nOoOpOqOD8rOsOtOuOE8vOwOxOyOF8zOAOBOG8CODOEOH8FOGOHOI8IOJOKOJ8LOMONOK8OOPOQOL8ROSOTOUOVOWOM8XOYOZON80OO81O2O3O4OP85O6O7O8O9O!OQ8#O$O%OR8'OS8(O)O*OT8+O,O-OU8.O/O:O;O=O?O@O[O]O^O_O`O{O|O}O~OaPbPcPdPePfPgPhPiPjPkPlPmPnPoPpPV8qPrPsPtPuPW8vPwPX8xPyPzPAPLhBPMhCPNhDPEPFPGPHPIPJPKPLPY8MPNPZ8OP08PP18QPRPSPTPUPVPWPXPYPZP0P1P2P3P4P5P6P7P8P9P28!P#P$P%P'P(P3848)P*P+P58,P68-P.P7888/Pdf]e^e:P;P=P?P@P[P98]P^P!8_P#8`P{P|P}P~PaQbQcQdQeQ$8%8'8fQ(8)8gQhQiQjQ*8kQlQ+8mQ,8-8nQoQ.8pQ/8qQrQsQ:8tQuQvQwQxQyQzQAQBQCQDQEQFQ;8GQ=8HQ?8IQ@8JQ[8KQ]8LQMQ^8NQ_8OQ`8PQ{8QQ|8RQSQTQUQ}8VQWQ~8XQa9YQb9c9ZQ0Q1Qd92Q3Q4Qe95Q6Qf97Q8Q9Qg9!Qh9#Qi9$Qj9%Qk9'Ql9m9(Q)Qn9*Qo9+Qp9,Qq9-Qr9s9.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Qt9u9v9~Qw9aRbRx9cRdReRfRy9z9gRhRiRA9jRkRlRB9mRC9D9nRoRpRqRE9rRsRtRF9uRG9vRwRxRH9yRzRARI9J9BRCRDRK9ERFRGRHRL9IRJRM9KRLRN9MRNRO9ORP9PRQ9QRR9RRS9SRTRURVRT9WRU9XRV9W97cYRX9ZRY9Z90R1R092R3R194R295R396R497R8R9R59!R#R$R%R'R(R)R*R69+R,R-R.R/R:R;R79=R?R@R[R]R^R_R`R{R89|R}R~RaSbS99cSdS!9eSOhfSgS#9hS$9iS%9'9jSkS(9lSmS)9nSCcoSpSPeQeReSeTeUeqShb*9rSsS+9tSuS,9vSwSxSySzS-9f ASBSCSDSESFS.9GS/9:9HS;9ISJS=9KSLSMSNSOSPSQSRSSSTSDcUSEcFc?9VSWSPhXSGc'bYSQhZS0S1S@9[92S3SHc7 (b4S5S6S7S8S9S!S#S$S%S'S(S)S*S+S,S-S.S/S:S;S=S?S@S[S]S^S_S`S{S|S}S~SaTbTcTdTeTfTgThTiTjTkT]9lTmTnToTpTqTrTVeWeXeYeZesTtTuTvTwTRhShxT^9yT_9zTAT`9BTCTDT{9ETFTGTHT|9IT}9JTKTLTMTNT~9OTibjbkblbmbx l [dPTa!b!QTc!RTSTTTUTVTWTXTYTZT0T1T2T3T4Td!_e`ee!5Tf!6T7Tg!8T9T!Th!i!#T$T%T'Tt 8 9 NbOb! (Tj!)T*T+Tk!,T-T.T/T:Tl!;T=T?T@T[T]T^T_T`T{T|T}T~TaUbUcUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUsUtUuUvUwUxUyUzUAUBUm!CUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUU)b# Ic:cJc;cKcLcVUWUn!XUo!YUZUp!0U1U2Uq!3U4U5U6U7U8U9U!U#U$U%U'U(g8c(U)U*U+U,U-U.U/U:U;Ur!=U?U@U[U]U^U_U`U{U|U}U~UaVbVcVdVeVfVgVhViVjVkVlVmVnVoVpVqVrVsVtV*b9c+b!cuVvV{ewVxVyVnbobpbzVBbCbMc=cs!AVBVt!CVDVu!EVFVv!GVHVw!IVJVx!KVLVy!MVNVz!OVPVA!QVRVB!SVTVC!UVVVD!WVXVE!YVZV0V1VF!2V3V4V5VG!6V7V8V9VH!!V#V$VI!%V'V(VJ!)V*V+VK!,V-V.VL!/V:V;VM!=V?V@VN![V]V^V_V`V{VO!|V}V~VP!aWQ!bWcWdWeWR!fWgWhWiWjWkWS!lWmWnWT!oWU!pWqWrWV!sWtWuWW!vWwWxWyWzWAWBWCWDWEWFWGWHWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW0WX!1W2W3W4W5WY!6W7WZ!8W9W!W#WTh$WUh%WVh'W(W)W*W+W,W-W.W/W0!:W;W1!=W2!?W3!@W[W]W^W_W`W{W|W}W~WaXbXcXdXeXfXgXhXiXjX4!kXlXmXnXoXpX5!6!qXrXsX7!tX8!uXvX9!!!wXef|e}exXyXzXAXBXCX#!DXEX$!FX%!GXHXIXJXKXLXMXNXOXPX'!(!)!QX*!+!RXSXTXUX,!VXWX-!XX.!/!YXZX:!0X;!1X2X3X=!4X5X6X7X8X9X!X#X$X%X'X(X)X?!*X@!+X[!,X]!-X^!.X_!/X:X`!;X{!=X|!?X}!@X~![X]X^X_Xa#`X{Xb#|Xc#}Xd#e#~XaYbYf#cYdYeYg#fYgYh#hYiYjYi#kYj#lYk#mYl#nYm#oYn#o#pYqYp#rYq#sYr#tYs#uYt#u#vYwYxYyYzYAYBYCYDYEYFYGYHYIYJYv#w#x#KYy#LYMYz#NYOYPYQYA#B#RYSYTYC#UYVYWYD#XYE#F#YYZY0Y1YG#2Y3Y4YH#5YI#6Y7Y8YJ#9Y!Y#YK#L#$Y%Y'YM#(Y)Y*Y+YN#,Y-YO#.Y/YP#:Y;YQ#=YR#?YS#@YT#[YU#]Y^Y_Y`YV#{YW#|YX#Y##c}YZ#~Y0#1#aZbZ2#cZdZ3#eZ4#fZ5#gZ6#hZiZjZ7#kZlZmZnZoZpZqZrZ8#sZtZuZvZwZxZyZ9#zZAZBZCZDZEZFZGZHZ!#IZJZKZLZMZ##NZOZ$#PZWhQZRZ%#SZ'#TZ(#)#UZVZ*#WZXZ+#YZNcZZ0Z0e1e2e3e4e5e1Zqb,#2Z3Z-#4Z5Z.#6Z7Z8Z9Z!Z/#
44 return True 2a #Z$Z%Z'Z)g*g(Z+g,g)ZjhPb4g*Z+Zy Qb,Z-Z.Z/Z:Z;Z=Z?Zz A B C D m g :d@Z[Z]Z-g^Z_Z`Z{Z|Z}Z.g/go E F DbEbG ~Za0b0c0RbH d0e0f0g0:g2gOch0PcQc;g$ % ' rbsb$ci0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0A0B0C0D0E0F0G0H0I0J0K0L0M0N0O0P0=g5g6g7gQ0R0S0T0?gU0V0W0X0Y0Z000~e102030405060708090!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~0a1b1c1d1e1f1g1h1i1j1k1@g[g]g^gl1m1n1o1p1q1r1s1t1u1v1w1x1y1z1A1B1C1D1E1F1G1H1I1J1K1L1M1N1O1RcP1Q1R1S1T1U1V1W1X1Y1Z101112131415161718191!1#1$1b %1'1(1)1_g`g*1{g|g+1nhUb8g,1-1I Vb.1/1:1;1=1?1@1[1J K L M N n h ;d]1^1_1}g`1{1|1}1~1a2~gahp O P FbGbQ b2c2d2e2WbR f2g2h2i2bh3gScj2TcUcch( ) * tbub%ck2l2m2n2o2p2q2r2s2t2u2v2w2x2y2z2A2B2C2D2E2F2G2H2I2J2K2L2M2N2O2P2Q2R2dh9g!g#gS2T2U2V2ehW2X2Y2Z2021222af32425262728292!2#2$2%2'2(2)2*2+2,2-2.2/2:2;2=2?2@2[2]2^2_2`2{2|2}2~2a3b3c3d3e3f3g3h3i3j3k3l3m3fhghhhihn3o3p3q3r3s3t3u3v3w3x3y3z3A3B3C3D3E3F3G3H3I3J3K3L3M3N3O3P3Q3VcR3S3T3U3V3W3X3Y3Z303132333435363738393!3#3$3%3'3c (3)3*3+3mwnw,3owtw-3rhZbsh.3/3S 0b:3;3=3?3@3[3]3^3+ , - . / u i =d_3`3{3yx|3}3~3a4b4c4QxSxq T U HbIbV d4e4f4g41bW 'c(ch4i4j4k4Ry$gWcl4XcYc}y: ; = vbwb)cm4n4o4p4q4r4s4t4u4v4w4x4y4z4A4B4C4D4E4F4G4H4I4J4K4L4M4N4O4P4Q4R4S4T4OAvhwhxhU4V4W4X4$AY4Z40414243444bf5464748494!4#4$4%4'4(4)4*4+4,4-4.4/4:4;4=4?4@4[4]4^4_4`4{4|4}4~4a5b5c5d5e5f5g5h5i5j5k5l5m5n5o5bCcCeCiCp5q5r5s5t5u5v5w5x5y5z5A5B5C5D5E5F5G5H5I5J5K5L5M5N5O5P5Q5R5S5ZcT5U5V5W5X5Y5Z505152535455565758595!5#5$5? %5'5(5)5d *5+5,5-5XDYD.5ZD4D/5zh4bAh:5;5X 5b=5?5@5[5]5^5_5`5@ [ ] ^ _ v j ?d{5|5}59E~5a6b6c6d6e6@E]Er Y Z JbKb0 f6g6h6i66b1 *c+cj6k6l6m6[F%g0cn61c2cJG` { | xbyb,co6p6q6r6s6t6u6v6w6x6y6z6A6B6C6D6E6F6G6H6I6J6K6L6M6N6O6P6Q6R6S6T6U6V6=HDhEhFhW6X6Y6Z6mI06162636465666cf768696!6#6$6%6'6(6)6*6+6,6-6.6/6:6;6=6?6@6[6]6^6_6`6{6|6}6~6a7b7c7d7e7f7g7h7i7j7k7l7m7n7o7p7q7MJNJPJTJr7s7t7u7v7w7x7y7z7A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7Q7R7S7T7U73cV7W7X7Y7Z707172737475767778797!7#7$7%7'7} (7)7*7+7e ,7-7.7/7|K}K:7~KeL;7Hh9bIh=7?72 !b@7[7]7^7_7`7{7|7~ abbbcbdbw k @d}7~7a8jMb8c8d8e8f8g8BMDMs 3 4 LbMb5 h8i8j8k8#b6 -c.cl8m8n8o8CN'g4cp85c6c-NebfbgbzbAb/cq8r8s8t8u8v8w8x8y8z8A8B8C8D8E8F8G8H8I8J8K8L8M8N8O8P8Q8R8S8T8U8V8W8X8zPLhMhNhY8Z80818XP28384858687888df98!8#8$8%8'8(8)8*8+8,8-8.8/8:8;8=8?8@8[8]8^8_8`8{8|8}8~8a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9:Q;Q?Q^Qt9u9v9w9x9y9z9A9B9C9D9E9F9G9H9I9J9K9L9M9N9O9P9Q9R9S9T9U9V9W97cX9Y9Z909192939495969798999!9#9$9%9'9(9)9hb*9+9,9-9f .9/9:9;9ISJS=9KSPS?9Ph'bQh@9[97 (b]9^9_9`9{9|9}9~9ibjbkblbmbx l [da!b!c!UTd!e!f!g!h!i!$T'Tt 8 9 NbOb! j!k!l!m!)b# :c;cn!o!p!q!%U(g8cr!9c!cuVnbobpbBbCb=cs!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!V!W!X!Y!Z!!WThUhVh0!1!2!3!|W4!5!6!7!8!9!!!ef#!$!%!'!(!)!*!+!,!-!.!/!:!;!=!?!@![!]!^!_!`!{!|!}!~!a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#t#u#xYyYAYEYv#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#V#W#X#Y##cZ#0#1#2#3#4#5#6#7#8#9#!###$#%#'#(#)#*#+#qb,#-#.#/#
45 # Ref: https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#patterned-fields-1
46 if status_code in { 2a XhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h,b%h-b.b'h(hjh)h/bPb*h+h,h-h.h/h:by Qb:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKi]d^d_d`d{dLiMiNiOiPikhlhQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7iz A B C D m g 8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i6e7e:i;i=i?i@i[i]i^io E F DbEbG _i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!jRbH #j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j2g^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkSbTbJk8eKkLkMk$ % ' Nkrbsb;bOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmIm9e!eJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~manbncndnenfngnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXomhYoZo0o1o2o3o4o5o6o=b7o8o|d}d~daebece9o!o#o$o%o'o(o)o*o+ob ,o-o.o/o:o;o=o?o@o[o]o^o_o`o{o|o?b}o@b[b~oapnhbp]bUbcpdpepfpgphp^bI VbipjpkplpmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp0p1p2p3p4p5p6pdeeefegehe7p8p9p!p#pohph$p%p'p(p)p*p+p,p-p.p/p:p;p=p?p@p[p]pJ K L M N n h ^p_p`p{p|p}p~paqbqcqdqeqfqgqhq#e$eiqjqkqlqmqnqoqpqp O P FbGbQ qqrqsqtquqvqwqxqyqzqAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q%q'q(q)q*q+q,q-q.q/q:q;q=q?q@q[q]q^q_q`qWbR {q|q}q~qarbrcrdrerfrgrhrirjrkrlrmrnror3gprqrrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4rXbYb5r%e6r7r8r( ) * 9rtbub_b!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytztAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtUtVtWtXtYtZt0t1t2t3t4t'e(e5t6t7t8t9t!t#t$t%t't(t)t*t+t,t-t.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~uavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCvDvEvFvGvHvIvJvKvLvMvNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v5v6v7v8v9v!v#v$v%v'v(v)v*v+v,vqh-v.v/v:v;v=v?v@v[v`b]v^viejekelemene_v`v{v|v}v~vawbwcwdwc ewfwgwhwiwjwkwlwpwqwrwswuwvwwwxw{byw|b}bzwAwrhBw~bZbCwDwEwFwGwHwacS 0bIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`woepeqerese{w|w}w~waxthuhbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsx+ , - . / u i txuxvxwxxxzxAxBxCxDxExFxGxHxIx)e*eJxKxLxMxNxOxPxRxq T U HbIbV TxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!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~xaybycydyeyfygyhyiyjykylymynyoypyqyrysytyuyvywyxyyy1bW bcccdceczyAyByCyDyEyFyGyHyIyJyKyLyMyNyOyPyQySy$gTyUyVyWyXyYyZy0y1y2y3y4y5y6y7y8y9y!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y=y?y@y[y]y^y_y`y{y|y2b3b~y+eazbzcz: ; = dzvbwbfcezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzzzAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0z1z2z3z4z5z6z7z8z9z!z#z$z%z'z(z)z*z+z,z-z.z/z:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzAAABACADAEAFAGAHAIAJAKALAMANAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaB,e-ebBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!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~BaCdCfCgChCjCkClCmCnCoCpCqCrCsCtCuCvCwCxCyCzCACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZC0C1C2C3C4C5C6C7C8C9C!C#C$C%C'C(C)C*C+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDyhuDvDwDxDyDzDADBDCDgcDDEDteuevewexeyeFD? GDHDIDJDKDLDMDNDODd PDQDRDSDTDUDVDWD0D1D2D3D5D6D7D8Dhc9Dicjc!D#Dzh$Dkc4b%D'D(D)D*D+DlcX 5b,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DaEbEcEdEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEzeAeBeCeDeHEIEJEKELEBhChMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E@ [ ] ^ _ v j 4E5E6E7E8E!E#E$E%E'E(E)E*E+E,E.e/e-E.E/E:E;E=E?E[Er Y Z JbKb0 ^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F6b1 mcncocpc!F#F$F%F'F(F)F*F+F,F-F.F/F:F;F=F?F@F]F%g^F_F`F{F|F}F~FaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzGAGBGCGDGEGFGGGHGIG7b8bKG:eLGMGNG` { | OGxbybqcPGQGRGSGTGUGVGWGXGYGZG0G1G2G3G4G5G6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G{G|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHyHzHAHBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSHTHUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!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~HaIbIcIdIeIfIgIhIiIjIkIlInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILI;e=eMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJOJQJRJSJUJVJWJXJYJZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'J(J)J*J+J,J-J.J/J:J;J=J?J@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKyKzKAKBKCKDKEKFKGKHKIKJKKKLKMKNKOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4KGh5K6K7K8K9K!K#K$K%Krc'K(KEeFeGeHeIeJe)K} *K+K,K-K.K/K:K;K=Ke ?K@K[K]K^K_K`K{KaLbLcLdLfLgLhLiLscjLtcuckLlLHhmLvc9bnLoLpLqLrLsLwc2 !btLuLvLwLxLyLzLALBLCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLTLULVLWLXLYLZL0L1L2L3L4L5L6L7L8L9L!L#L$L%L'L(L)L*LKeLeMeNeOe+L,L-L.L/LJhKh:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdM~ abbbcbdbw k eMfMgMhMiMkMlMmMnMoMpMqMrMsMtM?e@euMvMwMxMyMzMAMCMs 3 4 LbMb5 EMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaNbNcNdNeNfNgNhNiNjN#b6 xcyczcAckNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNDN'gENFNGNHNINJNKNLNMNNNONPNQNRNSNTNUNVNWNXNYNZN0N1N2N3N4N5N6N7N8N9N!N#N$N%N'N(N)N*N+N,N$b%b.N[e/N:N;Nebfbgb=NzbAbBc?N@N[N]N^N_N`N{N|N}N~NaObOcOdOeOfOgOhOiOjOkOlOmOnOoOpOqOrOsOtOuOvOwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;O=O?O@O[O]O^O_O`O{O|O}O~OaPbPcPdPePfPgPhPiPjPkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPAPBPCPDPEPFPGPHPIPJPKPLPMPNPOPPPQPRPSPTPUPVPWPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P]e^e:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Q-Q.Q/Q=Q@Q[Q]Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRlRmRnRoRpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6R7R8R9R!R#R$R%R'R(R)R*R+R,R-R.R/R:R;R=R?R@R[R]R^R_R`R{R|R}R~RaSbScSdSeSOhfSgShSiSjSkSlSmSnSCcoSpSPeQeReSeTeUeqShbrSsStSuSvSwSxSySzSf ASBSCSDSESFSGSHSLSMSNSOSQSRSSSTSDcUSEcFcVSWSPhXSGc'bYSZS0S1S2S3SHc7 (b4S5S6S7S8S9S!S#S$S%S'S(S)S*S+S,S-S.S/S:S;S=S?S@S[S]S^S_S`S{S|S}S~SaTbTcTdTeTfTgThTiTjTkTlTmTnToTpTqTrTVeWeXeYeZesTtTuTvTwTRhShxTyTzTATBTCTDTETFTGTHTITJTKTLTMTNTOTibjbkblbmbx l PTQTRTSTTTVTWTXTYTZT0T1T2T3T4T_e`e5T6T7T8T9T!T#T%Tt 8 9 NbOb! (T)T*T+T,T-T.T/T:T;T=T?T@T[T]T^T_T`T{T|T}T~TaUbUcUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUsUtUuUvUwUxUyUzUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUU)b# IcJcKcLcVUWUXUYUZU0U1U2U3U4U5U6U7U8U9U!U#U$U'U(g(U)U*U+U,U-U.U/U:U;U=U?U@U[U]U^U_U`U{U|U}U~UaVbVcVdVeVfVgVhViVjVkVlVmVnVoVpVqVrVsVtV*b+bvV{ewVxVyVnbobpbzVBbCbMcAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV0V1V2V3V4V5V6V7V8V9V!V#V$V%V'V(V)V*V+V,V-V.V/V:V;V=V?V@V[V]V^V_V`V{V|V}V~VaWbWcWdWeWfWgWhWiWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWDWEWFWGWHWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW0W1W2W3W4W5W6W7W8W9W#W$W%W'W(W)W*W+W,W-W.W/W:W;W=W?W@W[W]W^W_W`W{W}W~WaXbXcXdXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXtXuXvXwX|e}exXyXzXAXBXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWXXXYXZX0X1X2X3X4X5X6X7X8X9X!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~XaYbYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYwYzYBYCYDYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y!Y#Y$Y%Y'Y(Y)Y*Y+Y,Y-Y.Y/Y:Y;Y=Y?Y@Y[Y]Y^Y_Y`Y{Y|Y}Y~YaZbZcZdZeZfZgZhZiZjZkZlZmZnZoZpZqZrZsZtZuZvZwZxZyZzZAZBZCZDZEZFZGZHZIZJZKZLZMZNZOZPZWhQZRZSZTZUZVZWZXZYZNcZZ0Z0e1e2e3e4e5e1Zqb2Z3Z4Z5Z6Z7Z8Z9Z!Z
47 "default",
48 "1XX",
49 "2XX",
50 "3XX",
51 "4XX",
52 "5XX",
53 }:
54 return True 1abcdef
55 current_status_code = int(status_code) 2a XhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h,b%h-b.b'h(hjh)h/bPb*h+h,h-h.h/h:by Qb:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKi]d^d_d`d{dLiMiNiOiPikhlhQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7iz A B C D m g 8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i6e7e:i;i=i?i@i[i]i^io E F DbEbG _i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!jRbH #j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j2g^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkSbTbJk8eKkLkMk$ % ' Nkrbsb;bOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmIm9e!eJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~manbncndnenfngnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXomhYoZo0o1o2o3o4o5o6o=b7o8o|d}d~daebece9o!o#o$o%o'o(o)o*o+ob ,o-o.o/o:o;o=o?o@o[o]o^o_o`o{o|o?b}o@b[b~oapnhbp]bUbcpdpepfpgphp^bI VbipjpkplpmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp0p1p2p3p4p5p6pdeeefegehe7p8p9p!p#pohph$p%p'p(p)p*p+p,p-p.p/p:p;p=p?p@p[p]pJ K L M N n h ^p_p`p{p|p}p~paqbqcqdqeqfqgqhq#e$eiqjqkqlqmqnqoqpqp O P FbGbQ qqrqsqtquqvqwqxqyqzqAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q%q'q(q)q*q+q,q-q.q/q:q;q=q?q@q[q]q^q_q`qWbR {q|q}q~qarbrcrdrerfrgrhrirjrkrlrmrnror3gprqrrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4rXbYb5r%e6r7r8r( ) * 9rtbub_b!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytztAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtUtVtWtXtYtZt0t1t2t3t4t'e(e5t6t7t8t9t!t#t$t%t't(t)t*t+t,t-t.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~uavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCvDvEvFvGvHvIvJvKvLvMvNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v5v6v7v8v9v!v#v$v%v'v(v)v*v+v,vqh-v.v/v:v;v=v?v@v[v`b]v^viejekelemene_v`v{v|v}v~vawbwcwdwc ewfwgwhwiwjwkwlwpwqwrwswuwvwwwxw{byw|b}bzwAwrhBw~bZbCwDwEwFwGwHwacS 0bIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`woepeqerese{w|w}w~waxthuhbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsx+ , - . / u i txuxvxwxxxzxAxBxCxDxExFxGxHxIx)e*eJxKxLxMxNxOxPxRxq T U HbIbV TxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!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~xaybycydyeyfygyhyiyjykylymynyoypyqyrysytyuyvywyxyyy1bW bcccdceczyAyByCyDyEyFyGyHyIyJyKyLyMyNyOyPyQySy$gTyUyVyWyXyYyZy0y1y2y3y4y5y6y7y8y9y!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y=y?y@y[y]y^y_y`y{y|y2b3b~y+eazbzcz: ; = dzvbwbfcezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzzzAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0z1z2z3z4z5z6z7z8z9z!z#z$z%z'z(z)z*z+z,z-z.z/z:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzAAABACADAEAFAGAHAIAJAKALAMANAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaB,e-ebBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!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~BaCdCfCgChCjCkClCmCnCoCpCqCrCsCtCuCvCwCxCyCzCACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZC0C1C2C3C4C5C6C7C8C9C!C#C$C%C'C(C)C*C+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDyhuDvDwDxDyDzDADBDCDgcDDEDteuevewexeyeFD? GDHDIDJDKDLDMDNDODd PDQDRDSDTDUDVDWD0D1D2D3D5D6D7D8Dhc9Dicjc!D#Dzh$Dkc4b%D'D(D)D*D+DlcX 5b,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DaEbEcEdEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEzeAeBeCeDeHEIEJEKELEBhChMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E@ [ ] ^ _ v j 4E5E6E7E8E!E#E$E%E'E(E)E*E+E,E.e/e-E.E/E:E;E=E?E[Er Y Z JbKb0 ^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F6b1 mcncocpc!F#F$F%F'F(F)F*F+F,F-F.F/F:F;F=F?F@F]F%g^F_F`F{F|F}F~FaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzGAGBGCGDGEGFGGGHGIG7b8bKG:eLGMGNG` { | OGxbybqcPGQGRGSGTGUGVGWGXGYGZG0G1G2G3G4G5G6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G{G|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHyHzHAHBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSHTHUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!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~HaIbIcIdIeIfIgIhIiIjIkIlInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILI;e=eMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJOJQJRJSJUJVJWJXJYJZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'J(J)J*J+J,J-J.J/J:J;J=J?J@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKyKzKAKBKCKDKEKFKGKHKIKJKKKLKMKNKOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4KGh5K6K7K8K9K!K#K$K%Krc'K(KEeFeGeHeIeJe)K} *K+K,K-K.K/K:K;K=Ke ?K@K[K]K^K_K`K{KaLbLcLdLfLgLhLiLscjLtcuckLlLHhmLvc9bnLoLpLqLrLsLwc2 !btLuLvLwLxLyLzLALBLCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLTLULVLWLXLYLZL0L1L2L3L4L5L6L7L8L9L!L#L$L%L'L(L)L*LKeLeMeNeOe+L,L-L.L/LJhKh:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdM~ abbbcbdbw k eMfMgMhMiMkMlMmMnMoMpMqMrMsMtM?e@euMvMwMxMyMzMAMCMs 3 4 LbMb5 EMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaNbNcNdNeNfNgNhNiNjN#b6 xcyczcAckNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNDN'gENFNGNHNINJNKNLNMNNNONPNQNRNSNTNUNVNWNXNYNZN0N1N2N3N4N5N6N7N8N9N!N#N$N%N'N(N)N*N+N,N$b%b.N[e/N:N;Nebfbgb=NzbAbBc?N@N[N]N^N_N`N{N|N}N~NaObOcOdOeOfOgOhOiOjOkOlOmOnOoOpOqOrOsOtOuOvOwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;O=O?O@O[O]O^O_O`O{O|O}O~OaPbPcPdPePfPgPhPiPjPkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPAPBPCPDPEPFPGPHPIPJPKPLPMPNPOPPPQPRPSPTPUPVPWPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P]e^e:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Q-Q.Q/Q=Q@Q[Q]Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRlRmRnRoRpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6R7R8R9R!R#R$R%R'R(R)R*R+R,R-R.R/R:R;R=R?R@R[R]R^R_R`R{R|R}R~RaSbScSdSeSOhfSgShSiSjSkSlSmSnSCcoSpSPeQeReSeTeUeqShbrSsStSuSvSwSxSySzSf ASBSCSDSESFSGSHSLSMSNSOSQSRSSSTSDcUSEcFcVSWSPhXSGc'bYSZS0S1S2S3SHc7 (b4S5S6S7S8S9S!S#S$S%S'S(S)S*S+S,S-S.S/S:S;S=S?S@S[S]S^S_S`S{S|S}S~SaTbTcTdTeTfTgThTiTjTkTlTmTnToTpTqTrTVeWeXeYeZesTtTuTvTwTRhShxTyTzTATBTCTDTETFTGTHTITJTKTLTMTNTOTibjbkblbmbx l PTQTRTSTTTVTWTXTYTZT0T1T2T3T4T_e`e5T6T7T8T9T!T#T%Tt 8 9 NbOb! (T)T*T+T,T-T.T/T:T;T=T?T@T[T]T^T_T`T{T|T}T~TaUbUcUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUsUtUuUvUwUxUyUzUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUU)b# IcJcKcLcVUWUXUYUZU0U1U2U3U4U5U6U7U8U9U!U#U$U'U(g(U)U*U+U,U-U.U/U:U;U=U?U@U[U]U^U_U`U{U|U}U~UaVbVcVdVeVfVgVhViVjVkVlVmVnVoVpVqVrVsVtV*b+bvV{ewVxVyVnbobpbzVBbCbMcAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV0V1V2V3V4V5V6V7V8V9V!V#V$V%V'V(V)V*V+V,V-V.V/V:V;V=V?V@V[V]V^V_V`V{V|V}V~VaWbWcWdWeWfWgWhWiWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWDWEWFWGWHWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW0W1W2W3W4W5W6W7W8W9W#W$W%W'W(W)W*W+W,W-W.W/W:W;W=W?W@W[W]W^W_W`W{W}W~WaXbXcXdXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXtXuXvXwX|e}exXyXzXAXBXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWXXXYXZX0X1X2X3X4X5X6X7X8X9X!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~XaYbYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYwYzYBYCYDYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y!Y#Y$Y%Y'Y(Y)Y*Y+Y,Y-Y.Y/Y:Y;Y=Y?Y@Y[Y]Y^Y_Y`Y{Y|Y}Y~YaZbZcZdZeZfZgZhZiZjZkZlZmZnZoZpZqZrZsZtZuZvZwZxZyZzZAZBZCZDZEZFZGZHZIZJZKZLZMZNZOZPZWhQZRZSZTZUZVZWZXZYZNcZZ0Z0e1e2e3e4e5e1Zqb2Z3Z4Z5Z6Z7Z8Z9Z!Z
56 return not (current_status_code < 200 or current_status_code in {204, 205, 304}) 2a XhYhZh0h1h2h3h4h5h6h7h8h9h!h#h$h,b%h-b.b'h(hjh)h/bPb*h+h,h-h.h/h:by Qb:h;h=h?h@h[h]h^h_h`h{h|h}h~haibicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKi]d^d_d`d{dLiMiNiOiPikhlhQiRiSiTiUiViWiXiYiZi0i1i2i3i4i5i6i7iz A B C D m g 8i9i!i#i$i%i'i(i)i*i+i,i-i.i/i6e7e:i;i=i?i@i[i]i^io E F DbEbG _i`i{i|i}i~iajbjcjdjejfjgjhjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!jRbH #j$j%j'j(j)j*j+j,j-j.j/j:j;j=j?j@j[j]j2g^j_j`j{j|j}j~jakbkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkSbTbJk8eKkLkMk$ % ' Nkrbsb;bOkPkQkRkSkTkUkVkWkXkYkZk0k1k2k3k4k5k6k7k8k9k!k#k$k%k'k(k)k*k+k,k-k.k/k:k;k=k?k@k[k]k^k_k`k{k|k}k~kalblcldlelflglhliljlklllmlnlolplqlrlsltlulvlwlxlylzlAlBlClDlElFlGlHlIlJlKlLlMlNlOlPlQlRlSlTlUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l/l:l;l=l?l@l[l]l^l_l`l{l|l}l~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmIm9e!eJmKmLmMmNmOmPmQmRmSmTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!m#m$m%m'm(m)m*m+m,m-m.m/m:m;m=m?m@m[m]m^m_m`m{m|m}m~manbncndnenfngnhninjnknlnmnnnonpnqnrnsntnunvnwnxnynznAnBnCnDnEnFnGnHnInJnKnLnMnNnOnPnQnRnSnTnUnVnWnXnYnZn0n1n2n3n4n5n6n7n8n9n!n#n$n%n'n(n)n*n+n,n-n.n/n:n;n=n?n@n[n]n^n_n`n{n|n}n~naobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXomhYoZo0o1o2o3o4o5o6o=b7o8o|d}d~daebece9o!o#o$o%o'o(o)o*o+ob ,o-o.o/o:o;o=o?o@o[o]o^o_o`o{o|o?b}o@b[b~oapnhbp]bUbcpdpepfpgphp^bI VbipjpkplpmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp0p1p2p3p4p5p6pdeeefegehe7p8p9p!p#pohph$p%p'p(p)p*p+p,p-p.p/p:p;p=p?p@p[p]pJ K L M N n h ^p_p`p{p|p}p~paqbqcqdqeqfqgqhq#e$eiqjqkqlqmqnqoqpqp O P FbGbQ qqrqsqtquqvqwqxqyqzqAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q%q'q(q)q*q+q,q-q.q/q:q;q=q?q@q[q]q^q_q`qWbR {q|q}q~qarbrcrdrerfrgrhrirjrkrlrmrnror3gprqrrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2r3r4rXbYb5r%e6r7r8r( ) * 9rtbub_b!r#r$r%r'r(r)r*r+r,r-r.r/r:r;r=r?r@r[r]r^r_r`r{r|r}r~rasbscsdsesfsgshsisjskslsmsnsospsqsrssstsusvswsxsyszsAsBsCsDsEsFsGsHsIsJsKsLsMsNsOsPsQsRsSsTsUsVsWsXsYsZs0s1s2s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{s|s}s~satbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytztAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtUtVtWtXtYtZt0t1t2t3t4t'e(e5t6t7t8t9t!t#t$t%t't(t)t*t+t,t-t.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~uavbvcvdvevfvgvhvivjvkvlvmvnvovpvqvrvsvtvuvvvwvxvyvzvAvBvCvDvEvFvGvHvIvJvKvLvMvNvOvPvQvRvSvTvUvVvWvXvYvZv0v1v2v3v4v5v6v7v8v9v!v#v$v%v'v(v)v*v+v,vqh-v.v/v:v;v=v?v@v[v`b]v^viejekelemene_v`v{v|v}v~vawbwcwdwc ewfwgwhwiwjwkwlwpwqwrwswuwvwwwxw{byw|b}bzwAwrhBw~bZbCwDwEwFwGwHwacS 0bIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,w-w.w/w:w;w=w?w@w[w]w^w_w`woepeqerese{w|w}w~waxthuhbxcxdxexfxgxhxixjxkxlxmxnxoxpxqxrxsx+ , - . / u i txuxvxwxxxzxAxBxCxDxExFxGxHxIx)e*eJxKxLxMxNxOxPxRxq T U HbIbV TxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!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~xaybycydyeyfygyhyiyjykylymynyoypyqyrysytyuyvywyxyyy1bW bcccdceczyAyByCyDyEyFyGyHyIyJyKyLyMyNyOyPyQySy$gTyUyVyWyXyYyZy0y1y2y3y4y5y6y7y8y9y!y#y$y%y'y(y)y*y+y,y-y.y/y:y;y=y?y@y[y]y^y_y`y{y|y2b3b~y+eazbzcz: ; = dzvbwbfcezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzzzAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0z1z2z3z4z5z6z7z8z9z!z#z$z%z'z(z)z*z+z,z-z.z/z:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzAAABACADAEAFAGAHAIAJAKALAMANAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A%A'A(A)A*A+A,A-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaB,e-ebBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!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~BaCdCfCgChCjCkClCmCnCoCpCqCrCsCtCuCvCwCxCyCzCACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZC0C1C2C3C4C5C6C7C8C9C!C#C$C%C'C(C)C*C+C,C-C.C/C:C;C=C?C@C[C]C^C_C`C{C|C}C~CaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDyhuDvDwDxDyDzDADBDCDgcDDEDteuevewexeyeFD? GDHDIDJDKDLDMDNDODd PDQDRDSDTDUDVDWD0D1D2D3D5D6D7D8Dhc9Dicjc!D#Dzh$Dkc4b%D'D(D)D*D+DlcX 5b,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DaEbEcEdEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEzeAeBeCeDeHEIEJEKELEBhChMENEOEPEQERESETEUEVEWEXEYEZE0E1E2E3E@ [ ] ^ _ v j 4E5E6E7E8E!E#E$E%E'E(E)E*E+E,E.e/e-E.E/E:E;E=E?E[Er Y Z JbKb0 ^E_E`E{E|E}E~EaFbFcFdFeFfFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHFIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF0F1F2F3F4F5F6F7F8F9F6b1 mcncocpc!F#F$F%F'F(F)F*F+F,F-F.F/F:F;F=F?F@F]F%g^F_F`F{F|F}F~FaGbGcGdGeGfGgGhGiGjGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzGAGBGCGDGEGFGGGHGIG7b8bKG:eLGMGNG` { | OGxbybqcPGQGRGSGTGUGVGWGXGYGZG0G1G2G3G4G5G6G7G8G9G!G#G$G%G'G(G)G*G+G,G-G.G/G:G;G=G?G@G[G]G^G_G`G{G|G}G~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHyHzHAHBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSHTHUHVHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!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~HaIbIcIdIeIfIgIhIiIjIkIlInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILI;e=eMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!I#I$I%I'I(I)I*I+I,I-I.I/I:I;I=I?I@I[I]I^I_I`I{I|I}I~IaJbJcJdJeJfJgJhJiJjJkJlJmJnJoJpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJOJQJRJSJUJVJWJXJYJZJ0J1J2J3J4J5J6J7J8J9J!J#J$J%J'J(J)J*J+J,J-J.J/J:J;J=J?J@J[J]J^J_J`J{J|J}J~JaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKyKzKAKBKCKDKEKFKGKHKIKJKKKLKMKNKOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4KGh5K6K7K8K9K!K#K$K%Krc'K(KEeFeGeHeIeJe)K} *K+K,K-K.K/K:K;K=Ke ?K@K[K]K^K_K`K{KaLbLcLdLfLgLhLiLscjLtcuckLlLHhmLvc9bnLoLpLqLrLsLwc2 !btLuLvLwLxLyLzLALBLCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLTLULVLWLXLYLZL0L1L2L3L4L5L6L7L8L9L!L#L$L%L'L(L)L*LKeLeMeNeOe+L,L-L.L/LJhKh:L;L=L?L@L[L]L^L_L`L{L|L}L~LaMbMcMdM~ abbbcbdbw k eMfMgMhMiMkMlMmMnMoMpMqMrMsMtM?e@euMvMwMxMyMzMAMCMs 3 4 LbMb5 EMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M;M=M?M@M[M]M^M_M`M{M|M}M~MaNbNcNdNeNfNgNhNiNjN#b6 xcyczcAckNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNDN'gENFNGNHNINJNKNLNMNNNONPNQNRNSNTNUNVNWNXNYNZN0N1N2N3N4N5N6N7N8N9N!N#N$N%N'N(N)N*N+N,N$b%b.N[e/N:N;Nebfbgb=NzbAbBc?N@N[N]N^N_N`N{N|N}N~NaObOcOdOeOfOgOhOiOjOkOlOmOnOoOpOqOrOsOtOuOvOwOxOyOzOAOBOCODOEOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO0O1O2O3O4O5O6O7O8O9O!O#O$O%O'O(O)O*O+O,O-O.O/O:O;O=O?O@O[O]O^O_O`O{O|O}O~OaPbPcPdPePfPgPhPiPjPkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPAPBPCPDPEPFPGPHPIPJPKPLPMPNPOPPPQPRPSPTPUPVPWPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P]e^e:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQKQLQMQNQOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Q-Q.Q/Q=Q@Q[Q]Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRlRmRnRoRpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRWRXRYRZR0R1R2R3R4R5R6R7R8R9R!R#R$R%R'R(R)R*R+R,R-R.R/R:R;R=R?R@R[R]R^R_R`R{R|R}R~RaSbScSdSeSOhfSgShSiSjSkSlSmSnSCcoSpSPeQeReSeTeUeqShbrSsStSuSvSwSxSySzSf ASBSCSDSESFSGSHSLSMSNSOSQSRSSSTSDcUSEcFcVSWSPhXSGc'bYSZS0S1S2S3SHc7 (b4S5S6S7S8S9S!S#S$S%S'S(S)S*S+S,S-S.S/S:S;S=S?S@S[S]S^S_S`S{S|S}S~SaTbTcTdTeTfTgThTiTjTkTlTmTnToTpTqTrTVeWeXeYeZesTtTuTvTwTRhShxTyTzTATBTCTDTETFTGTHTITJTKTLTMTNTOTibjbkblbmbx l PTQTRTSTTTVTWTXTYTZT0T1T2T3T4T_e`e5T6T7T8T9T!T#T%Tt 8 9 NbOb! (T)T*T+T,T-T.T/T:T;T=T?T@T[T]T^T_T`T{T|T}T~TaUbUcUdUeUfUgUhUiUjUkUlUmUnUoUpUqUrUsUtUuUvUwUxUyUzUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUU)b# IcJcKcLcVUWUXUYUZU0U1U2U3U4U5U6U7U8U9U!U#U$U'U(g(U)U*U+U,U-U.U/U:U;U=U?U@U[U]U^U_U`U{U|U}U~UaVbVcVdVeVfVgVhViVjVkVlVmVnVoVpVqVrVsVtV*b+bvV{ewVxVyVnbobpbzVBbCbMcAVBVCVDVEVFVGVHVIVJVKVLVMVNVOVPVQVRVSVTVUVVVWVXVYVZV0V1V2V3V4V5V6V7V8V9V!V#V$V%V'V(V)V*V+V,V-V.V/V:V;V=V?V@V[V]V^V_V`V{V|V}V~VaWbWcWdWeWfWgWhWiWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWDWEWFWGWHWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW0W1W2W3W4W5W6W7W8W9W#W$W%W'W(W)W*W+W,W-W.W/W:W;W=W?W@W[W]W^W_W`W{W}W~WaXbXcXdXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXtXuXvXwX|e}exXyXzXAXBXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWXXXYXZX0X1X2X3X4X5X6X7X8X9X!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~XaYbYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYwYzYBYCYDYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y!Y#Y$Y%Y'Y(Y)Y*Y+Y,Y-Y.Y/Y:Y;Y=Y?Y@Y[Y]Y^Y_Y`Y{Y|Y}Y~YaZbZcZdZeZfZgZhZiZjZkZlZmZnZoZpZqZrZsZtZuZvZwZxZyZzZAZBZCZDZEZFZGZHZIZJZKZLZMZNZOZPZWhQZRZSZTZUZVZWZXZYZNcZZ0Z0e1e2e3e4e5e1Zqb2Z3Z4Z5Z6Z7Z8Z9Z!Z
59def get_path_param_names(path: str) -> Set[str]: 1abcdef
60 return set(re.findall("{(.*?)}", path)) 2a ,b,f-b.b/bPb:by Qb]dffgf^dhfif_djf`dkflf{dmfkhlhz A B C D m g :d6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH 8e$ % ' rbsb;b$c~e9e!emh^f?c=b|d}d~daebecenfofpf:#b ?b_f@b[b]bUb^bI VbdeqfrfeesftffeufgevfwfhexfohphJ K L M N n h ;d#e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR %e( ) * tbub_b%caf'e(eqhfg@c`biejekelemeneyfzfAf;#c {bgg|b}b~bZbacS 0boeBfCfpeDfEfqeFfreGfHfseIfthuh+ , - . / u i =d)e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcec+e: ; = vbwbfc)cbf,e-eyhrg[cgcteuevewexeye? JfKfLf=#d hcsgicjckc4blcX 5bzeMfNfAeOfPfBeQfCeRfSfDeTfBhCh@ [ ] ^ _ v j ?d.e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc:e` { | xbybqc,ccf;e=eGhDg]crcEeFeGeHeIeJe} UfVfWf?#e scEgtcucvc9bwc2 !bKeXfYfLeZf0fMe1fNe2f3fOe4fJhKh~ abbbcbdbw k @d?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc[eebfbgbzbAbBc/cdf]e^eOhPg^cCcPeQeReSeTeUehb5f6f7f@#f DcQgEcFcGc'bHc7 (bVe8f9fWe!f#fXe$fYe%f'fZe(fRhShibjbkblbmbx l [d_e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc{enbobpbBbCbMc=cef|e}eWh1g_cNc0e1e2e3e4e5eqb)f*f+f[#
63def create_model_field( 1abcdef
64 name: str,
65 type_: Any,
66 class_validators: Optional[Dict[str, Validator]] = None,
67 default: Optional[Any] = Undefined,
68 required: Union[bool, UndefinedType] = Undefined,
69 model_config: Type[BaseConfig] = BaseConfig,
70 field_info: Optional[FieldInfo] = None,
71 alias: Optional[str] = None,
72 mode: Literal["validation", "serialization"] = "validation",
73) -> ModelField:
74 class_validators = class_validators or {} 2a ,b-b.b/bPb:by Qb]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F DbEbG RbH OcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]bUb^bI VbdeqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P FbGbQ WbR ScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bZbacS 0boeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckc4blcX 5bzeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvc9bwc2 !bKeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGc'bHc7 (bVe8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+f
75 if PYDANTIC_V2: 2a ,b-b.b/bPb:by Qb]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F DbEbG RbH OcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]bUb^bI VbdeqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P FbGbQ WbR ScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bZbacS 0boeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckc4blcX 5bzeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvc9bwc2 !bKeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGc'bHc7 (bVe8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+f
76 field_info = field_info or FieldInfo( 2a ,b-b.b/bPb:bQb]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F DbEbG RbOcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]bUb^bVbdeqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P FbGbQ WbScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bZbac0boeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U HbIbV 1bbc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckc4blc5bzeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z JbKb0 6bmc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvc9bwc!bKeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 LbMb5 #bxc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGc'bHc(bVe8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 NbOb! )bIc:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+f
77 annotation=type_, default=default, alias=alias
78 )
79 else:
80 field_info = field_info or FieldInfo() 2a ,b-b.b/b:by ]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F G H OcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]b^bI deqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P Q R ScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bacS oeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U V W bc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckclcX zeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z 0 1 mc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvcwc2 KeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 5 6 xc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGcHc7 Ve8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 ! # Ic:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+f
81 kwargs = {"name": name, "field_info": field_info} 2a ,b-b.b/bPb:by Qb]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F DbEbG RbH OcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]bUb^bI VbdeqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P FbGbQ WbR ScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bZbacS 0boeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckc4blcX 5bzeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvc9bwc2 !bKeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGc'bHc7 (bVe8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+f
82 if PYDANTIC_V2: 2a ,b-b.b/bPb:by Qb]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F DbEbG RbH OcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]bUb^bI VbdeqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P FbGbQ WbR ScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bZbacS 0boeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckc4blcX 5bzeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvc9bwc2 !bKeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGc'bHc7 (bVe8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+f
83 kwargs.update({"mode": mode}) 2a ,b-b.b/bPb:bQb]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F DbEbG RbOcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]bUb^bVbdeqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P FbGbQ WbScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bZbac0boeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U HbIbV 1bbc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckc4blc5bzeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z JbKb0 6bmc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvc9bwc!bKeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 LbMb5 #bxc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGc'bHc(bVe8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 NbOb! )bIc:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+f
84 else:
85 kwargs.update( 2a ,b-b.b/b:by ]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F G H OcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]b^bI deqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P Q R ScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bacS oeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U V W bc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckclcX zeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z 0 1 mc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvcwc2 KeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 5 6 xc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGcHc7 Ve8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 ! # Ic:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+f
86 {
87 "type_": type_,
88 "class_validators": class_validators,
89 "default": default,
90 "required": required,
91 "model_config": model_config,
92 "alias": alias,
93 }
94 )
95 try: 2a ,b-b.b/bPb:by Qb]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F DbEbG RbH OcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]bUb^bI VbdeqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P FbGbQ WbR ScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bZbacS 0boeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckc4blcX 5bzeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvc9bwc2 !bKeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGc'bHc7 (bVe8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+f
96 return ModelField(**kwargs) # type: ignore[arg-type] 2a ,b-b.b/bPb:by Qb]dffgf^dhfif_djf`dkflf{dmfz A B C D m g :d`c{c|c}c~cadbdcdddedfdgdo E F DbEbG RbH OcSbPcTbQc$ % ' rbsb;b$cRc?c=b|d}d~daebecenfofpfb ?b@b[b]bUb^bI VbdeqfrfeesftffeufgevfwfhexfJ K L M N n h ;dhdidjdkdldmdndodpdqdrdsdp O P FbGbQ WbR ScXbTcYbUc( ) * tbub_b%cVc@c`biejekelemeneyfzfAfc {b|b}b~bZbacS 0boeBfCfpeDfEfqeFfreGfHfseIf+ , - . / u i =dtdudvdwdxdydzdAdBdCdDdEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc: ; = vbwbfc)cZc[cgcteuevewexeye? JfKfLfd hcicjckc4blcX 5bzeMfNfAeOfPfBeQfCeRfSfDeTf@ [ ] ^ _ v j ?dHdIdJdKdLdMdNdOdPdQdRdSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c` { | xbybqc,c3c]crcEeFeGeHeIeJe} UfVfWfe sctcucvc9bwc2 !bKeXfYfLeZf0fMe1fNe2f3fOe4f~ abbbcbdbw k @dVdWdXdYdZd0d1d2d3d4d5d6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6cebfbgbzbAbBc/c7c^cCcPeQeReSeTeUehb5f6f7ff DcEcFcGc'bHc7 (bVe8f9fWe!f#fXe$fYe%f'fZe(fibjbkblbmbx l [d9d!d#d$d%d'd(d)d*d+d,d-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!cnbobpbBbCbMc=c#c_cNc0e1e2e3e4e5eqb)f*f+f
97 except (RuntimeError, PydanticSchemaGenerationError): 2OcSbPcTbQcRcScXbTcYbUcVcWc2bXc3bYcZc0c7b1c8b2c3c4c$b5c%b6c7c8c*b9c+b!c#c
98 raise fastapi.exceptions.FastAPIError( 2OcSbPcTbQcRcScXbTcYbUcVcWc2bXc3bYcZc0c7b1c8b2c3c4c$b5c%b6c7c8c*b9c+b!c#c
99 "Invalid args for response field! Hint: "
100 f"check that {type_} is a valid Pydantic field type. "
101 "If you are using a return type annotation that is not a valid Pydantic "
102 "field (e.g. Union[Response, dict, None]) you can disable generating the "
103 "response model from the type annotation with the path operation decorator "
104 "parameter response_model=None. Read more: "
105 "https://fastapi.tiangolo.com/tutorial/response-model/"
106 ) from None
109def create_cloned_field( 1abcdef
110 field: ModelField,
111 *,
112 cloned_types: Optional[MutableMapping[Type[BaseModel], Type[BaseModel]]] = None,
113) -> ModelField:
114 if PYDANTIC_V2: 2a Pby Qbz A B C D m g o E F DbEbG RbH $ % ' rbsbb UbI VbJ K L M N n h p O P FbGbQ WbR ( ) * tbubc ZbS 0b+ , - . / u i q T U HbIbV 1bW : ; = vbwb? d 4bX 5b@ [ ] ^ _ v j r Y Z JbKb0 6b1 ` { | xbyb} e 9b2 !b~ abbbcbdbw k s 3 4 LbMb5 #b6 ebfbgbzbAbhbf 'b7 (bibjbkblbmbx l t 8 9 NbOb! )b# nbobpbBbCbqb
115 return field 2a PbQbz A B C D m g o E F DbEbG Rb$ % ' rbsbb UbVbJ K L M N n h p O P FbGbQ Wb( ) * tbubc Zb0b+ , - . / u i q T U HbIbV 1b: ; = vbwb? d 4b5b@ [ ] ^ _ v j r Y Z JbKb0 6b` { | xbyb} e 9b!b~ abbbcbdbw k s 3 4 LbMb5 #bebfbgbzbAbhbf 'b(bibjbkblbmbx l t 8 9 NbOb! )bnbobpbBbCbqb
116 # cloned_types caches already cloned types to support recursive models and improve
117 # performance by avoiding unnecessary cloning
118 if cloned_types is None: 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
119 cloned_types = _CLONED_TYPES_CACHE 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
121 original_type = field.type_ 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
122 if is_dataclass(original_type) and hasattr(original_type, "__pydantic_model__"): 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
123 original_type = original_type.__pydantic_model__ 1abcdef
124 use_type = original_type 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
125 if lenient_issubclass(original_type, BaseModel): 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
126 original_type = cast(Type[BaseModel], original_type) 2a y z A B C D m g o E F G H b I J K L M N n h p O P Q R c S + , - . / u i q T U V W d X @ [ ] ^ _ v j r Y Z 0 1 e 2 ~ abbbcbdbw k s 3 4 5 6 f 7 ibjbkblbmbx l t 8 9 ! #
127 use_type = cloned_types.get(original_type) 2a y z A B C D m g o E F G H b I J K L M N n h p O P Q R c S + , - . / u i q T U V W d X @ [ ] ^ _ v j r Y Z 0 1 e 2 ~ abbbcbdbw k s 3 4 5 6 f 7 ibjbkblbmbx l t 8 9 ! #
128 if use_type is None: 2a y z A B C D m g o E F G H b I J K L M N n h p O P Q R c S + , - . / u i q T U V W d X @ [ ] ^ _ v j r Y Z 0 1 e 2 ~ abbbcbdbw k s 3 4 5 6 f 7 ibjbkblbmbx l t 8 9 ! #
129 use_type = create_model(original_type.__name__, __base__=original_type) 1aygoHbIhpRcSiqWdXjr1e2ks6f7lt#
130 cloned_types[original_type] = use_type 1aygoHbIhpRcSiqWdXjr1e2ks6f7lt#
131 for f in original_type.__fields__.values(): 1aygoHbIhpRcSiqWdXjr1e2ks6f7lt#
132 use_type.__fields__[f.name] = create_cloned_field( 1aygoHbIhpRcSiqWdXjr1e2ks6f7lt#
133 f, cloned_types=cloned_types
134 )
135 new_field = create_model_field(name=field.name, type_=use_type) 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
136 new_field.has_alias = field.has_alias # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
137 new_field.alias = field.alias # type: ignore[misc] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
138 new_field.class_validators = field.class_validators # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
139 new_field.default = field.default # type: ignore[misc] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
140 new_field.default_factory = field.default_factory # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
141 new_field.required = field.required # type: ignore[misc] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
142 new_field.model_config = field.model_config # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
143 new_field.field_info = field.field_info 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
144 new_field.allow_none = field.allow_none # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
145 new_field.validate_always = field.validate_always # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
146 if field.sub_fields: # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
147 new_field.sub_fields = [ # type: ignore[attr-defined] 2a z A B C D m g o E F G $ % ' b J K L M N n h p O P Q ( ) * c + , - . / u i q T U V : ; = ? d @ [ ] ^ _ v j r Y Z 0 ` { | } e ~ abbbcbdbw k s 3 4 5 ebfbgbhbf ibjbkblbmbx l t 8 9 ! nbobpbqb
148 create_cloned_field(sub_field, cloned_types=cloned_types)
149 for sub_field in field.sub_fields # type: ignore[attr-defined]
150 ]
151 if field.key_field: # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
152 new_field.key_field = create_cloned_field( # type: ignore[attr-defined] 2a $ % ' b ( ) * c : ; = ? d ` { | } e ebfbgbhbf nbobpbqb
153 field.key_field, # type: ignore[attr-defined]
154 cloned_types=cloned_types,
155 )
156 new_field.validators = field.validators # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
157 new_field.pre_validators = field.pre_validators # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
158 new_field.post_validators = field.post_validators # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
159 new_field.parse_json = field.parse_json # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
160 new_field.shape = field.shape # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
161 new_field.populate_validators() # type: ignore[attr-defined] 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
162 return new_field 2a y z A B C D m g o E F G H $ % ' rbsbb I J K L M N n h p O P Q R ( ) * tbubc S + , - . / u i q T U V W : ; = vbwb? d X @ [ ] ^ _ v j r Y Z 0 1 ` { | xbyb} e 2 ~ abbbcbdbw k s 3 4 5 6 ebfbgbzbAbhbf 7 ibjbkblbmbx l t 8 9 ! # nbobpbBbCbqb
165def generate_operation_id_for_path( 1abcdef
166 *, name: str, path: str, method: str 1abcdef
167) -> str: # pragma: nocover 1abcdef
168 warnings.warn(
169 "fastapi.utils.generate_operation_id_for_path() was deprecated, "
170 "it is not used internally, and will be removed soon",
171 DeprecationWarning,
172 stacklevel=2,
173 )
174 operation_id = f"{name}{path}"
175 operation_id = re.sub(r"\W", "_", operation_id)
176 operation_id = f"{operation_id}_{method.lower()}"
177 return operation_id
180def generate_unique_id(route: "APIRoute") -> str: 1abcdef
181 operation_id = f"{route.name}{route.path_format}" 2a ,b,f-b.b/bPb:by Qbm g 6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH OcSbPcTbQc8e$ % ' rbsb;b$c~e9e!eRc^f?c=bb ?b_f@b[b]bUb^bI Vbn h #e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR ScXbTcYbUc%e( ) * tbub_b%caf'e(eVcfg@c`bc {bgg|b}b~bZbacS 0bu i )e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc+e: ; = vbwbfc)cbf,e-eZcrg[cgc? d hcsgicjckc4blcX 5bv j .e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c:e` { | xbybqc,ccf;e=e3cDg]crc} e scEgtcucvc9bwc2 !bw k ?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6c[eebfbgbzbAbBc/cdf]e^e7cPg^cCchbf DcQgEcFcGc'bHc7 (bx l _e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!c{enbobpbBbCbMc=cef|e}e#c1g_cNcqb
182 operation_id = re.sub(r"\W", "_", operation_id) 2a ,b,f-b.b/bPb:by Qbm g 6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH OcSbPcTbQc8e$ % ' rbsb;b$c~e9e!eRc^f?c=bb ?b_f@b[b]bUb^bI Vbn h #e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR ScXbTcYbUc%e( ) * tbub_b%caf'e(eVcfg@c`bc {bgg|b}b~bZbacS 0bu i )e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc+e: ; = vbwbfc)cbf,e-eZcrg[cgc? d hcsgicjckc4blcX 5bv j .e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c:e` { | xbybqc,ccf;e=e3cDg]crc} e scEgtcucvc9bwc2 !bw k ?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6c[eebfbgbzbAbBc/cdf]e^e7cPg^cCchbf DcQgEcFcGc'bHc7 (bx l _e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!c{enbobpbBbCbMc=cef|e}e#c1g_cNcqb
183 assert route.methods 2a ,b,f-b.b/bPb:by Qbm g 6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH OcSbPcTbQc8e$ % ' rbsb;b$c~e9e!eRc^f?c=bb ?b_f@b[b]bUb^bI Vbn h #e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR ScXbTcYbUc%e( ) * tbub_b%caf'e(eVcfg@c`bc {bgg|b}b~bZbacS 0bu i )e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc+e: ; = vbwbfc)cbf,e-eZcrg[cgc? d hcsgicjckc4blcX 5bv j .e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c:e` { | xbybqc,ccf;e=e3cDg]crc} e scEgtcucvc9bwc2 !bw k ?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6c[eebfbgbzbAbBc/cdf]e^e7cPg^cCchbf DcQgEcFcGc'bHc7 (bx l _e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!c{enbobpbBbCbMc=cef|e}e#c1g_cNcqb
184 operation_id = f"{operation_id}_{list(route.methods)[0].lower()}" 2a ,b,f-b.b/bPb:by Qbm g 6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH OcSbPcTbQc8e$ % ' rbsb;b$c~e9e!eRc^f?c=bb ?b_f@b[b]bUb^bI Vbn h #e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR ScXbTcYbUc%e( ) * tbub_b%caf'e(eVcfg@c`bc {bgg|b}b~bZbacS 0bu i )e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc+e: ; = vbwbfc)cbf,e-eZcrg[cgc? d hcsgicjckc4blcX 5bv j .e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c:e` { | xbybqc,ccf;e=e3cDg]crc} e scEgtcucvc9bwc2 !bw k ?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6c[eebfbgbzbAbBc/cdf]e^e7cPg^cCchbf DcQgEcFcGc'bHc7 (bx l _e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!c{enbobpbBbCbMc=cef|e}e#c1g_cNcqb
185 return operation_id 2a ,b,f-b.b/bPb:by Qbm g 6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH OcSbPcTbQc8e$ % ' rbsb;b$c~e9e!eRc^f?c=bb ?b_f@b[b]bUb^bI Vbn h #e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR ScXbTcYbUc%e( ) * tbub_b%caf'e(eVcfg@c`bc {bgg|b}b~bZbacS 0bu i )e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc+e: ; = vbwbfc)cbf,e-eZcrg[cgc? d hcsgicjckc4blcX 5bv j .e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c:e` { | xbybqc,ccf;e=e3cDg]crc} e scEgtcucvc9bwc2 !bw k ?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6c[eebfbgbzbAbBc/cdf]e^e7cPg^cCchbf DcQgEcFcGc'bHc7 (bx l _e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!c{enbobpbBbCbMc=cef|e}e#c1g_cNcqb
188def deep_dict_update(main_dict: Dict[Any, Any], update_dict: Dict[Any, Any]) -> None: 1abcdef
189 for key, value in update_dict.items(): 2)g*g+g,g4gz A B C D m g -g.g/gDbEb:g2g;g=g5g6g7g?g@g[g]g^g_g`g{g|g8gJ K L M N n h }g~gahFbGbbh3gchdh9g!g#gehfhghhhihmwnwowtwsh+ , - . / u i yxQxSxHbIbRy$g}yOAvhwhxh$AbCcCeCiCXDYDZD4DAh@ [ ] ^ _ v j 9E@E]EJbKb[F%gJG=HDhEhFhmIMJNJPJTJ|K}K~KeLIh~ abbbcbdbw k jMBMDMLbMbCN'g-NzPLhMhNhXP:Q;Q?Q^QISJSKSPSQhibjbkblbmbx l UT$T'TNbOb%U(guV!WThUhVh|WxYyYAYEY
190 if ( 2)g*g+g,g4gz A B C D m g -g.g/gDbEb:g2g;g=g5g6g7g?g@g[g]g^g_g`g{g|g8gJ K L M N n h }g~gahFbGbbh3gchdh9g!g#gehfhghhhih
191 key in main_dict
192 and isinstance(main_dict[key], dict)
193 and isinstance(value, dict)
194 ):
195 deep_dict_update(main_dict[key], value) 24g5g6g7g8g9g!g#gshvhwhxhAhDhEhFhIhLhMhNhQhThUhVh
196 elif ( 2)g*g+g,g4gz A B C D m g -g.g/gDbEb:g2g;g=g5g6g7g?g@g[g]g^g_g`g{g|g8gJ K L M N n h }g~gahFbGbbh3gchdh9g!g#gehfhghhhih
197 key in main_dict
198 and isinstance(main_dict[key], list)
199 and isinstance(update_dict[key], list)
200 ):
201 main_dict[key] = main_dict[key] + update_dict[key] 2.g~gQx@EBM$T
202 else:
203 main_dict[key] = value 2)g*g+g,g4gz A B C D m g -g/gDbEb:g2g;g=g5g6g7g?g@g[g]g^g_g`g{g|g8gJ K L M N n h }gahFbGbbh3gchdh9g!g#gehfhghhhihmwnwowtwsh+ , - . / u i yxSxHbIbRy$g}yOAvhwhxh$AbCcCeCiCXDYDZD4DAh@ [ ] ^ _ v j 9E]EJbKb[F%gJG=HDhEhFhmIMJNJPJTJ|K}K~KeLIh~ abbbcbdbw k jMDMLbMbCN'g-NzPLhMhNhXP:Q;Q?Q^QISJSKSPSQhibjbkblbmbx l UT'TNbOb%U(guV!WThUhVh|WxYyYAYEY
206def get_value_or_default( 1abcdef
207 first_item: Union[DefaultPlaceholder, DefaultType],
208 *extra_items: Union[DefaultPlaceholder, DefaultType],
209) -> Union[DefaultPlaceholder, DefaultType]:
210 """
211 Pass items or `DefaultPlaceholder`s by descending priority.
213 The first one to _not_ be a `DefaultPlaceholder` will be returned.
215 Otherwise, the first item (a `DefaultPlaceholder`) will be returned.
216 """
217 items = (first_item,) + extra_items 2a ,b,f-b.b/bPb:by Qbz A B C D m g :d6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH OcSbPcTbQc8e$ % ' rbsb;b$c~e9e!eRc^f?c=bb ?b_f@b[b]bUb^bI VbJ K L M N n h ;d#e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR ScXbTcYbUc%e( ) * tbub_b%caf'e(eVcfg@c`bc {bgg|b}b~bZbacS 0b+ , - . / u i =d)e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc+e: ; = vbwbfc)cbf,e-eZcrg[cgc? d hcsgicjckc4blcX 5b@ [ ] ^ _ v j ?d.e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c:e` { | xbybqc,ccf;e=e3cDg]crc} e scEgtcucvc9bwc2 !b~ abbbcbdbw k @d?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6c[eebfbgbzbAbBc/cdf]e^e7cPg^cCchbf DcQgEcFcGc'bHc7 (bibjbkblbmbx l [d_e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!c{enbobpbBbCbMc=cef|e}e#c1g_cNcqb
218 for item in items: 2a ,b,f-b.b/bPb:by Qbz A B C D m g :d6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH OcSbPcTbQc8e$ % ' rbsb;b$c~e9e!eRc^f?c=bb ?b_f@b[b]bUb^bI VbJ K L M N n h ;d#e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR ScXbTcYbUc%e( ) * tbub_b%caf'e(eVcfg@c`bc {bgg|b}b~bZbacS 0b+ , - . / u i =d)e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc+e: ; = vbwbfc)cbf,e-eZcrg[cgc? d hcsgicjckc4blcX 5b@ [ ] ^ _ v j ?d.e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c:e` { | xbybqc,ccf;e=e3cDg]crc} e scEgtcucvc9bwc2 !b~ abbbcbdbw k @d?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6c[eebfbgbzbAbBc/cdf]e^e7cPg^cCchbf DcQgEcFcGc'bHc7 (bibjbkblbmbx l [d_e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!c{enbobpbBbCbMc=cef|e}e#c1g_cNcqb
219 if not isinstance(item, DefaultPlaceholder): 2a ,b,f-b.b/bPb:by Qbz A B C D m g :d6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH OcSbPcTbQc8e$ % ' rbsb;b$c~e9e!eRc^f?c=bb ?b_f@b[b]bUb^bI VbJ K L M N n h ;d#e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR ScXbTcYbUc%e( ) * tbub_b%caf'e(eVcfg@c`bc {bgg|b}b~bZbacS 0b+ , - . / u i =d)e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc+e: ; = vbwbfc)cbf,e-eZcrg[cgc? d hcsgicjckc4blcX 5b@ [ ] ^ _ v j ?d.e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c:e` { | xbybqc,ccf;e=e3cDg]crc} e scEgtcucvc9bwc2 !b~ abbbcbdbw k @d?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6c[eebfbgbzbAbBc/cdf]e^e7cPg^cCchbf DcQgEcFcGc'bHc7 (bibjbkblbmbx l [d_e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!c{enbobpbBbCbMc=cef|e}e#c1g_cNcqb
220 return item 2a z A B C D m g :d?cb J K L M N n h ;d@cc + , - . / u i =d[cd @ [ ] ^ _ v j ?d]ce ~ abbbcbdbw k @d^cf ibjbkblbmbx l [d_c
221 return first_item 2a ,b,f-b.b/bPb:by Qbz A B C D m g :d6e7e`c{c|c}c~cadbdcdddedfd-f.f/f:f;f=f?f@f[f]fgdo E F DbEbG RbH OcSbPcTbQc8e$ % ' rbsb;b$c~e9e!eRc^f?c=bb ?b_f@b[b]bUb^bI VbJ K L M N n h ;d#e$ehdidjdkdldmdndodpdqdrd`f{f|f}f~fagbgcgdgegsdp O P FbGbQ WbR ScXbTcYbUc%e( ) * tbub_b%caf'e(eVcfg@c`bc {bgg|b}b~bZbacS 0b+ , - . / u i =d)e*etdudvdwdxdydzdAdBdCdDdhgigjgkglgmgngogpgqgEdq T U HbIbV 1bW bc'cccFd(cGddcecWc2bXc3bYc+e: ; = vbwbfc)cbf,e-eZcrg[cgc? d hcsgicjckc4blcX 5b@ [ ] ^ _ v j ?d.e/eHdIdJdKdLdMdNdOdPdQdRdtgugvgwgxgygzgAgBgCgSdr Y Z JbKb0 6b1 mc*cncTd+cUdocpc0c7b1c8b2c:e` { | xbybqc,ccf;e=e3cDg]crc} e scEgtcucvc9bwc2 !b~ abbbcbdbw k @d?e@eVdWdXdYdZd0d1d2d3d4d5dFgGgHgIgJgKgLgMgNgOg6ds 3 4 LbMb5 #b6 xc-cyc7d.c8dzcAc4c$b5c%b6c[eebfbgbzbAbBc/cdf]e^e7cPg^cCchbf DcQgEcFcGc'bHc7 (bibjbkblbmbx l [d_e`e9d!d#d$d%d'd(d)d*d+d,dRgSgTgUgVgWgXgYgZg0g-dt 8 9 NbOb! )b# Ic:cJc.d;c/dKcLc8c*b9c+b!c{enbobpbBbCbMc=cef|e}e#c1g_cNcqb