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 rZdoesdoz&%s %s not match any of the regexes: %sz, z8Additional properties are not allowed (%s %s unexpected)) rsetrrsortedlenjoinmapreprr r) rZaPrrextrasextrarpatternsZverbrrradditionalProperties)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_itemsr0r1rrrradditionalItemsUs  r4ccst||std|fVdS)Nz%r was expected)rr )rconstrrrrrr5is r5c#s<|dsdStfdd|Ds8td|fVdS)Nr,c3s|]}|VqdS)N)is_valid).0element)containsrrr rszcontains..z+None of %r are valid under the given schema)ranyr )rr9rrr)r9rrr9ns  r9ccs.||dsdS||kr*td||fVdS)Nnumberz-%r is less than or equal to the minimum of %r)rr )rminimumrrrrrexclusiveMinimumxs  r>ccs.||dsdS||kr*td||fVdS)Nr<z0%r is greater than or equal to the maximum of %r)rr )rmaximumrrrrrexclusiveMaximums  r@ccs.||dsdS||kr*td||fVdS)Nr<z!%r is less than the minimum of %r)rr )rr=rrrrrr=s  r=ccs.||dsdS||kr*td||fVdS)Nr<z$%r is greater than the maximum of %r)rr )rr?rrrrrr?s  r?ccsR||dsdSt|tr0||}t||k}n||}|rNtd||fVdS)Nr<z%r is not a multiple of %r)r isinstancefloatintr )rZdBrrZquotientfailedrrr multipleOfs  rEccs,||dr(t||kr(td|fVdS)Nr,z%r is too short)rr$r )rmIrrrrrminItemssrGccs,||dr(t||kr(td|fVdS)Nr,z%r is too long)rr$r )rrFrrrrrmaxItemssrHccs,|r(||dr(t|s(td|fVdS)Nr,z%r has non-unique elements)rrr )rZuIrrrrr uniqueItemss rIccs.||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 messagerK)rformatrrrrrrrNs  rNccs,||dr(t||kr(td|fVdS)NrJz%r is too short)rr$r )rmLrrrrr minLengthsrPccs,||dr(t||kr(td|fVdS)NrJz%r is too long)rr$r )rrOrrrrr maxLengthsrQc 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 dependencyeachrMrrrrrRs   rRc#s`|dks|dkrBt|tfdd|Dr\td||fVn||kr\td||fVdS)Nrr c3s|]}t|kVqdS)N)r)r7rS)unbooledrrr:szenum..z%r is not one of %r)rallr )rZenumsrrr)rTrenums rVc cst|jdd}|dkrL|j|"}x|||D] }|Vq2WWdQRXnJ|j|\}}|j|z x|||D] }|VqxWWd|jXdS)Nresolve)getattrZresolverZ resolvingrrWZ push_scopeZ pop_scope)rrefrrrWZresolvedrZscoperrrrYs rYc#s4t|}tfdd|Ds0tt|VdS)Nc3s|]}|VqdS)N)r)r7type)rrrrr:sztype..)rr;r r)rtypesrrr)rrrrZ srZccsX||dsdSxBt|D]6\}}||krx$|j|||||dD] }|VqBWqWdS)Nr )r r)rr r)r propertiesrrrrrrrrr\s  r\ccs8||dsdSx"|D]}||krtd|VqWdS)Nr z%r is a required property)rr )rrequiredrrrrrrr]#s   r]ccs,||dr(t||kr(td|fVdS)Nr z"%r does not have enough properties)rr$r )rmPrrrrr minProperties+sr_ccs<||dsdS||dr8t||kr8td|fVdS)Nr z%r has too many properties)rr$r )rr^rrrrr maxProperties2s r`ccs:x4t|D](\}}x|j|||dD] }|Vq$Wq WdS)N)r)r.r)rallOfrrr0rrrrrra9sraccsVg}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_errorsr0rerrsrrrre?srec #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)rbcs g|]\}}|r|qSr)r6)r7is)rrrr \szoneOf..z, css|]}t|VqdS)N)r')r7rrrrr:_szoneOf..z%r is valid under each of %s)r.rcrrdr appendr%) roneOfrrZ subschemasrfr0rrgZ first_validZ more_validZreprsr)rrrrlMs"  rlccs"|||rtd||fVdS)Nz%r is not allowed for %r)r6r )rZ not_schemarrrrrnot_es rmccsr|||r>d|krn|d}xP|j||ddD] }|Vq.Wn0d|krn|d}x|j||ddD] }|Vq`WdS)Nthen)relse)r6r)rZ if_schemarrrnrZelse_rrrif_ls  rp).rZjsonschema._utilsrrrrrrrZjsonschema.exceptionsr r Zjsonschema.compatr rrr+r/r4r5r9r>r@r=r?rErGrHrIrrNrPrQrRrVrYrZr\r]r_r`rarerlrmrprrrrsF$