+
    7*i!(  c                  sD  a  0 t $ R t^ RIHt ^ RIHtHt ^ RIH	t	 ^ RI
HtHtHtHtHtHtHt ^ RIHt ^ RIHtHtHt ^RIHtHt ^RIHt ^R	IHt R
t]'       d    ! R R]4      t ! R R]4      t  ! R R]4      t! ! R R]4      t" ! R R]4      t# ! R R]4      t$]]] ]!]"]#]PJ                  ]PL                  ]PN                  ]PP                  3	,          t)]]$]PT                  3,          t+]],]]]3,          ]-]]3,          ]],          3,          t.R]/R&   ]! R])].4      t0]! R]PT                  ]$].4      t1M]t2]! RRR7      RRR RR!RR"RR#R/R$ R% ll4       t3]R#R&/R' R( ll4       t4]R#R&/R) R* ll4       t4]R#R&/R+ R, ll4       t4]! R-RR7      RRR.RR#R/R/ R0 ll4       t4R# )1zCOld `@validator` and `@root_validator` function validators from V1.)annotations)partialpartialmethod)FunctionType)TYPE_CHECKINGAnyCallableLiteralTypeVarUnionoverload)warn)Protocol	TypeAlias
deprecated)_decorators_decorators_v1)PydanticUserError)PydanticDeprecatedSince20zQ`allow_reuse` is deprecated and will be ignored; it should no longer be necessaryc                  s"    ] tR t^tR R ltRtR# )_OnlyValueValidatorClsMethodc               $    V ^8  d   QhRRRRRR/# )   !_OnlyValueValidatorClsMethod__clsr   #_OnlyValueValidatorClsMethod__valuereturn Zformat   "I/usr/lib/python3.14/site-packages/pydantic/deprecated/class_validators.py__annotate__Z)_OnlyValueValidatorClsMethod.__annotate__   s    @@#@@@    c                	    R # Nr   )selfr   r      &&&r   __call__Z%_OnlyValueValidatorClsMethod.__call__   s    Sr   r   NZ__name__Z
__module__Z__qualname__Z__firstlineno__r#   Z__static_attributes__r   r   r   r   r      s    @@r   r   c                  s"    ] tR t^tR R ltRtR# )_V1ValidatorWithValuesClsMethodc               (    V ^8  d   QhRRRRRRRR/# )r   $_V1ValidatorWithValuesClsMethod__clsr   &_V1ValidatorWithValuesClsMethod__valuevaluesdict[str, Any]r   r   r   r   r   r   Z,_V1ValidatorWithValuesClsMethod.__annotate__   s    XX#XX^XPSXr   c                	r   r    r   )r!   r'   r(   r)   s   &&&&r   r#   Z(_V1ValidatorWithValuesClsMethod.__call__   s    UXr   r   Nr$   r   r   r   r%   r%      s    XXr   r%   c                  s"    ] tR t^tR R ltRtR# )%_V1ValidatorWithValuesKwOnlyClsMethodc               r&   )r   *_V1ValidatorWithValuesKwOnlyClsMethod__clsr   ,_V1ValidatorWithValuesKwOnlyClsMethod__valuer)   r*   r   r   r   r   r   r   Z2_V1ValidatorWithValuesKwOnlyClsMethod.__annotate__   s    [[#[[[SV[r   c               	r   r    r   )r!   r,   r-   r)   s   &&&$r   r#   Z._V1ValidatorWithValuesKwOnlyClsMethod.__call__   s    X[r   r   Nr$   r   r   r   r+   r+      s    [[r   r+   c                  s"    ] tR t^tR R ltRtR# )_V1ValidatorWithKwargsClsMethodc               r   )r   $_V1ValidatorWithKwargsClsMethod__clsr   kwargsr   r   r   r   r   r   Z,_V1ValidatorWithKwargsClsMethod.__annotate__   s    AA#AAAr   c                	r   r    r   )r!   r/   r0   s   &&,r   r#   Z(_V1ValidatorWithKwargsClsMethod.__call__   s    cr   r   Nr$   r   r   r   r.   r.      s    AAr   r.   c                  s"    ] tR t^!tR R ltRtR# )(_V1ValidatorWithValuesAndKwargsClsMethodc               s(    V ^8  d   QhRRRRRRRR/# )r   -_V1ValidatorWithValuesAndKwargsClsMethod__clsr   r)   r*   r0   r   r   r   r   r   r   Z5_V1ValidatorWithValuesAndKwargsClsMethod.__annotate__"   s    YY#Y~YYQTYr   c                	r   r    r   )r!   r2   r)   r0   s   &&&,r   r#   Z1_V1ValidatorWithValuesAndKwargsClsMethod.__call__"   s    VYr   r   Nr$   r   r   r   r1   r1   !   s    YYr   r1   c                  s"    ] tR t^$tR R ltRtR# )_V1RootValidatorClsMethodc               s$    V ^8  d   QhRRRRRR/# )r   _V1RootValidatorClsMethod__clsr   !_V1RootValidatorClsMethod__valuesz"_decorators_v1.RootValidatorValuesr   r   r   r   r   r   Z&_V1RootValidatorClsMethod.__annotate__%   s$     	5 	5	5(J	5/	5r   c                	r   r    r   )r!   r4   r5   r"   r   r#   Z"_V1RootValidatorClsMethod.__call__%   s    14r   r   Nr$   r   r   r   r3   r3   $   s    	5 	5r   r3   r   _PartialClsOrStaticMethod_V1ValidatorType_V1RootValidatorFunctionTypePydantic V1 style `@validator` validators are deprecated. You should migrate to Pydantic V2 style `@field_validator` validators, see the migration guide for more detailsN)ZcategorypreF	each_itemalwayscheck_fieldsallow_reusec               s8    V ^8  d   QhRRRRRRRRRRRR	R
RRR/# )r   __fieldstrfieldsr:   boolr;   r<   r=   zbool | Noner>   r   z.Callable[[_V1ValidatorType], _V1ValidatorType]r   r   r   r   r   r   R   sb     I III 
I 	I
 I I I 4Ir   c               s  aaaaa \        R\        ^R7       VRJ d   \        \        \        ^R7       V .SO5o\        S^ ,          \        4      '       d   \        RRR7      h\        ;QJ d    R S 4       F  '       d   K   RM	  RM! R S 4       4      '       g   \        R	R
R7      hVRJ d   RMRoR VVVVV3R llpV# )a  Decorate methods on the class indicating that they should be used to validate fields.

Args:
    __field (str): The first field the validator should be called on; this is separate
        from `fields` to ensure an error is raised if you don't pass at least one.
    *fields (str): Additional field(s) the validator should be called on.
    pre (bool, optional): Whether this validator should be called before the standard
        validators (else after). Defaults to False.
    each_item (bool, optional): For complex objects (sets, lists etc.) whether to validate
        individual elements rather than the whole object. Defaults to False.
    always (bool, optional): Whether this method and other validators should be called even if
        the value is missing. Defaults to False.
    check_fields (bool | None, optional): Whether to check that the fields actually exist on the model.
        Defaults to None.
    allow_reuse (bool, optional): Whether to track and raise an error if another validator refers to
        the decorated function. Defaults to False.

Returns:
    Callable: A decorator that can be used to decorate a
        function to be used as a validator.
r9   Z
stacklevelTz`@validator` should be used with fields and keyword arguments, not bare. E.g. usage should be `@validator('<field_name>', ...)`zvalidator-no-fieldsZcodec              3  sB   "   T F  p\        V\        4      x  K  	  R # 5ir    )
isinstancer@   )Z.0Zfields   & r   Z	<genexpr>Zvalidator.<locals>.<genexpr>   s     <VEE3''Vs   Fz`@validator` fields should be passed as separate string args. E.g. usage should be `@validator('<field_name_1>', '<field_name_2>', ...)`zvalidator-invalid-fieldsbeforeafterc                    V ^8  d   QhRRRR/# )r   fr   r   z(_decorators.PydanticDescriptorProxy[Any]r   r   r   r   r   Zvalidator.<locals>.__annotate__   s     Y Ys Y? Yr   c                s  < \         P                  ! V 4      '       d   \        R RR7      h\         P                  ! V 4      p \        P
                  p\         P                  ! SSSSSR7      p\         P                  ! WVR7      # )z2`@validator` cannot be applied to instance methodszvalidator-instance-methodrD   )rA   moder;   r<   r=   Zshim)r   is_instance_method_from_sigr   %ensure_classmethod_based_on_signaturer   Zmake_generic_v1_field_validatorZValidatorDecoratorInfoPydanticDescriptorProxy)rI   wrapZvalidator_wrapper_infor<   r=   r;   rA   rJ   s   &  r   decZvalidator.<locals>.dec   sz    22155#DKf  ==a@==!,!C!C%"
 221SWXXr   )r   DeprecationWarning_ALLOW_REUSE_WARNING_MESSAGErE   r   r   Zall)	r?   r:   r;   r<   r=   r>   rA   rP   rJ   s	   &$ddd$j @r   	validatorrS   L   s    H 		4 	 d)+=!LvF&)\**E&
 	

 S<V<SSS<V<<<Y+
 	
 47$;xGDY Y" Jr   .c               $    V ^8  d   QhRRRRRR/# )r   skip_on_failureLiteral[True]r>   rB   r   FCallable[[_V1RootValidatorFunctionType], _V1RootValidatorFunctionType]r   r   r   r   r   r      s*     	 	 #		
 		r   c                r   r    r   )rU   r>      $$r   root_validatorrY           r   c               rT   )r   r:   rV   r>   rB   r   rW   r   r   r   r   r   r      s*     	 	 
		
 		r   c                r   r    r   )r:   r>   rX   r   rY   rY      rZ   r   c               s(    V ^8  d   QhRRRRRRRR/# )	r   r:   zLiteral[False]rU   rV   r>   rB   r   rW   r   r   r   r   r   r      s4     
 
 
	

 #
 

r   c                r   r    r   )r:   rU   r>   s   $$$r   rY   rY      s     r   Pydantic V1 style `@root_validator` validators are deprecated. You should migrate to Pydantic V2 style `@model_validator` validators, see the migration guide for more detailsrU   c               s(    V ^8  d   QhRRRRRRRR/# )r   r:   rB   rU   r>   r   r   r   r   r   r   r   r      s2     4 4	4 4 	4
 	4r   c                s"  aa \        R\        ^R7       V'       d   \        4       ! V!  # VRJ d   \        \        \        ^R7       V RJ d   RMRoV RJ d   VRJd   \	        RRR	7      h\        \        P                  V R
7      oR VV3R llpV# )a  Decorate methods on a model indicating that they should be used to validate (and perhaps
modify) data either before or after standard model parsing/validation is performed.

Args:
    pre (bool, optional): Whether this validator should be called before the standard
        validators (else after). Defaults to False.
    skip_on_failure (bool, optional): Whether to stop validation and return as soon as a
        failure is encountered. Defaults to False.
    allow_reuse (bool, optional): Whether to track and raise an error if another validator
        refers to the decorated function. Defaults to False.

Returns:
    Any: A decorator that can be used to decorate a function to be used as a root_validator.
r[   rC   TrF   rG   FzIf you use `@root_validator` with pre=False (the default) you MUST specify `skip_on_failure=True`. Note that `@root_validator` is deprecated and should be replaced with `@model_validator`.zroot-validator-pre-skiprD   )r:   c               rH   )r   rI   zHCallable[..., Any] | classmethod[Any, Any, Any] | staticmethod[Any, Any]r   r   r   r   r   r   r   Z$root_validator.<locals>.__annotate__   s      M MW M\_ Mr   c                s   < \         P                  ! V 4      '       d   \        R 4      h\         P                  ! V 4      p\         P                  ! SR7      p\         P
                  ! WSR7      # )z7`@root_validator` cannot be applied to instance methods)rJ   rK   )r   rL   Z	TypeErrorrM   ZRootValidatorDecoratorInforN   )rI   ZresZdec_inforJ   rO   s   &  r   rP   Zroot_validator.<locals>.dec   sS    22155UVV??B99tD223tLLr   )r   rQ   rY   rR   r   r   r   Zmake_v1_generic_root_validator)r:   rU   r>   Z__argsrP   rJ   rO   s   $$$* @@r   rY   rY      s    4 		4 	 ((d)+=!L36$;xGD
e|t3i*
 	
 >@@cJDM M Jr   )5__conditional_annotations__Z__doc__Z
__future__r    Z_annotationsZ	functoolsr   r   Ztypesr   Ztypingr   r   r   r   r   r	   r
   Zwarningsr   Ztyping_extensionsr   r   r   Z	_internalr   r   Zerrorsr   r   rR   r   r%   r+   r.   r1   r3   ZV1ValidatorWithValuesZV1ValidatorWithValuesKwOnlyZV1ValidatorWithKwargsZV1ValidatorWithValuesAndKwargsZV1ValidatorZV1RootValidatorFunctionZV1RootValidatorZclassmethodZstaticmethodr6   Z__annotations__r7   r8   rQ   rS   rY   )r\   s   @r   <module>r]      sP   I 2 ,  R R R  = = 3 & 0r  Ax AY( Y\ \B( BZ8 Z5H 5
 $'-'0,,22,,55	7
K !..	0O
 ,1S#s]1K\Z]_bZbMcersvew1w+xyx
 1;@YZ#*&..!!	$  3 0 	I I 	I
 I !%I IIX 
	
 	 
	 
	
 	 
	 

 
 

 0 	44 "4 	44r   