
    ge:                     $   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 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( Z1y))    )FractionN)ensure_listequal
extras_msgfind_additional_properties%find_evaluated_item_indexes_by_schema&find_evaluated_property_keys_by_schemauniq)FormatErrorValidationErrorc              #      K   | j                  |d      sy |j                         D ]Q  \  }}|j                         D ]9  \  }}t        j                  ||      s| j	                  ||||      E d {    ; S y 7 	wNobjectpathschema_path)is_typeitemsresearchdescend)	validatorpatternPropertiesinstanceschemapattern	subschemakvs           I/var/www/openai/venv/lib/python3.12/site-packages/jsonschema/_keywords.pyr   r      s     Xx0/557NN$DAqyy!$$,,yqg -    % 8s   AA=A=1A;2
A=c              #   z   K   | j                  |d      sy |D ]  }| j                  ||      E d {     y 7 w)Nr   )r   r   )r   r   )r   propertyNamesr   r   propertys        r    r"   r"      s?     Xx0$$h}$MMM Ms   /;9;c           	   #     K   | j                  |d      sy t        t        ||            }| j                  |d      r'|D ]!  }| j                  ||   ||      E d {    # y |s|rd|v rot	        |      dk(  rdnd}dj                  d t        |      D              }dj                  d	 t        |d         D              }| d
| d| }	t        |	       y d}	t        |	t        t        |t                    z         y y y 7 w)Nr   )r   r      doesdo, c              3   2   K   | ]  }t        |        y wNrepr.0eachs     r    	<genexpr>z'additionalProperties.<locals>.<genexpr>0   s     EndtDzn   c              3   2   K   | ]  }t        |        y wr*   r+   r-   s     r    r0   z'additionalProperties.<locals>.<genexpr>1   s      !'JtT
'Jr1    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    additionalPropertiesrB   $   s    Xx0+Hf=>FX&E ((%"5(III F&( [A-64DYYEfVnEEFyy !'-f5H.I'J! H hav%DXJOE!%((NE!%*VF5L*M"MNN R Js   AD
DB,D
c           
   #   d  K   | j                  |d      sy t        |j                  dg             }t        |      }||z
  }|dk  ry |du r2|dk7  r||d  n||   }|dk7  rdnd}t        d| d	| d
| d|       y t	        ||      D ]!  }	| j                  ||	   ||	      E d {    # y 7 w)NarrayprefixItemsr   Fr%   r   itemzExpected at most r3   z but found z extra: )r   r   r   )r   r7   getr   ranger   )
r   r   r   r   prefixtotalr=   restrF   indexs
             r    r   r   ;   s     Xw/M2./FMEFNEz~$)QJx HV4D A+w6xqk% AX
 	

 65)E ((!% )    *s   B$B0&B.'B0c              #   F   K   t        ||      st        |d       y y w)Nz was expected)r   r   )r   constr   r   s       r    rN   rN   U   s'     5!	788 "s   !c              #     K   | j                  |d      sy d}|j                  dd      }|j                  dt        |            }| j                  |      }|D ]4  }|j	                  |      s|dz  }||kD  s t        d| dd|	        y  ||k  r+|st        |d
       y t        d| d| dd|	       y y w)NrD   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   rG   r7   evolveis_validr   )	r   containsr   r   matchesmin_containsmax_containscontains_validatorr/   s	            r    rW   rW   Z   s     Xw/G::mQ/L::mS];L"))):&&t,qLG%%))5a9+$0	    !, , , 
 "J.
7)9>' ,	  s   A+C.
C9ACc              #   b   K   | j                  |d      sy ||k  rt        |d|       y y w)Nnumberz) is less than or equal to the minimum of r   r   )r   minimumr   r   s       r    exclusiveMinimumr`      sG     Xx07l %[*
 	
    -/c              #   b   K   | j                  |d      sy ||k\  rt        |d|       y y w)Nr]   z, is greater than or equal to the maximum of r^   )r   maximumr   r   s       r    exclusiveMaximumrd      sG     Xx07l !!(-
 	
 ra   c              #   f   K   | j                  |d      sy ||k  r|d|}t        |       y y w)Nr]   z is less than the minimum of r^   )r   r_   r   r   messages        r    r_   r_      sB     Xx0'L =g[Ig&&    /1c              #   f   K   | j                  |d      sy ||kD  r|d|}t        |       y y w)Nr]   z  is greater than the maximum of r^   )r   rc   r   r   rf   s        r    rc   rc      sB     Xx0'L @Lg&& rg   c              #     K   | j                  |d      sy t        |t              r||z  }	 t        |      |k7  }n||z  }|rt        |d|        y y # t        $ r' t        |      t        |      z  j                  dk7  }Y Ew xY ww)Nr]   r%   z is not a multiple of )r   
isinstancefloatintOverflowErrorr   denominatorr   )r   dBr   r   quotientfaileds         r    
multipleOfrr      s     Xx0"eb=	J]h.F B,B2$GHH   	J x(8B<7DDIF	Js'   )B	A B	-BB	BB	c              #      K   | j                  |d      r+t        |      |k  r|dk(  rdnd}t        |d|        y y y w)NrD   r%   should be non-emptyis too shortr3   r   r7   r   r   mIr   r   rf   s        r    minItemsry      sN     7+H0B+-7'AgY788 1C+   ?Ac              #      K   | j                  |d      r+t        |      |kD  r|dk(  rdnd}t        |d|        y y y w)NrD   r   is expected to be emptyis too longr3   rv   rw   s        r    maxItemsr~      sN     7+H0B/1Qw+MAgY788 1C+rz   c              #   p   K   |r0| j                  |d      rt        |      st        |d       y y y y w)NrD   z has non-unique elements)r   r
   r   )r   uIr   r   s       r    uniqueItemsr      sB     
h0X,DEFF  1 	s   46c              #      K   | j                  |d      r*t        j                  ||      st        |d|       y y y w)Nstringz does not match )r   r   r   r   )r   patrnr   r   s       r    r   r      sE     (H-		%*,<UIFGG + 	.s   >A c              #      K   | j                   	 | j                   j                  ||       y y # t        $ r-}t        |j                  |j
                         Y d }~y d }~ww xY ww)N)cause)format_checkercheckr   r   rf   r   )r   formatr   r   rA   s        r    r   r      s[     +	D$$**8V< ,  	D!%--u{{CC	Ds*   A'. A'	A$#AA'A$$A'c              #      K   | j                  |d      r+t        |      |k  r|dk(  rdnd}t        |d|        y y y w)Nr   r%   rt   ru   r3   rv   r   mLr   r   rf   s        r    	minLengthr      sN     8,X1C+-7'AgY788 2D,rz   c              #      K   | j                  |d      r+t        |      |kD  r|dk(  rdnd}t        |d|        y y y w)Nr   r   r|   r}   r3   rv   r   s        r    	maxLengthr      sN     8,X1C/1Qw+MAgY788 2D,rz   c              #      K   | j                  |d      sy |j                         D ]*  \  }}||vr|D ]  }||vs|d|}t        |        , y w)Nr   z is a dependency of )r   r   r   )r   dependentRequiredr   r   r#   
dependencyr/   rf   s           r    r   r      sj     Xx0 1 7 7 9*8#D8#!H$8E%g.. 	 !:s
   8AAc              #      K   | j                  |d      sy |j                         D ]&  \  }}||vr| j                  |||      E d {    ( y 7 w)Nr   r   r   r   r   )r   dependentSchemasr   r   r#   r   s         r    r   r     se     Xx0 0 6 6 8*8#$$jh % 
 	
 	
 !9	
s   AAA	Ac              #   \   K   t        fd|D              rt        d|       y y w)Nc              3   8   K   | ]  }t        |         y wr*   )r   )r.   r/   r   s     r    r0   zenum.<locals>.<genexpr>  s     
7uT8$$s   z is not one of )allr   )r   enumsr   r   s     ` r    enumr     s0     

7
77OE9EFF 8s   ),c              #   F   K   | j                  ||      E d {    y 7 wN)refr   _validate_reference)r   r   r   r   s       r    r   r     s     ,,x,HHH   !!c              #   F   K   | j                  ||      E d {    y 7 wr   r   )r   
dynamicRefr   r   s       r    r   r     s     ,,h,OOOr   c              #       K   t        |      }t         fd|D              s+dj                  d |D              }t        d|        y y w)Nc              3   B   K   | ]  }j                  |        y wr*   )r   )r.   typer   r   s     r    r0   ztype.<locals>.<genexpr>  s     CUTy  40Us   r(   c              3   2   K   | ]  }t        |        y wr*   r+   )r.   r   s     r    r0   ztype.<locals>.<genexpr>  s     7$t*r1   z is not of type )r   anyr8   r   )r   typesr   r   reprss   ` `  r    r   r     sP     ECUCC		777,<UGDEE Ds   AAc              #      K   | j                  |d      sy |j                         D ]*  \  }}||v s| j                  ||   |||      E d {    , y 7 wr   r   )r   
propertiesr   r   r#   r   s         r    r   r   "  sl     Xx0)//1)x (("$	 )     2s   .AAAAc              #   j   K   | j                  |d      sy |D ]  }||vst        |d        y w)Nr   z is a required propertyr^   )r   requiredr   r   r#   s        r    r   r   0  s>     Xx08#!XL0G"HII s   33c              #      K   | j                  |d      r+t        |      |k  r|dk(  rdnd}t        |d|        y y y w)Nr   r%   rt   zdoes not have enough propertiesr3   rv   r   mPr   r   rf   s        r    minPropertiesr   8  sT     8,X1C%'1W!2 	 AgY788 2D,rz   c              #      K   | j                  |d      sy | j                  |d      r+t        |      |kD  r|dk(  rdnd}t        |d|        y y y w)Nr   r   r|   zhas too many propertiesr3   rv   r   s        r    maxPropertiesr   A  sg     Xx08,X1C)+q%* 	 AgY788 2D,s   AAc              #   n   K   t        |      D ]!  \  }}| j                  |||      E d {    # y 7 w)Nr   )	enumerater   )r   allOfr   r   rL   r   s         r    r   r   L  s8     %e,y$$Xye$LLL -Ls   )535c              #      K   g }t        |      D ]7  \  }}t        | j                  |||            }|s y |j                  |       9 t	        |d|       y w)Nr   , is not valid under any of the given schemascontext)r   listr   extendr   )r   anyOfr   r   
all_errorsrL   r   errss           r    r   r   Q  sl     J%e,yI%%h	u%MN$	 - lFG
 	
s   AAc              #     K   t        |      }g }|D ]9  \  }}t        | j                  |||            }|s|}	 n%|j                  |       ; t	        |d|       |D 
cg c](  \  }
}| j                  |      j                  |      r|* }}
}|r<|j                  	       dj                  d |D              }t	        |d|        y y c c}}
w w)Nr   r   r   rR   r(   c              3   2   K   | ]  }t        |        y wr*   r+   )r.   r   s     r    r0   zoneOf.<locals>.<genexpr>t  s     @Z6$v,Zr1   z is valid under each of )	r   r   r   r   r   rU   rV   appendr8   )r   oneOfr   r   
subschemasr   rL   r   r   first_valid_r/   
more_validr   s                 r    r   r   _  s     5!JJ&yI%%h	u%MN#K$ ' lFG
 	
 '&D4(11(; 	J   +&		@Z@@,DUGLMM 	s   A#C%-CACc              #   x   K   | j                  |      j                  |      r|d|}t        |       y y w)NrR   z should not be valid under )rU   rV   r   )r   
not_schemar   r   rf   s        r    not_r   x  sC     z*33H=L ;J>Jg&& >s   8:c              #      K   | j                  |      j                  |      r'd|v r"|d   }| j                  ||d      E d {    y y d|v r"|d   }| j                  ||d      E d {    y y 7 -7 w)NrR   thenr   else)rU   rV   r   )r   	if_schemar   r   r   else_s         r    if_r   ~  s     y)228<V&>D ((4V(LLL  
6	v$$Xu&$III 
 M 	Js$   AA6A2&A6+A4,A64A6c              #      K   | j                  |d      sy t        | ||      }t        |      D cg c]  \  }}||vr| }}}|rd}t        |t	        |      z         y y c c}}w w)NrD   z4Unevaluated items are not allowed (%s %s unexpected))r   r   r   r   r   )	r   unevaluatedItemsr   r   evaluated_item_indexesrL   rF   unevaluated_itemsrA   s	            r    r   r     s     Xw/B8V !*( 3 3.. 	 3   Fej1B&CCDD 	s   /A)A#(A)c              #   b  K   | j                  |d      sy t        | ||      }g }|D ]5  }||vs| j                  ||   |||      D ]  }|j                  |        7 |rM|du r-d}t	        |t
              }	t        |t        |	      z         y d}t        |t        |      z         y y w)Nr   r   Fz9Unevaluated properties are not allowed (%s %s unexpected)r4   z[Unevaluated properties are not valid under the given schema (%s %s unevaluated and invalid))r   r	   r   r   r9   r:   r   r   )
r   unevaluatedPropertiesr   r   evaluated_keysunevaluated_keysr#   r   rA   r<   s
             r    r   r     s     Xx0;8VN >)&&"%$	 '  !''1   E)OE,#6F!%*V*<"<==C  "%*5E*F"FGG s   ,B/B B/c              #      K   | j                  |d      sy t        t        |      |      D ]%  \  \  }}}| j                  ||||      E d {    ' y 7 w)NrD   )r   r   r   r   )r   zipr   r   )r   rE   r   r   rL   rF   r   s          r    rE   rE     sg     Xw/$'	((;[$I y$$	 % 
 	
 	
 %J	
s   A
AAA)2	fractionsr   r   jsonschema._utilsr   r   r   r   r   r	   r
   jsonschema.exceptionsr   r   r   r"   rB   r   rN   rW   r`   rd   r_   rc   rr   ry   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rE        r    <module>r      s     	   ?	NO.49
"J

''I699GHD99/	
G
IPFJ99M

N2'JEH@

r   