B pSe-@sLddlZddlmZmZmZmZmZmZmZddl m Z m Z ddl m Z ddZddZd d Zd d Zd dZddZddZddZddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Z d+d,Z!d-d.Z"d/d0Z#d1d2Z$d3d4Z%d5d6Z&d7d8Z'd9d:Z(d;d<Z)d=d>Z*d?d@Z+dAdBZ,dCdDZ-dS)EN) ensure_listequal extras_msgfind_additional_properties types_msgunbooluniq) FormatErrorValidationError) iteritemsc csn||dsdSxXt|D]L\}}xBt|D]6\}}t||r,x |j||||dD] }|VqTWq,WqWdS)Nobject)path schema_path)is_typer researchdescend) validatorpatternPropertiesinstanceschemapattern subschemakverrorrG/opt/alt/python37/lib/python3.7/site-packages/jsonschema/_validators.pyrs  rccs@||dsdSx*|D]"}x|j||dD] }|Vq*WqWdS)Nr )rr)rr)r propertyNamesrrpropertyrrrrrs   rc cs||dsdStt||}||dr^x|D](}x"|j||||dD] }|VqJWq0Wn~|s|rd|krt|d}t|dkrd}nd}ddttt||dtt|f}t |Vnd }t |t |VdS) Nr )r rZdoesZdoz&%s %s not match any of the regexes: %sz, z8Additional properties are not allowed (%s %s unexpected)) rsetrrsortedlenjoinmapreprr r) rZaPrrZextrasZextrarZpatternsZverbrrradditionalProperties)s(      r'ccs||dsdS||dr`xxtt||D].\\}}}x |j||||dD] }|VqLWq,Wn6x4t|D](\}}x|j|||dD] }|VqWqjWdS)Narray)r r)r )rzip enumerater)ritemsrrindexitemrrrrrr+Es  r+c cs||dr ||didr$dSt|dg}||drxt||d|dD](\}}x|j|||dD] }|VqpWqVWnF|st|t|dgkrd}t|t|t|dgdVdS)Nr(r+r )start)r z3Additional items are not allowed (%s %s unexpected))rgetr#r*rr r)rZaIrrZ len_itemsr,r-rrrradditionalItemsUs  r0ccst||std|fVdS)Nz%r was expected)rr )rconstrrrrrr1is r1c#s<|dsdStfdd|Ds8td|fVdS)Nr(c3s|]}|VqdS)N)is_valid).0element)containsrrr rszcontains..z+None of %r are valid under the given schema)ranyr )rr5rrr)r5rrr5ns  r5ccs.||dsdS||kr*td||fVdS)Nnumberz-%r is less than or equal to the minimum of %r)rr )rminimumrrrrrexclusiveMinimumxs  r:ccs.||dsdS||kr*td||fVdS)Nr8z0%r is greater than or equal to the maximum of %r)rr )rmaximumrrrrrexclusiveMaximums  r<ccs.||dsdS||kr*td||fVdS)Nr8z!%r is less than the minimum of %r)rr )rr9rrrrrr9s  r9ccs.||dsdS||kr*td||fVdS)Nr8z$%r is greater than the maximum of %r)rr )rr;rrrrrr;s  r;ccsR||dsdSt|tr0||}t||k}n||}|rNtd||fVdS)Nr8z%r is not a multiple of %r)r isinstancefloatintr )rZdBrrZquotientZfailedrrr multipleOfs  r@ccs,||dr(t||kr(td|fVdS)Nr(z%r is too short)rr#r )rmIrrrrrminItemssrBccs,||dr(t||kr(td|fVdS)Nr(z%r is too long)rr#r )rrArrrrrmaxItemssrCccs,|r(||dr(t|s(td|fVdS)Nr(z%r has non-unique elements)rrr )rZuIrrrrr uniqueItemss rDccs.||dr*t||s*td||fVdS)Nstringz%r does not match %r)rrrr )rZpatrnrrrrrrs  rc csV|jdk rRy|j||Wn4tk rP}zt|j|jdVWdd}~XYnXdS)N)cause)Zformat_checkercheckr r messagerF)rformatrrrrrrrIs  rIccs,||dr(t||kr(td|fVdS)NrEz%r is too short)rr#r )rmLrrrrr minLengthsrKccs,||dr(t||kr(td|fVdS)NrEz%r is too long)rr#r )rrJrrrrr maxLengthsrLc cs||dsdSxxt|D]l\}}||kr,q||drfxL|D]"}||kr>d}t|||fVq>Wqx|j|||dD] }|VqxWqWdS)Nr r(z%r is a dependency of %r)r)rr r r) r dependenciesrrrZ dependencyeachrHrrrrrMs   rMc#s`|dks|dkrBt|tfdd|Dr\td||fVn||kr\td||fVdS)Nrr c3s|]}t|kVqdS)N)r)r3rN)unbooledrrr6szenum..z%r is not one of %r)rallr )rZenumsrrr)rOrenums rQc cst|jdd}|dkrL|j|"}x|||D] }|Vq2WWdQRXnJ|j|\}}|j|z x|||D] }|VqxWWd|jXdS)Nresolve)getattrZresolverZ resolvingrrRZ push_scopeZ pop_scope)rrefrrrRZresolvedrZscoperrrrTs rTc#s4t|}tfdd|Ds0tt|VdS)Nc3s|]}|VqdS)N)r)r3type)rrrrr6sztype..)rr7r r)rtypesrrr)rrrrU srUccsX||dsdSxBt|D]6\}}||krx$|j|||||dD] }|VqBWqWdS)Nr )r r)rr r)r propertiesrrrrrrrrrWs  rWccs8||dsdSx"|D]}||krtd|VqWdS)Nr z%r is a required property)rr )rrequiredrrrrrrrX#s   rXccs,||dr(t||kr(td|fVdS)Nr z"%r does not have enough properties)rr#r )rmPrrrrr minProperties+srZccs<||dsdS||dr8t||kr8td|fVdS)Nr z%r has too many properties)rr#r )rrYrrrrr maxProperties2s r[ccs:x4t|D](\}}x|j|||dD] }|Vq$Wq WdS)N)r)r*r)rallOfrrr,rrrrrr\9sr\ccsVg}xLt|D],\}}t|j|||d}|s0P||qWtd|f|dVdS)N)rz.%r is not valid under any of the given schemas)context)r*listrextendr )ranyOfrr all_errorsr,rerrsrrrr`?sr`c #st|}g}xL|D]0\}}tj||d}|s8|} P||qWtdf|dVfdd|D} | r| | ddd| D} td | fVdS) N)rz.%r is not valid under any of the given schemas)r]cs g|]\}}|r|qSr)r2)r3is)rrrr \szoneOf..z, css|]}t|VqdS)N)r&)r3rrrrr6_szoneOf..z%r is valid under each of %s)r*r^rr_r appendr$) roneOfrrZ subschemasrar,rrbZ first_validZ more_validZreprsr)rrrrgMs"  rgccs"|||rtd||fVdS)Nz%r is not allowed for %r)r2r )rZ not_schemarrrrrnot_es rhccsr|||r>d|krn|d}xP|j||ddD] }|Vq.Wn0d|krn|d}x|j||ddD] }|Vq`WdS)Nthen)relse)r2r)rZ if_schemarrrirZelse_rrrif_ls  rk).rZjsonschema._utilsrrrrrrrZjsonschema.exceptionsr r Zjsonschema.compatr rrr'r+r0r1r5r:r<r9r;r@rBrCrDrrIrKrLrMrQrTrUrWrXrZr[r\r`rgrhrkrrrrsF$