a
    |Ä#d„  ã                	   @   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"eeef ee eeee ee dd
œdd„Zddœdd„Zdddœeee ee ee ee ddœdd„ZG dd„ dƒZedddddd�Zedddddd�Zed ddd!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   úV/var/www/html/gsl.tools/lib/python3.9/site-packages/pip/_internal/utils/deprecation.pyr	      s   r	   Ú_original_showwarning)ÚmessageÚcategoryÚfilenameÚlinenoÚfileÚlineÚreturnc                 C   sZ   |d ur$t d urVt | |||||ƒ n2t|tƒrDt d¡}| | ¡ nt | |||||ƒ d S )Nzpip._internal.deprecations)r   Ú
issubclassr	   ÚloggingÚ	getLoggerÚwarning)r   r   r   r   r   r   Úloggerr   r   r   Ú_showwarning   s    

r   )r   c                   C   s(   t jdtdd� td u r$t jatt _d S )NÚdefaultT)Úappend)ÚwarningsÚsimplefilterr	   r   Úshowwarningr   r   r   r   r   Úinstall_warning_logger,   s    r"   )Úfeature_flagÚissue)ÚreasonÚreplacementÚgone_inr#   r$   r   c                 C   s„   |duot tƒt |ƒk}| t› d�f||s.dndf|df||sBdndf|dfg}d d	d
„ |D ƒ¡}|rpt|ƒ‚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. Should be a complete sentence.
    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 an error if pip's current version is greater than or equal to
        this.
    feature_flag:
        Command-line flag of the form --use-feature={feature_flag} for testing
        upcoming functionality.
    issue:
        Issue number on the tracker that would serve as a useful place for
        users to find related discussion and provide feedback.
    Nz{}z*pip {} will enforce this behaviour change.z*Since pip {}, this is no longer supported.zA possible replacement is {}.zEYou can use the flag --use-feature={} to test the upcoming behaviour.z@Discussion can be found at https://github.com/pypa/pip/issues/{}ú c                 s   s,   | ]$\}}|d ur|d ur|  |¡V  qd S ©N)Úformat)Ú.0ÚvalueÚ
format_strr   r   r   Ú	<genexpr>n   s   þzdeprecated.<locals>.<genexpr>é   )r   Ú
stacklevel)r   Úcurrent_versionÚDEPRECATION_MSG_PREFIXÚjoinr	   r   Úwarn)r%   r&   r'   r#   r$   Úis_goneÚmessage_partsr   r   r   r   Ú
deprecated7   s2    ÿüþÿüþî
þr7   c                	   @   sH   e Zd Zd	eee ee ee ee eedœdd„Zeddœdd„ZdS )
ÚLegacyInstallReasonNF)r%   r&   r'   r#   r$   Úemit_after_successÚemit_before_installc                 C   s.   || _ || _|| _|| _|| _|| _|| _d S r)   )Ú_reasonÚ_replacementÚ_gone_inÚ_feature_flagÚ_issuer9   r:   )Úselfr%   r&   r'   r#   r$   r9   r:   r   r   r   Ú__init__|   s    
zLegacyInstallReason.__init__)Únamer   c                 C   s(   t | jj|d�| j| j| j| jd� d S )N)rB   )r%   r&   r'   r#   r$   )r7   r;   r*   r<   r=   r>   r?   )r@   rB   r   r   r   Úemit_deprecationŽ   s    ûz$LegacyInstallReason.emit_deprecation)NNNNFF)	r
   r   r   Ústrr   ÚintÚboolrA   rC   r   r   r   r   r8   {   s          øør8   zk{name} was installed using the legacy 'setup.py install' method, because a wheel could not be built for it.z+to fix the wheel build issue reported abovez23.1i°   T)r%   r&   r'   r$   r9   z›{name} is being installed using the legacy 'setup.py install' method, because it does not have a 'pyproject.toml' and the 'wheel' package is not installed.z#to enable the '--use-pep517' optionio!  )r%   r&   r'   r$   r:   zà{name} is being installed using the legacy 'setup.py install' method, because the '--no-binary' option was enabled for it and this currently disables local wheel building for projects that don't have a 'pyproject.toml' file.i»,  )NN)Ú__doc__r   r   Útypingr   r   r   r   r   Zpip._vendor.packaging.versionr   Úpipr   r1   r2   ÚWarningr	   r   Ú__annotations__rD   rE   r   r"   r7   r8   Ú#LegacyInstallReasonFailedBdistWheelÚ&LegacyInstallReasonMissingWheelPackageÚ2LegacyInstallReasonNoBinaryForcesSetuptoolsInstallr   r   r   r   Ú<module>   sh   	  ú
ùúùDøöö