
    ITh                         S SK r S SKJr  S SKJrJr  S SKJrJr  S\	4S jr
SS.S\	S\\	   S	\\	   4S
 jjrSS.S\	S\\	   4S jjrg)    N)wraps)	Parameter	signature)IterableOptionalversionc                    ^  U 4S jnU$ )a*  Decorator for methods that issues warnings for positional arguments.
Using the keyword-only argument syntax in pep 3102, arguments after the
* will issue a warning when passed as a positional argument.

Args:
    version (`str`):
        The version when positional arguments will result in error.
c                 h  >^ ^^^ [        T 5      m/ m/ mTR                  R                  5        Hg  u  pUR                  [        R
                  :X  a  TR                  U5        M6  UR                  [        R                  :X  d  MV  TR                  U5        Mi     [        T 5      UU UUU4S j5       nU$ )Nc            	        > [        U 5      [        T5      -
  nUS::  a  T" U 0 UD6$ [        TS U X* S  5       VVs/ s H)  u  p4[        U[        5      (       a  U SU S3OU SU 3PM+     nnnSR	                  U5      n[
        R                  " STR                   SU ST
 S	3[        5        UR                  [        T	R                  U 5      5        T" S
0 UD6$ s  snnf )Nr   z=''=, z+Deprecated positional argument(s) used in 'z': pass z as keyword args. From version z? passing these as positional arguments will result in an error, )lenzip
isinstancestrjoinwarningswarn__name__FutureWarningupdate
parameters)argskwargs
extra_argsnameargargs_msgall_argsfkwonly_argssigr   s         Z/var/www/auris/envauris/lib/python3.13/site-packages/huggingface_hub/utils/_deprecation.pyinner_fU_deprecate_positional_args.<locals>._inner_deprecate_positional_args.<locals>.inner_f   s   TS]2JQ$)&)) "%[*%=tKL?Q!R!RID &0S%9%94&3%q!$qN!R   yy*HMM=ajj\ J:<WI FDD 	 MM#cnnd34;v;s   0C)	r   r   itemskindr   POSITIONAL_OR_KEYWORDappendKEYWORD_ONLYr   )r"   r   paramr&   r!   r#   r$   r   s   `   @@@r%    _inner_deprecate_positional_argsD_deprecate_positional_args.<locals>._inner_deprecate_positional_args   s    l>>//1KDzzY<<<%y555""4(	 2 
q	 	 
	&     r   )r   r.   s   ` r%   _deprecate_positional_argsr1      s    @ ,+r0   )custom_messagedeprecated_argsr2   c                    ^ ^^ UUU 4S jnU$ )a  Decorator to issue warnings when using deprecated arguments.

TODO: could be useful to be able to set a custom error message.

Args:
    version (`str`):
        The version when deprecated arguments will result in error.
    deprecated_args (`List[str]`):
        List of the arguments to be deprecated.
    custom_message (`str`, *optional*):
        Warning message that is raised. If not passed, a default warning message
        will be created.
c                 R   >^ ^ [        T 5      m[        T 5      UUU UU4S j5       nU$ )Nc                  "  > / n[        U TR                  R                  5       5       H2  u  p4UR                  T	;   d  M  UR	                  UR                  5        M4     UR                  5        H=  u  pVUT	;   d  M  UTR                  U   R                  :w  d  M,  UR	                  U5        M?     [        U5      S:  aK  ST
R                   SSR                  U5       ST S3nTb  UST-   -  n[        R                  " U[        5        T
" U 0 UD6$ )Nr   z Deprecated argument(s) used in 'z': r   z&. Will not be supported from version ''.z

)r   r   valuesr   r+   r(   defaultr   r   r   r   r   r   )r   r   used_deprecated_args_	parameter
kwarg_namekwarg_valuemessager2   r3   r"   r$   r   s           r%   r&   O_deprecate_arguments.<locals>._inner_deprecate_positional_args.<locals>.inner_fK   s
    $&  #D#..*?*?*A B>>_4(//	? !C ,2<<>'
 /1#s~~j'A'I'II(//
; ,: '(1,6qzzl C		"678 9!!(	- 
 "-v66Gg}5d%f%%r0   )r   r   )r"   r&   r$   r2   r3   r   s   ` @r%   r.   >_deprecate_arguments.<locals>._inner_deprecate_positional_argsH   s.    l	q	& 	& 
	&6 r0   r   )r   r3   r2   r.   s   ``` r%   _deprecate_argumentsrB   4   s    (B ,+r0   )r?   r?   c                    ^ ^ UU 4S jnU$ )a'  Decorator to issue warnings when using a deprecated method.

Args:
    version (`str`):
        The version when deprecated arguments will result in error.
    message (`str`, *optional*):
        Warning message that is raised. If not passed, a default warning message
        will be created.
c                    >^ ^ T R                   mTS:X  a  T R                  R                  S5      S   m[        T 5      U UUU4S j5       nU$ )N__init__.r   c                     > ST STR                    ST S3nTb  UST-   -  n[        R                  " U[        5        T" U 0 UD6$ )Nr   z	' (from 'z3') is deprecated and will be removed from version 'r7    )
__module__r   r   r   )r   r   warning_messager"   r?   r   r   s      r%   r&   C_deprecate_method.<locals>._inner_deprecate_method.<locals>.inner_f|   s^     D61<<.0cdkcllno  "3=0MM/=9d%f%%r0   )r   __qualname__splitr   )r"   r&   r   r?   r   s   ` @r%   _inner_deprecate_method2_deprecate_method.<locals>._inner_deprecate_methodw   sJ    zz:>>'',Q/D	q	& 
	& r0   r   )r   r?   rN   s   `` r%   _deprecate_methodrP   l   s    " #"r0   )r   	functoolsr   inspectr   r   typingr   r   r   r1   rB   rP   r   r0   r%   <module>rT      sk      ( %*,3 *,b %)	5,5, c]5, SM	5,p AE ## # #r0   