Coverage for fastapi/utils.py: 100%
91 statements
« prev ^ index » next coverage.py v7.6.1, created at 2025-03-10 12:31 +0000
« prev ^ index » next coverage.py v7.6.1, created at 2025-03-10 12:31 +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 %h'h(h)h*h~Y+haZbZ,hcZ`g{gdZ|g-h.h/h:h}g;h=h?h@h=b[h?b@beZ]h^hzh_h[b`h-g{h|h}hfZgZ~hai]bE VbbicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSihZTiUiViWiXiYiZicedeeefege0i1i2i3i4iAhBh5iiZ6ijZ7i8ikZ9i!i#ilZ$i%imZ'inZ(i)i*i+i,ioZ-iF G H I J m g {d.ipZ/iqZ:i;i=i~g?i@i[i]i^i_i`i{i|i}irZ)e*esZ~itZajbjuZcjdjejvZfjahgjbho K L JbKbM hjwZijjjkjxZljmjnjojpjyZqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4jzZ5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:jWbN ;j=jAZ?jBZ@j[jCZ]j^j_jDZ`j{j|j}j~jakbkckdkekchfk+gUcgkhkikjkkklkmknkokpkEZqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkXbVcYbWcdhUkVkWkXk+ , - Ykxbyb^b/cFZZk0kGZ1k2kHZ3k4kIZ5k6kJZ7k8kKZ9k!kLZ#k$kMZ%k'kNZ(k)kOZ*k+kPZ,k-kQZ.k/kRZ:k;k=k?kSZ@k[k]k^kTZ_k`k{k|kUZ}k~kalVZblcldlWZelflglXZhliljlYZklllmlZZnlolpl0Zqlrlsltlulvl1Zwlxlyl2Zzl3ZAlBlClDl4ZElFlGlHlIlJl5ZKlLlMl6ZNl7ZOlPlQl8ZRlSlTl9ZUlVlWlXlYlZl0l1l2l3l4l5l6l7l8l9l!l#l$l%l'l(l)l*l+l,l-l.l/l:l;l=l!Z?l@l[l]l^l#Z_l`l$Z{l|leh}l.g~l/gam:gbmcmdmemfmgmhmimjm%Zkm'Zlm(Zmm)ZnmompmqmrmsmtmfhumvmwmxmymzmAmBmCmDmEmFm*ZGmHmImJmKmLm+Z,ZMmNmOm-ZPm.ZQmRm/Z:ZSmpf+e,eTmUmVmWmXmYm;ZZm0m=Z1m?Z2m3m4m5m6m7m8m9m!m#m@Z[Z]Z$m^Z_Z%m'm(m)m`Z*m+m{Z,m|Z}Z-m.m~Z/ma0:m;m=mb0?m@m[m]m^m_m`m{m|m}m~manbnc0cnd0dne0enf0fng0gnh0hnini0jnj0knk0lnl0mnm0nnonpnqnn0rnsno0tnp0unq0r0vnwnxns0ynznAnt0BnCnu0Dnv0Enw0Fnx0Gny0Hnz0A0InJnB0KnC0LnD0MnE0NnF0G0OnPnghhhQnihRnSnTnjhUnVnWnXnYnH0I0J0ZnK00n1nL02n3n4n5nM0N06n7n8nO09n!n#nP0$nQ0R0%n'n(n)nS0*n+n,nT0-nU0.n/n:nV0;n=n?nW0X0@n[n]nY0^n_n`n{nZ0|n}n00~nao10boco20do30eo40fo50go60hoiojoko70lo80mo90!0Xcno#0oo$0%0poqo'0roso(0to)0uo*0vo+0woxoyo,0zoAoBoCoDoEoFoGo-0HoIoJoKoLoMoNo.0OoPoQoRoSoToUoVoWo/0XoYoZo0o1o:02o3o;04oCh-e.e5o=06o?07o@0[08o9o]0!o#o^0$o_b%oheiejekeleme'o_0(o)o`0*o+o,o-oy Zb{0b .o/o:o;o=o|0?o}0~0@oa1khlhb1mh[o]o^o_onh`o{o|o}o`b~o{b|bc1apbpDhcp}bdp;gepfpgpd1e1hpip~bO 0bjpkplpmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp0pf11p2p3p4p5p6p7pneoepeqere8p9p!p#p$pEhFh%pg1'ph1(p)pi1*p+p,pj1-p.pk1/pl1:p;p=p?p@pm1[pP Q R S T n h |d]pn1^po1_p`p{poh|p}p~paqbqcqdqeqfqgqp1/e:eq1hqr1iqjqs1kqlqmqt1nqphoqqhp U V LbMbW pqu1qqrqsqv1tquqvqwqxqw1yqzqAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$qx1%q'q(q)q*q+q,q-q.q/q:q;q=q?q@q[q]q^q_q1bX `q{qy1|qz1}q~qA1arbrcrB1drerfrgrhrirjrkrlrmrrhnr,gYcorprqrrrsrtrurvrwrxrC1yrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2bZc3b0csh2r3r4r5r. / : 6rzbAbac:cD17r8rE19r!rF1#r$rG1%r'rH1(r)rI1*r+rJ1,r-rK1.r/rL1:r;rM1=r?rN1@r[rO1]r^rP1_r`r{r|rQ1}r~rasbsR1csdsesfsS1gshsisT1jskslsU1msnsosV1psqsrsW1sstsusX1vswsxsY1yszsAsBsCsDsZ1EsFsGs01Hs11IsJsKsLs21MsNsOsPsQsRs31SsTsUs41Vs51WsXsYs61Zs0s1s712s3s4s5s6s7s8s9s!s#s$s%s's(s)s*s+s,s-s.s/s:s;s=s?s@s[s]s^s_s`s{s81|s}s~satbt91ctdt!1etftthgt=ght?git@gjtktltmtntotptqtrt#1st$1tt%1ut'1vtwtxtytztAtBtuhCtDtEtFtGtHtItJtKtLtMtNt(1OtPtQtRtStTt)1*1UtVtWt+1Xt,1YtZt-1.10tqf;e=e1t2t3t4t5t6t/17t8t:19t;1!t#t$t%t't(t)t*t+t,t=1?1@1-t[1]1.t/t:t;t^1=t?t_1@t`1{1[t]t|1^t}1_t`t{t~1|t}t~taubucudueufuguhuiujua2kub2luc2mud2nue2ouf2puqug2ruh2sui2tuj2uuk2vuwuxuyul2zuAum2Bun2Cuo2p2DuEuFuq2GuHuIur2JuKus2Lut2Muu2Nuv2Ouw2Pux2y2QuRuz2SuA2TuB2UuC2VuD2E2WuXuvhwhYuxhZu0u1uyh2u3u4u5u6uF2G2H27uI28u9uJ2!u#u$u%uK2L2'u(u)uM2*u+u,uN2-uO2P2.u/u:u;uQ2=u?u@uR2[uS2]u^u_uT2`u{u|uU2V2}u~uavW2bvcvdvevX2fvgvY2hvivZ2jvkv02lv12mv22nv32ov42pvqvrvsv52tv62uv72821cvv92wv!2#2xvyv$2zvAv%2Bv'2Cv(2Dv)2EvFvGv*2HvIvJvKvLvMvNvOv+2PvQvRvSvTvUvVv,2WvXvYvZv0v1v2v3v4v-25v6v7v8v9v.2!v#v/2$vGh?e@e%v:2'v;2(v=2?2)v*v@2+v,v[2-vbc.vseteuevewexe/v]2:v;v^2=v?v@v[vz 4b_2c ]v^v_v`v{v`2|v{2|2}v}2~vaw~2bwcwdwewfwgwhwiwjwkwcclwdceca3mwnwHhowfcpwIhqwrwswb3c3twuwgcY 5bvwwwxwywzwAwBwCwDwEwFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$wd3%w'w(w)w*w+w,wyezeAeBeCe-w.w/w:w;wJhKh=we3?wf3@w[wg3]w^w_wh3`w{wi3|wj3}w~waxbxcxk3dx; = ? @ [ u i }dexl3fxm3gxhxixjxkxlxmxnxoxpxqxrxsxtxn3[e]eo3uxp3vxwxq3xxyxzxr3AxBxCxDxq Z 0 NbOb1 Exs3FxGxHxt3IxJxKxLxMxu3NxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!x#x$x%x'x(x)x*x+x,x-x.x/x:x;x=x?x@xv3[x]x^x_x`x{x|x}x~xaybycydyeyfygyhyiyjy6b2 hc;cic=cjckckylyw3myx3nyoyy3pyqyryz3sytyuyvywyxyyyzyAyByCyDy[g2cEyFyGyHyIyJyKyLyMyNyA3OyPyQyRySyTyUyVyWyXyYyZy0y1y2y3y4y5y6y7y8y9y!y#y$y%y'y(y)y*y7b3c8b4c+y,y-y.y/y] ^ _ :yBbCblc?cB3;y=yC3?y@yD3[y]yE3^y_yF3`y{yG3|y}yH3~yazI3bzczJ3dzezK3fzgzL3hzizM3jzkzN3lzmznzozO3pzqzrzszP3tzuzvzwzQ3xzyzzzR3AzBzCzS3DzEzFzT3GzHzIzU3JzKzLzV3MzNzOzW3PzQzRzSzTzUzX3VzWzXzY3YzZ3Zz0z1z2z033z4z5z6z7z8z139z!z#z23$z33%z'z(z43)z*z+z53,z-z.z/z:z;z=z?z@z[z]z^z_z`z{z|z}z~zaAbAcAdAeAfAgAhAiAjAkAlAmAnA63oApAqArAsA73tAuA83vAwAxAyALhzAMhAANhBACADAEAFAGAHAIAJA93KA!3LA#3MA$3NAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A%37A8A9A!A#A$A'3(3%A'A(A)3)A*3*A+A+3,3,Arf^e_e-A.A/A:A;A=A-3?A@A.3[A/3]A^A_A`A{A|A}A~AaBbB:3;3=3cB?3@3dBeBfBgB[3hBiB]3jB^3_3kBlB`3mB{3nBoBpB|3qBrBsBtBuBvBwBxByBzBABBBCB}3DB~3EBa4FBb4GBc4HBd4IBJBe4KBf4LBg4MBh4NBi4OBPBQBRBj4SBTBk4UBl4VBm4n4WBXBYBo4ZB0B1Bp42B3Bq44Br45Bs46Bt47Bu48Bv4w49B!Bx4#By4$Bz4%BA4'BB4C4(B)B*B+B,B-B.B/B:B;B=B?B@B[B]BD4E4F4^BG4_B`BH4{B|B}B~BI4J4aCbCcCK4dCeCfCL4gCM4N4hCiCjCkCO4lCmCnCP4oCQ4pCqCrCR4sCtCuCS4T4vCwCxCU4yCzCACBCV4CCDCW4ECFCX4GCHCY4ICZ4JC04KC14LC24MCNCOCPC34QC44RC54645c6cSC7484TCUC94!4VCWC#4XCYC$4ZC%40C'41C(42C3C4C)45C6C7C8C9C!C#C$C*4%C'C(C)C*C+C,C+4-C.C/C:C;C=C?C@C[C,4]C^C_C`C{C-4|C}C.4~COh`e{eaD/4bD:4cD;4=4dDeD?4fDgD@4hDmciDDeEeFeGeHeIejD` [4kDlD]4mDnDoDpDA 9b^4d qDrDsDtDuD_4vD`4{4wD|4xDyD}4zDADBDCDDDEDFDGDHDIDncJDocpc~4KDLDPhMDqcNDQhODPDQDa5b5RDSDrc3 !bTDUDVDWDXDYDZD0D1D2D3D4D5D6D7D8D9D!D#D$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~Dc5aEbEcEdEeEfEgEJeKeLeMeNehEiEjEkElERhShmEd5nEe5oEpEf5qErEsEg5tEuEh5vEi5wExEyEzEAEj5BE{ | } ~ abv j ~dCEk5DEl5EEFEGEHEIEJEKELEMENEOEPEQEREm5|e}en5SEo5TEUEp5VEWEXEq5YEZE0E1Er 4 5 PbQb6 2Er53E4E5Es56E7E8E9E!Et5#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~EaFbFcFdFeFfFgFhFiFjFkFlFmFnFoFu5pFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHF#b7 sc@ctc[cucvcIFJFv5KFw5LFMFx5NFOFPFy5QFRFSFTFUFVFWFXFYFZF0F1F]g7c2F3F4F5F6F7F8F9F!F#Fz5$F%F'F(F)F*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F{F|F}F~FaGbGcGdGeG$b8c%b9cfGgGhGiGjGbbcbdbkGDbEbwc]cA5lGmGB5nGoGC5pGqGD5rGsGE5tGuGF5vGwGG5xGyGH5zGAGI5BGCGJ5DGEGK5FGGGL5HGIGM5JGKGLGMGN5NGOGPGQGO5RGSGTGUGP5VGWGXGQ5YGZG0GR51G2G3GS54G5G6GT57G8G9GU5!G#G$GV5%G'G(G)G*G+GW5,G-G.GX5/GY5:G;G=G?GZ5@G[G]G^G_G`G05{G|G}G15~G25aHbHcH35dHeHfH45gHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHyHzHAHBHCHDHEHFHGHHHIHJHKHLH55MHNHOHPHQH65RHSH75THUHVHWHThXHUhYHVhZH0H1H2H3H4H5H6H7H858H959H!5!H#5#H$H%H'H(H)H*H+H,H-H.H/H:H;H=H?H@H[H]H^H$5_H`H{H|H}H~H%5'5aIbIcI(5dI)5eIfI*5+5gIsf~eafhIiIjIkIlImI,5nIoI-5pI.5qIrIsItIuIvIwIxIyIzI/5:5;5AI=5?5BICIDIEI@5FIGI[5HI]5^5IIJI_5KI`5LIMINI{5OIPIQIRISITIUIVIWIXIYIZI0I|51I}52I~53Ia64Ib65Ic66I7Id68Ie69If6!Ig6#Ih6$I%I'I(Ii6)I*Ij6+Ik6,Il6m6-I.I/In6:I;I=Io6?I@Ip6[Iq6]Ir6^Is6_It6`Iu6v6{I|Iw6}Ix6~Iy6aJz6bJA6B6cJdJeJfJgJhJiJjJkJlJmJnJoJpJqJC6D6E6rJF6sJtJG6uJvJwJxJH6I6yJzJAJJ6BJCJDJK6EJL6M6FJGJHJIJN6JJKJLJO6MJP6NJOJPJQ6QJRJSJR6S6TJUJVJT6WJXJYJZJU60J1JV62J3JW64J5JX66JY67JZ68J069J16!J#J$J%J26'J36(J4656!c#c)J6676*J+J8696,J-J!6.J/J#6:J$6;J%6=J'6?J@J[J(6]J^J_J`J{J|J}J~J)6aKbKcKdKeKfKgK*6hKiKjKkKlKmKnKoKpK+6qKrKsKtKuK,6vKwK-6xKWhbfcfyK.6zK/6AK:6;6BKCK=6DKEK?6FKxcGKOePeQeReSeTeHKeb@6IKJK[6KKLKMKNKB 'b]6e OKPKQKRKSK^6TK_6`6UK{6VKWK|6XKYKZK0K1K2K3K4K5K6Kyc7KzcAc}68K9KXh!KBc#KYh$K%K'K~6a7(K)KCc8 (b*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLb7yLzLALBLCLDLELUeVeWeXeYeFLGLHLILJLZh0hKLc7LLd7MLNLe7OLPLQLf7RLSLg7TLh7ULVLWLXLYLi7ZLfbgbhbibjbw k ae0Lj71Lk72L3L4L5L6L7L8L9L!L#L$L%L'L(Ll7dfefm7)Ln7*L+Lo7,L-L.Lp7/L:L;L=Ls 9 ! RbSb# ?Lq7@L[L]Lr7^L_L`L{L|Ls7}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMt7NMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M)b$ Dc^cEc_cFcGc6M7Mu78Mv79M!Mw7#M$M%Mx7'M(M)M*M+M,M-M.M/M:M;M=M^g$c?M@M[M]M^M_M`M{M|M}My7~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN*b%c+b'cDNENFNGNHNkblbmbINFbGbHc`cz7JNKNA7LNMNB7NNONC7PNQND7RNSNE7TNUNF7VNWNG7XNYNH7ZN0NI71N2NJ73N4NK75N6NL77N8N9N!NM7#N$N%N'NN7(N)N*N+NO7,N-N.NP7/N:N;NQ7=N?N@NR7[N]N^NS7_N`N{NT7|N}N~NU7aObOcOdOeOfOV7gOhOiOW7jOX7kOlOmOnOY7oOpOqOrOsOtOZ7uOvOwO07xO17yOzOAO27BOCODO37EOFOGOHOIOJOKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO0O1O2O3O4O5O6O7O8O9O47!O#O$O%O'O57(O)O67*O+O,O-O1h.O2h/O3h:O;O=O?O@O[O]O^O_O77`O87{O97|O!7}O~OaPbPcPdPePfPgPhPiPjPkPlPmPnPoPpPqPrP#7sPtPuPvPwPxP$7%7yPzPAP'7BP(7CPDP)7*7EPtfffgfFPGPHPIPJPKP+7LPMP,7NP-7OPPPQPRPSPTPUPVPWPXP.7/7:7YP;7=7ZP0P1P2P?73P4P@75P[7]76P7P^78P_79P!P#P`7$P%P'P(P)P*P+P,P-P.P/P:P;P{7=P|7?P}7@P~7[Pa8]Pb8^P_Pc8`Pd8{Pe8|Pf8}Pg8~PaQbQcQh8dQeQi8fQj8gQk8l8hQiQjQm8kQlQmQn8nQoQo8pQp8qQq8rQr8sQs8tQt8u8uQvQv8wQw8xQx8yQy8zQz8A8AQBQCQDQEQFQGQHQIQJQKQLQMQNQOQB8C8D8PQE8QQRQF8SQTQUQVQG8H8WQXQYQI8ZQ0Q1QJ82QK8L83Q4Q5Q6QM87Q8Q9QN8!QO8#Q$Q%QP8'Q(Q)QQ8R8*Q+Q,QS8-Q.Q/Q:QT8;Q=QU8?Q@QV8[Q]QW8^QX8_QY8`QZ8{Q08|Q}Q~QaR18bR28cR3848(c)cdR5868eRfR7888gRhR98iRjR!8kR#8lR$8mR%8nRoRpR'8qRrRsRtRuRvRwRxR(8yRzRARBRCRDRER)8FRGRHRIRJRKRLRMRNR*8ORPRQRRRSR+8TRUR,8VR4hhfifWR-8XR.8YR/8:8ZR0R;81R2R=83RIc4RZe0e1e2e3e4e5Rnb?86R7R@88R9R!R#RC ,b[8f $R%R'R(R)R]8*R^8_8+R`8,R-R{8.R/R:R;R=R?R@R[R]R^RJc_RKcLc|8`R{R5h|RMc}R6h~RaSbS}8~8cSdSNc% -beSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESFSGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSa9WSXSYSZS0S1S2S5e6e7e8e9e3S4S5S6S7S7h8h8Sb99Sc9!S#Sd9$S%S'Se9(S)Sf9*Sg9+S,S-S.S/Sh9:Sobpbqbrbsbx l be;Si9=Sj9?S@S[S]S^S_S`S{S|S}S~SaTbTcTk9jfkfl9dTm9eTfTn9gThTiTo9jTkTlTmTt ' ( TbUb) nTp9oTpTqTq9rTsTtTuTvTr9wTxTyTzTATBTCTDTETFTGTHTITJTKTLTMTNTOTPTQTRTSTTTUTVTWTXTYTZT0T1T2T3T4T5T6T7T8T9T!Ts9#T$T%T'T(T)T*T+T,T-T.T/T:T;T=T?T@T[T]T.b* Oc{cPc|cQcRc^T_Tt9`Tu9{T|Tv9}T~TaUw9bUcUdUeUfUgUhUiUjUkUlUmU_g*cnUoUpUqUrUsUtUuUvUwUx9xUyUzUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUUVUWUXUYUZU0U/b+c:b,c1U2U3U4U5Utbubvb6UHbIbSc}cy97U8Uz99U!UA9#U$UB9%U'UC9(U)UD9*U+UE9,U-UF9.U/UG9:U;UH9=U?UI9@U[UJ9]U^UK9_U`U{U|UL9}U~UaVbVM9cVdVeVfVN9gVhViVO9jVkVlVP9mVnVoVQ9pVqVrVR9sVtVuVS9vVwVxVT9yVzVAVBVCVDVU9EVFVGVV9HVW9IVJVKVLVX9MVNVOVPVQVRVY9SVTVUVZ9VV09WVXVYV19ZV0V1V292V3V4V5V6V7V8V9V!V#V$V%V'V(V)V*V+V,V-V.V/V:V;V=V?V@V[V]V^V_V`V{V39|V}V~VaWbW49cWdW59eWfWgWhW9hiW!hjW#hkWlWmWnWoWpWqWrWsW69tW79uW89vW99wWxWyWzWAWBWCWDWEWFWGWHWIWJWKWLWMWNWOWPW!9QWRWSWTWUWVW#9$9WWXWYW%9ZW'90W1W(9)92Wuflfmf3W4W5W6W7W8W*99W!W+9#W,9$W%W'W(W)W*W+W,W-W.W-9.9/9/W:9;9:W;W=W?W=9@W[W?9]W@9[9^W_W]9`W^9{W|W}W_9~WaXbXcXdXeXfXgXhXiXjXkXlX`9mX{9nX|9oX}9pX~9qXa!rXsXb!tXc!uXd!vXe!wXf!xXyXzXAXg!BXCXh!DXi!EXj!k!FXGXHXl!IXJXKXm!LXMXn!NXo!OXp!PXq!QXr!RXs!t!SXTXu!UXv!VXw!WXx!XXy!z!YXZX0X1X2X3X4X5X6X7X8X9X!X#X$XA!B!C!%XD!'X(XE!)X*X+X,XF!G!-X.X/XH!:X;X=XI!?XJ!K!@X[X]X^XL!_X`X{XM!|XN!}X~XaYO!bYcYdYP!Q!eYfYgYR!hYiYjYkYS!lYmYT!nYoYU!pYqYV!rYW!sYX!tYY!uYZ!vYwYxYyY0!zY1!AY2!3!-c.cBY4!5!CYDY6!7!EYFY8!GYHY9!IY!!JY#!KY$!LYMYNY%!OYPYQYRYSYTYUYVY'!WYXYYYZY0Y1Y2Y(!3Y4Y5Y6Y7Y8Y9Y!Y#Y)!$Y%Y'Y(Y)Y*!*Y+Y+!,Y$hnfof-Y,!.Y-!/Y.!/!:Y;Y:!=Y?Y;!@YTc[Y!e#e$e%e'e(e]Ywb=!^Y_Y?!`Y{Y|Y}YD ;b@!
44 return True 2a ~YaZbZcZ`g{gdZ|g}geZzh-gfZgZE VbhZiZjZkZlZmZnZoZF G H I J m g {dpZqZ~grZsZtZuZvZahbho K L JbKbM wZxZyZzZWbN AZBZCZDZch+gUcEZVcWcdh+ , - xbyb/cFZGZHZIZJZKZLZMZNZOZPZQZRZSZTZUZVZWZXZYZZZ0Z1Z2Z3Z4Z5Z6Z7Z8Z9Z!Z#Z$Zeh.g/g:g%Z'Z(Z)Zfh*Z+Z,Z-Z.Z/Z:Zpf;Z=Z?Z@Z[Z]Z^Z_Z`Z{Z|Z}Z~Za0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0w0x0y0z0A0B0C0D0E0F0G0ghhhihjhH0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z000102030405060708090!0Xc#0$0%0'0(0)0*0+0,0-0.0/0:0;0=0?0@0[0]0^0_0`0y Zb{0b |0}0~0a1khlhb1mhnhc1Dh;gd1e1O 0bf1g1h1i1j1k1l1m1P Q R S T n h |dn1o1ohp1q1r1s1t1phqhp U V LbMbW u1v1w1x11bX y1z1A1B1rh,gYcC1Zc0csh. / : zbAb:cD1E1F1G1H1I1J1K1L1M1N1O1P1Q1R1S1T1U1V1W1X1Y1Z101112131415161718191!1th=g?g@g#1$1%1'1uh(1)1*1+1,1-1.1qf/1:1;1=1?1@1[1]1^1_1`1{1|1}1~1a2b2c2d2e2f2g2h2i2j2k2l2m2n2o2p2q2r2s2t2u2v2w2x2y2z2A2B2C2D2E2vhwhxhyhF2G2H2I2J2K2L2M2N2O2P2Q2R2S2T2U2V2W2X2Y2Z20212223242526272821c92!2#2$2%2'2(2)2*2+2,2-2.2/2:2;2=2?2@2[2]2^2z 4b_2c `2{2|2}2~vaw~2bwgwa3HhIhb3c3Y 5bd3e3f3g3h3i3j3k3; = ? @ [ u i }dl3m3jxn3o3p3q3r3BxDxq Z 0 NbOb1 s3t3u3v36b2 ;c=cw3x3y3z3Cy[g2cA33c4c+y] ^ _ BbCb?cB3C3D3E3F3G3H3I3J3K3L3M3N3O3P3Q3R3S3T3U3V3W3X3Y3Z3031323334353637383xALhMhNh93!3#3$3UA%3'3(3)3*3+3,3rf-3.3/3:3;3=3?3@3[3]3^3_3`3{3|3}3~3a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4A4B4C4*B+B-B;BD4E4F4G4H4I4J4K4L4M4N4O4P4Q4R4S4T4U4V4W4X4Y4Z4041424344454645c6c748494!4#4$4%4'4(4)4*4+4,4-4.4/4:4;4=4?4@4` [4]4A 9b^4d _4`4{4|4xDyD}4zDED~4PhQha5b53 !bc5d5e5f5g5h5i5j5{ | } ~ abv j ~dk5l5HEm5n5o5p5q5ZE1Er 4 5 PbQb6 r5s5t5u5#b7 @c[cv5w5x5y50F]g7cz58c9cfGbbcbdbDbEb]cA5B5C5D5E5F5G5H5I5J5K5L5M5N5O5P5Q5R5S5T5U5V5W5X5Y5Z50515253545556575VHThUhVh8595!5#5+H$5%5'5(5)5*5+5sf,5-5.5/5:5;5=5?5@5[5]5^5_5`5{5|5}5~5a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s6t6u6v6w6x6y6z6A6B6eJfJhJlJC6D6E6F6G6H6I6J6K6L6M6N6O6P6Q6R6S6T6U6V6W6X6Y6Z6061626364656!c#c66768696!6#6$6%6'6(6)6*6+6,6-6.6/6:6;6=6?6eb@6[6B 'b]6e ^6_6`6{6VKWK|6XK2K}6XhYh~6a78 (bb7c7d7e7f7g7h7i7fbgbhbibjbw k aej7k75Ll7m7n7o7p7:L=Ls 9 ! RbSb# q7r7s7t7)b$ ^c_cu7v7w7x7;M^g$cy7%c'cDNkblbmbFbGb`cz7A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7Q7R7S7T7U7V7W7X7Y7Z707172737475767,O1h2h3h778797!7fP#7$7%7'7(7)7*7tf+7,7-7.7/7:7;7=7?7@7[7]7^7_7`7{7|7}7~7a8b8c8d8e8f8g8h8i8j8k8l8m8n8o8p8q8r8s8t8u8v8w8x8y8z8A8CQDQFQJQB8C8D8E8F8G8H8I8J8K8L8M8N8O8P8Q8R8S8T8U8V8W8X8Y8Z80818283848(c)c5868788898!8#8$8%8'8(8)8*8+8,8-8.8/8:8;8=8nb?8@8C ,b[8f ]8^8_8`8,R-R{8.R?R|85h6h}8~8% -ba9b9c9d9e9f9g9h9obpbqbrbsbx l bei9j9]Sk9l9m9n9o9kTmTt ' ( TbUb) p9q9r9s9.b* {c|ct9u9v9w9lU_g*cx9+c,c1UtbubvbHbIb}cy9z9A9B9C9D9E9F9G9H9I9J9K9L9M9N9O9P9Q9R9S9T9U9V9W9X9Y9Z9091929394959gW9h!h#h69798999DW!9#9$9%9'9(9)9uf*9+9,9-9.9/9:9;9=9?9@9[9]9^9_9`9{9|9}9~9a!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!0X1X3X7XA!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!0!1!2!3!-c.c4!5!6!7!8!9!!!#!$!%!'!(!)!*!+!,!-!.!/!:!;!wb=!?!D ;b@!
45 # Ref: https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md#patterned-fields-1
46 if status_code in { 2a %h'h(h)h*h+h,h-h.h/h:h;h=h?h@h=b[h?b@b]h^hzh_h[b`h{h|h}h~hai]bE VbbicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZicedeeefege0i1i2i3i4iAhBh5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-iF G H I J m g .i/i:i;i=i?i@i[i]i^i_i`i{i|i}i)e*e~iajbjcjdjejfjgjo K L JbKbM hjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:jWbN ;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfk+ggkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkXbYbUkVkWkXk+ , - Ykxbyb^bZk0k1k2k3k4k5k6k7k8k9k!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~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSm+e,eTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!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~naobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo0o1o2o3o4oCh-e.e5o6o7o8o9o!o#o$o_b%oheiejekeleme'o(o)o*o+o,o-oy Zbb .o/o:o;o=o?o@o[o]o^o_o`o{o|o}o`b~o{b|bapbpDhcp}bdpepfpgphpip~bO 0bjpkplpmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp0p1p2p3p4p5p6p7pneoepeqere8p9p!p#p$pEhFh%p'p(p)p*p+p,p-p.p/p:p;p=p?p@p[pP Q R S T n h ]p^p_p`p{p|p}p~paqbqcqdqeqfqgq/e:ehqiqjqkqlqmqnqoqp U V LbMbW pqqqrqsqtquqvqwqxqyqzqAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q%q'q(q)q*q+q,q-q.q/q:q;q=q?q@q[q]q^q_q1bX `q{q|q}q~qarbrcrdrerfrgrhrirjrkrlrmrnr,gorprqrrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2b3b2r3r4r5r. / : 6rzbAbac7r8r9r!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~satbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytztAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtUtVtWtXtYtZt0t;e=e1t2t3t4t5t6t7t8t9t!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$vGh?e@e%v'v(v)v*v+v,v-vbc.vseteuevewexe/v:v;v=v?v@v[vz 4bc ]v^v_v`v{v|v}vcwdwewfwhwiwjwkwcclwdcecmwnwHhowfcpwqwrwswtwuwgcY 5bvwwwxwywzwAwBwCwDwEwFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,wyezeAeBeCe-w.w/w:w;wJhKh=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdx; = ? @ [ u i exfxgxhxixkxlxmxnxoxpxqxrxsxtx[e]euxvxwxxxyxzxAxCxq Z 0 NbOb1 ExFxGxHxIxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!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~xaybycydyeyfygyhyiyjy6b2 hcicjckckylymynyoypyqyrysytyuyvywyxyyyzyAyByDy[gEyFyGyHyIyJyKyLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y1y2y3y4y5y6y7y8y9y!y#y$y%y'y(y)y*y7b8b,y-y.y/y] ^ _ :yBbCblc;y=y?y@y[y]y^y_y`y{y|y}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzzzAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0z1z2z3z4z5z6z7z8z9z!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~zaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAyAzAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A^e_e-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B,B.B/B:B=B?B@B[B]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCrCsCtCuCvCwCxCyCzCACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZC0C1C2C3C4C5C6C7C8C9C!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~COh`e{eaDbDcDdDeDfDgDhDmciDDeEeFeGeHeIejD` kDlDmDnDoDpDA 9bd qDrDsDtDuDvDwDADBDCDDDFDGDHDIDncJDocpcKDLDPhMDqcNDODPDQDRDSDrc3 !bTDUDVDWDXDYDZD0D1D2D3D4D5D6D7D8D9D!D#D$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DaEbEcEdEeEfEgEJeKeLeMeNehEiEjEkElERhShmEnEoEpEqErEsEtEuEvEwExEyEzEAEBE{ | } ~ abv j CEDEEEFEGEIEJEKELEMENEOEPEQERE|e}eSETEUEVEWEXEYE0Er 4 5 PbQb6 2E3E4E5E6E7E8E9E!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~EaFbFcFdFeFfFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHF#b7 sctcucvcIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF1F]g2F3F4F5F6F7F8F9F!F#F$F%F'F(F)F*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F{F|F}F~FaGbGcGdGeG$b%bgGhGiGjGbbcbdbkGDbEbwclGmGnGoGpGqGrGsGtGuGvGwGxGyGzGAGBGCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG0G1G2G3G4G5G6G7G8G9G!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~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHyHzHAHBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSHTHUHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!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~HaIbIcIdIeIfIgI~eafhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!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~IaJbJcJdJgJiJjJkJmJnJoJpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ0J1J2J3J4J5J6J7J8J9J!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~JaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKWhbfcfyKzKAKBKCKDKEKFKxcGKOePeQeReSeTeHKebIKJKKKLKMKNKB 'be OKPKQKRKSKTKUKYKZK0K1K3K4K5K6Kyc7KzcAc8K9KXh!KBc#K$K%K'K(K)KCc8 (b*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzLALBLCLDLELUeVeWeXeYeFLGLHLILJLZh0hKLLLMLNLOLPLQLRLSLTLULVLWLXLYLZLfbgbhbibjbw k 0L1L2L3L4L6L7L8L9L!L#L$L%L'L(Ldfef)L*L+L,L-L.L/L;Ls 9 ! RbSb# ?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M)b$ DcEcFcGc6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M=M^g?M@M[M]M^M_M`M{M|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN*b+bENFNGNHNkblbmbINFbGbHcJNKNLNMNNNONPNQNRNSNTNUNVNWNXNYNZN0N1N2N3N4N5N6N7N8N9N!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~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~OaPbPcPdPePgPhPiPjPkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPBPCPDPEPffgfFPGPHPIPJPKPLPMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQEQGQHQIQKQLQMQNQOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRlRmRnRoRpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVR4hhfifWRXRYRZR0R1R2R3RIc4RZe0e1e2e3e4e5Rnb6R7R8R9R!R#RC ,bf $R%R'R(R)R*R+R/R:R;R=R@R[R]R^RJc_RKcLc`R{R5h|RMc}R~RaSbScSdSNc% -beSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESFSGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S5e6e7e8e9e3S4S5S6S7S7h8h8S9S!S#S$S%S'S(S)S*S+S,S-S.S/S:Sobpbqbrbsbx l ;S=S?S@S[S^S_S`S{S|S}S~SaTbTcTjfkfdTeTfTgThTiTjTlTt ' ( TbUb) nToTpTqTrTsTtTuTvTwTxTyTzTATBTCTDTETFTGTHTITJTKTLTMTNTOTPTQTRTSTTTUTVTWTXTYTZT0T1T2T3T4T5T6T7T8T9T!T#T$T%T'T(T)T*T+T,T-T.T/T:T;T=T?T@T[T]T.b* OcPcQcRc^T_T`T{T|T}T~TaUbUcUdUeUfUgUhUiUjUkUmU_gnUoUpUqUrUsUtUuUvUwUxUyUzUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUUVUWUXUYUZU0U/b:b2U3U4U5Utbubvb6UHbIbSc7U8U9U!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,V-V.V/V:V;V=V?V@V[V]V^V_V`V{V|V}V~VaWbWcWdWeWfWhWiWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWEWFWGWHWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW0W1W2Wlfmf3W4W5W6W7W8W9W!W#W$W%W'W(W)W*W+W,W-W.W/W:W;W=W?W@W[W]W^W_W`W{W|W}W~WaXbXcXdXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXtXuXvXwXxXyXzXAXBXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWXXXYXZX2X4X5X6X8X9X!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~XaYbYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYwYxYyYzYAYBYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y!Y#Y$Y%Y'Y(Y)Y*Y+Y,Y$hnfof-Y.Y/Y:Y;Y=Y?Y@YTc[Y!e#e$e%e'e(e]Ywb^Y_Y`Y{Y|Y}YD ;b
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 %h'h(h)h*h+h,h-h.h/h:h;h=h?h@h=b[h?b@b]h^hzh_h[b`h{h|h}h~hai]bE VbbicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZicedeeefege0i1i2i3i4iAhBh5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-iF G H I J m g .i/i:i;i=i?i@i[i]i^i_i`i{i|i}i)e*e~iajbjcjdjejfjgjo K L JbKbM hjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:jWbN ;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfk+ggkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkXbYbUkVkWkXk+ , - Ykxbyb^bZk0k1k2k3k4k5k6k7k8k9k!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~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSm+e,eTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!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~naobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo0o1o2o3o4oCh-e.e5o6o7o8o9o!o#o$o_b%oheiejekeleme'o(o)o*o+o,o-oy Zbb .o/o:o;o=o?o@o[o]o^o_o`o{o|o}o`b~o{b|bapbpDhcp}bdpepfpgphpip~bO 0bjpkplpmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp0p1p2p3p4p5p6p7pneoepeqere8p9p!p#p$pEhFh%p'p(p)p*p+p,p-p.p/p:p;p=p?p@p[pP Q R S T n h ]p^p_p`p{p|p}p~paqbqcqdqeqfqgq/e:ehqiqjqkqlqmqnqoqp U V LbMbW pqqqrqsqtquqvqwqxqyqzqAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q%q'q(q)q*q+q,q-q.q/q:q;q=q?q@q[q]q^q_q1bX `q{q|q}q~qarbrcrdrerfrgrhrirjrkrlrmrnr,gorprqrrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2b3b2r3r4r5r. / : 6rzbAbac7r8r9r!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~satbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytztAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtUtVtWtXtYtZt0t;e=e1t2t3t4t5t6t7t8t9t!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$vGh?e@e%v'v(v)v*v+v,v-vbc.vseteuevewexe/v:v;v=v?v@v[vz 4bc ]v^v_v`v{v|v}vcwdwewfwhwiwjwkwcclwdcecmwnwHhowfcpwqwrwswtwuwgcY 5bvwwwxwywzwAwBwCwDwEwFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,wyezeAeBeCe-w.w/w:w;wJhKh=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdx; = ? @ [ u i exfxgxhxixkxlxmxnxoxpxqxrxsxtx[e]euxvxwxxxyxzxAxCxq Z 0 NbOb1 ExFxGxHxIxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!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~xaybycydyeyfygyhyiyjy6b2 hcicjckckylymynyoypyqyrysytyuyvywyxyyyzyAyByDy[gEyFyGyHyIyJyKyLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y1y2y3y4y5y6y7y8y9y!y#y$y%y'y(y)y*y7b8b,y-y.y/y] ^ _ :yBbCblc;y=y?y@y[y]y^y_y`y{y|y}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzzzAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0z1z2z3z4z5z6z7z8z9z!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~zaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAyAzAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A^e_e-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B,B.B/B:B=B?B@B[B]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCrCsCtCuCvCwCxCyCzCACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZC0C1C2C3C4C5C6C7C8C9C!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~COh`e{eaDbDcDdDeDfDgDhDmciDDeEeFeGeHeIejD` kDlDmDnDoDpDA 9bd qDrDsDtDuDvDwDADBDCDDDFDGDHDIDncJDocpcKDLDPhMDqcNDODPDQDRDSDrc3 !bTDUDVDWDXDYDZD0D1D2D3D4D5D6D7D8D9D!D#D$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DaEbEcEdEeEfEgEJeKeLeMeNehEiEjEkElERhShmEnEoEpEqErEsEtEuEvEwExEyEzEAEBE{ | } ~ abv j CEDEEEFEGEIEJEKELEMENEOEPEQERE|e}eSETEUEVEWEXEYE0Er 4 5 PbQb6 2E3E4E5E6E7E8E9E!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~EaFbFcFdFeFfFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHF#b7 sctcucvcIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF1F]g2F3F4F5F6F7F8F9F!F#F$F%F'F(F)F*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F{F|F}F~FaGbGcGdGeG$b%bgGhGiGjGbbcbdbkGDbEbwclGmGnGoGpGqGrGsGtGuGvGwGxGyGzGAGBGCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG0G1G2G3G4G5G6G7G8G9G!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~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHyHzHAHBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSHTHUHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!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~HaIbIcIdIeIfIgI~eafhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!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~IaJbJcJdJgJiJjJkJmJnJoJpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ0J1J2J3J4J5J6J7J8J9J!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~JaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKWhbfcfyKzKAKBKCKDKEKFKxcGKOePeQeReSeTeHKebIKJKKKLKMKNKB 'be OKPKQKRKSKTKUKYKZK0K1K3K4K5K6Kyc7KzcAc8K9KXh!KBc#K$K%K'K(K)KCc8 (b*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzLALBLCLDLELUeVeWeXeYeFLGLHLILJLZh0hKLLLMLNLOLPLQLRLSLTLULVLWLXLYLZLfbgbhbibjbw k 0L1L2L3L4L6L7L8L9L!L#L$L%L'L(Ldfef)L*L+L,L-L.L/L;Ls 9 ! RbSb# ?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M)b$ DcEcFcGc6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M=M^g?M@M[M]M^M_M`M{M|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN*b+bENFNGNHNkblbmbINFbGbHcJNKNLNMNNNONPNQNRNSNTNUNVNWNXNYNZN0N1N2N3N4N5N6N7N8N9N!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~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~OaPbPcPdPePgPhPiPjPkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPBPCPDPEPffgfFPGPHPIPJPKPLPMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQEQGQHQIQKQLQMQNQOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRlRmRnRoRpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVR4hhfifWRXRYRZR0R1R2R3RIc4RZe0e1e2e3e4e5Rnb6R7R8R9R!R#RC ,bf $R%R'R(R)R*R+R/R:R;R=R@R[R]R^RJc_RKcLc`R{R5h|RMc}R~RaSbScSdSNc% -beSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESFSGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S5e6e7e8e9e3S4S5S6S7S7h8h8S9S!S#S$S%S'S(S)S*S+S,S-S.S/S:Sobpbqbrbsbx l ;S=S?S@S[S^S_S`S{S|S}S~SaTbTcTjfkfdTeTfTgThTiTjTlTt ' ( TbUb) nToTpTqTrTsTtTuTvTwTxTyTzTATBTCTDTETFTGTHTITJTKTLTMTNTOTPTQTRTSTTTUTVTWTXTYTZT0T1T2T3T4T5T6T7T8T9T!T#T$T%T'T(T)T*T+T,T-T.T/T:T;T=T?T@T[T]T.b* OcPcQcRc^T_T`T{T|T}T~TaUbUcUdUeUfUgUhUiUjUkUmU_gnUoUpUqUrUsUtUuUvUwUxUyUzUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUUVUWUXUYUZU0U/b:b2U3U4U5Utbubvb6UHbIbSc7U8U9U!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,V-V.V/V:V;V=V?V@V[V]V^V_V`V{V|V}V~VaWbWcWdWeWfWhWiWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWEWFWGWHWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW0W1W2Wlfmf3W4W5W6W7W8W9W!W#W$W%W'W(W)W*W+W,W-W.W/W:W;W=W?W@W[W]W^W_W`W{W|W}W~WaXbXcXdXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXtXuXvXwXxXyXzXAXBXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWXXXYXZX2X4X5X6X8X9X!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~XaYbYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYwYxYyYzYAYBYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y!Y#Y$Y%Y'Y(Y)Y*Y+Y,Y$hnfof-Y.Y/Y:Y;Y=Y?Y@YTc[Y!e#e$e%e'e(e]Ywb^Y_Y`Y{Y|Y}YD ;b
56 return not (current_status_code < 200 or current_status_code in {204, 205, 304}) 2a %h'h(h)h*h+h,h-h.h/h:h;h=h?h@h=b[h?b@b]h^hzh_h[b`h{h|h}h~hai]bE VbbicidieifigihiiijikiliminioipiqirisitiuiviwixiyiziAiBiCiDiEiFiGiHiIiJiKiLiMiNiOiPiQiRiSiTiUiViWiXiYiZicedeeefege0i1i2i3i4iAhBh5i6i7i8i9i!i#i$i%i'i(i)i*i+i,i-iF G H I J m g .i/i:i;i=i?i@i[i]i^i_i`i{i|i}i)e*e~iajbjcjdjejfjgjo K L JbKbM hjijjjkjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj0j1j2j3j4j5j6j7j8j9j!j#j$j%j'j(j)j*j+j,j-j.j/j:jWbN ;j=j?j@j[j]j^j_j`j{j|j}j~jakbkckdkekfk+ggkhkikjkkklkmknkokpkqkrksktkukvkwkxkykzkAkBkCkDkEkFkGkHkIkJkKkLkMkNkOkPkQkRkSkTkXbYbUkVkWkXk+ , - Ykxbyb^bZk0k1k2k3k4k5k6k7k8k9k!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~lambmcmdmemfmgmhmimjmkmlmmmnmompmqmrmsmtmumvmwmxmymzmAmBmCmDmEmFmGmHmImJmKmLmMmNmOmPmQmRmSm+e,eTmUmVmWmXmYmZm0m1m2m3m4m5m6m7m8m9m!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~naobocodoeofogohoiojokolomonooopoqorosotouovowoxoyozoAoBoCoDoEoFoGoHoIoJoKoLoMoNoOoPoQoRoSoToUoVoWoXoYoZo0o1o2o3o4oCh-e.e5o6o7o8o9o!o#o$o_b%oheiejekeleme'o(o)o*o+o,o-oy Zbb .o/o:o;o=o?o@o[o]o^o_o`o{o|o}o`b~o{b|bapbpDhcp}bdpepfpgphpip~bO 0bjpkplpmpnpopppqprpsptpupvpwpxpypzpApBpCpDpEpFpGpHpIpJpKpLpMpNpOpPpQpRpSpTpUpVpWpXpYpZp0p1p2p3p4p5p6p7pneoepeqere8p9p!p#p$pEhFh%p'p(p)p*p+p,p-p.p/p:p;p=p?p@p[pP Q R S T n h ]p^p_p`p{p|p}p~paqbqcqdqeqfqgq/e:ehqiqjqkqlqmqnqoqp U V LbMbW pqqqrqsqtquqvqwqxqyqzqAqBqCqDqEqFqGqHqIqJqKqLqMqNqOqPqQqRqSqTqUqVqWqXqYqZq0q1q2q3q4q5q6q7q8q9q!q#q$q%q'q(q)q*q+q,q-q.q/q:q;q=q?q@q[q]q^q_q1bX `q{q|q}q~qarbrcrdrerfrgrhrirjrkrlrmrnr,gorprqrrrsrtrurvrwrxryrzrArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr0r1r2b3b2r3r4r5r. / : 6rzbAbac7r8r9r!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~satbtctdtetftgthtitjtktltmtntotptqtrtstttutvtwtxtytztAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtUtVtWtXtYtZt0t;e=e1t2t3t4t5t6t7t8t9t!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$vGh?e@e%v'v(v)v*v+v,v-vbc.vseteuevewexe/v:v;v=v?v@v[vz 4bc ]v^v_v`v{v|v}vcwdwewfwhwiwjwkwcclwdcecmwnwHhowfcpwqwrwswtwuwgcY 5bvwwwxwywzwAwBwCwDwEwFwGwHwIwJwKwLwMwNwOwPwQwRwSwTwUwVwWwXwYwZw0w1w2w3w4w5w6w7w8w9w!w#w$w%w'w(w)w*w+w,wyezeAeBeCe-w.w/w:w;wJhKh=w?w@w[w]w^w_w`w{w|w}w~waxbxcxdx; = ? @ [ u i exfxgxhxixkxlxmxnxoxpxqxrxsxtx[e]euxvxwxxxyxzxAxCxq Z 0 NbOb1 ExFxGxHxIxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx0x1x2x3x4x5x6x7x8x9x!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~xaybycydyeyfygyhyiyjy6b2 hcicjckckylymynyoypyqyrysytyuyvywyxyyyzyAyByDy[gEyFyGyHyIyJyKyLyMyNyOyPyQyRySyTyUyVyWyXyYyZy0y1y2y3y4y5y6y7y8y9y!y#y$y%y'y(y)y*y7b8b,y-y.y/y] ^ _ :yBbCblc;y=y?y@y[y]y^y_y`y{y|y}y~yazbzczdzezfzgzhzizjzkzlzmznzozpzqzrzsztzuzvzwzxzyzzzAzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTzUzVzWzXzYzZz0z1z2z3z4z5z6z7z8z9z!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~zaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAyAzAAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9A!A#A$A%A'A(A)A*A+A,A^e_e-A.A/A:A;A=A?A@A[A]A^A_A`A{A|A}A~AaBbBcBdBeBfBgBhBiBjBkBlBmBnBoBpBqBrBsBtBuBvBwBxByBzBABBBCBDBEBFBGBHBIBJBKBLBMBNBOBPBQBRBSBTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B!B#B$B%B'B(B)B,B.B/B:B=B?B@B[B]B^B_B`B{B|B}B~BaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCrCsCtCuCvCwCxCyCzCACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZC0C1C2C3C4C5C6C7C8C9C!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~COh`e{eaDbDcDdDeDfDgDhDmciDDeEeFeGeHeIejD` kDlDmDnDoDpDA 9bd qDrDsDtDuDvDwDADBDCDDDFDGDHDIDncJDocpcKDLDPhMDqcNDODPDQDRDSDrc3 !bTDUDVDWDXDYDZD0D1D2D3D4D5D6D7D8D9D!D#D$D%D'D(D)D*D+D,D-D.D/D:D;D=D?D@D[D]D^D_D`D{D|D}D~DaEbEcEdEeEfEgEJeKeLeMeNehEiEjEkElERhShmEnEoEpEqErEsEtEuEvEwExEyEzEAEBE{ | } ~ abv j CEDEEEFEGEIEJEKELEMENEOEPEQERE|e}eSETEUEVEWEXEYE0Er 4 5 PbQb6 2E3E4E5E6E7E8E9E!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~EaFbFcFdFeFfFgFhFiFjFkFlFmFnFoFpFqFrFsFtFuFvFwFxFyFzFAFBFCFDFEFFFGFHF#b7 sctcucvcIFJFKFLFMFNFOFPFQFRFSFTFUFVFWFXFYFZF1F]g2F3F4F5F6F7F8F9F!F#F$F%F'F(F)F*F+F,F-F.F/F:F;F=F?F@F[F]F^F_F`F{F|F}F~FaGbGcGdGeG$b%bgGhGiGjGbbcbdbkGDbEbwclGmGnGoGpGqGrGsGtGuGvGwGxGyGzGAGBGCGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG0G1G2G3G4G5G6G7G8G9G!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~GaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHyHzHAHBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSHTHUHWHXHYHZH0H1H2H3H4H5H6H7H8H9H!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~HaIbIcIdIeIfIgI~eafhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzIAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9I!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~IaJbJcJdJgJiJjJkJmJnJoJpJqJrJsJtJuJvJwJxJyJzJAJBJCJDJEJFJGJHJIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ0J1J2J3J4J5J6J7J8J9J!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~JaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKWhbfcfyKzKAKBKCKDKEKFKxcGKOePeQeReSeTeHKebIKJKKKLKMKNKB 'be OKPKQKRKSKTKUKYKZK0K1K3K4K5K6Kyc7KzcAc8K9KXh!KBc#K$K%K'K(K)KCc8 (b*K+K,K-K.K/K:K;K=K?K@K[K]K^K_K`K{K|K}K~KaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzLALBLCLDLELUeVeWeXeYeFLGLHLILJLZh0hKLLLMLNLOLPLQLRLSLTLULVLWLXLYLZLfbgbhbibjbw k 0L1L2L3L4L6L7L8L9L!L#L$L%L'L(Ldfef)L*L+L,L-L.L/L;Ls 9 ! RbSb# ?L@L[L]L^L_L`L{L|L}L~LaMbMcMdMeMfMgMhMiMjMkMlMmMnMoMpMqMrMsMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWMXMYMZM0M1M2M3M4M5M)b$ DcEcFcGc6M7M8M9M!M#M$M%M'M(M)M*M+M,M-M.M/M:M=M^g?M@M[M]M^M_M`M{M|M}M~MaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCN*b+bENFNGNHNkblbmbINFbGbHcJNKNLNMNNNONPNQNRNSNTNUNVNWNXNYNZN0N1N2N3N4N5N6N7N8N9N!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~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~OaPbPcPdPePgPhPiPjPkPlPmPnPoPpPqPrPsPtPuPvPwPxPyPzPAPBPCPDPEPffgfFPGPHPIPJPKPLPMPNPOPPPQPRPSPTPUPVPWPXPYPZP0P1P2P3P4P5P6P7P8P9P!P#P$P%P'P(P)P*P+P,P-P.P/P:P;P=P?P@P[P]P^P_P`P{P|P}P~PaQbQcQdQeQfQgQhQiQjQkQlQmQnQoQpQqQrQsQtQuQvQwQxQyQzQAQBQEQGQHQIQKQLQMQNQOQPQQQRQSQTQUQVQWQXQYQZQ0Q1Q2Q3Q4Q5Q6Q7Q8Q9Q!Q#Q$Q%Q'Q(Q)Q*Q+Q,Q-Q.Q/Q:Q;Q=Q?Q@Q[Q]Q^Q_Q`Q{Q|Q}Q~QaRbRcRdReRfRgRhRiRjRkRlRmRnRoRpRqRrRsRtRuRvRwRxRyRzRARBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVR4hhfifWRXRYRZR0R1R2R3RIc4RZe0e1e2e3e4e5Rnb6R7R8R9R!R#RC ,bf $R%R'R(R)R*R+R/R:R;R=R@R[R]R^RJc_RKcLc`R{R5h|RMc}R~RaSbScSdSNc% -beSfSgShSiSjSkSlSmSnSoSpSqSrSsStSuSvSwSxSySzSASBSCSDSESFSGSHSISJSKSLSMSNSOSPSQSRSSSTSUSVSWSXSYSZS0S1S2S5e6e7e8e9e3S4S5S6S7S7h8h8S9S!S#S$S%S'S(S)S*S+S,S-S.S/S:Sobpbqbrbsbx l ;S=S?S@S[S^S_S`S{S|S}S~SaTbTcTjfkfdTeTfTgThTiTjTlTt ' ( TbUb) nToTpTqTrTsTtTuTvTwTxTyTzTATBTCTDTETFTGTHTITJTKTLTMTNTOTPTQTRTSTTTUTVTWTXTYTZT0T1T2T3T4T5T6T7T8T9T!T#T$T%T'T(T)T*T+T,T-T.T/T:T;T=T?T@T[T]T.b* OcPcQcRc^T_T`T{T|T}T~TaUbUcUdUeUfUgUhUiUjUkUmU_gnUoUpUqUrUsUtUuUvUwUxUyUzUAUBUCUDUEUFUGUHUIUJUKULUMUNUOUPUQURUSUTUUUVUWUXUYUZU0U/b:b2U3U4U5Utbubvb6UHbIbSc7U8U9U!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,V-V.V/V:V;V=V?V@V[V]V^V_V`V{V|V}V~VaWbWcWdWeWfWhWiWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzWAWBWCWEWFWGWHWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW0W1W2Wlfmf3W4W5W6W7W8W9W!W#W$W%W'W(W)W*W+W,W-W.W/W:W;W=W?W@W[W]W^W_W`W{W|W}W~WaXbXcXdXeXfXgXhXiXjXkXlXmXnXoXpXqXrXsXtXuXvXwXxXyXzXAXBXCXDXEXFXGXHXIXJXKXLXMXNXOXPXQXRXSXTXUXVXWXXXYXZX2X4X5X6X8X9X!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~XaYbYcYdYeYfYgYhYiYjYkYlYmYnYoYpYqYrYsYtYuYvYwYxYyYzYAYBYCYDYEYFYGYHYIYJYKYLYMYNYOYPYQYRYSYTYUYVYWYXYYYZY0Y1Y2Y3Y4Y5Y6Y7Y8Y9Y!Y#Y$Y%Y'Y(Y)Y*Y+Y,Y$hnfof-Y.Y/Y:Y;Y=Y?Y@YTc[Y!e#e$e%e'e(e]Ywb^Y_Y`Y{Y|Y}YD ;b
59def get_path_param_names(path: str) -> Set[str]: 1abcdef
60 return set(re.findall("{(.*?)}", path)) 2a =b}f?b@b[b]bE VbcevfwfdexfyfeezffeAfBfgeCfAhBhF G H I J m g {d)e*efdgdhdidjdkdldmdndodpd~fagbgcgdgegfggghgigqdo K L JbKbM WbN + , - xbyb^b/cpf+e,eChjg-e.e~c_bheiejekelemey ZbDfEfFf[!b `bkg{b|b}b~bO 0bneGfHfoeIfJfpeKfqeLfMfreNfEhFhP Q R S T n h |d/e:erdsdtdudvdwdxdydzdAdBdlgmgngogpgqgrgsgtgugCdp U V LbMbW 1bX . / : zbAbac:cqf;e=eGhvg?e@eadbcseteuevewexez 4bOfPfQf]!c ccwgdcecfcgcY 5byeRfSfzeTfUfAeVfBeWfXfCeYfJhKh; = ? @ [ u i }d[e]eDdEdFdGdHdIdJdKdLdMdNdxgygzgAgBgCgDgEgFgGgOdq Z 0 NbOb1 6b2 hc;cicPd=cQdjckc] ^ _ BbCblc?crf^e_eOhHg`e{ebdmcDeEeFeGeHeIe` A 9bZf0f1f^!d ncIgocpcqcrc3 !bJe2f3fKe4f5fLe6fMe7f8fNe9fRhSh{ | } ~ abv j ~d|e}eRdSdTdUdVdWdXdYdZd0d1dJgKgLgMgNgOgPgQgRgSg2dr 4 5 PbQb6 #b7 sc@ctc3d[c4ducvcbbcbdbDbEbwc]csf~eafWhTgbfcfcdxcOePeQeReSeTeebB 'b!f#f$f_!e ycUgzcAcBcCc8 (bUe%f'fVe(f)fWe*fXe+f,fYe-fZh0hfbgbhbibjbw k aedfef5d6d7d8d9d!d#d$d%d'd(dVgWgXgYgZg0g1g2g3g4g)ds 9 ! RbSb# )b$ Dc^cEc*d_c+dFcGckblbmbFbGbHc`ctfffgf4h5ghfifddIcZe0e1e2e3e4enbC ,b.f/f:f`!f Jc6gKcLcMcNc% -b5e;f=f6e?f@f7e[f8e]f^f9e_f7h8hobpbqbrbsbx l bejfkf,d-d.d/d:d;d=d?d@d[d]d7g8g9g!g#g$g%g'g(g)g^dt ' ( TbUb) .b* Oc{cPc_d|c`dQcRctbubvbHbIbSc}cuflfmf$h*gnfofedTc!e#e$e%e'e(ewbD ;b`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[b]bE VbcevfwfdexfyfeezffeAfBfgeCfF G H I J m g {dfdgdhdidjdkdldmdndodpdqdo K L JbKbM WbN UcXbVcYbWc+ , - xbyb^b/cXc~c_bheiejekelemey ZbDfEfFfb `b{b|b}b~bO 0bneGfHfoeIfJfpeKfqeLfMfreNfP Q R S T n h |drdsdtdudvdwdxdydzdAdBdCdp U V LbMbW 1bX Yc2bZc3b0c. / : zbAbac:c1cadbcseteuevewexez 4bOfPfQfc ccdcecfcgcY 5byeRfSfzeTfUfAeVfBeWfXfCeYf; = ? @ [ u i }dDdEdFdGdHdIdJdKdLdMdNdOdq Z 0 NbOb1 6b2 hc;cicPd=cQdjckc2c7b3c8b4c] ^ _ BbCblc?c5c6cbdmcDeEeFeGeHeIe` A 9bZf0f1fd ncocpcqcrc3 !bJe2f3fKe4f5fLe6fMe7f8fNe9f{ | } ~ abv j ~dRdSdTdUdVdWdXdYdZd0d1d2dr 4 5 PbQb6 #b7 sc@ctc3d[c4ducvc7c$b8c%b9cbbcbdbDbEbwc]c!c#ccdxcOePeQeReSeTeebB 'b!f#f$fe yczcAcBcCc8 (bUe%f'fVe(f)fWe*fXe+f,fYe-ffbgbhbibjbw k ae5d6d7d8d9d!d#d$d%d'd(d)ds 9 ! RbSb# )b$ Dc^cEc*d_c+dFcGc$c*b%c+b'ckblbmbFbGbHc`c(c)cddIcZe0e1e2e3e4enbC ,b.f/f:ff JcKcLcMcNc% -b5e;f=f6e?f@f7e[f8e]f^f9e_fobpbqbrbsbx l be,d-d.d/d:d;d=d?d@d[d]d^dt ' ( TbUb) .b* Oc{cPc_d|c`dQcRc*c/b+c:b,ctbubvbHbIbSc}c-c.cedTc!e#e$e%e'e(ewbD ;b`f{f|f
75 if PYDANTIC_V2: 2a =b?b@b[b]bE VbcevfwfdexfyfeezffeAfBfgeCfF G H I J m g {dfdgdhdidjdkdldmdndodpdqdo K L JbKbM WbN UcXbVcYbWc+ , - xbyb^b/cXc~c_bheiejekelemey ZbDfEfFfb `b{b|b}b~bO 0bneGfHfoeIfJfpeKfqeLfMfreNfP Q R S T n h |drdsdtdudvdwdxdydzdAdBdCdp U V LbMbW 1bX Yc2bZc3b0c. / : zbAbac:c1cadbcseteuevewexez 4bOfPfQfc ccdcecfcgcY 5byeRfSfzeTfUfAeVfBeWfXfCeYf; = ? @ [ u i }dDdEdFdGdHdIdJdKdLdMdNdOdq Z 0 NbOb1 6b2 hc;cicPd=cQdjckc2c7b3c8b4c] ^ _ BbCblc?c5c6cbdmcDeEeFeGeHeIe` A 9bZf0f1fd ncocpcqcrc3 !bJe2f3fKe4f5fLe6fMe7f8fNe9f{ | } ~ abv j ~dRdSdTdUdVdWdXdYdZd0d1d2dr 4 5 PbQb6 #b7 sc@ctc3d[c4ducvc7c$b8c%b9cbbcbdbDbEbwc]c!c#ccdxcOePeQeReSeTeebB 'b!f#f$fe yczcAcBcCc8 (bUe%f'fVe(f)fWe*fXe+f,fYe-ffbgbhbibjbw k ae5d6d7d8d9d!d#d$d%d'd(d)ds 9 ! RbSb# )b$ Dc^cEc*d_c+dFcGc$c*b%c+b'ckblbmbFbGbHc`c(c)cddIcZe0e1e2e3e4enbC ,b.f/f:ff JcKcLcMcNc% -b5e;f=f6e?f@f7e[f8e]f^f9e_fobpbqbrbsbx l be,d-d.d/d:d;d=d?d@d[d]d^dt ' ( TbUb) .b* Oc{cPc_d|c`dQcRc*c/b+c:b,ctbubvbHbIbSc}c-c.cedTc!e#e$e%e'e(ewbD ;b`f{f|f
76 field_info = field_info or FieldInfo( 2a =b?b@b[b]bVbcevfwfdexfyfeezffeAfBfgeCfF G H I J m g {dfdgdhdidjdkdldmdndodpdqdo K L JbKbM WbUcXbVcYbWc+ , - xbyb^b/cXc~c_bheiejekelemeZbDfEfFfb `b{b|b}b~b0bneGfHfoeIfJfpeKfqeLfMfreNfP Q R S T n h |drdsdtdudvdwdxdydzdAdBdCdp U V LbMbW 1bYc2bZc3b0c. / : zbAbac:c1cadbcseteuevewexe4bOfPfQfc ccdcecfcgc5byeRfSfzeTfUfAeVfBeWfXfCeYf; = ? @ [ u i }dDdEdFdGdHdIdJdKdLdMdNdOdq Z 0 NbOb1 6bhc;cicPd=cQdjckc2c7b3c8b4c] ^ _ BbCblc?c5c6cbdmcDeEeFeGeHeIe` 9bZf0f1fd ncocpcqcrc!bJe2f3fKe4f5fLe6fMe7f8fNe9f{ | } ~ abv j ~dRdSdTdUdVdWdXdYdZd0d1d2dr 4 5 PbQb6 #bsc@ctc3d[c4ducvc7c$b8c%b9cbbcbdbDbEbwc]c!c#ccdxcOePeQeReSeTeeb'b!f#f$fe yczcAcBcCc(bUe%f'fVe(f)fWe*fXe+f,fYe-ffbgbhbibjbw k ae5d6d7d8d9d!d#d$d%d'd(d)ds 9 ! RbSb# )bDc^cEc*d_c+dFcGc$c*b%c+b'ckblbmbFbGbHc`c(c)cddIcZe0e1e2e3e4enb,b.f/f:ff JcKcLcMcNc-b5e;f=f6e?f@f7e[f8e]f^f9e_fobpbqbrbsbx l be,d-d.d/d:d;d=d?d@d[d]d^dt ' ( TbUb) .bOc{cPc_d|c`dQcRc*c/b+c:b,ctbubvbHbIbSc}c-c.cedTc!e#e$e%e'e(ewb;b`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]bE cevfwfdexfyfeezffeAfBfgeCfF G H I J m g {dfdgdhdidjdkdldmdndodpdqdo K L M N UcXbVcYbWc+ , - xbyb^b/cXc~c_bheiejekelemey DfEfFfb `b{b|b}b~bO neGfHfoeIfJfpeKfqeLfMfreNfP Q R S T n h |drdsdtdudvdwdxdydzdAdBdCdp U V W X Yc2bZc3b0c. / : zbAbac:c1cadbcseteuevewexez OfPfQfc ccdcecfcgcY yeRfSfzeTfUfAeVfBeWfXfCeYf; = ? @ [ u i }dDdEdFdGdHdIdJdKdLdMdNdOdq Z 0 1 2 hc;cicPd=cQdjckc2c7b3c8b4c] ^ _ BbCblc?c5c6cbdmcDeEeFeGeHeIe` A Zf0f1fd ncocpcqcrc3 Je2f3fKe4f5fLe6fMe7f8fNe9f{ | } ~ abv j ~dRdSdTdUdVdWdXdYdZd0d1d2dr 4 5 6 7 sc@ctc3d[c4ducvc7c$b8c%b9cbbcbdbDbEbwc]c!c#ccdxcOePeQeReSeTeebB !f#f$fe yczcAcBcCc8 Ue%f'fVe(f)fWe*fXe+f,fYe-ffbgbhbibjbw k ae5d6d7d8d9d!d#d$d%d'd(d)ds 9 ! # $ Dc^cEc*d_c+dFcGc$c*b%c+b'ckblbmbFbGbHc`c(c)cddIcZe0e1e2e3e4enbC .f/f:ff JcKcLcMcNc% 5e;f=f6e?f@f7e[f8e]f^f9e_fobpbqbrbsbx l be,d-d.d/d:d;d=d?d@d[d]d^dt ' ( ) * Oc{cPc_d|c`dQcRc*c/b+c:b,ctbubvbHbIbSc}c-c.cedTc!e#e$e%e'e(ewbD `f{f|f
81 kwargs = {"name": name, "field_info": field_info} 2a =b?b@b[b]bE VbcevfwfdexfyfeezffeAfBfgeCfF G H I J m g {dfdgdhdidjdkdldmdndodpdqdo K L JbKbM WbN UcXbVcYbWc+ , - xbyb^b/cXc~c_bheiejekelemey ZbDfEfFfb `b{b|b}b~bO 0bneGfHfoeIfJfpeKfqeLfMfreNfP Q R S T n h |drdsdtdudvdwdxdydzdAdBdCdp U V LbMbW 1bX Yc2bZc3b0c. / : zbAbac:c1cadbcseteuevewexez 4bOfPfQfc ccdcecfcgcY 5byeRfSfzeTfUfAeVfBeWfXfCeYf; = ? @ [ u i }dDdEdFdGdHdIdJdKdLdMdNdOdq Z 0 NbOb1 6b2 hc;cicPd=cQdjckc2c7b3c8b4c] ^ _ BbCblc?c5c6cbdmcDeEeFeGeHeIe` A 9bZf0f1fd ncocpcqcrc3 !bJe2f3fKe4f5fLe6fMe7f8fNe9f{ | } ~ abv j ~dRdSdTdUdVdWdXdYdZd0d1d2dr 4 5 PbQb6 #b7 sc@ctc3d[c4ducvc7c$b8c%b9cbbcbdbDbEbwc]c!c#ccdxcOePeQeReSeTeebB 'b!f#f$fe yczcAcBcCc8 (bUe%f'fVe(f)fWe*fXe+f,fYe-ffbgbhbibjbw k ae5d6d7d8d9d!d#d$d%d'd(d)ds 9 ! RbSb# )b$ Dc^cEc*d_c+dFcGc$c*b%c+b'ckblbmbFbGbHc`c(c)cddIcZe0e1e2e3e4enbC ,b.f/f:ff JcKcLcMcNc% -b5e;f=f6e?f@f7e[f8e]f^f9e_fobpbqbrbsbx l be,d-d.d/d:d;d=d?d@d[d]d^dt ' ( TbUb) .b* Oc{cPc_d|c`dQcRc*c/b+c:b,ctbubvbHbIbSc}c-c.cedTc!e#e$e%e'e(ewbD ;b`f{f|f
82 if PYDANTIC_V2: 2a =b?b@b[b]bE VbcevfwfdexfyfeezffeAfBfgeCfF G H I J m g {dfdgdhdidjdkdldmdndodpdqdo K L JbKbM WbN UcXbVcYbWc+ , - xbyb^b/cXc~c_bheiejekelemey ZbDfEfFfb `b{b|b}b~bO 0bneGfHfoeIfJfpeKfqeLfMfreNfP Q R S T n h |drdsdtdudvdwdxdydzdAdBdCdp U V LbMbW 1bX Yc2bZc3b0c. / : zbAbac:c1cadbcseteuevewexez 4bOfPfQfc ccdcecfcgcY 5byeRfSfzeTfUfAeVfBeWfXfCeYf; = ? @ [ u i }dDdEdFdGdHdIdJdKdLdMdNdOdq Z 0 NbOb1 6b2 hc;cicPd=cQdjckc2c7b3c8b4c] ^ _ BbCblc?c5c6cbdmcDeEeFeGeHeIe` A 9bZf0f1fd ncocpcqcrc3 !bJe2f3fKe4f5fLe6fMe7f8fNe9f{ | } ~ abv j ~dRdSdTdUdVdWdXdYdZd0d1d2dr 4 5 PbQb6 #b7 sc@ctc3d[c4ducvc7c$b8c%b9cbbcbdbDbEbwc]c!c#ccdxcOePeQeReSeTeebB 'b!f#f$fe yczcAcBcCc8 (bUe%f'fVe(f)fWe*fXe+f,fYe-ffbgbhbibjbw k ae5d6d7d8d9d!d#d$d%d'd(d)ds 9 ! RbSb# )b$ Dc^cEc*d_c+dFcGc$c*b%c+b'ckblbmbFbGbHc`c(c)cddIcZe0e1e2e3e4enbC ,b.f/f:ff JcKcLcMcNc% -b5e;f=f6e?f@f7e[f8e]f^f9e_fobpbqbrbsbx l be,d-d.d/d:d;d=d?d@d[d]d^dt ' ( TbUb) .b* Oc{cPc_d|c`dQcRc*c/b+c:b,ctbubvbHbIbSc}c-c.cedTc!e#e$e%e'e(ewbD ;b`f{f|f
83 kwargs.update({"mode": mode}) 2a =b?b@b[b]bVbcevfwfdexfyfeezffeAfBfgeCfF G H I J m g {dfdgdhdidjdkdldmdndodpdqdo K L JbKbM WbUcXbVcYbWc+ , - xbyb^b/cXc~c_bheiejekelemeZbDfEfFfb `b{b|b}b~b0bneGfHfoeIfJfpeKfqeLfMfreNfP Q R S T n h |drdsdtdudvdwdxdydzdAdBdCdp U V LbMbW 1bYc2bZc3b0c. / : zbAbac:c1cadbcseteuevewexe4bOfPfQfc ccdcecfcgc5byeRfSfzeTfUfAeVfBeWfXfCeYf; = ? @ [ u i }dDdEdFdGdHdIdJdKdLdMdNdOdq Z 0 NbOb1 6bhc;cicPd=cQdjckc2c7b3c8b4c] ^ _ BbCblc?c5c6cbdmcDeEeFeGeHeIe` 9bZf0f1fd ncocpcqcrc!bJe2f3fKe4f5fLe6fMe7f8fNe9f{ | } ~ abv j ~dRdSdTdUdVdWdXdYdZd0d1d2dr 4 5 PbQb6 #bsc@ctc3d[c4ducvc7c$b8c%b9cbbcbdbDbEbwc]c!c#ccdxcOePeQeReSeTeeb'b!f#f$fe yczcAcBcCc(bUe%f'fVe(f)fWe*fXe+f,fYe-ffbgbhbibjbw k ae5d6d7d8d9d!d#d$d%d'd(d)ds 9 ! RbSb# )bDc^cEc*d_c+dFcGc$c*b%c+b'ckblbmbFbGbHc`c(c)cddIcZe0e1e2e3e4enb,b.f/f:ff JcKcLcMcNc-b5e;f=f6e?f@f7e[f8e]f^f9e_fobpbqbrbsbx l be,d-d.d/d:d;d=d?d@d[d]d^dt ' ( TbUb) .bOc{cPc_d|c`dQcRc*c/b+c:b,ctbubvbHbIbSc}c-c.cedTc!e#e$e%e'e(ewb;b`f{f|f
84 else:
85 kwargs.update( 2a =b?b@b[b]bE cevfwfdexfyfeezffeAfBfgeCfF G H I J m g {dfdgdhdidjdkdldmdndodpdqdo K L M N UcXbVcYbWc+ , - xbyb^b/cXc~c_bheiejekelemey DfEfFfb `b{b|b}b~bO neGfHfoeIfJfpeKfqeLfMfreNfP Q R S T n h |drdsdtdudvdwdxdydzdAdBdCdp U V W X Yc2bZc3b0c. / : zbAbac:c1cadbcseteuevewexez OfPfQfc ccdcecfcgcY yeRfSfzeTfUfAeVfBeWfXfCeYf; = ? @ [ u i }dDdEdFdGdHdIdJdKdLdMdNdOdq Z 0 1 2 hc;cicPd=cQdjckc2c7b3c8b4c] ^ _ BbCblc?c5c6cbdmcDeEeFeGeHeIe` A Zf0f1fd ncocpcqcrc3 Je2f3fKe4f5fLe6fMe7f8fNe9f{ | } ~ abv j ~dRdSdTdUdVdWdXdYdZd0d1d2dr 4 5 6 7 sc@ctc3d[c4ducvc7c$b8c%b9cbbcbdbDbEbwc]c!c#ccdxcOePeQeReSeTeebB !f#f$fe yczcAcBcCc8 Ue%f'fVe(f)fWe*fXe+f,fYe-ffbgbhbibjbw k ae5d6d7d8d9d!d#d$d%d'd(d)ds 9 ! # $ Dc^cEc*d_c+dFcGc$c*b%c+b'ckblbmbFbGbHc`c(c)cddIcZe0e1e2e3e4enbC .f/f:ff JcKcLcMcNc% 5e;f=f6e?f@f7e[f8e]f^f9e_fobpbqbrbsbx l be,d-d.d/d:d;d=d?d@d[d]d^dt ' ( ) * Oc{cPc_d|c`dQcRc*c/b+c:b,ctbubvbHbIbSc}c-c.cedTc!e#e$e%e'e(ewbD `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[b]bE VbcevfwfdexfyfeezffeAfBfgeCfF G H I J m g {dfdgdhdidjdkdldmdndodpdqdo K L JbKbM WbN UcXbVcYbWc+ , - xbyb^b/cXc~c_bheiejekelemey ZbDfEfFfb `b{b|b}b~bO 0bneGfHfoeIfJfpeKfqeLfMfreNfP Q R S T n h |drdsdtdudvdwdxdydzdAdBdCdp U V LbMbW 1bX Yc2bZc3b0c. / : zbAbac:c1cadbcseteuevewexez 4bOfPfQfc ccdcecfcgcY 5byeRfSfzeTfUfAeVfBeWfXfCeYf; = ? @ [ u i }dDdEdFdGdHdIdJdKdLdMdNdOdq Z 0 NbOb1 6b2 hc;cicPd=cQdjckc2c7b3c8b4c] ^ _ BbCblc?c5c6cbdmcDeEeFeGeHeIe` A 9bZf0f1fd ncocpcqcrc3 !bJe2f3fKe4f5fLe6fMe7f8fNe9f{ | } ~ abv j ~dRdSdTdUdVdWdXdYdZd0d1d2dr 4 5 PbQb6 #b7 sc@ctc3d[c4ducvc7c$b8c%b9cbbcbdbDbEbwc]c!c#ccdxcOePeQeReSeTeebB 'b!f#f$fe yczcAcBcCc8 (bUe%f'fVe(f)fWe*fXe+f,fYe-ffbgbhbibjbw k ae5d6d7d8d9d!d#d$d%d'd(d)ds 9 ! RbSb# )b$ Dc^cEc*d_c+dFcGc$c*b%c+b'ckblbmbFbGbHc`c(c)cddIcZe0e1e2e3e4enbC ,b.f/f:ff JcKcLcMcNc% -b5e;f=f6e?f@f7e[f8e]f^f9e_fobpbqbrbsbx l be,d-d.d/d:d;d=d?d@d[d]d^dt ' ( TbUb) .b* Oc{cPc_d|c`dQcRc*c/b+c:b,ctbubvbHbIbSc}c-c.cedTc!e#e$e%e'e(ewbD ;b`f{f|f
96 return ModelField(**kwargs) # type: ignore[arg-type] 2a =b?b@b[b]bE VbcevfwfdexfyfeezffeAfBfgeCfF G H I J m g {dfdgdhdidjdkdldmdndodpdqdo K L JbKbM WbN UcXbVcYbWc+ , - xbyb^b/cXc~c_bheiejekelemey ZbDfEfFfb `b{b|b}b~bO 0bneGfHfoeIfJfpeKfqeLfMfreNfP Q R S T n h |drdsdtdudvdwdxdydzdAdBdCdp U V LbMbW 1bX Yc2bZc3b0c. / : zbAbac:c1cadbcseteuevewexez 4bOfPfQfc ccdcecfcgcY 5byeRfSfzeTfUfAeVfBeWfXfCeYf; = ? @ [ u i }dDdEdFdGdHdIdJdKdLdMdNdOdq Z 0 NbOb1 6b2 hc;cicPd=cQdjckc2c7b3c8b4c] ^ _ BbCblc?c5c6cbdmcDeEeFeGeHeIe` A 9bZf0f1fd ncocpcqcrc3 !bJe2f3fKe4f5fLe6fMe7f8fNe9f{ | } ~ abv j ~dRdSdTdUdVdWdXdYdZd0d1d2dr 4 5 PbQb6 #b7 sc@ctc3d[c4ducvc7c$b8c%b9cbbcbdbDbEbwc]c!c#ccdxcOePeQeReSeTeebB 'b!f#f$fe yczcAcBcCc8 (bUe%f'fVe(f)fWe*fXe+f,fYe-ffbgbhbibjbw k ae5d6d7d8d9d!d#d$d%d'd(d)ds 9 ! RbSb# )b$ Dc^cEc*d_c+dFcGc$c*b%c+b'ckblbmbFbGbHc`c(c)cddIcZe0e1e2e3e4enbC ,b.f/f:ff JcKcLcMcNc% -b5e;f=f6e?f@f7e[f8e]f^f9e_fobpbqbrbsbx l be,d-d.d/d:d;d=d?d@d[d]d^dt ' ( TbUb) .b* Oc{cPc_d|c`dQcRc*c/b+c:b,ctbubvbHbIbSc}c-c.cedTc!e#e$e%e'e(ewbD ;b`f{f|f
97 except (RuntimeError, PydanticSchemaGenerationError): 2UcXbVcYbWcXcYc2bZc3b0c1c2c7b3c8b4c5c6c7c$b8c%b9c!c#c$c*b%c+b'c(c)c*c/b+c:b,c-c.c
98 raise fastapi.exceptions.FastAPIError( 2UcXbVcYbWcXcYc2bZc3b0c1c2c7b3c8b4c5c6c7c$b8c%b9c!c#c$c*b%c+b'c(c)c*c/b+c:b,c-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 E VbF G H I J m g o K L JbKbM WbN + , - xbyby Zbb O 0bP Q R S T n h p U V LbMbW 1bX . / : zbAbz 4bc Y 5b; = ? @ [ u i q Z 0 NbOb1 6b2 ] ^ _ BbCb` A 9bd 3 !b{ | } ~ abv j r 4 5 PbQb6 #b7 bbcbdbDbEbebB 'be 8 (bfbgbhbibjbw k s 9 ! RbSb# )b$ kblbmbFbGbnbC ,bf % -bobpbqbrbsbx l t ' ( TbUb) .b* tbubvbHbIbwbD ;b
115 return field 2a VbF G H I J m g o K L JbKbM Wb+ , - xbybZbb 0bP Q R S T n h p U V LbMbW 1b. / : zbAb4bc 5b; = ? @ [ u i q Z 0 NbOb1 6b] ^ _ BbCb` 9bd !b{ | } ~ abv j r 4 5 PbQb6 #bbbcbdbDbEbeb'be (bfbgbhbibjbw k s 9 ! RbSb# )bkblbmbFbGbnb,bf -bobpbqbrbsbx l t ' ( TbUb) .btbubvbHbIbwb;b
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 E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
119 cloned_types = _CLONED_TYPES_CACHE 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
121 original_type = field.type_ 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
122 if is_dataclass(original_type) and hasattr(original_type, "__pydantic_model__"): 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
123 original_type = original_type.__pydantic_model__ 1abcdef
124 use_type = original_type 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
125 if lenient_issubclass(original_type, BaseModel): 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
126 original_type = cast(Type[BaseModel], original_type) 2a E F G H I J m g o K L M N y b O P Q R S T n h p U V W X z c Y ; = ? @ [ u i q Z 0 1 2 A d 3 { | } ~ abv j r 4 5 6 7 B e 8 fbgbhbibjbw k s 9 ! # $ C f % obpbqbrbsbx l t ' ( ) * D
127 use_type = cloned_types.get(original_type) 2a E F G H I J m g o K L M N y b O P Q R S T n h p U V W X z c Y ; = ? @ [ u i q Z 0 1 2 A d 3 { | } ~ abv j r 4 5 6 7 B e 8 fbgbhbibjbw k s 9 ! # $ C f % obpbqbrbsbx l t ' ( ) * D
128 if use_type is None: 2a E F G H I J m g o K L M N y b O P Q R S T n h p U V W X z c Y ; = ? @ [ u i q Z 0 1 2 A d 3 { | } ~ abv j r 4 5 6 7 B e 8 fbgbhbibjbw k s 9 ! # $ C f % obpbqbrbsbx l t ' ( ) * D
129 use_type = create_model(original_type.__name__, __base__=original_type) 1aEgoNybOhpXzcYiq2Ad3jr7Be8ks$Cf%lt*D
130 cloned_types[original_type] = use_type 1aEgoNybOhpXzcYiq2Ad3jr7Be8ks$Cf%lt*D
131 for f in original_type.__fields__.values(): 1aEgoNybOhpXzcYiq2Ad3jr7Be8ks$Cf%lt*D
132 use_type.__fields__[f.name] = create_cloned_field( 1aEgoNybOhpXzcYiq2Ad3jr7Be8ks$Cf%lt*D
133 f, cloned_types=cloned_types
134 )
135 new_field = create_model_field(name=field.name, type_=use_type) 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
136 new_field.has_alias = field.has_alias # type: ignore[attr-defined] 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
137 new_field.alias = field.alias # type: ignore[misc] 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
138 new_field.class_validators = field.class_validators # type: ignore[attr-defined] 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
139 new_field.default = field.default # type: ignore[misc] 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
140 new_field.required = field.required # type: ignore[misc] 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
141 new_field.model_config = field.model_config # type: ignore[attr-defined] 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
142 new_field.field_info = field.field_info 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
143 new_field.allow_none = field.allow_none # type: ignore[attr-defined] 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
144 new_field.validate_always = field.validate_always # type: ignore[attr-defined] 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
145 if field.sub_fields: # type: ignore[attr-defined] 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
146 new_field.sub_fields = [ # type: ignore[attr-defined] 2a F G H I J m g o K L M + , - y b P Q R S T n h p U V W . / : z c ; = ? @ [ u i q Z 0 1 ] ^ _ ` A d { | } ~ abv j r 4 5 6 bbcbdbebB e fbgbhbibjbw k s 9 ! # kblbmbnbC f obpbqbrbsbx l t ' ( ) tbubvbwbD
147 create_cloned_field(sub_field, cloned_types=cloned_types)
148 for sub_field in field.sub_fields # type: ignore[attr-defined]
149 ]
150 if field.key_field: # type: ignore[attr-defined] 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
151 new_field.key_field = create_cloned_field( # type: ignore[attr-defined] 2a + , - b . / : c ] ^ _ ` d bbcbdbebe kblbmbnbf tbubvbwb
152 field.key_field, # type: ignore[attr-defined]
153 cloned_types=cloned_types,
154 )
155 new_field.validators = field.validators # type: ignore[attr-defined] 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
156 new_field.pre_validators = field.pre_validators # type: ignore[attr-defined] 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
157 new_field.post_validators = field.post_validators # type: ignore[attr-defined] 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
158 new_field.parse_json = field.parse_json # type: ignore[attr-defined] 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
159 new_field.shape = field.shape # type: ignore[attr-defined] 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
160 new_field.populate_validators() # type: ignore[attr-defined] 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
161 return new_field 2a E F G H I J m g o K L M N + , - xbyby b O P Q R S T n h p U V W X . / : zbAbz c Y ; = ? @ [ u i q Z 0 1 2 ] ^ _ BbCb` A d 3 { | } ~ abv j r 4 5 6 7 bbcbdbDbEbebB e 8 fbgbhbibjbw k s 9 ! # $ kblbmbFbGbnbC f % obpbqbrbsbx l t ' ( ) * tbubvbHbIbwbD
164def generate_operation_id_for_path( 1abcdef
165 *, name: str, path: str, method: str 1abcdef
166) -> str: # pragma: nocover 1abcdef
167 warnings.warn(
168 "fastapi.utils.generate_operation_id_for_path() was deprecated, "
169 "it is not used internally, and will be removed soon",
170 DeprecationWarning,
171 stacklevel=2,
172 )
173 operation_id = f"{name}{path}"
174 operation_id = re.sub(r"\W", "_", operation_id)
175 operation_id = f"{operation_id}_{method.lower()}"
176 return operation_id
179def generate_unique_id(route: "APIRoute") -> str: 1abcdef
180 operation_id = f"{route.name}{route.path_format}" 2a =b}f?b@b[b]bE Vbm g )e*efdgdhdidjdkdldmdndodpd~fagbgcgdgegfggghgigqdo K L JbKbM WbN UcXbVcYbWc+ , - xbyb^b/cpf+e,eXcjg-e.e~c_by Zbb `bkg{b|b}b~bO 0bn h /e:erdsdtdudvdwdxdydzdAdBdlgmgngogpgqgrgsgtgugCdp U V LbMbW 1bX Yc2bZc3b0c. / : zbAbac:cqf;e=e1cvg?e@eadbcz 4bc ccwgdcecfcgcY 5bu i [e]eDdEdFdGdHdIdJdKdLdMdNdxgygzgAgBgCgDgEgFgGgOdq Z 0 NbOb1 6b2 hc;cicPd=cQdjckc2c7b3c8b4c] ^ _ BbCblc?crf^e_e5c6cHg`e{ebdmc` A 9bd ncIgocpcqcrc3 !bv j |e}eRdSdTdUdVdWdXdYdZd0d1dJgKgLgMgNgOgPgQgRgSg2dr 4 5 PbQb6 #b7 sc@ctc3d[c4ducvc7c$b8c%b9cbbcbdbDbEbwc]csf~eaf!c#cTgbfcfcdxcebB 'be ycUgzcAcBcCc8 (bw k dfef5d6d7d8d9d!d#d$d%d'd(dVgWgXgYgZg0g1g2g3g4g)ds 9 ! RbSb# )b$ Dc^cEc*d_c+dFcGc$c*b%c+b'ckblbmbFbGbHc`ctfffgf(c)c5ghfifddIcnbC ,bf Jc6gKcLcMcNc% -bx l jfkf,d-d.d/d:d;d=d?d@d[d]d7g8g9g!g#g$g%g'g(g)g^dt ' ( TbUb) .b* Oc{cPc_d|c`dQcRc*c/b+c:b,ctbubvbHbIbSc}cuflfmf-c.c*gnfofedTcwbD ;b
181 operation_id = re.sub(r"\W", "_", operation_id) 2a =b}f?b@b[b]bE Vbm g )e*efdgdhdidjdkdldmdndodpd~fagbgcgdgegfggghgigqdo K L JbKbM WbN UcXbVcYbWc+ , - xbyb^b/cpf+e,eXcjg-e.e~c_by Zbb `bkg{b|b}b~bO 0bn h /e:erdsdtdudvdwdxdydzdAdBdlgmgngogpgqgrgsgtgugCdp U V LbMbW 1bX Yc2bZc3b0c. / : zbAbac:cqf;e=e1cvg?e@eadbcz 4bc ccwgdcecfcgcY 5bu i [e]eDdEdFdGdHdIdJdKdLdMdNdxgygzgAgBgCgDgEgFgGgOdq Z 0 NbOb1 6b2 hc;cicPd=cQdjckc2c7b3c8b4c] ^ _ BbCblc?crf^e_e5c6cHg`e{ebdmc` A 9bd ncIgocpcqcrc3 !bv j |e}eRdSdTdUdVdWdXdYdZd0d1dJgKgLgMgNgOgPgQgRgSg2dr 4 5 PbQb6 #b7 sc@ctc3d[c4ducvc7c$b8c%b9cbbcbdbDbEbwc]csf~eaf!c#cTgbfcfcdxcebB 'be ycUgzcAcBcCc8 (bw k dfef5d6d7d8d9d!d#d$d%d'd(dVgWgXgYgZg0g1g2g3g4g)ds 9 ! RbSb# )b$ Dc^cEc*d_c+dFcGc$c*b%c+b'ckblbmbFbGbHc`ctfffgf(c)c5ghfifddIcnbC ,bf Jc6gKcLcMcNc% -bx l jfkf,d-d.d/d:d;d=d?d@d[d]d7g8g9g!g#g$g%g'g(g)g^dt ' ( TbUb) .b* Oc{cPc_d|c`dQcRc*c/b+c:b,ctbubvbHbIbSc}cuflfmf-c.c*gnfofedTcwbD ;b
182 assert route.methods 2a =b}f?b@b[b]bE Vbm g )e*efdgdhdidjdkdldmdndodpd~fagbgcgdgegfggghgigqdo K L JbKbM WbN UcXbVcYbWc+ , - xbyb^b/cpf+e,eXcjg-e.e~c_by Zbb `bkg{b|b}b~bO 0bn h /e:erdsdtdudvdwdxdydzdAdBdlgmgngogpgqgrgsgtgugCdp U V LbMbW 1bX Yc2bZc3b0c. / : zbAbac:cqf;e=e1cvg?e@eadbcz 4bc ccwgdcecfcgcY 5bu i [e]eDdEdFdGdHdIdJdKdLdMdNdxgygzgAgBgCgDgEgFgGgOdq Z 0 NbOb1 6b2 hc;cicPd=cQdjckc2c7b3c8b4c] ^ _ BbCblc?crf^e_e5c6cHg`e{ebdmc` A 9bd ncIgocpcqcrc3 !bv j |e}eRdSdTdUdVdWdXdYdZd0d1dJgKgLgMgNgOgPgQgRgSg2dr 4 5 PbQb6 #b7 sc@ctc3d[c4ducvc7c$b8c%b9cbbcbdbDbEbwc]csf~eaf!c#cTgbfcfcdxcebB 'be ycUgzcAcBcCc8 (bw k dfef5d6d7d8d9d!d#d$d%d'd(dVgWgXgYgZg0g1g2g3g4g)ds 9 ! RbSb# )b$ Dc^cEc*d_c+dFcGc$c*b%c+b'ckblbmbFbGbHc`ctfffgf(c)c5ghfifddIcnbC ,bf Jc6gKcLcMcNc% -bx l jfkf,d-d.d/d:d;d=d?d@d[d]d7g8g9g!g#g$g%g'g(g)g^dt ' ( TbUb) .b* Oc{cPc_d|c`dQcRc*c/b+c:b,ctbubvbHbIbSc}cuflfmf-c.c*gnfofedTcwbD ;b
183 operation_id = f"{operation_id}_{list(route.methods)[0].lower()}" 2a =b}f?b@b[b]bE Vbm g )e*efdgdhdidjdkdldmdndodpd~fagbgcgdgegfggghgigqdo K L JbKbM WbN UcXbVcYbWc+ , - xbyb^b/cpf+e,eXcjg-e.e~c_by Zbb `bkg{b|b}b~bO 0bn h /e:erdsdtdudvdwdxdydzdAdBdlgmgngogpgqgrgsgtgugCdp U V LbMbW 1bX Yc2bZc3b0c. / : zbAbac:cqf;e=e1cvg?e@eadbcz 4bc ccwgdcecfcgcY 5bu i [e]eDdEdFdGdHdIdJdKdLdMdNdxgygzgAgBgCgDgEgFgGgOdq Z 0 NbOb1 6b2 hc;cicPd=cQdjckc2c7b3c8b4c] ^ _ BbCblc?crf^e_e5c6cHg`e{ebdmc` A 9bd ncIgocpcqcrc3 !bv j |e}eRdSdTdUdVdWdXdYdZd0d1dJgKgLgMgNgOgPgQgRgSg2dr 4 5 PbQb6 #b7 sc@ctc3d[c4ducvc7c$b8c%b9cbbcbdbDbEbwc]csf~eaf!c#cTgbfcfcdxcebB 'be ycUgzcAcBcCc8 (bw k dfef5d6d7d8d9d!d#d$d%d'd(dVgWgXgYgZg0g1g2g3g4g)ds 9 ! RbSb# )b$ Dc^cEc*d_c+dFcGc$c*b%c+b'ckblbmbFbGbHc`ctfffgf(c)c5ghfifddIcnbC ,bf Jc6gKcLcMcNc% -bx l jfkf,d-d.d/d:d;d=d?d@d[d]d7g8g9g!g#g$g%g'g(g)g^dt ' ( TbUb) .b* Oc{cPc_d|c`dQcRc*c/b+c:b,ctbubvbHbIbSc}cuflfmf-c.c*gnfofedTcwbD ;b
184 return operation_id 2a =b}f?b@b[b]bE Vbm g )e*efdgdhdidjdkdldmdndodpd~fagbgcgdgegfggghgigqdo K L JbKbM WbN UcXbVcYbWc+ , - xbyb^b/cpf+e,eXcjg-e.e~c_by Zbb `bkg{b|b}b~bO 0bn h /e:erdsdtdudvdwdxdydzdAdBdlgmgngogpgqgrgsgtgugCdp U V LbMbW 1bX Yc2bZc3b0c. / : zbAbac:cqf;e=e1cvg?e@eadbcz 4bc ccwgdcecfcgcY 5bu i [e]eDdEdFdGdHdIdJdKdLdMdNdxgygzgAgBgCgDgEgFgGgOdq Z 0 NbOb1 6b2 hc;cicPd=cQdjckc2c7b3c8b4c] ^ _ BbCblc?crf^e_e5c6cHg`e{ebdmc` A 9bd ncIgocpcqcrc3 !bv j |e}eRdSdTdUdVdWdXdYdZd0d1dJgKgLgMgNgOgPgQgRgSg2dr 4 5 PbQb6 #b7 sc@ctc3d[c4ducvc7c$b8c%b9cbbcbdbDbEbwc]csf~eaf!c#cTgbfcfcdxcebB 'be ycUgzcAcBcCc8 (bw k dfef5d6d7d8d9d!d#d$d%d'd(dVgWgXgYgZg0g1g2g3g4g)ds 9 ! RbSb# )b$ Dc^cEc*d_c+dFcGc$c*b%c+b'ckblbmbFbGbHc`ctfffgf(c)c5ghfifddIcnbC ,bf Jc6gKcLcMcNc% -bx l jfkf,d-d.d/d:d;d=d?d@d[d]d7g8g9g!g#g$g%g'g(g)g^dt ' ( TbUb) .b* Oc{cPc_d|c`dQcRc*c/b+c:b,ctbubvbHbIbSc}cuflfmf-c.c*gnfofedTcwbD ;b
187def deep_dict_update(main_dict: Dict[Any, Any], update_dict: Dict[Any, Any]) -> None: 1abcdef
188 for key, value in update_dict.items(): 2`g{g|g}g-gF G H I J m g ~gahbhJbKbch+gdheh.g/g:gfhghhhihjhkhlhmhnh;gP Q R S T n h ohphqhLbMbrh,gshth=g?g@guhvhwhxhyh~vawbwgwIh; = ? @ [ u i jxBxDxNbObCy[g+yxALhMhNhUA*B+B-B;BxDyDzDEDQh{ | } ~ abv j HEZE1EPbQb0F]gfGVHThUhVh+HeJfJhJlJVKWKXK2KYhfbgbhbibjbw k 5L:L=LRbSb;M^gDN,O1h2h3hfPCQDQFQJQ,R-R.R?R6hobpbqbrbsbx l ]SkTmTTbUblU_g1UgW9h!h#hDW0X1X3X7X
189 if ( 2`g{g|g}g-gF G H I J m g ~gahbhJbKbch+gdheh.g/g:gfhghhhihjhkhlhmhnh;gP Q R S T n h ohphqhLbMbrh,gshth=g?g@guhvhwhxhyh
190 key in main_dict
191 and isinstance(main_dict[key], dict)
192 and isinstance(value, dict)
193 ):
194 deep_dict_update(main_dict[key], value) 2-g.g/g:g;g=g?g@gIhLhMhNhQhThUhVhYh1h2h3h6h9h!h#h
195 elif ( 2`g{g|g}g-gF G H I J m g ~gahbhJbKbch+gdheh.g/g:gfhghhhihjhkhlhmhnh;gP Q R S T n h ohphqhLbMbrh,gshth=g?g@guhvhwhxhyh
196 key in main_dict
197 and isinstance(main_dict[key], list)
198 and isinstance(update_dict[key], list)
199 ):
200 main_dict[key] = main_dict[key] + update_dict[key] 2ahphBxZE:LkT
201 else:
202 main_dict[key] = value 2`g{g|g}g-gF G H I J m g ~gbhJbKbch+gdheh.g/g:gfhghhhihjhkhlhmhnh;gP Q R S T n h ohqhLbMbrh,gshth=g?g@guhvhwhxhyh~vawbwgwIh; = ? @ [ u i jxDxNbObCy[g+yxALhMhNhUA*B+B-B;BxDyDzDEDQh{ | } ~ abv j HE1EPbQb0F]gfGVHThUhVh+HeJfJhJlJVKWKXK2KYhfbgbhbibjbw k 5L=LRbSb;M^gDN,O1h2h3hfPCQDQFQJQ,R-R.R?R6hobpbqbrbsbx l ]SmTTbUblU_g1UgW9h!h#hDW0X1X3X7X
205def get_value_or_default( 1abcdef
206 first_item: Union[DefaultPlaceholder, DefaultType],
207 *extra_items: Union[DefaultPlaceholder, DefaultType],
208) -> Union[DefaultPlaceholder, DefaultType]:
209 """
210 Pass items or `DefaultPlaceholder`s by descending priority.
212 The first one to _not_ be a `DefaultPlaceholder` will be returned.
214 Otherwise, the first item (a `DefaultPlaceholder`) will be returned.
215 """
216 items = (first_item,) + extra_items 2a =b}f?b@b[b]bE VbF G H I J m g {d)e*efdgdhdidjdkdldmdndodpd~fagbgcgdgegfggghgigqdo K L JbKbM WbN UcXbVcYbWc+ , - xbyb^b/cpf+e,eXcjg-e.e~c_by Zbb `bkg{b|b}b~bO 0bP Q R S T n h |d/e:erdsdtdudvdwdxdydzdAdBdlgmgngogpgqgrgsgtgugCdp U V LbMbW 1bX Yc2bZc3b0c. / : zbAbac:cqf;e=e1cvg?e@eadbcz 4bc ccwgdcecfcgcY 5b; = ? @ [ u i }d[e]eDdEdFdGdHdIdJdKdLdMdNdxgygzgAgBgCgDgEgFgGgOdq Z 0 NbOb1 6b2 hc;cicPd=cQdjckc2c7b3c8b4c] ^ _ BbCblc?crf^e_e5c6cHg`e{ebdmc` A 9bd ncIgocpcqcrc3 !b{ | } ~ abv j ~d|e}eRdSdTdUdVdWdXdYdZd0d1dJgKgLgMgNgOgPgQgRgSg2dr 4 5 PbQb6 #b7 sc@ctc3d[c4ducvc7c$b8c%b9cbbcbdbDbEbwc]csf~eaf!c#cTgbfcfcdxcebB 'be ycUgzcAcBcCc8 (bfbgbhbibjbw k aedfef5d6d7d8d9d!d#d$d%d'd(dVgWgXgYgZg0g1g2g3g4g)ds 9 ! RbSb# )b$ Dc^cEc*d_c+dFcGc$c*b%c+b'ckblbmbFbGbHc`ctfffgf(c)c5ghfifddIcnbC ,bf Jc6gKcLcMcNc% -bobpbqbrbsbx l bejfkf,d-d.d/d:d;d=d?d@d[d]d7g8g9g!g#g$g%g'g(g)g^dt ' ( TbUb) .b* Oc{cPc_d|c`dQcRc*c/b+c:b,ctbubvbHbIbSc}cuflfmf-c.c*gnfofedTcwbD ;b
217 for item in items: 2a =b}f?b@b[b]bE VbF G H I J m g {d)e*efdgdhdidjdkdldmdndodpd~fagbgcgdgegfggghgigqdo K L JbKbM WbN UcXbVcYbWc+ , - xbyb^b/cpf+e,eXcjg-e.e~c_by Zbb `bkg{b|b}b~bO 0bP Q R S T n h |d/e:erdsdtdudvdwdxdydzdAdBdlgmgngogpgqgrgsgtgugCdp U V LbMbW 1bX Yc2bZc3b0c. / : zbAbac:cqf;e=e1cvg?e@eadbcz 4bc ccwgdcecfcgcY 5b; = ? @ [ u i }d[e]eDdEdFdGdHdIdJdKdLdMdNdxgygzgAgBgCgDgEgFgGgOdq Z 0 NbOb1 6b2 hc;cicPd=cQdjckc2c7b3c8b4c] ^ _ BbCblc?crf^e_e5c6cHg`e{ebdmc` A 9bd ncIgocpcqcrc3 !b{ | } ~ abv j ~d|e}eRdSdTdUdVdWdXdYdZd0d1dJgKgLgMgNgOgPgQgRgSg2dr 4 5 PbQb6 #b7 sc@ctc3d[c4ducvc7c$b8c%b9cbbcbdbDbEbwc]csf~eaf!c#cTgbfcfcdxcebB 'be ycUgzcAcBcCc8 (bfbgbhbibjbw k aedfef5d6d7d8d9d!d#d$d%d'd(dVgWgXgYgZg0g1g2g3g4g)ds 9 ! RbSb# )b$ Dc^cEc*d_c+dFcGc$c*b%c+b'ckblbmbFbGbHc`ctfffgf(c)c5ghfifddIcnbC ,bf Jc6gKcLcMcNc% -bobpbqbrbsbx l bejfkf,d-d.d/d:d;d=d?d@d[d]d7g8g9g!g#g$g%g'g(g)g^dt ' ( TbUb) .b* Oc{cPc_d|c`dQcRc*c/b+c:b,ctbubvbHbIbSc}cuflfmf-c.c*gnfofedTcwbD ;b
218 if not isinstance(item, DefaultPlaceholder): 2a =b}f?b@b[b]bE VbF G H I J m g {d)e*efdgdhdidjdkdldmdndodpd~fagbgcgdgegfggghgigqdo K L JbKbM WbN UcXbVcYbWc+ , - xbyb^b/cpf+e,eXcjg-e.e~c_by Zbb `bkg{b|b}b~bO 0bP Q R S T n h |d/e:erdsdtdudvdwdxdydzdAdBdlgmgngogpgqgrgsgtgugCdp U V LbMbW 1bX Yc2bZc3b0c. / : zbAbac:cqf;e=e1cvg?e@eadbcz 4bc ccwgdcecfcgcY 5b; = ? @ [ u i }d[e]eDdEdFdGdHdIdJdKdLdMdNdxgygzgAgBgCgDgEgFgGgOdq Z 0 NbOb1 6b2 hc;cicPd=cQdjckc2c7b3c8b4c] ^ _ BbCblc?crf^e_e5c6cHg`e{ebdmc` A 9bd ncIgocpcqcrc3 !b{ | } ~ abv j ~d|e}eRdSdTdUdVdWdXdYdZd0d1dJgKgLgMgNgOgPgQgRgSg2dr 4 5 PbQb6 #b7 sc@ctc3d[c4ducvc7c$b8c%b9cbbcbdbDbEbwc]csf~eaf!c#cTgbfcfcdxcebB 'be ycUgzcAcBcCc8 (bfbgbhbibjbw k aedfef5d6d7d8d9d!d#d$d%d'd(dVgWgXgYgZg0g1g2g3g4g)ds 9 ! RbSb# )b$ Dc^cEc*d_c+dFcGc$c*b%c+b'ckblbmbFbGbHc`ctfffgf(c)c5ghfifddIcnbC ,bf Jc6gKcLcMcNc% -bobpbqbrbsbx l bejfkf,d-d.d/d:d;d=d?d@d[d]d7g8g9g!g#g$g%g'g(g)g^dt ' ( TbUb) .b* Oc{cPc_d|c`dQcRc*c/b+c:b,ctbubvbHbIbSc}cuflfmf-c.c*gnfofedTcwbD ;b
219 return item 2a F G H I J m g {d~cb P Q R S T n h |dadc ; = ? @ [ u i }dbdd { | } ~ abv j ~dcde fbgbhbibjbw k aeddf obpbqbrbsbx l beed
220 return first_item 2a =b}f?b@b[b]bE VbF G H I J m g {d)e*efdgdhdidjdkdldmdndodpd~fagbgcgdgegfggghgigqdo K L JbKbM WbN UcXbVcYbWc+ , - xbyb^b/cpf+e,eXcjg-e.e~c_by Zbb `bkg{b|b}b~bO 0bP Q R S T n h |d/e:erdsdtdudvdwdxdydzdAdBdlgmgngogpgqgrgsgtgugCdp U V LbMbW 1bX Yc2bZc3b0c. / : zbAbac:cqf;e=e1cvg?e@eadbcz 4bc ccwgdcecfcgcY 5b; = ? @ [ u i }d[e]eDdEdFdGdHdIdJdKdLdMdNdxgygzgAgBgCgDgEgFgGgOdq Z 0 NbOb1 6b2 hc;cicPd=cQdjckc2c7b3c8b4c] ^ _ BbCblc?crf^e_e5c6cHg`e{ebdmc` A 9bd ncIgocpcqcrc3 !b{ | } ~ abv j ~d|e}eRdSdTdUdVdWdXdYdZd0d1dJgKgLgMgNgOgPgQgRgSg2dr 4 5 PbQb6 #b7 sc@ctc3d[c4ducvc7c$b8c%b9cbbcbdbDbEbwc]csf~eaf!c#cTgbfcfcdxcebB 'be ycUgzcAcBcCc8 (bfbgbhbibjbw k aedfef5d6d7d8d9d!d#d$d%d'd(dVgWgXgYgZg0g1g2g3g4g)ds 9 ! RbSb# )b$ Dc^cEc*d_c+dFcGc$c*b%c+b'ckblbmbFbGbHc`ctfffgf(c)c5ghfifddIcnbC ,bf Jc6gKcLcMcNc% -bobpbqbrbsbx l bejfkf,d-d.d/d:d;d=d?d@d[d]d7g8g9g!g#g$g%g'g(g)g^dt ' ( TbUb) .b* Oc{cPc_d|c`dQcRc*c/b+c:b,ctbubvbHbIbSc}cuflfmf-c.c*gnfofedTcwbD ;b