
    /j                        S SK Jr  S SKrS SKrS SKJr  S SKJr  S SKJ	r	J
r
Jr  SSKJr  SSKJr  S	S
KJr  \	" S5      r\
" S5      r\
" S\S9rSS.     SS jjrg)    )annotationsN)defaultdict)Callable)	ParamSpecTypeVarcast   )logger)	NOT_GIVEN   )is_given_P_R_F)bound)target_versionc               p   ^ ^ U(       a  SU 3OSmSU U4S jjn[        [        [        /[        4   U5      $ )a  
Args:
    mapping: {old_param: suggestion}
    target_version: If set, the warning includes "will be removed in {target_version}".

Example:
>>> @deprecate_params({
...     "old_param": "Use new_param instead",
... }, target_version="v2.0")
... def my_function(old_param: NotGivenOr[int] = NOT_GIVEN, new_param: int = 0):
...     print(old_param)
>>> my_function(old_param=1)
WARNING: old_param is deprecated and will be removed in v2.0. Use new_param instead
1
>>> my_function(new_param=1) # no warning
z and will be removed in  c                   >^ ^ [         R                  " T 5      m[        R                  " T 5      SU UUU4S jj5       nU$ )Nc            
       > TR                   " U 0 UD6n[        [        5      nT	R                  5        HH  u  pE[	        UR
                  R                  U[        5      5      (       d  M5  X5   R                  U5        MJ     UR                  5        HG  u  pVSR                  U5      n[        R                  " U S[        U5      S:  a  SOS ST
 SU 3SS	9  MI     T" U 0 UD6$ )
Nz,  r   areisz deprecatedz. r	   )
stacklevel)bind_partialr   listitemsr   	argumentsgetr   appendjoinr
   warninglen)argskwargsr   by_suggestionname
suggestionnamesparamsfnmappingremoval	signatures           Q/app/agent/.venv/lib/python3.13/site-packages/livekit/agents/utils/deprecation.pywrapper4deprecate_params.<locals>.decorator.<locals>.wrapper-   s    **D;F;E9DT9JM$+MMO EOO//i@AA!-44T: %4 &3%8%8%:!
5)haUaTB+gYVXYcXde  &; t&v&&    )r$   z_P.argsr%   z	_P.kwargsreturnr   )inspectr.   	functoolswraps)r+   r0   r.   r,   r-   s   ` @r/   	decorator#deprecate_params.<locals>.decorator*   s:    %%b)				' 	' 
	' r2   )r+   Callable[_P, _R]r3   r9   )r   r   r   )r,   r   r7   r-   s   `  @r/   deprecate_paramsr:      s=    , >L((89QSG * "r"I..r2   )r,   zdict[str, str]r   z
str | Noner3   zCallable[[_F], _F])
__future__r   r5   r4   collectionsr   collections.abcr   typingr   r   r   logr
   typesr   miscr   r   r   r   r:    r2   r/   <module>rC      sg    "   # $ + +   t_T]T" "&-/-/ -/ 	-/r2   