a
    d:                     @   sx  d dl mZ d dlZd dlmZmZmZmZmZm	Z	m
Z
mZ d dlmZmZ dd Zdd Zd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Z d)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.dEdF Z/dGdH Z0dIdJ Z1dKdL Z2dMdN Z3dS )O    )FractionN)ensure_listequal
extras_msgfind_additional_properties%find_evaluated_item_indexes_by_schema&find_evaluated_property_keys_by_schemaunbooluniq)FormatErrorValidationErrorc                 c   s\   |  |dsd S | D ]>\}}| D ],\}}t||r(| j||||dE d H  q(qd S Nobjectpathschema_path)is_typeitemsresearchdescend)	validatorpatternPropertiesinstanceschemapattern	subschemakv r   _/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/jsonschema/_validators.pyr      s    r   c                 c   s2   |  |dsd S |D ]}| j||dE d H  qd S )Nr   )r   r   )r   r   )r   propertyNamesr   r   propertyr   r   r    r!      s    r!   c           
      c   s   |  |dsd S tt||}|  |drP|D ]}| j|| ||dE d H  q.n|s|rd|v rt|dkrpdnd}ddd	 t|D }dd
d	 t|d D }| d| d| }	t|	V  nd}	t|	t| V  d S )Nr   r   r      ZdoesZdo, c                 s   s   | ]}t |V  qd S Nrepr.0eachr   r   r    	<genexpr>1       z'additionalProperties.<locals>.<genexpr>c                 s   s   | ]}t |V  qd S r&   r'   r)   r   r   r    r,   2   s    z not match any of the regexes: z8Additional properties are not allowed (%s %s unexpected))	r   setr   r   lenjoinsortedr   r   )
r   ZaPr   r   extrasextraZverbZjoinedpatternserrorr   r   r    additionalProperties%   s"    

r7   c                 c   s   |  |dsd S t|dg }t|}|du rT||krTd| d| }t|V  n*t||D ]}| j|| ||dE d H  q^d S )NarrayprefixItemsFzExpected at most z items, but found )r   r   r   )r   r0   getr   ranger   )r   r   r   r   prefixtotalmessageindexr   r   r    r   <   s    r   c              	   c   s   |  |dr |  |di dr$d S t|dg }|  |drvt||d  |dD ]\}}| j|||dE d H  qTnF|st|t|dg krd}t|t|t|dg d   V  d S )Nr8   r   r   )startr#   z3Additional items are not allowed (%s %s unexpected))r   r:   r0   	enumerater   r   r   )r   ZaIr   r   Z	len_itemsr?   itemr6   r   r   r    additionalItemsN   s    
rC   c                 c   s   t ||st|dV  d S )Nz was expected)r   r   )r   constr   r   r   r   r    rD   `   s    
rD   c                 c   s   |  |dsd S d}|dd}|dt|}|D ]D}| j|d|r4|d7 }||kr4td| dd|d	V   d S q4||k r|st|d
V  ntd| d| dd|d	V  d S )Nr8   r   ZminContainsr$   ZmaxContainsr   z8Too many items match the given schema (expected at most ))r   Zvalidator_valuez1 does not contain items matching the given schemaz8Too few items match the given schema (expected at least z
 but only z	 matched))r   r:   r0   evolveis_validr   )r   containsr   r   matchesZmin_containsZmax_containsr+   r   r   r    rI   e   s>    rI   c                 c   s0   |  |dsd S ||kr,t|d|V  d S )Nnumberz) is less than or equal to the minimum of r   r   )r   minimumr   r   r   r   r    exclusiveMinimum   s    rN   c                 c   s0   |  |dsd S ||kr,t|d|V  d S )NrK   z, is greater than or equal to the maximum of rL   )r   maximumr   r   r   r   r    exclusiveMaximum   s    rP   c                 c   s4   |  |dsd S ||k r0|d|}t|V  d S )NrK   z is less than the minimum of rL   )r   rM   r   r   r>   r   r   r    rM      s
    rM   c                 c   s4   |  |dsd S ||kr0|d|}t|V  d S )NrK   z  is greater than the maximum of rL   )r   rO   r   r   r>   r   r   r    rO      s
    rO   c                 c   s   |  |dsd S t|tr^|| }zt||k}W qf tyZ   t|t| jdk}Y qf0 n|| }|r~t|d| V  d S )NrK   r$   z is not a multiple of )r   
isinstancefloatintOverflowErrorr   denominatorr   )r   ZdBr   r   Zquotientfailedr   r   r    
multipleOf   s    
rW   c                 c   s,   |  |dr(t||k r(t|dV  d S )Nr8    is too shortr   r0   r   r   ZmIr   r   r   r   r    minItems   s    r[   c                 c   s,   |  |dr(t||kr(t|dV  d S )Nr8    is too longrY   rZ   r   r   r    maxItems   s    r]   c                 c   s,   |r(|  |dr(t|s(t|dV  d S )Nr8   z has non-unique elements)r   r
   r   )r   ZuIr   r   r   r   r    uniqueItems   s    
r^   c                 c   s0   |  |dr,t||s,t|d|V  d S )Nstringz does not match )r   r   r   r   )r   Zpatrnr   r   r   r   r    r      s
    

r   c              
   c   sX   | j d urTz| j || W n6 tyR } zt|j|jdV  W Y d }~n
d }~0 0 d S )N)cause)Zformat_checkercheckr   r   r>   r`   )r   formatr   r   r6   r   r   r    rb      s
    
rb   c                 c   s,   |  |dr(t||k r(t|dV  d S )Nr_   rX   rY   r   ZmLr   r   r   r   r    	minLength   s    rd   c                 c   s,   |  |dr(t||kr(t|dV  d S )Nr_   r\   rY   rc   r   r   r    	maxLength   s    re   c                 c   sZ   |  |dsd S | D ]<\}}||vr*q|D ]$}||vr.|d|}t|V  q.qd S )Nr   z is a dependency of )r   r   r   )r   dependentRequiredr   r   r"   
dependencyr+   r>   r   r   r    rf      s    rf   c                 c   sF   |  |dsd S | D ](\}}||vr*q| j|||dE d H  qd S )Nr   r   r   r   r   )r   dependentSchemasr   r   r"   rg   r   r   r    rj     s    rj   c                 #   sd   |dks|dkrDt | t fdd|D r`t|d|V  n||vr`t|d|V  d S )Nr   r$   c                 3   s   | ]} t |kV  qd S r&   )r	   r)   Zunbooledr   r    r,     r-   zenum.<locals>.<genexpr>z is not one of )r	   allr   )r   enumsr   r   r   rk   r    enum  s    rn   c                 c   s   | j ||dE d H  d S N)refr   Z_validate_reference)r   rp   r   r   r   r   r    rp     s    rp   c                 c   s   | j ||dE d H  d S ro   rq   )r   
dynamicRefr   r   r   r   r    rr     s    rr   c                 #   sL   t |}t fdd|D sHddd |D }t d| V  d S )Nc                 3   s   | ]}  |V  qd S r&   )r   r*   typer   r   r   r    r,   &  r-   ztype.<locals>.<genexpr>r%   c                 s   s   | ]}t |V  qd S r&   r'   rs   r   r   r    r,   '  r-   z is not of type )r   anyr1   r   )r   typesr   r   reprsr   ru   r    rt   #  s    rt   c                 c   sJ   |  |dsd S | D ],\}}||v r| j|| |||dE d H  qd S r   ri   )r   
propertiesr   r   r"   r   r   r   r    ry   +  s    ry   c                 c   s6   |  |dsd S |D ]}||vrt|dV  qd S )Nr   z is a required propertyrL   )r   requiredr   r   r"   r   r   r    rz   9  s
    rz   c                 c   s,   |  |dr(t||k r(t|dV  d S )Nr   z  does not have enough propertiesrY   r   ZmPr   r   r   r   r    minPropertiesA  s    r|   c                 c   s<   |  |dsd S |  |dr8t||kr8t|dV  d S )Nr   z has too many propertiesrY   r{   r   r   r    maxPropertiesF  s    r}   c                 c   s,   t |D ]\}}| j|||dE d H  qd S )Nrh   )rA   r   )r   allOfr   r   r?   r   r   r   r    r~   M  s    r~   c                 c   sT   g }t |D ].\}}t| j|||d}|s0 qP|| qt|d|dV  d S )Nrh   , is not valid under any of the given schemascontext)rA   listr   extendr   )r   anyOfr   r   
all_errorsr?   r   errsr   r   r    r   R  s    r   c                 #   s   t |}g }|D ]2\}}tj ||d}|s8|}	 qX|| qt d|dV   fdd|D }
|
r|
|	 ddd |
D }t d	| V  d S )
Nrh   r   r   c                    s&   g | ]\}}j |d  r|qS )rE   )rG   rH   )r*   _r+   ru   r   r    
<listcomp>o  s   zoneOf.<locals>.<listcomp>r%   c                 s   s   | ]}t |V  qd S r&   r'   )r*   r   r   r   r    r,   u  r-   zoneOf.<locals>.<genexpr>z is valid under each of )rA   r   r   r   r   appendr1   )r   oneOfr   r   Z
subschemasr   r?   r   r   Zfirst_validZ
more_validrx   r   ru   r    r   `  s&    
r   c                 c   s.   | j |d|r*|d|}t|V  d S )NrE   z should not be valid under )rG   rH   r   )r   Z
not_schemar   r   r>   r   r   r    not_y  s    r   c                 c   sd   | j |d|r:d|v r`|d }| j||ddE d H  n&d|v r`|d }| j||ddE d H  d S )NrE   thenrh   else)rG   rH   r   )r   Z	if_schemar   r   r   Zelse_r   r   r    if_  s    r   c                 #   sP   |  |dsd S t| ||  fddt|D }|rLd}t|t| V  d S )Nr8   c                    s   g | ]\}}| vr|qS r   r   )r*   r?   rB   Zevaluated_item_indexesr   r    r     s   z$unevaluatedItems.<locals>.<listcomp>z4Unevaluated items are not allowed (%s %s unexpected))r   r   rA   r   r   )r   unevaluatedItemsr   r   Zunevaluated_itemsr6   r   r   r    r     s    
r   c           	      c   s   |  |dsd S t| ||}g }|D ]2}||vr$| j|| |||dD ]}|| qFq$|r|du r|d}t|t| V  nd}t|t| V  d S )Nr   r   Fz9Unevaluated properties are not allowed (%s %s unexpected)z[Unevaluated properties are not valid under the given schema (%s %s unevaluated and invalid))r   r   r   r   r   r   )	r   unevaluatedPropertiesr   r   Zevaluated_keysZunevaluated_keysr"   r   r6   r   r   r    r     s,    
r   c                 c   sH   |  |dsd S tt||D ]$\\}}}| j||||dE d H  qd S )Nr8   )r   r   r   r   )r   ziprA   r   )r   r9   r   r   r?   rB   r   r   r   r    r9     s    r9   )4Z	fractionsr   r   Zjsonschema._utilsr   r   r   r   r   r   r	   r
   Zjsonschema.exceptionsr   r   r   r!   r7   r   rC   rD   rI   rN   rP   rM   rO   rW   r[   r]   r^   r   rb   rd   re   rf   rj   rn   rp   rr   rt   ry   rz   r|   r}   r~   r   r   r   r   r   r   r9   r   r   r   r    <module>   sP   (
#				
