
    g                         d dl Z d dlmZ d dlmZmZ d dlmZmZ de	fdZ
ddde	dee	         d	ee	         fd
Zddde	dee	         fdZdS )    N)wraps)	Parameter	signature)IterableOptional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                 Z    t                     g g j                                        D ]Z\  }}|j        t          j        k    r                    |           0|j        t          j        k    r                    |           [t                      fd            }|S )Nc            	         t          |           t                    z
  }|dk    r | i |S d t          d |         | | d                    D             }d                    |          }t          j        dj         d| d dt                     |                    t          j        |                       di |S )	Nr   c                 \    g | ])\  }}t          |t                    r| d | dn| d| *S )z=''=)
isinstancestr).0nameargs      ^/var/www/html/ai-engine/env/lib/python3.11/site-packages/huggingface_hub/utils/_deprecation.py
<listcomp>zi_deprecate_positional_args.<locals>._inner_deprecate_positional_args.<locals>.inner_f.<locals>.<listcomp>!   s[       D# &0S%9%9N4!!3!!!!$      , 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joinwarningswarn__name__FutureWarningupdate
parameters)	argskwargs
extra_argsargs_msgall_argsfkwonly_argssigr   s	       r   inner_fzU_deprecate_positional_args.<locals>._inner_deprecate_positional_args.<locals>.inner_f   s   TS]]2JQq$)&))) !$[*%=tZKLL?Q!R!R  H yy**HMDaj D DD D=DD D D 	   MM#cnd334441;;v;;r   )	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    ll>//11 	) 	)KD%zY<<<%%%%y555""4(((	q	 	 	 	 	 	 	 	 
	& r   r   )r   r1   s   ` r   _deprecate_positional_argsr2      s%        @ ,+r   )custom_messagedeprecated_argsr3   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                 f     t                     t                      fd            }|S )Nc                      g }t          | j                                                  D ](\  }}|j        	v r|                    |j                   )|                                D ]4\  }}|	v r+|j        |         j        k    r|                    |           5t          |          dk    rHd
j         dd	                    |           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messager3   r4   r'   r)   r   s           r   r*   zO_deprecate_arguments.<locals>._inner_deprecate_positional_args.<locals>.inner_fK   sG    $&  #D#.*?*?*A*A B B @ @9>_44(//	???+1<<>> < <'
K /11#s~j'A'III(//
;;; '((1,,-qz - -		"677- -!(- - - 
 "-v66Gg}5551d%f%%%r   )r   r   )r'   r*   r)   r3   r4   r   s   ` @r   r1   z>_deprecate_arguments.<locals>._inner_deprecate_positional_argsH   sT    ll	q	& 	& 	& 	& 	& 	& 	& 	& 
	&6 r   r   )r   r4   r3   r1   s   ``` r   _deprecate_argumentsrA   4   s1    (      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                            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 'r8    )
__module__r   r   r   )r"   r#   warning_messager'   r@   r   r   s      r   r*   zC_deprecate_method.<locals>._inner_deprecate_method.<locals>.inner_f|   si     pDoo1<oodkooo  "3=0M/=9991d%f%%%r   )r   __qualname__splitr   )r'   r*   r   r@   r   s   ` @r   _inner_deprecate_methodz2_deprecate_method.<locals>._inner_deprecate_methodw   sp    z:>'',,Q/D	q	& 	& 	& 	& 	& 	& 	& 
	& r   r   )r   r@   rL   s   `` r   _deprecate_methodrM   l   s*         " #"r   )r   	functoolsr   inspectr   r   typingr   r   r   r2   rA   rM   r   r   r   <module>rQ      s           ( ( ( ( ( ( ( ( % % % % % % % %*,3 *, *, *, *,b %)	5, 5, 5,5, c]5, SM	5, 5, 5, 5,p AE # # ## # # # # # # #r   