
    g[*                        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	 d dddddddedgdf   fd       Z%ed!d       Z% edd      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)bound)configfuncr   
ConfigTypereturnc                     y N )r   r   s     R/var/www/openai/venv/lib/python3.12/site-packages/pydantic/deprecated/decorator.pyr   r      s     25    c                      y r"   r#   )r   s    r$   r   r   "   s    @Cr%   KThe `validate_arguments` method is deprecated; use `validate_call` instead.)categoryc                `    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   r0   init_model_instancevalidateraw_functionmodel)_funcr1   r0   r   s     @r$   r4   z$validate_arguments.<locals>.validate2   st    uf-	u	,C 	,3 	,3 	, 
	, !$&$:$:!(*%!#r%   )r7   AnyCallabler    r8   )warningswarnr   )r   r   r4   s    ` r$   r   r   &   s3     MMU!  ~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)r2   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.)&inspectrA   rB   
parameterskeys
ALT_V_ARGSALT_V_KWARGSV_POSITIONAL_ONLY_NAMEV_DUPLICATE_KWARGSr   r   __name__r5   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   rA   rB   rH   
type_hints
takes_argstakes_kwargsfieldsinameprW   rY   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9LAy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>>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_valuesr6   )rb   r,   r-   valuess       r$   r3   z%ValidatedFunction.init_model_instance   s(    ""40tzz#F##r%   c                 H     | j                   |i |}| j                  |      S r"   )r3   execute)rb   r,   r-   ms       r$   r/   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"   )rU   nextStopIterationrO   getrR   r6   __pydantic_fields__rV   rS   aliasrP   rQ   appendrL   rM   )rb   r,   r-   rn   arg_iterrh   aarg_name_
var_kwargswrong_positional_argsduplicate_kwargsri   fieldfields_aliasnon_var_fieldskvs                     r$   rm   zValidatedFunction.build_values   s   !# H>DAq  ++//2''(F8$01sH5MHDAqaH5M/MF4++,  &(
 "  $zz==CCE
EeD,,d.@.@AA KKE 	 

 TZZ;;<@P@PRVRdRd?eeLLNDAqN"a<&7111)003;$++A.q	 !
1 # )3F4%%& -BF)*)9F%&E %  6N
s   F 
F0F!	FFrq   c                    |j                   j                         D ci c]/  \  }}||j                  v s|j                  |   j                  r||1 }}}|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__rV   __pydantic_fields_set__rv   default_factorypoprS   rR   rx   r5   rQ   )rb   rq   r   r   dr}   args_	in_kwargsr-   ri   values              r$   rp   zValidatedFunction.execute   s    

((*
*1A---1F1Fq1I1Y1Y qD* 	
 

 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7=
s   4Erg   re   rf   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.rD   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_argsre   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reprrI   r   )r   r   pluralrI   rf   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   rI   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%   )rN   
__module____qualname__r   rR   classmethodr
   r   r   r   rS   r   r\   r   rL   r   rM   r   config_dictmodel_config)config_wrapperr   rb   re   rf   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   rO   r   ConfigWrapperalias_generatorr   r   r   r   r   r   r5   rN   r6   )rb   rg   re   rf   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%   )rc   r8   r   r   )rN   r   r   rk   r   r   r3   r/   r   r   r\   rm   rp   boolr   r#   r%   r$   r2   r2   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%   r2   r"   )r   r   r    r   )+r9   	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__r8   r   r\   r   r   rJ   rK   rL   rM   r2   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%   