a kiÅ]·-ã@sLddlZddlmZmZmZmZmZmZmZddl m Z m Z ddl m Z dd„Zdd„Zd d „Zd d „Zd d„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Z d+d,„Z!d-d.„Z"d/d0„Z#d1d2„Z$d3d4„Z%d5d6„Z&d7d8„Z'd9d:„Z(d;d<„Z)d=d>„Z*d?d@„Z+dAdB„Z,dCdD„Z-dS)EéN)Ú ensure_listÚequalÚ extras_msgÚfind_additional_propertiesÚ types_msgÚunboolÚuniq)Ú FormatErrorÚValidationError)Ú iteritemsc csb| |d¡sdSt|ƒD]D\}}t|ƒD]2\}}t ||¡r(|j||||d�D] }|VqNq(qdS©NÚobject©ÚpathÚ schema_path)Úis_typer ÚreÚsearchÚdescend) Ú validatorÚpatternPropertiesÚinstanceÚschemaÚpatternÚ subschemaÚkÚvÚerror©rú:/usr/lib/python3.9/site-packages/jsonschema/_validators.pyrs  ÿ rccs8| |d¡sdS|D]}|j||d�D] }|Vq&qdS)Nr )rr)rr)rÚ propertyNamesrrÚpropertyrrrrr s þ r c csØ| |d¡sdStt||ƒƒ}| |d¡rV|D]$}|j||||d�D] }|VqFq.n~|sÔ|rÔd|vr¾t|dƒ}t|ƒdkr„d}nd}dd ttt|ƒƒ¡|d tt|ƒ¡f}t |ƒVnd }t |t |ƒƒVdS) Nr ©rréZdoesZdoz&%s %s not match any of the regexes: %sú, z8Additional properties are not allowed (%s %s unexpected)) rÚsetrrÚsortedÚlenÚjoinÚmapÚreprr r) rZaPrrÚextrasZextrarÚpatternsZverbrrrÚadditionalProperties)s*     ý r-ccsŠ| |d¡sdS| |d¡rXtt|ƒ|ƒD]*\\}}}|j||||d�D] }|VqHq*n.t|ƒD]$\}}|j|||d�D] }|Vqxq`dS)NÚarrayrr")rÚzipÚ enumerater)rÚitemsrrÚindexÚitemrrrrrr1Es  ÿ  r1c csÆ| |d¡r | | di¡d¡r$dSt| dg¡ƒ}| |d¡r|t||d…|d�D]$\}}|j|||d�D] }|VqlqTnF|sÂt|ƒt| dg¡ƒkrÂd}t|t|t| dg¡ƒd…ƒƒVdS)Nr.r1r )Ústartr"z3Additional items are not allowed (%s %s unexpected))rÚgetr'r0rr r)rZaIrrZ len_itemsr2r3rrrrÚadditionalItemsUs" ÿþ  ÿÿr6ccst||ƒstd|fƒVdS)Nz%r was expected)rr )rÚconstrrrrrr7is r7c#s<ˆ |d¡sdSt‡‡fdd„|Dƒƒs8td|fƒVdS)Nr.c3s|]}ˆ |ˆ¡VqdS©N©Úis_valid)Ú.0Úelement©ÚcontainsrrrÚ rózcontains..z+None of %r are valid under the given schema)rÚanyr )rr>rrrr=rr>ns  ÿr>ccs.| |d¡sdS||kr*td||fƒVdS)NÚnumberz-%r is less than or equal to the minimum of %r©rr ©rÚminimumrrrrrÚexclusiveMinimumxs ÿÿrFccs.| |d¡sdS||kr*td||fƒVdS)NrBz0%r is greater than or equal to the maximum of %rrC©rÚmaximumrrrrrÚexclusiveMaximum„s ÿÿrIccs.| |d¡sdS||kr*td||fƒVdS)NrBz!%r is less than the minimum of %rrCrDrrrrE�s   ÿrEccs.| |d¡sdS||kr*td||fƒVdS)NrBz$%r is greater than the maximum of %rrCrGrrrrHšs   ÿrHccsR| |d¡sdSt|tƒr0||}t|ƒ|k}n||}|rNtd||fƒVdS)NrBz%r is not a multiple of %r)rÚ isinstanceÚfloatÚintr )rZdBrrZquotientZfailedrrrÚ multipleOf¤s  rMccs,| |d¡r(t|ƒ|kr(td|fƒVdS)Nr.ú%r is too short©rr'r ©rZmIrrrrrÚminItems²srQccs,| |d¡r(t|ƒ|kr(td|fƒVdS)Nr.ú%r is too longrOrPrrrÚmaxItems·srSccs,|r(| |d¡r(t|ƒs(td|fƒVdS)Nr.z%r has non-unique elements)rrr )rZuIrrrrrÚ uniqueItems¼sÿ þýrTccs.| |d¡r*t ||¡s*td||fƒVdS)NÚstringz%r does not match %r)rrrr )rZpatrnrrrrrrÅs  ÿ þrc csX|jdurTz|j ||¡Wn6tyR}zt|j|jd�VWYd}~n d}~00dS)N)Úcause)Zformat_checkerÚcheckr r ÚmessagerV)rÚformatrrrrrrrYÍs  rYccs,| |d¡r(t|ƒ|kr(td|fƒVdS)NrUrNrO©rZmLrrrrrÚ minLengthÕsr[ccs,| |d¡r(t|ƒ|kr(td|fƒVdS)NrUrRrOrZrrrÚ maxLengthÚsr\c cs‚| |d¡sdSt|ƒD]d\}}||vr*q| |d¡r`|D]"}||vr:d}t|||fƒVq:q|j|||d�D] }|VqpqdS)Nr r.z%r is a dependency of %r©r)rr r r) rÚ dependenciesrrr!Z dependencyÚeachrXrrrrr^ßs  ÿ r^c#s`|dks|dkrBt|ƒ‰t‡fdd„|Dƒƒr\td||fƒVn||vr\td||fƒVdS)Nrr#c3s|]}ˆt|ƒkVqdSr8)r)r;r_©Zunbooledrrr?ör@zenum..z%r is not one of %r)rÚallr )rZenumsrrrr`rÚenumós rbccs°t|jddƒ}|dur\|j |¡�(}| ||¡D] }|Vq0Wdƒq¬1sP0YnP|j |¡\}}|j |¡z&| ||¡D] }|Vq†W|j ¡n |j ¡0dS)NÚresolve)ÚgetattrZresolverZ resolvingrrcZ push_scopeZ pop_scope)rÚrefrrrcZresolvedrZscoperrrreüs(  rec#s4t|ƒ}t‡‡fdd„|Dƒƒs0ttˆ|ƒƒVdS)Nc3s|]}ˆ ˆ|¡VqdSr8)r)r;Útype©rrrrr?r@ztype..)rrAr r)rÚtypesrrrrgrrf srfccsP| |d¡sdSt|ƒD]2\}}||vr|j|||||d�D] }|Vq>qdSr )rr r)rÚ propertiesrrr!rrrrrris ü riccs4| |d¡sdS|D]}||vrtd|ƒVqdS)Nr z%r is a required propertyrC)rÚrequiredrrr!rrrrj#s  rjccs,| |d¡r(t|ƒ|kr(td|fƒVdS)Nr z"%r does not have enough propertiesrO©rZmPrrrrrÚ minProperties+sÿrlccs<| |d¡sdS| |d¡r8t|ƒ|kr8td|fƒVdS)Nr z%r has too many propertiesrOrkrrrÚ maxProperties2s rmccs2t|ƒD]$\}}|j|||d�D] }|Vq qdS)Nr])r0r)rÚallOfrrr2rrrrrrn9srnccsTg}t|ƒD].\}}t|j|||d�ƒ}|s0qP| |¡q td|f|d�VdS)Nr]ú.%r is not valid under any of the given schemas©Úcontext)r0ÚlistrÚextendr )rÚanyOfrrÚ all_errorsr2rÚerrsrrrrt?s þrtc #s¤t|ƒ}g}|D]2\}}tˆjˆ||d�ƒ}|s8|} qX| |¡qtdˆf|d�V‡‡fdd„|Dƒ} | r |  | ¡d dd„| Dƒ¡} td ˆ| fƒVdS) Nr]rorpcs g|]\}}ˆ ˆ|¡r|‘qSrr9)r;ÚiÚsrgrrÚ \r@zoneOf..r$css|]}t|ƒVqdSr8)r*)r;rrrrr?_r@zoneOf..z%r is valid under each of %s)r0rrrrsr Úappendr() rÚoneOfrrZ subschemasrur2rrvZ first_validZ more_validZreprsrrgrr{Ms&  þ  ÿr{ccs"| ||¡rtd||fƒVdS)Nz%r is not allowed for %r)r:r )rZ not_schemarrrrrÚnot_es  ÿr|ccsj| ||¡r:d|vrf|d}|j||dd�D] }|Vq,n,d|vrf|d}|j||dd�D] }|VqZdS)NÚthenr]Úelse)r:r)rZ if_schemarrr}rZelse_rrrÚif_ls  r).rZjsonschema._utilsrrrrrrrZjsonschema.exceptionsr r Zjsonschema.compatr rr r-r1r6r7r>rFrIrErHrMrQrSrTrrYr[r\r^rbrerfrirjrlrmrnrtr{r|rrrrrÚsF$