
    i                         d dl Z d dlmZ d dlmZ d dlmZmZ defdZ	dddedee   d	edz  fd
Z
dddededz  fdZy)    N)Iterable)wraps)	Parameter	signatureversionc                       fd}|S )aB  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                 \    t               g g j                  j                         D ]c  \  }}|j                  t        j
                  k(  rj                  |       5|j                  t        j                  k(  sSj                  |       e t                fd       }|S )Nc            	         t        |       t              z
  }|dk  r | i |S t        d | | | d        D cg c]$  \  }}t        |t              r| d| dn| d| & }}}dj	                  |      }t        j                  dj                   d| d
 d	t               |j                  t        	j                  |               d
i |S c c}}w )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         s/var/www/vps2.regionflexible.com/Desarrollo/venv/lib/python3.12/site-packages/huggingface_hub/utils/_deprecation.pyinner_fzU_deprecate_positional_args.<locals>._inner_deprecate_positional_args.<locals>.inner_f   s    TS]2JQ$)&)) "%[*%=tZKL?Q!RD# &0S%94&3%q!$qNH  yy*HMM=ajj\ J:<WI FDD 	 MM#cnnd34;v;s   )C)	r   r   itemskindr   POSITIONAL_OR_KEYWORDappendKEYWORD_ONLYr   )r!   r   paramr%   r    r"   r#   r   s   `   @@@r$    _inner_deprecate_positional_argszD_deprecate_positional_args.<locals>._inner_deprecate_positional_args   s    l>>//1 	)KD%zzY<<<%y555""4(		) 
q	 
	&     r   )r   r,   s   ` r$   _deprecate_positional_argsr.      s    @ ,+r-   )custom_messagedeprecated_argsr/   c                       fd}|S )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                 P     t               t                fd       }|S )Nc                     g }t        | j                  j                               D ]/  \  }}|j                  	v s|j	                  |j                         1 |j                         D ]8  \  }}|	v s|j                  |   j                  k7  s(|j	                  |       : t        |      dkD  rId
j                   ddj                  |       d d}|dz   z  }t        j                  |t                
| i |S )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messager/   r0   r!   r#   r   s           r$   r%   zO_deprecate_arguments.<locals>._inner_deprecate_positional_args.<locals>.inner_fK   s    $&  #D#..*?*?*A B @9>>_4(//	?@ ,2<<> <'
K /1#s~~j'A'I'II(//
;< '(1,6qzzl C		"678 9!!(	- 
 "-v66Gg}5d%f%%r-   )r   r   )r!   r%   r#   r/   r0   r   s   ` @r$   r,   z>_deprecate_arguments.<locals>._inner_deprecate_positional_argsH   s)    l	q	& 
	&6 r-   r   )r   r0   r/   r,   s   ``` r$   _deprecate_argumentsr=   4   s    (B ,+r-   )r<   r<   c                       fd}|S )aC  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                       j                   dk(  r j                  j                  d      d   t                fd       }|S )N__init__.r   c                      d dj                    d d}|dz   z  }t        j                  |t                | i |S )Nr   z	' (from 'z3') is deprecated and will be removed from version 'r4    )
__module__r   r   r   )r   r   warning_messager!   r<   r   r   s      r$   r%   zC_deprecate_method.<locals>._inner_deprecate_method.<locals>.inner_f|   s^     D61<<.0cdkcllno  "3=0MM/=9d%f%%r-   )r   __qualname__splitr   )r!   r%   r   r<   r   s   ` @r$   _inner_deprecate_methodz2_deprecate_method.<locals>._inner_deprecate_methodw   sJ    zz:>>'',Q/D	q	& 
	& r-   r   )r   r<   rH   s   `` r$   _deprecate_methodrI   l   s    " #"r-   )r   collections.abcr   	functoolsr   inspectr   r   r   r.   r=   rI   r   r-   r$   <module>rM      sj     $  (*,3 *,b "&	5,5, c]5, $J	5,p >B ## #d
 #r-   