U
    [e-                     @   sL  d dl Z d dlmZmZmZmZmZmZmZ d dl	m
Z
mZ d dl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-dS )E    N)ensure_listequal
extras_msgfind_additional_properties	types_msgunbooluniq)FormatErrorValidationError)	iteritemsc           	      c   sb   |  |dsd S t|D ]D\}}t|D ]2\}}t||r(| j||||dD ]
}|V  qNq(qd S Nobjectpathschema_path)is_typer   researchdescend)		validatorpatternPropertiesinstanceschemapattern	subschemakverror r   X/var/www/html/services/stratfitenv/lib/python3.8/site-packages/jsonschema/_validators.pyr      s       
r   c                 c   s8   |  |dsd S |D ]}| j||dD ]
}|V  q&qd S )Nr   )r   r   )r   r   )r   propertyNamesr   r   propertyr   r   r   r   r       s    
r    c           	      c   s   |  |dsd S tt||}|  |drV|D ]$}| j|| ||dD ]
}|V  qFq.n~|s|rd|krt|d }t|dkrd}nd}ddttt||dtt|f }t	|V  nd	}t	|t
| V  d S )
Nr   r   r      Zdoesdoz&%s %s not match any of the regexes: %s, z8Additional properties are not allowed (%s %s unexpected))r   setr   r   sortedlenjoinmapreprr
   r   )	r   ZaPr   r   extrasextrar   patternsverbr   r   r   additionalProperties)   s*    r0   c                 c   s   |  |dsd S |  |drXtt||D ]*\\}}}| j||||dD ]
}|V  qHq*n.t|D ]$\}}| j|||dD ]
}|V  qxq`d S )Narrayr   r"   )r   zip	enumerater   )r   itemsr   r   indexitemr   r   r   r   r   r4   E   s       
r4   c              	   c   s   |  |dr |  |di dr$d S t|dg }|  |dr|t||d  |dD ]$\}}| j|||dD ]
}|V  qlqTnF|st|t|dg krd}t|t|t|dg d   V  d S )Nr1   r4   r   )startr"   z3Additional items are not allowed (%s %s unexpected))r   getr(   r3   r   r
   r   )r   ZaIr   r   Z	len_itemsr5   r6   r   r   r   r   additionalItemsU   s"    
r9   c                 c   s   t ||std|f V  d S )Nz%r was expected)r   r
   )r   constr   r   r   r   r   r:   i   s    
r:   c                 #   s<    |dsd S t fdd|D s8td|f V  d S )Nr1   c                 3   s   | ]} | V  qd S Nis_valid).0elementcontainsr   r   r   	<genexpr>r   s     zcontains.<locals>.<genexpr>z+None of %r are valid under the given schema)r   anyr
   )r   rA   r   r   r   r@   r   rA   n   s    rA   c                 c   s.   |  |dsd S ||kr*td||f V  d S )Nnumberz-%r is less than or equal to the minimum of %rr   r
   r   minimumr   r   r   r   r   exclusiveMinimumx   s     rH   c                 c   s.   |  |dsd S ||kr*td||f V  d S )NrD   z0%r is greater than or equal to the maximum of %rrE   r   maximumr   r   r   r   r   exclusiveMaximum   s     rK   c                 c   s.   |  |dsd S ||k r*td||f V  d S )NrD   z!%r is less than the minimum of %rrE   rF   r   r   r   rG      s    
rG   c                 c   s.   |  |dsd S ||kr*td||f V  d S )NrD   z$%r is greater than the maximum of %rrE   rI   r   r   r   rJ      s    
rJ   c                 c   sR   |  |dsd S t|tr0|| }t||k}n|| }|rNtd||f V  d S )NrD   z%r is not a multiple of %r)r   
isinstancefloatintr
   )r   ZdBr   r   Zquotientfailedr   r   r   
multipleOf   s    
rP   c                 c   s,   |  |dr(t||k r(td|f V  d S )Nr1   %r is too shortr   r(   r
   r   ZmIr   r   r   r   r   minItems   s    rT   c                 c   s,   |  |dr(t||kr(td|f V  d S )Nr1   %r is too longrR   rS   r   r   r   maxItems   s    rV   c                 c   s,   |r(|  |dr(t|s(td|f V  d S )Nr1   z%r has non-unique elements)r   r   r
   )r   ZuIr   r   r   r   r   uniqueItems   s    
rW   c                 c   s.   |  |dr*t||s*td||f V  d S )Nstringz%r does not match %r)r   r   r   r
   )r   Zpatrnr   r   r   r   r   r      s
    

r   c              
   c   sV   | j d k	rRz| j || W n4 tk
rP } zt|j|jdV  W 5 d }~X Y nX d S )N)cause)Zformat_checkercheckr	   r
   messagerY   )r   formatr   r   r   r   r   r   r\      s
    
r\   c                 c   s,   |  |dr(t||k r(td|f V  d S )NrX   rQ   rR   r   ZmLr   r   r   r   r   	minLength   s    r^   c                 c   s,   |  |dr(t||kr(td|f V  d S )NrX   rU   rR   r]   r   r   r   	maxLength   s    r_   c           	      c   s   |  |dsd S t|D ]d\}}||kr*q|  |dr`|D ]"}||kr:d}t|||f V  q:q| j|||dD ]
}|V  qpqd S )Nr   r1   z%r is a dependency of %rr   )r   r   r
   r   )	r   dependenciesr   r   r!   
dependencyeachr[   r   r   r   r   ra      s       
ra   c                 #   s`   |dks|dkrBt | t fdd|D r\td||f V  n||kr\td||f V  d S )Nr   r#   c                 3   s   | ]} t |kV  qd S r;   )r   )r>   rc   Zunbooledr   r   rB      s     zenum.<locals>.<genexpr>z%r is not one of %r)r   allr
   )r   enumsr   r   r   rd   r   enum   s    rg   c              	   c   s   t | jdd }|d krH| j|}| ||D ]
}|V  q0W 5 Q R X nF| j|\}}| j| z| ||D ]
}|V  qrW 5 | j  X d S )Nresolve)getattrresolverZ	resolvingr   rh   Z
push_scopeZ	pop_scope)r   refr   r   rh   resolvedr   scoper   r   r   rk      s    rk   c                 #   s4   t |}t fdd|D s0tt |V  d S )Nc                 3   s   | ]}  |V  qd S r;   )r   )r>   typer   r   r   r   rB     s     ztype.<locals>.<genexpr>)r   rC   r
   r   )r   typesr   r   r   ro   r   rn     s    rn   c                 c   sP   |  |dsd S t|D ]2\}}||kr| j|| |||dD ]
}|V  q>qd S r   )r   r   r   )r   
propertiesr   r   r!   r   r   r   r   r   rq     s    
rq   c                 c   s4   |  |dsd S |D ]}||krtd| V  qd S )Nr   z%r is a required propertyrE   )r   requiredr   r   r!   r   r   r   rr   #  s
    rr   c                 c   s,   |  |dr(t||k r(td|f V  d S )Nr   z"%r does not have enough propertiesrR   r   ZmPr   r   r   r   r   minProperties+  s    rt   c                 c   s<   |  |dsd S |  |dr8t||kr8td|f V  d S )Nr   z%r has too many propertiesrR   rs   r   r   r   maxProperties2  s    ru   c                 c   s2   t |D ]$\}}| j|||dD ]
}|V  q qd S )Nr`   )r3   r   )r   allOfr   r   r5   r   r   r   r   r   rv   9  s    rv   c                 c   sT   g }t |D ].\}}t| j|||d}|s0 qP|| qtd|f |dV  d S )Nr`   .%r is not valid under any of the given schemascontext)r3   listr   extendr
   )r   anyOfr   r   
all_errorsr5   r   errsr   r   r   r|   ?  s    r|   c                 #   s   t |}g }|D ]2\}}tj ||d}|s8|}	 qX|| qtd f |dV   fdd|D }
|
r|
|	 ddd |
D }td	 |f V  d S )
Nr`   rw   rx   c                    s    g | ]\}}  |r|qS r   r<   )r>   isro   r   r   
<listcomp>\  s      zoneOf.<locals>.<listcomp>r%   c                 s   s   | ]}t |V  qd S r;   )r+   )r>   r   r   r   r   rB   _  s     zoneOf.<locals>.<genexpr>z%r is valid under each of %s)r3   rz   r   r{   r
   appendr)   )r   oneOfr   r   Z
subschemasr}   r5   r   r~   Zfirst_validZ
more_validZreprsr   ro   r   r   M  s&    

r   c                 c   s"   |  ||rtd||f V  d S )Nz%r is not allowed for %r)r=   r
   )r   Z
not_schemar   r   r   r   r   not_e  s    
r   c                 c   sj   |  ||r:d|krf|d }| j||ddD ]
}|V  q,n,d|krf|d }| j||ddD ]
}|V  qZd S )Nthenr`   else)r=   r   )r   Z	if_schemar   r   r   r   Zelse_r   r   r   if_l  s    
r   ).r   Zjsonschema._utilsr   r   r   r   r   r   r   Zjsonschema.exceptionsr	   r
   Zjsonschema.compatr   r   r    r0   r4   r9   r:   rA   rH   rK   rG   rJ   rP   rT   rV   rW   r   r\   r^   r_   ra   rg   rk   rn   rq   rr   rt   ru   rv   r|   r   r   r   r   r   r   r   <module>   sF   $	


		