
    `d<                     >   d dl mZ d dlmZ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$ Z0d% Z1d& Z2d' Z3d( Z4d) Z5d* Z6y)+    )Fraction)	urldefragurljoinN)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   | 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           8/usr/lib/python3/dist-packages/jsonschema/_validators.pyr   r      s     Xx0/557 NN$ 	DAqyy!$$,,yqg -   	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%      sF     Xx0 N$$h}$MMMNMs   /;9;c              #     K   | j                  |d      sy t        t        ||            }| j                  |d      r'|D ]!  }| j                  ||   ||      E d {    # y |s|rd|v rpt	        |      dk(  rd}nd}dj                  d t        |      D              }dj                  d	 t        |d         D              }| d
| d| }	t        |	       y d}	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>6   s     EdtDzE   c              3   2   K   | ]  }t        |        y wr.   r/   r1   s     r#   r4   z'additionalProperties.<locals>.<genexpr>7   s      !#T
!r5    z not match any of the regexes: z8Additional properties are not allowed (%s %s unexpected))	r   setr	   r   lenjoinsortedr   r   )
r   aPr   r   extrasextraverbjoinedpatternserrors
             r#   additionalPropertiesrC   &   s    Xx0+Hf=>FX& 	JE ((%"5(III	JF&(6{aYYEfVnEEFyy !'-f5H.I'J! H hav%DXJOE!%((NE!%*V*<"<== R Js   AC<C:BC<c              #      K   | j                  |d      sy t        |j                  dg             }t        |      }|du r||kD  rd| d| }t        |       y t	        ||      D ]!  }| j                  ||   ||      E d {    # y 7 w)NarrayprefixItemsFzExpected at most z items, but found )r   r   r   )r   r9   getr   ranger   )r   r   r   r   prefixtotalmessageindexs           r#   r   r   A   s     Xw/M2./FME~%&.%fX-?wGg&&65) 	E ((!% )   	s   BBBBc              #     K   | j                  |d      r"| j                  |j                  di       d      ry t        |j                  dg             }| j                  |d      r5t        ||d  |      D ]!  \  }}| j	                  |||      E d {    # y |s`t        |      t        |j                  dg             kD  r8d}t        |t        |t        |j                  dg             d        z         y y y 7 jw)NrE   r   r   )startr(   z3Additional items are not allowed (%s %s unexpected))r   rG   r9   	enumerater   r   r   )r   aIr   r   	len_itemsrL   itemrB   s           r#   additionalItemsrS   S   s     h0VZZ4h?FJJw+,IX&$Xij%9K 	?KE4 ((r(>>>	?CMC

7B(?$@@EJxFJJw,C(D(EFGG
 	
 AR ?s   BC?C=A+C?c              #   F   K   t        ||      st        |d       y y w)Nz was expected)r   r   )r   constr   r   s       r#   rU   rU   e   s'     5!	788 "s   !c              #     K   | j                  |d      sy d}|j                  dd      }|j                  dt        |            }|D ]D  }| j                  |      j	                  |      s%|dz  }||kD  s0t        d| dd|	        y  ||k  r+|st        |d
       y t        d| d| dd|	       y y w)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   rG   r9   evolveis_validr   )r   containsr   r   matchesmin_containsmax_containsr3   s           r#   r^   r^   j   s     Xw/G::mQ/L::mS];L 
8,55d;qLG%%))5a9+$0	  
 !, , , 
 "J.
7)9>' ,	  s   A)B?,
B?7AB?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#   exclusiveMinimumrf      sG     Xx07l %[*
 	
    -/c              #   b   K   | j                  |d      sy ||k\  rt        |d|       y y w)Nrc   z, is greater than or equal to the maximum of rd   )r   maximumr   r   s       r#   exclusiveMaximumrj      sG     Xx07l !!(-
 	
 rg   c              #   f   K   | j                  |d      sy ||k  r|d|}t        |       y y w)Nrc   z is less than the minimum of rd   )r   re   r   r   rK   s        r#   re   re      sB     Xx0'L =g[Ig&&    /1c              #   f   K   | j                  |d      sy ||kD  r|d|}t        |       y y w)Nrc   z  is greater than the maximum of rd   )r   ri   r   r   rK   s        r#   ri   ri      sB     Xx0'L @Lg&& rl   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)Nrc   r)   z is not a multiple of )r   
isinstancefloatintOverflowErrorr   denominatorr   )r   dBr   r   quotientfaileds         r#   
multipleOfrw      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              #   p   K   | j                  |d      r t        |      |k  rt        |d       y y y w)NrE    is too shortr   r9   r   r   mIr   r   s       r#   minItemsr}      s<     7+H0BM:;; 1C+   46c              #   p   K   | j                  |d      r t        |      |kD  rt        |d       y y y w)NrE    is too longrz   r{   s       r#   maxItemsr      s<     7+H0BL9:: 1C+r~   c              #   p   K   |r0| j                  |d      rt        |      st        |d       y y y y w)NrE   z has non-unique elements)r   r   r   )r   uIr   r   s       r#   uniqueItemsr      sB     
h0X,DEFF  1 	r~   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   rK   r   )r   formatr   r   rB   s        r#   r   r      s[     +	D$$**8V< ,  	D!%--u{{CC	Ds*   A'. A'	A$#AA'A$$A'c              #   p   K   | j                  |d      r t        |      |k  rt        |d       y y y w)Nr   ry   rz   r   mLr   r   s       r#   	minLengthr      s<     8,X1CM:;; 2D,r~   c              #   p   K   | j                  |d      r t        |      |kD  rt        |d       y y y w)Nr   r   rz   r   s       r#   	maxLengthr      s<     8,X1CL9:: 2D,r~   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&   
dependencyr3   rK   s           r#   r   r      st     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     sj     Xx0 0 6 6 8 
*8#$$jh % 
 	
 	

	
s   AAA	Ac              #      K   |dk(  s|dk(  r3t        |      t        fd|D              rt        |d|       y y ||vrt        |d|       y y w)Nr   r)   c              3   :   K   | ]  }t        |      k7    y wr.   )r   )r2   r3   unbooleds     r#   r4   zenum.<locals>.<genexpr>  s     :Dx6$<':s   z is not one of )r   allr   )r   enumsr   r   r   s       @r#   enumr     sj     1}A(#:E::!XLy"IJJ ;		OE9EFF 
s   AAc              #     K   t        | j                  dd       }|?| j                  j                  |      5 }| j                  ||      E d {    d d d        y | j                  j	                  |      \  }}| j                  j                  |       	 | j                  ||      E d {    | j                  j                          y 7 |# 1 sw Y   y xY w7 -# | j                  j                          w xY ww)Nresolve)getattrresolver	resolvingr   r   
push_scope	pop_scope)r   refr   r   r   resolvedscopes          r#   r   r      s     i(()T:G))#. 	=( ((8<<<	= 	= $,,44S9x%%e,	+ ((8<<<((* =	= 	= =((*sY   5C9CC
CAC9C *C+C /C9
CCC9C C66C9c              #     K   t        |      \  }}| j                  j                  D ]c  }t        ||      }| j                  j	                  |      5 }d|v r-||d   k(  r%| j                  ||      E d {    	 d d d         y d d d        e | j                  j	                  |      5 }| j                  ||      E d {    d d d        y 7 X# 1 sw Y   xY w7 # 1 sw Y   y xY ww)Nz$dynamicAnchor)r   r   _scopes_stackr   r   r   )	r   
dynamicRefr   r   _fragmenturl
lookup_urlr    s	            r#   r   r   /  s     J'KAx!!// 	>S*-
))*5 	 I- I.>$??$,,XyAAA		 	 		> ))*5 	> ((9===	> 	> B	 	 >	> 	>sZ   AC("C3C4C9/C((C>C?C	C(CC	C(CC%!C(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   )r2   typer   r   s     r#   r4   ztype.<locals>.<genexpr>A  s     CTy  40Cs   r,   c              3   2   K   | ]  }t        |        y wr.   r/   )r2   r   s     r#   r4   ztype.<locals>.<genexpr>B  s     7$t*7r5   z is not of type )r   anyr:   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   F  sq     Xx0)//1 )x (("$	 )   s   .AAAAc              #   j   K   | j                  |d      sy |D ]  }||vst        |d        y w)Nr   z is a required propertyrd   )r   requiredr   r   r&   s        r#   r   r   T  sE     Xx0 J8#!XL0G"HIIJs   33c              #   p   K   | j                  |d      r t        |      |k  rt        |d       y y y w)Nr   z  does not have enough propertiesrz   r   mPr   r   s       r#   minPropertiesr   \  s=     8,X1C,LMNN 2D,r~   c              #      K   | j                  |d      sy | j                  |d      r t        |      |kD  rt        |d       y y y w)Nr   z has too many propertiesrz   r   s       r#   maxPropertiesr   a  sP     Xx08,X1C,DEFF 2D,s   AA	c              #   n   K   t        |      D ]!  \  }}| j                  |||      E d {    # y 7 w)Nr   )rO   r   )r   allOfr   r   rL   r    s         r#   r   r   h  s?     %e, My$$Xye$LLLM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)rO   listr   extendr   )r   anyOfr   r   
all_errorsrL   r    errss           r#   r   r   m  sq     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   rY   r,   c              3   2   K   | ]  }t        |        y wr.   r/   )r2   r   s     r#   r4   zoneOf.<locals>.<genexpr>  s     @6$v,@r5   z is valid under each of )	rO   r   r   r   r   r\   r]   appendr:   )r   oneOfr   r   
subschemasr   rL   r    r   first_validr   r3   
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)NrY   z should not be valid under )r\   r]   r   )r   
not_schemar   r   rK   s        r#   not_r     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)NrY   thenr   else)r\   r]   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)NrE   z4Unevaluated items are not allowed (%s %s unexpected))r   r
   rO   r   r   )	r   unevaluatedItemsr   r   evaluated_item_indexesrL   rR   unevaluated_itemsrB   s	            r#   r   r     s     Xw/B8V !*( 3.. 	  Fej1B&CCDD 	s   /A)A#(A)c              #      K   | j                  |d      sy t        | ||      }g }|D ]5  }||vs| j                  ||   |||      D ]  }|j                  |        7 |rd}t	        |t        |      z         y y w)Nr   r   z9Unevaluated properties are not allowed (%s %s unexpected))r   r   r   r   r   r   )	r   unevaluatedPropertiesr   r   evaluated_property_keysunevaluated_property_keysr&   r   rB   s	            r#   r   r     s     Xx0D8V !# ;22&&"%$	 '  ; *00:;; !Kej1J&KKLL !s   ,A>AA>c              #      K   | j                  |d      sy t        t        |      |      D ]%  \  \  }}}| j                  ||||      E d {    ' y 7 w)NrE   )r   r   r   r   )r   ziprO   r   )r   rF   r   r   rL   rR   r    s          r#   rF   rF     sk     Xw/$'	((;[$I 
 y$$	 % 
 	
 	

	
s   A
AAA)7	fractionsr   urllib.parser   r   r   jsonschema._utilsr   r   r   r	   r
   r   r   r   jsonschema.exceptionsr   r   r   r%   rC   r   rS   rU   r^   rf   rj   re   ri   rw   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rF        r#   <module>r      s     + 		 	 	 ?	N>6$
$9
 F

''I6<
;
GHD<
;
/	
G+>FJO
GM

N2'JEM,

r   