
    ?KiW;                         S SK r S SKJr  S SK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g)    N)lookup_recursive_ref)_utils)ValidationErrorc                 T    U R                  S5      nUb  SU4/$ U R                  5       $ )z
Ignore siblings of ``$ref`` if it is present.

Otherwise, return all keywords.

Suitable for use with `create`'s ``applicable_validators`` argument.
$ref)getitems)schemarefs     ]/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/jsonschema/_legacy_keywords.pyignore_ref_siblingsr   	   s/     **V
C
||~    c              #     #    U R                  US5      (       d  g UR                  5        H  u  pEXB;  a  M  U R                  US5      (       a  U R                  X%US9 S h  vN   M=  U R                  US5      (       a  XR;  a  U< SU< 3n[        U5      v   Mq  Ms  U H   nXr;  d  M
  U< SU< 3n[        U5      v   M"     M     g  Ng7f)Nobjectschema_pathstring is a dependency of )is_typer	   descendr   )	validatordependenciesinstancer
   property
dependencymessageeachs           r   dependencies_draft3r      s     Xx00 , 2 2 4#Z22 ((( )    z844)'N*>xlK%g.. * #'!%(<XLIG)'22 # !5
s   AC!C	"AC* Cc              #   .  #    U R                  US5      (       d  gUR                  5        Hc  u  pEXB;  a  M  U R                  US5      (       a(  U H   nXb;  d  M
  U< SU< 3n[        U5      v   M"     MK  U R                  X%US9 Sh  vN   Me     g N	7f)z
Support for the ``dependencies`` keyword from pre-draft 2019-09.

In later drafts, the keyword was split into separate
``dependentRequired`` and ``dependentSchemas`` validators.
r   Narrayr   r   )r   r	   r   r   )r   r   r   r
   r   r   r   r   s           r   !dependencies_draft4_draft6_draft7r!   /   s      Xx00 , 2 2 4#Z11"'!%(<XLIG)'22 #
 !((( )    !5s   AB/B	B

Bc              #      #    [         R                  " U5       HA  nU R                  SU/0S9R                  U5      (       d  M+  U< SU< 3n[	        U5      v   MC     g 7f)Ntyper
   z is disallowed for )r   ensure_listevolveis_validr   )r   disallowr   r
   
disallowedr   s         r   disallow_draft3r*   M   s\     ((2
FZL#9:CCHMM#&9(FG!'** 3s   >AAc              #      #    U R                  US5      (       a  U R                  X!5       S h  vN   g [        U5       H  u  pEU R                  X%US9 S h  vN   M     g  N2 N7f)Nr   r   )r   r   	enumerate)r   extendsr   r
   index	subschemas         r   extends_draft3r0   T   se     (++$$X777%g.$$Xe$LLL / 	8 	Ms!   ,A%A!(A%A#
A%#A%c              #   >  #    U R                  US5      (       d  g U R                  US5      (       a-  [        U5       H  u  pEU R                  XQUS9 S h  vN   M     g [        [        U5      U5       H   u  u  pEnU R                  XVXDS9 S h  vN   M"     g  NC N7f)Nr    r   pathr3   r   )r   r,   r   zipr   r	   r   r
   r.   itemr/   s          r   items_draft3_draft4r8   \   s     Xw//))$X.KE ((5(AAA / ),Ih,?(G$MU9 ((e )    )H Bs$   ABB9BB
BBc              #   4  #    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      (       a.  [        X$S  US9 H  u  pVU R	                  XaUS9 S h  vN   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  N}7f)Nr    r	   r   )startr2   z3Additional items are not allowed (%s %s unexpected))r   r   lenr,   r   r   r   
extras_msg)r   aIr   r
   	len_itemsr.   r7   errors           r   additionalItemsr@   j   s     h00VZZ4h??FJJw+,IX&&$Xj%9KKE (((>>> LCMC

7B(?$@@EF%%hs6::gr3J/K/L&MNN
 	
 AR ?s   BDDA>Dc              #   >  #    U R                  US5      (       d  g U R                  US5      (       a:  [        [        U5      U5       H   u  u  pEnU R                  XVXDS9 S h  vN   M"     g [        U5       H  u  pEU R                  XQUS9 S h  vN   M     g  N6 N7f)Nr    r4   r2   )r   r5   r,   r   r6   s          r   items_draft6_draft7_draft201909rB   |   s     Xw//(((+Ih,?(G$MU9 ((e )    )H
 %X.KE ((5(AAA /	
 Bs$   A B"B#,BB
BB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n[        U5      v   g g 7f)NnumberexclusiveMinimumFzless than or equal toz	less than is z the minimum of r   r   r   )r   minimumr   r
   failedcmpr   s          r   minimum_draft3_draft4rK      sq     Xx00zz$e,,$%#LSE)9'Eg&&    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n[        U5      v   g g 7f)NrD   exclusiveMaximumFzgreater than or equal tozgreater thanrF   z the maximum of rG   )r   maximumr   r
   rI   rJ   r   s          r   maximum_draft3_draft4rP      sq     Xx00zz$e,,$(#LSE)9'Eg&& rL   c              #     #    U R                  US5      (       d  g UR                  5        H  u  pEXB;   a  U R                  X$   UUUS9 S h  vN   M(  UR                  SS5      (       d  MA  [	        U< S3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  N7f)Nr   r4   requiredFz is a required property)r   validator_valuer   r
   )
r   r	   r   r   r   _setr3   
appendleftr   extend)r   
propertiesr   r
   r   r/   r?   s          r   properties_draft3rX      s     Xx00)//1 (("$	 )    ]]:u--#xl2I$JKEJJ$ )* 5!	   JJ!!(+$$h
%;<K%  2s   A
CCC,A&Cc           	   #     #    [         R                  " U5      n/ n[        U5       Hi  u  pVU R                  US5      (       a5  [	        U R                  X&US95      nU(       d    g UR                  U5        MQ  U R                  X&5      (       d  Mi    g    / nU H!  n UR                  [        US   5      5        M#     [        U< SSR                  U5       3US9v   g ! [         a    UR                  [        U5      5         Mn  f = f7f)Nr   r   namez is not of type z, )context)r   r%   r,   r   listr   rV   appendrepr	Exceptionr   join)	r   typesr   r
   
all_errorsr.   r#   errorsreprss	            r   type_draft3re      s     u%EJ 'T8,,)++H+NOFf%x.. ( E	%LLd6l+, 
 ,&tyy'7&89   	%LLd$	%s0   B	D	D	C8&D	$DD	DD	c              #      ^ ^#    T R                  US5      (       d  g [        UU 4S jU 5       5      (       d  [        SU< S35      v   g g 7f)Nr    c              3   `   >#    U  H#  nTR                  TS 9R                  U5      v   M%     g7f)r$   N)r&   r'   ).0elementcontainsr   s     r   	<genexpr>)contains_draft6_draft7.<locals>.<genexpr>   s4      G 	)227;;s   +.zNone of z! are valid under the given schema)r   anyr   )r   rj   r   r
   s   ``  r   contains_draft6_draft7rn      sW     Xw//    xl"CD
 	
	s   AAc              #      #    [        U R                  5      nU R                  UUR                  UR                  S9 S h  vN   g  N7f)N)resolver)r   	_resolverr   contentsrp   )r   recursiveRefr   r
   resolveds        r   rs   rs      sG     #I$7$78H  "" !   s   >A AAc           	          U R                  US5      (       a  / $ / nUR                  S5      nUbc  U R                  R                  U5      nUR	                  [        U R                  UR                  UR                  S9UUR                  5      5        SU;   a]  [        U R                  5      nUR	                  [        U R                  UR                  UR                  S9UUR                  5      5        SU;   a}  SU;   a  [        [        [        U5      5      5      $ U R                  US   S5      (       a  [        [        [        U5      5      5      $ U[        [        [        US   5      5      5      -  nS	U;   ai  U R                  US	   S
9R                  U5      (       a+  U[        XUS	   5      -  nSU;   a  U[        XUS   5      -  nOSU;   a  U[        XUS   5      -  nS HV  nXb;   d  M
  [        U5       H=  u  pxU R                  X&   S
9R                  U5      (       d  M,  UR                  U5        M?     MX     S HD  nXb;   d  M
  X&    H2  n	[!        U R#                  X5      S5      n
U
b  M#  U[        XU	5      -  nM4     MF     U$ )z
Get all indexes of items that get evaluated under the current schema.

Covers all keywords related to unevaluatedItems: items, prefixItems, if,
then, else, contains, unevaluatedItems, allOf, oneOf, anyOf
booleanr   Nr
   rq   $recursiveRefr	   r@   r   ifr$   thenelse)rj   unevaluatedItemsallOfoneOfanyOf)r   r   rq   lookuprV   %find_evaluated_item_indexes_by_schemar&   rr   rp   r   r\   ranger;   r'   r,   r]   nextr   )r   r   r
   evaluated_indexesr   rt   keywordkvr/   errss              r   r   r      s    ++	
**V
C
&&--c2  1  #,,&// !  !!		
 & '	(;(;<  1  #,,&// !  !!		
 &&c(m,--VG_h77c(m,--T%F7O(<"=>>v~6$<099(CC!FVD\"  !%J& ! v!FVF^"  4!(+##6?#;DDQGG%,,Q/ , 4 /#_	I--hBDI<%)N!Y* % - / r   c              #     #    U R                  US5      (       d  g [        XU5      n[        U5       VVs/ s H  u  pVXT;  d  M  UPM     nnnU(       a'  Sn[        U[        R
                  " U5      -  5      v   g g s  snnf 7f)Nr    z4Unevaluated items are not allowed (%s %s unexpected))r   r   r,   r   r   r<   )	r   r|   r   r
   evaluated_item_indexesr.   r7   unevaluated_itemsr?   s	            r   unevaluatedItems_draft2019r   @  s     Xw//BV !*( 3 3. 	 3   Fef&7&78I&JJKK 	s   3BA<A<
8Bc           	      f   U R                  US5      (       a  / $ / nUR                  S5      nUbc  U R                  R                  U5      nUR	                  [        U R                  UR                  UR                  S9UUR                  5      5        SU;   a]  [        U R                  5      nUR	                  [        U R                  UR                  UR                  S9UUR                  5      5        S Hz  nXb;   d  M
  X&   nU R                  US5      (       a  U(       a  X1R                  5       -  nM@  U R                  US5      (       d  MY  U H  nX;   d  M
  UR                  U5        M     M|     SU;   aC  U H=  nUS    H1  n	[        R                  " X5      (       d  M   UR                  U5        M3     M?     SU;   a2  US   R                  5        H  u  pX;  a  M  U[        XU
5      -  nM     S	 HD  nXb;   d  M
  X&    H2  n
[        U R!                  X5      S 5      nUb  M#  U[        XU
5      -  nM4     MF     S
U;   aj  U R                  US
   S9R#                  U5      (       a,  U[        XUS
   5      -  nSU;   a  U[        XUS   5      -  nU$ SU;   a  U[        XUS   5      -  nU$ )Nrv   r   rw   rx   )rW   additionalPropertiesunevaluatedPropertiesr   patternPropertiesdependentSchemasr}   ry   r$   rz   r{   )r   r   rq   r   rV   &find_evaluated_property_keys_by_schemar&   rr   rp   r   keysr]   researchr	   r   r   r'   )r   r   r
   evaluated_keysr   rt   r   schema_valuer   patternr/   r   s               r   r   r   O  s   ++	N
**V
C
&&--c22  #,,&// !  !!		
 & '	(;(;<2  #,,&// !  !!		
 !?L  y99l--/1""<:: ,H+&--h7 !- f$ H!"5699W//"))(3 7 !
 V##)*<#=#C#C#EH'DY N $F /#_	I--hBDI<"&L!Y' N - / v~6$<099(CCDVD\ N "H#   vDVF^ N r   c              #     #    U R                  US5      (       d  g [        XU5      n/ nU H6  nXd;  d  M
  U R                  X&   UUUS9 H  nUR                  U5        M     M8     U(       aa  USL a5  Sn[	        U[
        S9n	[        U[        R                  " U	5      -  5      v   g Sn[        U[        R                  " U5      -  5      v   g g 7f)Nr   r4   Fz9Unevaluated properties are not allowed (%s %s unexpected))keyz[Unevaluated properties are not valid under the given schema (%s %s unevaluated and invalid))	r   r   r   r]   sortedstrr   r   r<   )
r   uPr   r
   r   unevaluated_keysr   _r?   extrass
             r   unevaluatedProperties_draft2019r     s     Xx00;VN )&&"$	 '  !''1  ;OE,#6F!%&*;*;F*C"CDDC  "%&*;*;<L*M"MNN s   /CBC)r   referencing.jsonschemar   
jsonschemar   jsonschema.exceptionsr   r   r   r!   r*   r0   r8   r@   rB   rK   rP   rX   re   rn   rs   r   r   r   r    r   r   <module>r      ss    	 7  13.<+M
$B' ' 22

K\LRjOr   