+
    ~j                        ^ RI Ht ^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	H
t
Ht ^RIHt ^RIHt ^RIHt ]	! R	4      t]
! R
4      t]
! R]R7      tRR/R R lltR# )    )annotationsN)defaultdict)Callable)	ParamSpecTypeVarcast)logger)	NOT_GIVEN)is_given_P_R_F)boundtarget_versionc               $    V ^8  d   QhRRRRRR/# )   mappingzdict[str, str]r   z
str | NonereturnzCallable[[_F], _F] )formats   "u/Users/mitch_tango/dev/rabbit-r1-livekit/agent/.venv/lib/python3.14/site-packages/livekit/agents/utils/deprecation.py__annotate__r      s(     -/ -/-/ -/ 	-/    c               |   a a V'       d   RV 2MRoR V V3R llp\        \        \        .\        3,          V4      # )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                    V ^8  d   QhRRRR/# )r   fnzCallable[_P, _R]r   r   )r   s   "r   r   &deprecate_params.<locals>.__annotate__*   s      & +; r   c                   <a a \         P                  ! S 4      o\        P                  ! S 4      R  V VVV3R ll4       pV# )c               $    V ^8  d   QhRRRRRR/# )r   argsz_P.argskwargsz	_P.kwargsr   r   r   )r   s   "r   r   9deprecate_params.<locals>.decorator.<locals>.__annotate__.   s!     	' 	'7 	'i 	'B 	'r   c            
       < SP                   ! V / VB p\        \        4      pS	P                  4        FM  w  rE\	        VP
                  P                  V\        4      4      '       g   K6  W5,          P                  V4       KO  	  VP                  4        FK  w  rVR P                  V4      p\        P                  ! T R\        V4      ^8  d   RMR RS
 RV 2^R7       KM  	  S! V / VB # )z,  areisz deprecatedz. )
stacklevel)bind_partialr   listitemsr   	argumentsgetr
   appendjoinr	   warninglen)r!   r"   r   by_suggestionname
suggestionnamesparamsr   r   removal	signatures   *,      r   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   )inspectr8   	functoolswraps)r   r9   r8   r   r7   s   f @r   	decorator#deprecate_params.<locals>.decorator*   s:    %%b)				' 	' 
	' r   )r   r   r   )r   r   r>   r7   s   f$ @r   deprecate_paramsr@      s=    , >L((89QSG * "r"I..r   )
__future__r   r<   r;   collectionsr   collections.abcr   typingr   r   r   logr	   typesr
   miscr   r   r   r   r@   r   r   r   <module>rH      sU    "   # $ + +   t_T]T"-/ "&-/ -/r   