
    QEe 9                     *   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 Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d  Z*d! Z+d" Z,d# Z-d$ Z.d% Z/d& Z0d' Z1d( Z2dS ))    )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              #   
  K   |                      |d          sd S |                                D ]S\  }}|                                D ]9\  }}t          j        ||          r|                     ||||          E d {V  :Td S Nobjectpathschema_path)is_typeitemsresearchdescend)	validatorpatternPropertiesinstanceschemapattern	subschemakvs           4lib/python3.11/site-packages/jsonschema/_keywords.pyr   r      s      Xx00 /5577  NN$$ 	 	DAqy!$$ $,,yqg -         	     c              #   ~   K   |                      |d          sd S |D ]}|                     ||          E d {V   d S )Nr   )r   r   )r   r   )r   propertyNamesr   r   propertys        r!   r$   r$      sn      Xx00  N N$$h}$MMMMMMMMMMN Nr"   c           	   #     K   |                      |d          sd S t          t          ||                    }|                      |d          r+|D ]&}|                     ||         ||          E d {V  'd S |s|rd|v rt	          |          dk    rdnd}d                    d t          |          D                       }d                    d	 t          |d                   D                       }| d
| d| }	t          |	          V  d S d}	t          |	t          t          |t                              z            V  d S d S d S )Nr   )r   r      doesdo, c              3   4   K   | ]}t          |          V  d S Nrepr.0eachs     r!   	<genexpr>z'additionalProperties.<locals>.<genexpr>1   s(      EEdtDzzEEEEEEr"   c              3   4   K   | ]}t          |          V  d S r,   r-   r/   s     r!   r2   z'additionalProperties.<locals>.<genexpr>2   s9       ! !#T

! ! ! ! ! !r"    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errors
             r!   additionalPropertiesrC   %   s     Xx00 +Hf==>>FX&& O 	J 	JE ((%"5(IIIIIIIIII	J 	J OF O&(( [[A--664DYYEEfVnnEEEEEFyy ! !'-f5H.I'J'J! ! !  H OOOOXOOE!%(((((((NE!%*VF5L5L5L*M*M"MNNNNNNNO O O Or"   c           
   #     K   |                      |d          sd S t          |                    dg                     }t          |          }||z
  }|dk    rd S |du rA|dk    r
||d          n||         }|dk    rdnd}t          d| d	| d
| d|          V  d S t	          ||          D ]&}	|                     ||	         ||	          E d {V  'd S )NarrayprefixItemsr   Fr'   r   itemzExpected at most r4   z but found z extra: )r   r   r   )r   r8   getr   ranger   )
r   r   r   r   prefixtotalr>   restrG   indexs
             r!   r   r   <   sh     Xw// M2..//FMMEFNEzz~~$)QJJx  HV4D A++ww6    %   
 
 	
 	
 	
 	
 	

 65)) 	 	E ((!% )          	 	r"   c              #   V   K   t          ||          st          |d          V  d S d S )Nz was expected)r   r   )r   constr   r   s       r!   rO   rO   V   sE      5!! 977788888889 9r"   c              #     K   |                      |d          sd S d}|                    dd          }|                    dt          |                    }|D ]Q}|                     |                              |          r&|dz  }||k    rt          d| dd|	          V   d S R||k     r5|st          |d
          V  d S t          d| d| dd|	          V  d S d S )NrE   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   rH   r8   evolveis_validr   )r   containsr   r   matchesmin_containsmax_containsr1   s           r!   rX   rX   [   s     Xw// G::mQ//L::mS]];;L 
 
8,,55d;; 		qLG%%%9)59 9 9+$0	       	! , , ,      
 ">> >+2> > >' ,	        r"   c              #   v   K   |                      |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   s       r!   exclusiveMinimumr`   ~   sv      Xx00 7 * *%* *
 
 	
 	
 	
 	
 	
 r"   c              #   v   K   |                      |d          sd S ||k    rt          |d|          V  d S d S )Nr]   z, is greater than or equal to the maximum of r^   )r   maximumr   r   s       r!   exclusiveMaximumrc      sv      Xx00 7 - -!(- -
 
 	
 	
 	
 	
 	
 r"   c              #   z   K   |                      |d          sd S ||k     r|d|}t          |          V  d S d S )Nr]   z is less than the minimum of r^   )r   r_   r   r   messages        r!   r_   r_      sc      Xx00 'IIgIIg&&&&&&& r"   c              #   z   K   |                      |d          sd S ||k    r|d|}t          |          V  d S d S )Nr]   z  is greater than the maximum of r^   )r   rb   r   r   re   s        r!   rb   rb      sc      Xx00 'LLLLg&&&&&&& r"   c              #   F  K   |                      |d          sd S t          |t                    rR||z  }	 t          |          |k    }n=# t          $ r+ t          |          t          |          z  j        dk    }Y n	w xY w||z  }|rt          |d|           V  d S d S )Nr]   r'   z is not a multiple of )r   
isinstancefloatintOverflowErrorr   denominatorr   )r   dBr   r   quotientfaileds         r!   
multipleOfrp      s      Xx00 "e b=	J]]h.FF 	J 	J 	J x((8B<<7DIFFF	J B IGG2GGHHHHHHHI Is   A
 
2A?>A?c              #      K   |                      |d          r)t          |          |k     rt          |d          V  d S d S d S )NrE    is too shortr   r8   r   r   mIr   r   s       r!   minItemsrv      sa      7++ <H0B0B:::;;;;;;;< <0B0Br"   c              #      K   |                      |d          r)t          |          |k    rt          |d          V  d S d S d S )NrE    is too longrs   rt   s       r!   maxItemsry      sa      7++ ;H0B0B999:::::::; ;0B0Br"   c              #      K   |r;|                      |d          r't          |          st          |d          V  d S d S d S d S )NrE   z has non-unique elements)r   r   r   )r   uIr   r   s       r!   uniqueItemsr|      s      
Gh00G XG
 EEEFFFFFFFG G G G G Gr"   c              #      K   |                      |d          r-t          j        ||          st          |d|          V  d S d S d S )Nstringz does not match )r   r   r   r   )r   patrnr   r   s       r!   r   r      sv      (H--H	%**H FFUFFGGGGGGG	H H H Hr"   c              #      K   | j         S	 | j                             ||           d S # t          $ r(}t          |j        |j                  V  Y d }~d S d }~ww xY wd S )N)cause)format_checkercheckr   r   re   r   )r   formatr   r   rB   s        r!   r   r      s      +	D$**8V<<<<< 	D 	D 	D!%-u{CCCCCCCCCCCC	D ,+s   ( 
AAAc              #      K   |                      |d          r)t          |          |k     rt          |d          V  d S d S d S )Nr~   rr   rs   r   mLr   r   s       r!   	minLengthr      sa      8,, <X1C1C:::;;;;;;;< <1C1Cr"   c              #      K   |                      |d          r)t          |          |k    rt          |d          V  d S d S d S )Nr~   rx   rs   r   s       r!   	maxLengthr      sa      8,, ;X1C1C999:::::::; ;1C1Cr"   c              #      K   |                      |d          sd S |                                D ]+\  }}||vr
|D ]}||vr|d|}t          |          V  ,d S )Nr   z is a dependency of )r   r   r   )r   dependentRequiredr   r   r%   
dependencyr1   re   s           r!   r   r      s      Xx00  1 7 7 9 9 / /*8## 	/ 	/D8##!EEEE%g.....	/	/ /r"   c              #      K   |                      |d          sd S |                                D ](\  }}||vr
|                     |||          E d {V  )d S )Nr   r   r   r   r   )r   dependentSchemasr   r   r%   r   s         r!   r   r      s      Xx00  0 6 6 8 8 
 
*8##$$jh % 
 
 	
 	
 	
 	
 	
 	
 	
 	

 
r"   c              #      K   |dk    s|dk    rDt          |          t          fd|D                       rt          |d|          V  d S d S ||vrt          |d|          V  d S d S )Nr   r'   c              3   >   K   | ]}t          |          k    V  d S r,   )r
   )r0   r1   unbooleds     r!   r2   zenum.<locals>.<genexpr>  s.      ::Dx6$<<'::::::r"   z is not one of )r
   allr   )r   enumsr   r   r   s       @r!   enumr     s      1}}A(##::::E::::: 	K!X"I"I"I"IJJJJJJJ	K 	K			EEEEEFFFFFFF 
	r"   c              #   D   K   |                      ||          E d {V  d S N)refr   _validate_reference)r   r   r   r   s       r!   r   r     s7      ,,x,HHHHHHHHHHHr"   c              #   D   K   |                      ||          E d {V  d S r   r   )r   
dynamicRefr   r   s       r!   r   r     s7      ,,h,OOOOOOOOOOOr"   c              #       K   t          |          }t           fd|D                       s7d                    d |D                       }t          d|           V  d S d S )Nc              3   D   K   | ]}                     |          V  d S r,   )r   )r0   typer   r   s     r!   r2   ztype.<locals>.<genexpr>  s3      CCTy  400CCCCCCr"   r*   c              3   4   K   | ]}t          |          V  d S r,   r-   )r0   r   s     r!   r2   ztype.<locals>.<genexpr>  s(      77$t**777777r"   z is not of type )r   anyr9   r   )r   typesr   r   reprss   ` `  r!   r   r     s      ECCCCCUCCCCC F		7777777DDUDDEEEEEEEF Fr"   c              #      K   |                      |d          sd S |                                D ].\  }}||v r%|                     ||         |||          E d {V  /d S r   r   )r   
propertiesr   r   r%   r   s         r!   r   r   !  s      Xx00 )//11  )x (("$	 )          r"   c              #   t   K   |                      |d          sd S |D ]}||vrt          |d          V  d S )Nr   z is a required propertyr^   )r   requiredr   r   r%   s        r!   r   r   /  si      Xx00  J J8##!X"H"H"HIIIIIJ Jr"   c              #      K   |                      |d          r)t          |          |k     rt          |d          V  d S d S d S )Nr   z  does not have enough propertiesrs   r   mPr   r   s       r!   minPropertiesr   7  sd      8,, OX1C1CMMMNNNNNNNO O1C1Cr"   c              #      K   |                      |d          sd S |                      |d          r)t          |          |k    rt          |d          V  d S d S d S )Nr   z has too many propertiesrs   r   s       r!   maxPropertiesr   <  s      Xx00 8,, GX1C1CEEEFFFFFFFG G1C1Cr"   c              #   p   K   t          |          D ]#\  }}|                     |||          E d {V  $d S )Nr   )	enumerater   )r   allOfr   r   rM   r   s         r!   r   r   C  s`      %e,, M My$$Xye$LLLLLLLLLLM Mr"   c              #      K   g }t          |          D ]D\  }}t          |                     |||                    }|s d S |                    |           Et	          |d|          V  d S )Nr   , is not valid under any of the given schemascontext)r   listr   extendr   )r   anyOfr   r   
all_errorsrM   r   errss           r!   r   r   H  s      J%e,, 	
 	
yI%%h	u%MMNN 	EE$GGG
 
 
 	
 	
 	
 	
 	
r"   c              #      K   t          |          }g }|D ]E\  }}t                               ||                    }|s|}	 n,|                    |           Ft	          d|          V   fd|D             }
|
rL|
                    |	           d                    d |
D                       }t	          d|           V  d S d S )Nr   r   r   c                 l    g | ]0\  }}                     |                                         .|1S )rS   )rV   rW   )r0   _r1   r   r   s      r!   
<listcomp>zoneOf.<locals>.<listcomp>e  sR       D4((11(;;  r"   r*   c              3   4   K   | ]}t          |          V  d S r,   r-   )r0   r   s     r!   r2   zoneOf.<locals>.<genexpr>k  s(      @@6$v,,@@@@@@r"   z is valid under each of )r   r   r   r   r   appendr9   )r   oneOfr   r   
subschemasr   rM   r   r   first_valid
more_validr   s   ` `         r!   r   r   V  sI     5!!JJ& 

 

yI%%h	u%MMNN 	#KE$GGG
 
 
 	
 	
 	

    &  J  N+&&&		@@Z@@@@@LLULLMMMMMMMN Nr"   c              #      K   |                      |                              |          r|d|}t          |          V  d S d S )NrS   z should not be valid under )rV   rW   r   )r   
not_schemar   r   re   s        r!   not_r   o  sd      z**33H== 'JJJJJg&&&&&&&' 'r"   c              #     K   |                      |                              |          r.d|v r(|d         }|                     ||d          E d {V  d S d S d|v r(|d         }|                     ||d          E d {V  d S d S )NrS   thenr   else)rV   rW   r   )r   	if_schemar   r   r   else_s         r!   if_r   u  s      y))228<< JV&>D ((4V(LLLLLLLLLLL  
6		v$$Xu&$IIIIIIIIIII 
	r"   c              #      K   |                      |d          sd S t          | ||          fdt          |          D             }|r%d}t          |t	          |          z            V  d S d S )NrE   c                 "    g | ]\  }}|v	|S  r   )r0   rM   rG   evaluated_item_indexess      r!   r   z$unevaluatedItems.<locals>.<listcomp>  s3       ... 	...r"   z4Unevaluated items are not allowed (%s %s unexpected))r   r   r   r   r   )r   unevaluatedItemsr   r   unevaluated_itemsrB   r   s         @r!   r   r     s      Xw// B8V     )( 3 3    EFej1B&C&CCDDDDDDDE Er"   c              #     K   |                      |d          sd S t          | ||          }g }|D ]=}||vr7|                     ||         |||          D ]}|                    |           >|rd|du r;d}t	          |t
                    }	t          |t          |	          z            V  d S d}t          |t          |          z            V  d S d S )Nr   r   Fz9Unevaluated properties are not allowed (%s %s unexpected)r5   z[Unevaluated properties are not valid under the given schema (%s %s unevaluated and invalid))r   r	   r   r   r:   r;   r   r   )
r   unevaluatedPropertiesr   r   evaluated_keysunevaluated_keysr%   r   rB   r=   s
             r!   r   r     s>     Xx00 ;8V N  
2 
2>))&&"%$	 '   2 2 !''1111 
H E))OE,#666F!%*V*<*<"<=======C  "%*5E*F*F"FGGGGGGG
H 
Hr"   c              #      K   |                      |d          sd S t          t          |          |          D ]'\  \  }}}|                     ||||          E d {V  (d S )NrE   )r   r   r   r   )r   zipr   r   )r   rF   r   r   rM   rG   r   s          r!   rF   rF     s      Xw// $'	((;(;[$I$I 
 
 y$$	 % 
 
 	
 	
 	
 	
 	
 	
 	
 	

 
r"   )3	fractionsr   r   jsonschema._utilsr   r   r   r   r   r	   r
   r   jsonschema.exceptionsr   r   r   r$   rC   r   rO   rX   r`   rc   r_   rb   rp   rv   ry   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rF   r   r"   r!   <module>r      s         					 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ? > > > > > > >	 	 	N N NO O O.  49 9 9
     F
 
 

 
 
' ' '' ' 'I I I6< < <
; ; ;
G G GH H HD D D< < <
; ; ;
/ / /	
 	
 	
G G GI I IP P PF F F  J J JO O O
G G GM M M

 
 
N N N2' ' 'J J JE E EH H H@

 

 

 

 

r"   