XylotrechusZ
U
��.e� � @ s� d Z ddlmZ ddlZddlZddlmZ ddlmZ ddl
mZ erXddlm
Z
mZ dZG d d
� d
e�Zdaddd�Zd
d� Zddd�ZdS )zN
A module that implements tooling to enable easy warnings about deprecations.
� )�absolute_importN)�parse)�__version__)�MYPY_CHECK_RUNNING)�Any�Optionalz
DEPRECATION: c @ s e Zd ZdS )�PipDeprecationWarningN)�__name__�
__module__�__qualname__� r r �C/usr/lib/python3.8/site-packages/pip/_internal/utils/deprecation.pyr s r c C sZ |d k r$t d k rVt | |||||� n2t|t�rDt�d�}|�| � nt | |||||� d S )Nzpip._internal.deprecations)�_original_showwarning�
issubclassr �loggingZ getLoggerZwarning)�message�category�filename�lineno�file�lineZloggerr r r
�_showwarning! s* �
�r c C s( t jdtdd� td kr$t jatt _d S )N�defaultT)�append)�warnings�simplefilterr r �showwarningr r r r r
�install_warning_logger2 s r c C sh | t d f|df|df|dfg}d�dd� |D ��}|dk rTtt�t|�krTt|��tj|td d
� dS )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.zA possible replacement is {}.zPYou can find discussion regarding this at https://github.com/pypa/pip/issues/{}.� c s s$ | ]\}}|d k r|� |�V qd S )N)�format)�.0�val�templater r r
� <genexpr>` s zdeprecated.<locals>.<genexpr>N� )r �
stacklevel)�DEPRECATION_MSG_PREFIX�joinr �current_versionr r �warn)�reasonZreplacementZgone_inZissueZ sentencesr r r r
�
deprecated>