
    /                         S SK r S SKJr  S SKJrJr  S SKJr  S rS r	S r
S rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"S  r#S! r$S" r%g)#    N)_utils)FormatErrorValidationError)	iteritemsc           	   #      #    U R                  US5      (       d  g [        U5       HQ  u  pE[        U5       H=  u  pg[        R                  " XF5      (       d  M"  U R	                  XuXdS9 H  nUv   M	     M?     MS     g 7fNobjectpathschema_path)is_typer   researchdescend)		validatorpatternPropertiesinstanceschemapattern	subschemakverrors	            )lib/third_party/jsonschema/_validators.pyr   r      st     Xx00'(9:h'DAyy$$&..q / E  K ( ;s   AA<$A<c           
   #   n  #    U R                  US5      (       d  g [        [        R                  " X#5      5      nU R                  US5      (       a'  U H   nU R	                  X%   XS9 H  nUv   M	     M"     g U(       d  U(       a  SU;   a  [        US   5      n[        U5      S:X  a  SnOSnSR                  [        [        [        U5      5      5      < SU< S	SR                  [        [        U5      5      < 3n[        U5      v   g S
n[        U[        R                  " U5      -  5      v   g g g 7f)Nr	   r   r      doesdo,  z not match any of the regexes: z8Additional properties are not allowed (%s %s unexpected))r   setr   find_additional_propertiesr   sortedlenjoinmapreprr   
extras_msg)	r   aPr   r   extrasextrar   patternsverbs	            r   additionalPropertiesr/      s    Xx00228DEFX&&E"**8?B*K L  F&(f%89:H6{a		#dF6N34		#dH-.E
 "%((NE!%&*;*;F*C"CDD Rs   D3D5c              #   B  #    U R                  US5      (       d  g U R                  US5      (       a0  [        U5       H   u  pEU R                  XQUS9 H  nUv   M	     M"     g [        [        U5      U5       H#  u  u  pEnU R                  XWXDS9 H  nUv   M	     M%     g 7f)Narrayr	   r   r
   )r   	enumerater   zip)r   itemsr   r   indexitemr   r   s           r   r4   r4   1   s     Xw//))$X.KE"**4U*C D / ),Ih,?(G$MU9"**e +   )Hs   BBc              #   6  #    U R                  US5      (       a'  U R                  UR                  S0 5      S5      (       a  g [        UR                  S/ 5      5      nU R                  US5      (       a1  [        X$S  US9 H   u  pVU R	                  XaUS9 H  nUv   M	     M"     g U(       dl  [        U5      [        UR                  S/ 5      5      :  aC  Sn[        U[        R                  " U[        UR                  S/ 5      5      S  5      -  5      v   g g g 7f)Nr1   r4   r	   )startr   z3Additional items are not allowed (%s %s unexpected))r   getr%   r2   r   r   r   r)   )r   aIr   r   	len_itemsr5   r6   r   s           r   additionalItemsr<   A   s    h00&**Wb18<<FJJw+,IX&&$Xj%9KKE"**4%*@ A L CMC

7B(?$@@Ehs6::gr+B'C'DEFG
 	
 ARs   DDc              #      #    U R                  US5      (       d  g UR                  SS5      (       a  X!:*  nSnOX!:  nSnU(       a  [        U< SU< SU< 35      v   g g 7f)NnumberexclusiveMinimumFzless than or equal toz	less than is z the minimum of r   r9   r   )r   minimumr   r   failedcmps         r   rB   rB   U   sf     Xx00zz$e,,$%#,4c7C
 	
    AA c              #      #    U R                  US5      (       d  g UR                  SS5      (       a  X!:  nSnOX!:  nSnU(       a  [        U< SU< SU< 35      v   g g 7f)Nr>   exclusiveMaximumFzgreater than or equal tozgreater thanr@   z the maximum of rA   )r   maximumr   r   rC   rD   s         r   rH   rH   f   sf     Xx00zz$e,,$(#,4c7C
 	
 rE   c              #      #    U R                  US5      (       d  g [        U[        5      (       a  X!-  n[        U5      U:g  nOX!-  nU(       a  [	        U< SU< 35      v   g g 7f)Nr>   z is not a multiple of )r   
isinstancefloatintr   )r   dBr   r   quotientrC   s         r   
multipleOfrO   w   s\     Xx00"e=X(*hKLL s   A"A$c              #   ~   #    U R                  US5      (       a"  [        U5      U:  a  [        U< S35      v   g g g 7f)Nr1    is too shortr   r%   r   r   mIr   r   s       r   minItemsrU      s:     7++H0B8=>> 1C+   ;=c              #   ~   #    U R                  US5      (       a"  [        U5      U:  a  [        U< S35      v   g g g 7f)Nr1    is too longrR   rS   s       r   maxItemsrY      s:     7++H0B(<== 1C+rV   c              #      #    U(       aF  U R                  US5      (       a.  [        R                  " U5      (       d  [        U< S35      v   g g g g 7f)Nr1   z has non-unique elements)r   r   uniqr   )r   uIr   r   s       r   uniqueItemsr]      sG     
(G,,KK!!hHII " 	- 	s   AAc              #      #    U R                  US5      (       a1  [        R                  " X5      (       d  [        U< SU< 35      v   g g g 7f)Nstringz does not match )r   r   r   r   )r   patrnr   r   s       r   r   r      sA     (H--IIe&&%HII ' 	.s   A
Ac              #      #    U R                   b   U R                   R                  X!5        g g ! [         a*  n[        UR                  UR
                  S9v    S nAg S nAff = f7f)N)cause)format_checkercheckr   r   messagerb   )r   formatr   r   r   s        r   rf   rf      sX     +	D$$**8< ,  	D!%--u{{CC	Ds*   A%. A%
A" AA%A""A%c              #   ~   #    U R                  US5      (       a"  [        U5      U:  a  [        U< S35      v   g g g 7f)Nr_   rQ   rR   r   mLr   r   s       r   	minLengthrj      s:     8,,X1C8=>> 2D,rV   c              #   ~   #    U R                  US5      (       a"  [        U5      U:  a  [        U< S35      v   g g g 7f)Nr_   rX   rR   rh   s       r   	maxLengthrl      s:     8,,X1C(<== 2D,rV   c              #   N  #    U R                  US5      (       d  g [        U5       Hz  u  pEXB;  a  M  U R                  US5      (       a  U R                  X%US9 H  nUv   M	     M@  [        R                  " U5      nU H  nXR;  d  M
  [        U< SU< 35      v   M      M|     g 7f)Nr	   r   z is a dependency of )r   r   r   r   ensure_listr   )r   dependenciesr   r   property
dependencyr   s          r   rp   rp      s     Xx00 ), 7#Z22"**( +  
 "--j9L*
-)6@(K  + !8s   BB%B%c              #   @   #    X!;  a  [        U< SU< 35      v   g g 7f)Nz is not one of )r   )r   enumsr   r   s       r   enumru      s      xGHH s   c              #      #    [        U R                  SS 5      nUcA  U R                  R                  U5       nU R                  X%5       H  nUv   M	     S S S 5        g U R                  R	                  U5      u  puU R                  R                  U5         U R                  X%5       H  nUv   M	     U R                  R                  5         g ! , (       d  f       g = f! U R                  R                  5         f = f7f)Nresolve)getattrresolver	resolvingr   rw   
push_scope	pop_scope)r   refr   r   rw   resolvedr   scopes           r   r}   r}      s     i(()T:G))#.("**8> ? /. $,,44S9%%e,	+"**8> ? ((* /. ((*s5   6C>CAC>C 3C>
CC>C;;C>c           	   #   |  #    [         R                  " U5      n/ n[        U5       Hq  u  pVUS:X  a    g U R                  US5      (       a5  [	        U R                  X&US95      nU(       d    g UR                  U5        MY  U R                  X&5      (       d  Mq    g    [        [         R                  " X!5      US9v   g 7f)Nanyr	   rn   context)	r   ro   r2   r   listr   extendr   	types_msg)r   typesr   r   
all_errorsr5   typeerrorss           r   type_draft3r      s     u%EJ '5=T8,,)++H+NOFf%  00 ( X-z
 	
s   BB<%B<c              #     #    U R                  US5      (       d  g [        U5       H  u  pEXB;   a!  U R                  X$   UUUS9 H  nUv   M	     M+  UR                  SS5      (       d  MD  [	        SU-  5      nUR                  SUS   UUS9  UR                  R                  U5        UR                  R                  US/5        Uv   M     g 7f)Nr	   r
   requiredF%r is a required property)r   validator_valuer   r   )
r   r   r   r9   r   _setr   
appendleftr   r   r   
propertiesr   r   rq   r   r   s          r   properties_draft3r      s     Xx00(4"**"$	 +   ]]:u--#$?($JKEJJ$ )* 5!	   JJ!!(+$$h
%;<K'  5s   A$C*A$Cc              #      #    [         R                  " U5       H3  nU R                  USU/05      (       d  M  [        U< SU< 35      v   M5     g 7f)Nr   z is disallowed for )r   ro   is_validr   )r   disallowr   r   
disalloweds        r   disallow_draft3r     sI     ((2
h*(>??!-7B  3s
   2AAc              #      #    U R                  US5      (       a  U R                  X!5       H  nUv   M	     g [        U5       H   u  pVU R                  X&US9 H  nUv   M	     M"     g 7f)Nr	   rn   )r   r   r2   )r   extendsr   r   r   r5   r   s          r   extends_draft3r     sg     (++&&x9EK :%g.&&x&NEK O /s   A%A'c              #      ^ ^#    [         R                  " U5      n[        UU 4S jU 5       5      (       d#  [        [         R                  " TU5      5      v   g g 7f)Nc              3   H   >#    U  H  nTR                  TU5      v   M     g 7fN)r   ).0r   r   r   s     r   	<genexpr>type_draft4.<locals>.<genexpr>"  s!     CUTy  400Us   ")r   ro   r   r   r   )r   r   r   r   s   ` ` r   type_draft4r     sE     u%ECUCCCf..x?@@ Ds   AAc              #      #    U R                  US5      (       d  g [        U5       H+  u  pEXB;   d  M  U R                  X$   UUUS9 H  nUv   M	     M-     g 7fr   )r   r   r   r   s          r   properties_draft4r   &  sc     Xx00(4"**"$	 +    5s
   ,A$Ac              #   |   #    U R                  US5      (       d  g U H  nXB;  d  M
  [        SU-  5      v   M     g 7f)Nr	   r   )r   r   )r   r   r   r   rq   s        r   required_draft4r   5  s<     Xx00#!"="HII s   !<<c              #   ~   #    U R                  US5      (       a"  [        U5      U:  a  [        U< S35      v   g g g 7f)Nr	   z  does not have enough propertiesrR   r   mPr   r   s       r   minProperties_draft4r   =  s?     8,,X1C4<>
 	
 2D,rV   c              #      #    U R                  US5      (       d  g U R                  US5      (       a"  [        U5      U:  a  [        U< S35      v   g g g 7f)Nr	   z has too many propertiesrR   r   s       r   maxProperties_draft4r   D  sP     Xx008,,X1ChHII 2D,s   AAc              #   j   #    [        U5       H   u  pEU R                  X%US9 H  nUv   M	     M"     g 7f)Nrn   )r2   r   )r   allOfr   r   r5   r   r   s          r   allOf_draft4r   K  s7     %e,&&x&NEK O -s   13c           	   #     #    [        U5      n/ nU H:  u  pg[        U R                  X'US95      nU(       d  Un	  O%UR                  U5        M<     [	        U< S3US9v   U V
Vs/ s H  u  pU R                  X+5      (       d  M  UPM!     nn
nU(       a>  UR                  W	5        SR                  S U 5       5      n[	        U< SU< 35      v   g g s  snn
f 7f)Nrn   , is not valid under any of the given schemasr   r    c              3   8   #    U  H  n[        U5      v   M     g 7fr   )r(   )r   r   s     r   r   oneOf_draft4.<locals>.<genexpr>c  s     @Z6$v,,Zs   z is valid under each of )r2   r   r   r   r   r   appendr&   )r   oneOfr   r   
subschemasr   r5   r   errsfirst_validis
more_validreprss                 r   oneOf_draft4r   Q  s     5!JJ&I%%hu%MN#K$ ' @HJ
 	

 !+N
i.@.@.M!
JN+&		@Z@@.6>
 	
  Os   A#C%CCACc           	   #      #    / n[        U5       H8  u  pV[        U R                  X&US95      nU(       d    g UR                  U5        M:     [	        U< S3US9v   g 7f)Nrn   r   r   )r2   r   r   r   r   )r   anyOfr   r   r   r5   r   r   s           r   anyOf_draft4r   i  sb     J%e,I%%hu%MN$	 - @HJ
 	
s   AAc              #   b   #    U R                  X!5      (       a  [        U< SU< 35      v   g g 7f)Nz is not allowed for )r   r   )r   
not_schemar   r   s       r   
not_draft4r   w  s0     (//*4h?
 	
 0s   -/)&r   
jsonschemar   jsonschema.exceptionsr   r   jsonschema.compatr   r   r/   r4   r<   rB   rH   rO   rU   rY   r]   r   rf   rj   rl   rp   ru   r}   r   r   r   r   r   r   r   r   r   r   r   r   r        r   <module>r      s    	  > '
 E8 
(
"
"M?
>
JJD?
>
,I
+"
*4AJ
J
0

r   