
    df*                        d dl Z d dlmZ d dlmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZ d dlmZ ddlmZmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZ ddl mZ eseZdZ er!edef   Z! ede!      Z"edee   ee#ef   f   Z$e ede      d dddddddedgdf   fd              Z%e ede      d!d              Z%d ddde
d   dddefdZ%dZ&dZ'dZ(dZ) G d d      Z*y)"    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)boundKThe `validate_arguments` method is deprecated; use `validate_call` instead.)category)configfuncr   
ConfigTypereturnc                     y N )r    r   s     V/home/api-vastappli/venv/lib/python3.12/site-packages/pydantic/deprecated/decorator.pyr   r          
     c                      y r$   r%   )r    s    r&   r   r   $   r'   r(   c                `    t        j                  dt        d       dfd}| r ||       S |S )z9Decorator to validate the arguments passed to a function.r   r   )
stacklevelc                     t        |       t        |       dt        dt        dt        ffd       }|_        j                  |_        j                  |_        j                  |_        |S )Nargskwargsr"   c                  (     j                   | i |S r$   )call)r-   r.   vds     r&   wrapper_functionz>validate_arguments.<locals>.validate.<locals>.wrapper_function5   s    277D+F++r(   )ValidatedFunctionr   r   r1   init_model_instancevalidateraw_functionmodel)_funcr2   r1   r   s     @r&   r5   z$validate_arguments.<locals>.validate2   st    uf-	u	,C 	,3 	,3 	, 
	, !$&$:$:!(*%!#r(   )r8   AnyCallabler"   r9   )warningswarnDeprecationWarning)r    r   r5   s    ` r&   r   r   ,   s1    MMUWivw  ~r(   v__args	v__kwargsv__positional_onlyv__duplicate_kwargsc            
           e Zd ZddZdededefdZdededefdZdeed	f   de	e
ef   de	e
ef   fd
ZdedefdZde	e
ef   dededdddf
dZy)r3   r   r!   c                    ddl m}m}  ||      j                  }|j	                         t
        t        t        t        hz  r;t        dt
         dt         dt         dt         dt        j                   dd       || _        i | _        t               | _        d	| _        d
| _        t%        j&                  |d      }d}d}i }	t)        |j+                               D ]  \  }
\  }}|j,                  |j.                  u rt0        }n||   }|j2                  |j.                  u rdn|j2                  }|j4                  |j6                  k(  rH|| j                  |
<   ||f|	|<   t8        t:           d f|	t        <   | j                  j=                  |       |j4                  |j>                  k(  r-|| j                  |
<   ||f|	|<   t8        t:           d f|	t        <   |j4                  |j@                  k(  r	||f|	|<   |j4                  |jB                  k(  r|| _        tD        |df   d f|	|<   d}Q|j4                  |jF                  k(  sJ |j4                         || _        tH        t:        |f   d f|	|<   d} |s| j                   |	v rt
        | _        |s| j"                  |	v rt        | _        |st8        t0           d f|	| j                   <   |s"tH        t0        t0        f   d f|	| j"                  <   | jK                  |	|||       y )Nr   )	Parameter	signature"z", "z" and "z6" are not permitted as argument names when using the "z" decoratorcoder-   r.   T)include_extrasF.)&inspectrC   rD   
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   rC   rD   rJ   
type_hints
takes_argstakes_kwargsfieldsinameprY   r[   s                  r&   __init__z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9 	$LAya||qww& 
'-
YY!''1cqyyGvv222&*  #)72t15cD-.))--d39:::&*  #)72t-1#Y_)*9111)72t9333#' $Z_5t;t!
vv!6!66>>%)"#CO4d:t#5	$: d..&8)D  2 2f <!-D'+Cy$F4##$)-c3h)=F4%%&&*lFCr(   r-   r.   r"   c                 J    | j                  ||      } | j                  di |S )Nr%   )build_valuesr7   )rd   r-   r.   valuess       r&   r4   z%ValidatedFunction.init_model_instance   s(    ""40tzz#F##r(   c                 H     | j                   |i |}| j                  |      S r$   )r4   execute)rd   r-   r.   ms       r&   r0   zValidatedFunction.call   s'    $D$$d5f5||Ar(   .c                 N   i }|rft        |      }	 	 t        |      \  }}| j                  j	                  |      }||||<   n'|g|D cg c]  \  }}|	 c}}z   || j
                  <   nZi }	g }
g }| j                  j                  j                         D cg c]+  \  }}|| j
                  | j                  fvr|j                  - }}}t        | j                  j                        | j
                  | j                  hz
  }|j                         D ]L  \  }}||v s||v r:|| j                  v r|
j                  |       ||v r|j                  |       |||<   H||	|<   N |	r|	|| j                  <   |
r	|
|t        <   |r	||t        <   |S # t        $ r Y ,w xY wc c}}w c c}}w r$   )rW   nextStopIterationrQ   getrT   r7   model_fieldsrX   rU   aliasrR   rS   appendrN   rO   )rd   r-   r.   rp   arg_iterrj   aarg_name_
var_kwargswrong_positional_argsduplicate_kwargsrk   fieldfields_aliasnon_var_fieldskvs                     r&   ro   zValidatedFunction.build_values   s   !# H>DAq  ++//2''(F8$01sH5MDAqa5M/MF4++,  &(
 "  $zz66<<>
eD,,d.@.@AA KK
 

 TZZ4459I9I4K]K]8^^LLN 	"DAqN"a<&7111)003;$++A.q	 !
1	" )3F4%%& -BF)*)9F%&E %  6N
s   F 
F0F!	FFrs   c                    |j                   j                         D ci c]0  \  }}||j                  v s|j                  |   j                  s.||2 }}}|j                  | j                  i       }| j                  |v rbg }d}i }|j                         D ]5  \  }	}
|r|
||	<   |	| j                  k(  r||
z  }d}%|j                  |
       7  | j                  |i ||S | j                  rUg }i }|j                         D ]*  \  }	}
|	| j                  v r|j                  |
       &|
||	<   ,  | j                  |i ||S  | j                  di ||S c c}}w )NFTr%   )__dict__rX   __pydantic_fields_set__rx   default_factorypoprU   rT   rz   r6   rS   )rd   rs   r   r   dr   args_	in_kwargsr.   rk   values              r&   rr   zValidatedFunction.execute   sz   jj..0xdaA9R9R4RVWVdVdefVgVwVwQTxxUU4--r2
q !EIF wwy (e#(F4LT---UNE $ILL'( %4$$eDvDDD&&EF wwy )e4444LL'#(F4L	)
 %4$$eDvDDD$4$$7q7J775 ys   /EEri   rg   rh   Nc                 T    t         j                        t        j                  |      j                  rt        dd       j                  dj                  d<    G  fddt              }t        t         j                  j                        fd|i| _        y )NztSetting the "alias_generator" property on custom Config for @validate_arguments is not yet supported, please remove.rF   forbidextrac            	       ~   e Zd Z eW j                  d      edeee      deee      ffd              Z	 eW j                  d      edeeeef      deeeef      ffd              Z eed      edeee      ddfd              Z eed      edeee      ddfd	              ZW  j$                  Zy)
:ValidatedFunction.create_model.<locals>.DecoratorBaseModelF)check_fieldsr   r"   c                 J    s||S t         dt        |      z    d      )Nz# positional arguments expected but z given)	TypeErrorlen)clsr   pos_argsrg   s     r&   
check_argszEValidatedFunction.create_model.<locals>.DecoratorBaseModel.check_args   s9     H8*,OPX[^_`[aPaObbh ijjr(   c                     s||S t        |      dk(  rdnd}dj                  t        t        |j	                                     }t        d| d|       )N    s, zunexpected keyword argument: )r   joinmapreprrK   r   )r   r   pluralrK   rh   s       r&   check_kwargszGValidatedFunction.create_model.<locals>.DecoratorBaseModel.check_kwargs   sV      19H"1v{yyT1668!45"=fXRv NOOr(   Nc                     |y t        |      dk(  rdnd}dj                  t        t        |            }t	        d| d| d|       )Nr   r   r   r   zpositional-only argumentz passed as keyword argumentr   r   r   r   r   r   r   r   r   rK   s       r&   check_positional_onlyzPValidatedFunction.create_model.<locals>.DecoratorBaseModel.check_positional_only  sV     9"1v{yyT1.":6(B]^d]eeghlgm noor(   c                     |y t        |      dk(  rdnd}dj                  t        t        |            }t	        d| d|       )Nr   r   r   r   zmultiple values for argumentr   r   r   s       r&   check_duplicate_kwargszQValidatedFunction.create_model.<locals>.DecoratorBaseModel.check_duplicate_kwargs  sJ     9"1v{yyT1.">vhb OPPr(   )rP   
__module____qualname__r   rT   classmethodr
   r   r   r   rU   r   r^   r   rN   r   rO   r   config_dictmodel_config)config_wrapperr   rd   rg   rh   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   rQ   r   ConfigWrapperalias_generatorr   r   r   r   r   r   r6   rP   r7   )rd   ri   rg   rh   r   r   r   r   s   ` ``  @@r&   r   zValidatedFunction.create_model   s    t''( ..v6))#K 
 '2:N&&w/'	6 '	6 '	6R ")D,=,=,F,F"GoRdohno
r(   )re   r9   r   r!   )rP   r   r   rm   r   r   r4   r0   r   r   r^   ro   rr   boolr   r%   r(   r&   r3   r3   K   s    BDH$ $ $	 $#   )sCx )$sCx. )TRUWZRZ^ )V8 8s 8: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   r<   __all__r9   r   r^   r!   r   rL   rM   rN   rO   r3   r%   r(   r&   <module>r      s=     u u u u ( . ( & 3 * 0 3
!38$K>=LtT#YS#X67J 
Q\uD T \ XWeVfhvVvMw  
 
Q\u 
X\ Xn5  ad 2 
- * Lp Lpr(   