
    i                        U d Z ddlmZ ddlZddlZddlmZmZ ddlm	Z	 ddl
mZ dZ G d d	e          Zdad
ed<   	 	 d)d*dZd+dZdddddd,d(ZdS )-zN
A module that implements tooling to enable easy warnings about deprecations.
    )annotationsN)AnyTextIO)parse)__version__zDEPRECATION: c                      e Zd ZU dZded<   dS )PipDeprecationWarningFboolinclude_sourceN)__name__
__module____qualname__r   __annotations__     f/home/ubuntu/.hermes/hermes-agent/venv/lib/python3.11/site-packages/pip/_internal/utils/deprecation.pyr	   r	      s#          N      r   r	   r   _original_showwarningmessageWarning | strcategorytype[Warning]filenamestrlinenointfileTextIO | Noneline
str | NonereturnNonec                \   |t           t          | |||||           d S d S t          |t                    rat          j        d          }t          | t                    r!| j        r|                    d| ||           d S |                    |            d S t          | |||||           d S )Nzpip._internal.deprecationsz
%s (%s:%s))r   
issubclassr	   logging	getLogger
isinstancer   warning)r   r   r   r   r   r   loggers          r   _showwarningr)      s      ,!'8XvtTRRRRR -,	H3	4	4 	O "#?@@g455 	$':P 	$NN<(FCCCCCNN7#####gx64NNNNNr   c                     t          j        dt          d           t          t           j        at
          t           _        d S d S )NdefaultT)append)warningssimplefilterr	   r   showwarningr)   r   r   r   install_warning_loggerr0   1   sB    )%:4HHHH $ ( 4+ %$r      F)feature_flagissue
stacklevelr   reasonreplacementgone_inr2   r3   
int | Noner4   r   r
   c                R   |duo$t          t                    t          |          k    }| t           df||sdndf|df||sdndf|dfg}d                    d	 |D                       }	|rt	          |	          t	          |	          }
||
_        t          j        |
|
           dS )a2  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.
    stacklevel:
        How many frames up the call stack to attribute the warning to.
        Defaults to 2 (the caller of deprecated()).
    include_source:
        If True, include the source filename and line number in the warning
        output. Useful when the warning originates from external code.
    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              3  N   K   | ] \  }}||	|                     |          V  !d S )N)format).0value
format_strs      r   	<genexpr>zdeprecated.<locals>.<genexpr>   sK        E:!e&7 	%  &7&7&7&7 r   )r4   )r   current_versionDEPRECATION_MSG_PREFIXjoinr	   r   r-   warn)r5   r6   r7   r2   r3   r4   r   is_gonemessage_partsr   r'   s              r   
deprecatedrG   <   s   J T!NeO&<&<g&NG 
*0001 B<<A	
 +	

  WW	
 N	
-M8 hh  !.    G  -#G,,,#G,,G+GM'j111111r   )NN)r   r   r   r   r   r   r   r   r   r   r   r   r    r!   )r    r!   )r5   r   r6   r   r7   r   r2   r   r3   r8   r4   r   r   r
   r    r!   )__doc__
__future__r   r$   r-   typingr   r   pip._vendor.packaging.versionr   pipr   rA   rB   Warningr	   r   r   r)   r0   rG   r   r   r   <module>rN      s2     # " " " " "           / / / / / / . . . . . .( ! ! ! ! !G ! ! ! "  ! ! ! ! O O O O O., , , ,   $ O2 O2 O2 O2 O2 O2 O2 O2r   