o
    |ŸŽiè  ã                   @   sæ   U d Z ddlZddlZddlmZmZmZmZmZ ddl	m
Z
 ddlmZ dZG dd„ deƒZdaeed	< 		dd
eeef dee dededee dee ddfdd„Zddd„Z	ddedee dee dee ddf
dd„ZdS )zN
A module that implements tooling to enable easy warnings about deprecations.
é    N)ÚAnyÚOptionalÚTextIOÚTypeÚUnion)Úparse)Ú__version__zDEPRECATION: c                   @   s   e Zd ZdS )ÚPipDeprecationWarningN)Ú__name__Ú
__module__Ú__qualname__© r   r   úiC:\Users\psant\Downloads\Anu Raj Backend\school\venv\Lib\site-packages\pip/_internal/utils/deprecation.pyr	      s    r	   Ú_original_showwarningÚmessageÚcategoryÚfilenameÚlinenoÚfileÚlineÚreturnc                 C   sb   |d urt d urt | |||||ƒ d S d S t|tƒr&t d¡}| | ¡ d S t | |||||ƒ d S )Nzpip._internal.deprecations)r   Ú
issubclassr	   ÚloggingÚ	getLoggerÚwarning)r   r   r   r   r   r   Úloggerr   r   r   Ú_showwarning   s   ÿ

r   c                   C   s,   t jdtdd� td u rt jatt _d S d S )NÚdefaultT)Úappend)ÚwarningsÚsimplefilterr	   r   Úshowwarningr   r   r   r   r   Úinstall_warning_logger,   s
   
þr"   ÚreasonÚreplacementÚgone_inÚissuec                 C   sh   | t d f|df|df|dfg}d dd„ |D ƒ¡}|dur*ttƒt|ƒkr*t|ƒ‚tj|td	d
� dS )aÅ  Helper to deprecate existing functionality.

    reason:
        Textual reason shown to the user about why this functionality has
        been deprecated.
    replacement:
        Textual suggestion shown to the user about what alternative
        functionality they can use.
    gone_in:
        The version of pip does this functionality should get removed in.
        Raises errors if pip's current version is greater than or equal to
        this.
    issue:
        Issue number on the tracker that would serve as a useful place for
        users to find related discussion and provide feedback.

    Always pass replacement, gone_in and issue as keyword arguments for clarity
    at the call site.
    z{}z2pip {} will remove support for this functionality.zA possible replacement is {}.zPYou can find discussion regarding this at https://github.com/pypa/pip/issues/{}.ú c                 s   s&   � | ]\}}|d ur|  |¡V  qd S ©N)Úformat)Ú.0ÚvalÚtemplater   r   r   Ú	<genexpr>`   s   € ÿ
ÿzdeprecated.<locals>.<genexpr>Né   )r   Ú
stacklevel)ÚDEPRECATION_MSG_PREFIXÚjoinr   Úcurrent_versionr	   r   Úwarn)r#   r$   r%   r&   Ú	sentencesr   r   r   r   Ú
deprecated7   s   
ýü
ÿr5   )NN)r   Nr(   )Ú__doc__r   r   Útypingr   r   r   r   r   Zpip._vendor.packaging.versionr   Úpipr   r2   r0   ÚWarningr	   r   Ú__annotations__ÚstrÚintr   r"   r5   r   r   r   r   Ú<module>   sN    	ú
ÿþýüûú
ù
üÿþýüû