
    g[*                        S SK r S SKJr  S SKJrJrJrJrJrJ	r	J
r
JrJrJrJrJr  S SKJr  SSKJrJr  SSKJr  SSKJr  SS	KJr  SS
KJrJr  SSK Jr  \(       d  \rSr \(       a  \S\4   r!\" S\!S9r"\S\\   \\#\4   4   r$\ S SS.SSSSS\S/S4   4S jjj5       r%\S!S j5       r%\" SSS9S SS.S\
S   SSS\4S jjj5       r%Sr&Sr'Sr(Sr) " S S5      r*g)"    N)wraps)TYPE_CHECKINGAnyCallableDictListMappingOptionalTupleTypeTypeVarUnionoverload)
deprecated   )_config_typing_extra)	to_pascal)PydanticUserError)field_validator)	BaseModelcreate_model)PydanticDeprecatedSince20)validate_arguments.AnyCallableT)bound)configfuncr   
ConfigTypereturnc                    g N )r   r   s     V/home/matz/Project1/venv/lib/python3.13/site-packages/pydantic/deprecated/decorator.pyr   r      s     25    c                     g r"   r#   )r   s    r$   r   r   "   s    @Cr%   KThe `validate_arguments` method is deprecated; use `validate_call` instead.)categoryc                j   ^ [         R                  " S[        SS9  SU4S jjnU (       a  U" U 5      $ U$ )z9Decorator to validate the arguments passed to a function.r'   r   )
stacklevelc                    >^ [        U T5      m[        U 5      S[        S[        S[        4U4S jj5       nTUl        TR                  Ul        TR                  Ul        TR                  Ul        U$ )Nargskwargsr    c                  (   > TR                   " U 0 UD6$ r"   )call)r,   r-   vds     r$   wrapper_function>validate_arguments.<locals>.validate.<locals>.wrapper_function5   s    77D+F++r%   )ValidatedFunctionr   r   r0   init_model_instancevalidateraw_functionmodel)_funcr1   r0   r   s     @r$   r5   $validate_arguments.<locals>.validate2   st    uf-	u	,C 	,3 	,3 	, 
	, !$&$:$:!(*%!#r%   )r8   AnyCallabler    r:   )warningswarnr   )r   r   r5   s    ` r$   r   r   &   s3     MMU!  ~r%   v__args	v__kwargsv__positional_onlyv__duplicate_kwargsc            
           \ rS rSrSS jrS\S\S\4S jrS\S\S\4S	 jrS\	\S
4   S\
\\4   S\
\\4   4S jrS\S\4S jrS\
\\4   S\S\SSSS4
S jrSrg)r3   K   r   r   c                 0   SSK JnJn  U" U5      R                  nUR	                  5       [
        [        [        [        1-  (       a8  [        S[
         S[         S[         S[         S[        R                   S3S S9eXl        0 U l        [        5       U l        S	U l        S
U l        [$        R&                  " USS9nSnSn0 n	[)        UR+                  5       5       GH  u  n
u  pUR,                  UR.                  L a  [0        nOXk   nUR2                  UR.                  L a  SOUR2                  nUR4                  UR6                  :X  aF  XR                  U
'   X4X'   [8        [:           S 4U	[        '   U R                  R=                  U5        M  UR4                  UR>                  :X  a+  XR                  U
'   X4X'   [8        [:           S 4U	[        '   M  UR4                  UR@                  :X  a  X4X'   GM  UR4                  URB                  :X  a  Xl        [D        US4   S 4X'   SnGMO  UR4                  URF                  :X  d   UR4                  5       eXl        [H        [:        U4   S 4X'   SnGM     U(       d  U R                   U	;   a  [
        U l        U(       d  U R"                  U	;   a  [        U l        U(       d  [8        [0           S 4XR                   '   U(       d!  [H        [0        [0        4   S 4XR"                  '   U RK                  XX5        g )Nr   )	Parameter	signature"z", "z" and "z6" are not permitted as argument names when using the "z" decoratorcoder,   r-   T)include_extrasF.)&inspectrD   rE   
parameterskeys
ALT_V_ARGSALT_V_KWARGSV_POSITIONAL_ONLY_NAMEV_DUPLICATE_KWARGSr   r   __name__r6   arg_mappingsetpositional_only_argsv_args_namev_kwargs_namer   get_type_hints	enumerateitems
annotationemptyr   defaultkindPOSITIONAL_ONLYr   straddPOSITIONAL_OR_KEYWORDKEYWORD_ONLYVAR_POSITIONALr   VAR_KEYWORDr   r   )selffunctionr   rD   rE   rK   
type_hints
takes_argstakes_kwargsfieldsinameprZ   r\   s                  r$   __init__ValidatedFunction.__init__L   s   0.7.A.L.L
??
L:PRdee#J<tL>6L5MWUgTh iGGYGbGbFccnp  %+-.1e!!%"11(4P

-/%j&6&6&89LAy||qww& 
'-
YY!''1cqyyGvv222&*  #)215cD-.))--d39:::&*  #)2-1#Y_)*9111)29333#' $Z_5t;!
vv!6!66>>6%)"#CO4d:#5 :: d..&8)D  2 2f <!-D'+Cy$F##$)-c3h)=F%%&&lCr%   r,   r-   r    c                 H    U R                  X5      nU R                  " S0 UD6$ )Nr#   )build_valuesr7   )re   r,   r-   valuess       r$   r4   %ValidatedFunction.init_model_instance   s$    ""40zz#F##r%   c                 H    U R                   " U0 UD6nU R                  U5      $ r"   )r4   execute)re   r,   r-   ms       r$   r/   ValidatedFunction.call   s%    $$d5f5||Ar%   .c                    0 nU(       ag  [        U5      n  [        U5      u  pVU R                  R	                  U5      nUb  XcU'   O(U/U VVs/ s H  u  pUPM	     snn-   X0R
                  '   OM[  0 n	/ n
/ nU R                  R                  R                  5        VVs/ s H.  u  pXR
                  U R                  4;  d  M"  UR                  PM0     nnn[        U R                  R                  5      U R
                  U R                  1-
  nUR                  5        HV  u  nnUU;   d  UU;   a?  UU R                  ;   a  U
R                  U5        UU;   a  UR                  U5        UUU'   MQ  UU	U'   MX     U	(       a  XU R                  '   U
(       a  X[        '   U(       a  X[        '   U$ ! [         a     GMJ  f = fs  snnf s  snnf r"   )rX   nextStopIterationrR   getrU   r7   __pydantic_fields__rY   rV   aliasrS   rT   appendrO   rP   )re   r,   r-   rr   arg_iterrk   aarg_name_
var_kwargswrong_positional_argsduplicate_kwargsrl   fieldfields_aliasnon_var_fieldskvs                     r$   rq   ValidatedFunction.build_values   s   !# H>DA  ++//2''(8$01sH5MHDAaH5M/MF++,  &(
 "  $zz==CCE
E,,d.@.@AA EKKE 	 

 TZZ;;<@P@PRVRdRd?eeLLNDAqN"a<&7111)003;$++A.q	 !
1 # )34%%& -B)*)9%&E %  6N
s#   F- F?!GG-
F<;F<rv   c                    UR                   R                  5        VVs0 s H6  u  p#X!R                  ;   d   UR                  U   R                  (       d  M4  X#_M8     nnnUR                  U R                  0 5      nU R                  U;   ah  / nSn0 nUR                  5        H:  u  pU(       a  XU	'   M  XR                  :X  a  Xj-  nSnM)  UR                  U
5        M<     U R                  " U0 UDUD6$ U R                  (       aW  / n0 nUR                  5        H+  u  pXR                  ;   a  UR                  U
5        M'  XU	'   M-     U R                  " U0 UDUD6$ U R                  " S0 UDUD6$ s  snnf )NFTr#   )__dict__rY   __pydantic_fields_set__r|   default_factorypoprV   rU   r~   r6   rT   )re   rv   r   r   dr   args_	in_kwargsr-   rl   values              r$   ru   ValidatedFunction.execute   sg    

((*
*---1F1Fq1I1Y1Y AD* 	
 

 UU4--r2
q !EIF wwy#(4L---NE $ILL'  ) $$eDvDDD&&EF wwy444LL'#(4L	  )
 $$eDvDDD$$7q7J77=
s   3E.E.rj   rh   ri   Nc                 ^  ^ ^^^^ [        T R                  5      m[        R                  " U5      mTR                  (       a
  [        SS S9eTR                  c  STR                  S'    " UUU UU4S jS[        5      n[        [        T R                  R                  5      4SU0UD6T l        g )NztSetting the "alias_generator" property on custom Config for @validate_arguments is not yet supported, please remove.rG   forbidextrac            	       z  > \ rS rSr\"  YR
                  SS9\S\\\	      S\\\	      4UU4S jj5       5       r
\"  YR                  SS9\S\\\\	4      S\\\\	4      4U4S jj5       5       r\" \SS9\S\\\      SS4S	 j5       5       r\" \SS9\S\\\      SS4S
 j5       5       r Y R&                  rSrg):ValidatedFunction.create_model.<locals>.DecoratorBaseModel   F)check_fieldsr   r    c                 V   > T(       d  Uc  U$ [        T ST[        U5      -    S35      e)Nz# positional arguments expected but z given)	TypeErrorlen)clsr   pos_argsrh   s     r$   
check_argsEValidatedFunction.create_model.<locals>.DecoratorBaseModel.check_args   s9     H8*,OPX[^_`[aPaObbh ijjr%   c                    > T(       d  Uc  U$ [        U5      S:X  a  SOSnSR                  [        [        UR	                  5       5      5      n[        SU SU 35      e)N    s, zunexpected keyword argument: )r   joinmapreprrL   r   )r   r   pluralrL   ri   s       r$   check_kwargsGValidatedFunction.create_model.<locals>.DecoratorBaseModel.check_kwargs   sV      19H"1v{yyT1668!45"=fXRv NOOr%   Nc                     Uc  g [        U5      S:X  a  SOSnSR                  [        [        U5      5      n[	        SU SU SU 35      e)Nr   r   r   r   zpositional-only argumentz passed as keyword argumentr   r   r   r   r   r   r   r   r   rL   s       r$   check_positional_onlyPValidatedFunction.create_model.<locals>.DecoratorBaseModel.check_positional_only  sV     9"1v{yyT1.":6(B]^d]eeghlgm noor%   c                     Uc  g [        U5      S:X  a  SOSnSR                  [        [        U5      5      n[	        SU SU 35      e)Nr   r   r   r   zmultiple values for argumentr   r   r   s       r$   check_duplicate_kwargsQValidatedFunction.create_model.<locals>.DecoratorBaseModel.check_duplicate_kwargs  sJ     9"1v{yyT1.">vhb OPPr%   r#   )rQ   
__module____qualname____firstlineno__r   rU   classmethodr
   r   r   r   rV   r   r_   r   rO   r   rP   r   config_dictmodel_config__static_attributes__)config_wrapperr   re   rh   ri   s   r$   DecoratorBaseModelr      s5   T--EBk8DI#6 k8DI;N k  Ck T//eDPXd38n%= P(4PSUXPX>BZ P  EP 3%HphtCy.A pd p  Ip /eDQxS	/B Qt Q  EQ *55Lr%   r   __base__)r   rR   r   ConfigWrapperalias_generatorr   r   r   r   r   r   r6   rQ   r7   )re   rj   rh   ri   r   r   r   r   s   ` ``  @@r$   r   ValidatedFunction.create_model   s    t''( ..v6))#K 
 '2:N&&w/'	6 '	6 '	6R ")D,=,=,F,F"GoRdohno
r%   )rR   r7   rT   r6   rU   rV   )rf   r:   r   r   )rQ   r   r   r   rn   r   r   r4   r/   r   r   r_   rq   ru   boolr   r   r#   r%   r$   r3   r3   K   s    BDH$ $ $	 $#   )sCx )$sCx. )TRUWZRZ^ )V8 8s 8B7p4S> 7pt 7pSW 7pam 7prv 7pr%   r3   r"   )r   r   r    r   )+r;   	functoolsr   typingr   r   r   r   r   r	   r
   r   r   r   r   r   typing_extensionsr   	_internalr   r   alias_generatorsr   errorsr   functional_validatorsr   mainr   r   r   DeprecationWarning__all__r:   r   r_   r   r   rM   rN   rO   rP   r3   r#   r%   r$   <module>r      s2     u u u u ( . ( & 3 * 0 3
!38$K>=LtT#YS#X67J 
5155
5".5~./5 
5
 
 C 
 C QX\ Xn5  ad 	6 
- * Pp Ppr%   