U
.e @ s d Z ddlmZ ddlZddlZddlmZ ddlmZ ddl
mZ erXddlm
Z
mZ dZG d d
d
eZdadddZd
d ZdddZdS )zN
A module that implements tooling to enable easy warnings about deprecations.
)absolute_importN)parse)__version__)MYPY_CHECK_RUNNING)AnyOptionalz
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|trDtd}|| nt | ||||| d S )Nzpip._internal.deprecations)_original_showwarning
issubclassr loggingZ getLoggerZwarning)messagecategoryfilenamelinenofilelineZloggerr r r
_showwarning! s*
r c C s( t jdtdd td kr$t jatt _d S )NdefaultT)append)warningssimplefilterr r showwarningr r r r r
install_warning_logger2 s r c C sh | t d f|df|df|dfg}ddd |D }|dk rTttt|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).0valtemplater r r