o
    ge:                     @   sl  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
 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 Z/dIdJ Z0dKdL Z1dS )M    )FractionN)ensure_listequal
extras_msgfind_additional_properties%find_evaluated_item_indexes_by_schema&find_evaluated_property_keys_by_schema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   P/var/www/html/chatdoc2/venv/lib/python3.10/site-packages/jsonschema/_keywords.pyr      s   r   c                 c   s4    |  |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r*|D ]}| j|| ||dE d H  qd S |sx|rzd|v rgt|dkr:dnd}ddd	 t|D }dd
d	 t|d D }| d| d| }	t|	V  d S d}	t|	tt|t	d V  d S d S d S )Nr   )r   r      doesdo, c                 s       | ]}t |V  qd S Nrepr.0eachr   r   r   	<genexpr>0       z'additionalProperties.<locals>.<genexpr>c                 s   r&   r'   r(   r*   r   r   r   r-   1   s    
 z not match any of the regexes: z8Additional properties are not allowed (%s %s unexpected)key)
r   setr   r   lenjoinsortedr   r   str)
r   aPr   r   extrasextraverbjoinedpatternserrorr   r   r   additionalProperties$   s(   

r>   c           
   	   c   s    |  |ds	d S t|dg }t|}|| }|dkrd S |du rL|dkr-||d  n|| }|dkr7dnd}td| d	| d
| d|V  d S t||D ]}	| j||	 ||	dE d H  qQd S )NarrayprefixItemsr   Fr"   r   itemzExpected at most r/   z but found z extra: )r   r   r   )r   r3   getr   ranger   )
r   r   r   r   prefixtotalr9   restrA   indexr   r   r   r   ;   s.   
r   c                 c   s$    t ||st|dV  d S d S )Nz was expected)r   r   )r   constr   r   r   r   r   rH   U   s   
rH   c           	      c   s    |  |ds	d S d}|dd}|dt|}| j|d}|D ]}||r?|d7 }||kr?td| dd|d	V   d S q!||k ra|sPt|d
V  d S td| d| dd|d	V  d S d S )Nr?   r   minContainsr"   maxContainsr   z8Too many items match the given schema (expected at most ))r   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   rB   r3   evolveis_validr   )	r   containsr   r   matchesmin_containsmax_containscontains_validatorr,   r   r   r   rP   Z   sF   

rP   c                 c   s6    |  |ds	d S ||krt|d|V  d S d S )Nnumberz) is less than or equal to the minimum of r   r   )r   minimumr   r   r   r   r   exclusiveMinimum      
rX   c                 c   s6    |  |ds	d S ||krt|d|V  d S d S )NrU   z, is greater than or equal to the maximum of rV   )r   maximumr   r   r   r   r   exclusiveMaximum   rY   r[   c                 c   s:    |  |ds	d S ||k r|d|}t|V  d S d S )NrU   z is less than the minimum of rV   )r   rW   r   r   messager   r   r   rW         rW   c                 c   s:    |  |ds	d S ||kr|d|}t|V  d S d S )NrU   z  is greater than the maximum of rV   )r   rZ   r   r   r\   r   r   r   rZ      r]   rZ   c                 c   s    |  |ds	d S t|tr/|| }zt||k}W n ty.   t|t| jdk}Y nw || }|rAt|d| V  d S d S )NrU   r"   z is not a multiple of )r   
isinstancefloatintOverflowErrorr   denominatorr   )r   dBr   r   quotientfailedr   r   r   
multipleOf   s   
rf   c                 c   J    |  |dr!t||k r#|dkrdnd}t|d| V  d S d S d S )Nr?   r"   should be non-emptyis too shortr/   r   r3   r   r   mIr   r   r\   r   r   r   minItems   
   rm   c                 c   J    |  |dr!t||kr#|dkrdnd}t|d| V  d S d S d S )Nr?   r   is expected to be emptyis too longr/   rj   rk   r   r   r   maxItems   rn   rr   c                 c   s:    |r|  |drt|st|dV  d S d S d S d S )Nr?   z has non-unique elements)r   r	   r   )r   uIr   r   r   r   r   uniqueItems   s   
rt   c                 c   s:    |  |drt||st|d|V  d S d S d S )Nstringz does not match )r   r   r   r   )r   patrnr   r   r   r   r   r      s   

r   c              
   c   s^    | j d ur-z
| j || W d S  ty, } zt|j|jdV  W Y d }~d S d }~ww d S )N)cause)format_checkercheckr
   r   r\   rw   )r   formatr   r   r=   r   r   r   rz      s   
 rz   c                 c   rg   )Nru   r"   rh   ri   r/   rj   r   mLr   r   r\   r   r   r   	minLength   rn   r}   c                 c   ro   )Nru   r   rp   rq   r/   rj   r{   r   r   r   	maxLength   rn   r~   c                 c   s\    |  |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   r      s   
r   c                 c   sH    |  |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!   r   r   r   r   r     s   r   c                 #   s4    t  fdd|D rt d|V  d S d S )Nc                 3   s    | ]	}t |  V  qd S r'   )r   r*   r   r   r   r-         zenum.<locals>.<genexpr>z is not one of )allr   )r   enumsr   r   r   r   r   enum  s   r   c                 c       | j ||dE d H  d S N)refr   _validate_reference)r   r   r   r   r   r   r   r        r   c                 c   r   r   r   )r   
dynamicRefr   r   r   r   r   r     r   r   c                 #   sR    t |}t fdd|D s'ddd |D }t d| V  d S 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   r&   r'   r(   r   r   r   r   r-     r.   z is not of type )r   anyr4   r   )r   typesr   r   reprsr   r   r   r     s   r   c                 c   sL    |  |ds	d S | D ]\}}||v r#| j|| |||dE d H  qd S r   r   )r   
propertiesr   r   r!   r   r   r   r   r   "  s   r   c                 c   s8    |  |ds	d S |D ]}||vrt|dV  qd S )Nr   z is a required propertyrV   )r   requiredr   r   r!   r   r   r   r   0  s   r   c                 c   rg   )Nr   r"   rh   zdoes not have enough propertiesr/   rj   r   mPr   r   r\   r   r   r   minProperties8  s   r   c                 c   sZ    |  |ds	d S |  |dr)t||kr+|dkrdnd}t|d| V  d S d S d S )Nr   r   rp   zhas too many propertiesr/   rj   r   r   r   r   maxPropertiesA  s   r   c                 c   s.    t |D ]\}}| j|||dE d H  qd S )Nr   )	enumerater   )r   allOfr   r   rG   r   r   r   r   r   L  s   r   c                 c   sX    g }t |D ]\}}t| j|||d}|s d S || qt|d|dV  d S )Nr   , is not valid under any of the given schemascontext)r   listr   extendr   )r   anyOfr   r   
all_errorsrG   r   errsr   r   r   r   Q  s   r   c                 #   s    t |}g }|D ]\}}tj ||d}|s|}	 n|| q	t d|dV   fdd|D }
|
rT|
|	 ddd |
D }t d	| V  d S d S )
Nr   r   r   c                    s&   g | ]\}}j |d  r|qS )rK   )rN   rO   )r+   _r,   r   r   r   
<listcomp>n  s    zoneOf.<locals>.<listcomp>r%   c                 s   r&   r'   r(   )r+   r   r   r   r   r-   t  r.   zoneOf.<locals>.<genexpr>z is valid under each of )r   r   r   r   r   appendr4   )r   oneOfr   r   
subschemasr   rG   r   r   first_valid
more_validr   r   r   r   r   _  s*   
r   c                 c   s4    | j |d|r|d|}t|V  d S d S )NrK   z should not be valid under )rN   rO   r   )r   
not_schemar   r   r\   r   r   r   not_x  s
   r   c                 c   sp    | j |d|r!d|v r|d }| j||ddE d H  d S d S d|v r6|d }| j||ddE d H  d S d S )NrK   thenr   else)rN   rO   r   )r   	if_schemar   r   r   else_r   r   r   if_~  s   r   c                 #   sV    |  |ds	d S t| ||  fddt|D }|r)d}t|t| V  d S d S )Nr?   c                    s   g | ]
\}}| vr|qS r   r   )r+   rG   rA   evaluated_item_indexesr   r   r     s
    z$unevaluatedItems.<locals>.<listcomp>z4Unevaluated items are not allowed (%s %s unexpected))r   r   r   r   r   )r   unevaluatedItemsr   r   unevaluated_itemsr=   r   r   r   r     s   
r   c           
      c   s    |  |ds	d S t| ||}g }|D ]}||vr,| j|| |||dD ]}|| q$q|rS|du rFd}t|td}	t|t|	 V  d S d}t|t| V  d S d S )Nr   r   Fz9Unevaluated properties are not allowed (%s %s unexpected)r0   z[Unevaluated properties are not valid under the given schema (%s %s unevaluated and invalid))r   r   r   r   r5   r6   r   r   )
r   unevaluatedPropertiesr   r   evaluated_keysunevaluated_keysr!   r   r=   r8   r   r   r   r     s4   
r   c                 c   sJ    |  |ds	d S tt||D ]\\}}}| j||||dE d H  qd S )Nr?   )r   r   r   r   )r   zipr   r   )r   r@   r   r   rG   rA   r   r   r   r   r@     s   r@   )2	fractionsr   r   jsonschema._utilsr   r   r   r   r   r   r	   jsonschema.exceptionsr
   r   r   r    r>   r   rH   rP   rX   r[   rW   rZ   rf   rm   rr   rt   r   rz   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r@   r   r   r   r   <module>   sP    $	%				
 