
    ep-                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlmZ d dlmZmZmZmZmZmZmZ d dlmZmZmZmZmZmZ d dlmZ d dlmZ d d	lm Z  d d
l!m"Z" d dl#m$Z$m%Z% d dl&m'Z' d dl(m)Z) d dl*m+Z+  ej,                    Z- e%d          Z. G d de/          Z0dee1         de1de2fdZ3e j4        d+de5ded         fd            Z6de5fdZ7 G d dej8                  Z9e G d d                      Z: G d d e          Z; G d! d"ej<        j=                  Z> G d# d$e          Z? G d% d&e          Z@d'e5d(e2d)eeA         de5fd*ZBdS ),    N)	dataclass)TextIOWrapper)Filter)AnyClassVar	GeneratorListOptionalTextIOType)ConsoleConsoleOptionsConsoleRenderableRenderableTypeRenderResultRichCast)NullHighlighter)RichHandler)Segment)Style)VERBOSE	getLogger)WINDOWS)DEPRECATION_MSG_PREFIX)
ensure_dirzpip.subprocessorc                       e Zd ZdZdS )BrokenStdoutLoggingErrorzO
    Raised if BrokenPipeError occurs for the stdout stream while logging.
    N)__name__
__module____qualname____doc__     R/var/www/html/api/venv/lib/python3.11/site-packages/pip/_internal/utils/logging.pyr   r   #   s           r#   r   	exc_classexcreturnc                     | t           u rdS t          sdS t          |t                    o|j        t          j        t          j        fv S )NTF)BrokenPipeErrorr   
isinstanceOSErrorerrnoEINVALEPIPE)r%   r&   s     r$   _is_broken_pipe_errorr/   )   sF    O##t
  uc7##P	elEK5P(PPr#      num)NNNc              #      K   t                      t          _        t          xj        | z  c_        	 dV  t          xj        | z  c_        dS # t          xj        | z  c_        w xY w)zv
    A context manager which will cause the log output to be indented for any
    log messages emitted inside it.
    N)get_indentation
_log_stateindentation)r1   s    r$   
indent_logr6   6   sr       -..Jc!&#%
#%s   A A#c                  .    t          t          dd          S )Nr5   r   )getattrr4   r"   r#   r$   r3   r3   E   s    :}a000r#   c            	       l     e Zd ZdZdddedededdf fd	Zd
ededefdZ	de
j        def fdZ xZS )IndentingFormatterz%Y-%m-%dT%H:%M:%SF)add_timestampargsr;   kwargsr'   Nc                H    || _          t                      j        |i | dS )z
        A logging.Formatter that obeys the indent_log() context manager.

        :param add_timestamp: A bool indicating output lines should be prefixed
            with their record's timestamp.
        N)r;   super__init__)selfr;   r<   r=   	__class__s       r$   r@   zIndentingFormatter.__init__L   s/     +$)&)))))r#   	formattedlevelnoc                     |t           j        k     rdS |                    t                    rdS |t           j        k     rdS dS )zv
        Return the start of the formatted log message (not counting the
        prefix to add to each line).
         z	WARNING: zERROR: )loggingWARNING
startswithr   ERROR)rA   rC   rD   s      r$   get_message_startz$IndentingFormatter.get_message_start[   sK    
 W_$$2 677 	 2W]"";yr#   recordc                 ^   t                                          |          }|                     ||j                  }||z   }d| j        r|                     |           ddt                      z  z  d                    fd|                    d          D                       }|S )z
        Calls the standard formatter, but will indent all of the log message
        lines by our current indentation level.
        rF    c                     g | ]}|z   S r"   r"   ).0lineprefixs     r$   
<listcomp>z-IndentingFormatter.format.<locals>.<listcomp>x   s    RRRtVd]RRRr#   T)	r?   formatrK   rD   r;   
formatTimer3   join
splitlines)rA   rL   rC   message_startrR   rB   s       @r$   rT   zIndentingFormatter.formatk   s    
 GGNN6**	..y&.II!I-	 	3//222F#))))GGRRRRy7K7KD7Q7QRRRSS	r#   )r   r   r    default_time_formatr   boolr@   strintrK   rG   	LogRecordrT   __classcell__rB   s   @r$   r:   r:   I   s        -
 $* * ** * 	*
 
* * * * * *3       W. 3          r#   r:   c                   8    e Zd ZU eed<   eed<   dededefdZ	dS )IndentedRenderable
renderableindentconsoleoptionsr'   c              #      K   |                     | j        |          }t          j        |          }|D ]4}t          d| j        z            V  |E d {V  t          d          V  5d S )NrN   
)renderrb   r   split_linesrc   )rA   rd   re   segmentslinesrQ   s         r$   __rich_console__z#IndentedRenderable.__rich_console__   s       >>$/7;;#H-- 	  	 D#+,,,,,OOOOOOO$--	  	 r#   N)
r   r   r    r   __annotations__r\   r   r   r   rl   r"   r#   r$   ra   ra   |   sW         KKK  )7 	           r#   ra   c                        e Zd ZU g Zeeee                           ed<   dee	         de
ddf fdZdej        ddfdZdej        ddf fd	Z xZS )
RichPipStreamHandlerKEYWORDSstreamno_colorr'   Nc                     t                                          t          ||d          dddt                                 d S )NT)filerr   	soft_wrapF)rd   	show_time
show_level	show_pathhighlighter)r?   r@   r   r   )rA   rq   rr   rB   s      r$   r@   zRichPipStreamHandler.__init__   sR    (dKKK')) 	 	
 	
 	
 	
 	
r#   rL   c                    d }t          |j        t                    sJ |j        dk    rrt	          |j                  dk    rZ|j        d         }t          |t
          t          t          f          sJ | d            t          |t                                }n}| 
                    |          }|                     ||          }|j        K|j        t          j        k    rt          d          }n%|j        t          j        k    rt          d          }	 | j                            |d	d
|           d S # t&          $ r |                     |           Y d S w xY w)Nz[present-rich] %s   r   z is not rich-console-renderable)rc   red)coloryellowignoreF)overflowcropstyle)r*   r<   tuplemsglenr   r   r[   ra   r3   rT   render_messagerD   rG   rJ   r   rH   rd   print	ExceptionhandleError)rA   rL   r   rich_renderablerb   messages         r$   emitzRichPipStreamHandler.emit   s   !% &+u-----:,,,V[1A1AQ1F1F$k!nO"3Xs!C  C C!BBBC C C *<(9(9* * *JJ kk&))G,,VW==J~)>W]22!...EE^w66!111E	%LzH5PUVVVVV 	% 	% 	%V$$$$$$	%s   D: :EEc                     t          j                    dd         \  }}|r8|r6| j        j        t           j        u rt          ||          rt                      t                                          |          S )z1Called when logging is unable to log some output.Nr0   )	sysexc_inford   rt   stdoutr/   r   r?   r   )rA   rL   r%   r&   rB   s       r$   r   z RichPipStreamHandler.handleError   s{     +	3 	-	- !SZ//%i55 0 +,,,ww""6***r#   )r   r   r    rp   r   r
   r	   r[   rm   r   rZ   r@   rG   r]   r   r   r^   r_   s   @r$   ro   ro      s         .0HhxS	*+000
x/ 
4 
D 
 
 
 
 
 
%7, % % % % %8+'"3 + + + + + + + + + + +r#   ro   c                   $     e Zd Zdef fdZ xZS )BetterRotatingFileHandlerr'   c                     t          t          j                            | j                             t                                                      S N)r   ospathdirnamebaseFilenamer?   _open)rA   rB   s    r$   r   zBetterRotatingFileHandler._open   s4    27??4#455666ww}}r#   )r   r   r    r   r   r^   r_   s   @r$   r   r      sD        }          r#   r   c                   8    e Zd ZdeddfdZdej        defdZdS )MaxLevelFilterlevelr'   Nc                     || _         d S r   )r   )rA   r   s     r$   r@   zMaxLevelFilter.__init__   s    


r#   rL   c                 "    |j         | j        k     S r   )rD   r   )rA   rL   s     r$   filterzMaxLevelFilter.filter   s    ~
**r#   )	r   r   r    r\   r@   rG   r]   rZ   r   r"   r#   r$   r   r      s[        c d    +W. +4 + + + + + +r#   r   c                   6     e Zd ZdZdej        def fdZ xZS )ExcludeLoggerFilterzQ
    A logging Filter that excludes records from a logger (or its children).
    rL   r'   c                 H    t                                          |           S r   )r?   r   )rA   rL   rB   s     r$   r   zExcludeLoggerFilter.filter   s     77>>&))))r#   )	r   r   r    r!   rG   r]   rZ   r   r^   r_   s   @r$   r   r      sX         *W. *4 * * * * * * * * * *r#   r   	verbosityrr   user_log_filec                    | dk    rt           j        }nS| dk    rt          }nE| dk    rt           j        }n2| dk    rt           j        }n| dk    rt           j        }nt           j        }t          j        |          }|du}|r|}d}nd}|}|d	v rd
nd}ddd}	ddd}
g d|rdgng z   }t           j        	                    dddt           j        ddt          j        ddt          j        ddt          ddt          dddd||
d         ||	d          d!d"gd#d$d
|
d         ||	d%         d!gd#d$||
d         |	d%         |d&gd#d'd|
d(         |d)dd*d+d,||d-d.d/|iid0           |S )1znConfigures and sets up all of the logging

    Returns the requested logging level, as its integer value.
    r0   r{   NDEBUGz	/dev/null)INFOrJ   rH   zext://sys.stdoutzext://sys.stderr)r   stderrz0pip._internal.utils.logging.RichPipStreamHandlerz5pip._internal.utils.logging.BetterRotatingFileHandler)rq   rt   )rd   console_errorsconsole_subprocessuser_logFz*pip._internal.utils.logging.MaxLevelFilter)()r   zlogging.Filter)r   namez/pip._internal.utils.logging.ExcludeLoggerFilter)exclude_warningsrestrict_to_subprocessexclude_subprocessz%(message)s)r   rT   T)r   rT   r;   )rc   indent_with_timestamprq   r   r   r   rc   )r   classrr   rq   filters	formatterr   r   )r   r   rq   rr   r   r   rt   zutf-8r   )r   r   filenameencodingdelayr   )rd   r   r   r   )r   handlerszpip._vendorr   )versiondisable_existing_loggersr   
formattersr   rootloggers)rG   r   r   rH   rJ   CRITICALr   getLevelNameconfig
dictConfigsubprocess_loggerr   r:   )r   rr   r   level_numberr   include_user_logadditional_log_file
root_levelvendored_log_levellog_streamshandler_classesr   s               r$   setup_loggingr      s    A~~}	a	b	b}	b'| ..E %D0 +

)
 ',/@&@&@g %$ K
 EG O CBB(0bH N(- G$_% %
 +-2+ +
 L-2' '   -+ 
 -+%)* *
 
 #,X6 ()(3 46HI!)  ',X6 ()(3 45!)# # #,X6)(3 ( 89!)' ' %,V4 3 '!!8 7# #J $$  &1C'DEIE	
 E	
G G GR r#   )r0   )C
contextlibr,   rG   logging.handlersr   r   	threadingdataclassesr   ior   r   typingr   r   r   r	   r
   r   r   pip._vendor.rich.consoler   r   r   r   r   r   pip._vendor.rich.highlighterr   pip._vendor.rich.loggingr   pip._vendor.rich.segmentr   pip._vendor.rich.styler   pip._internal.utils._logr   r   pip._internal.utils.compatr   pip._internal.utils.deprecationr   pip._internal.utils.miscr   localr4   r   r   r   BaseExceptionrZ   r/   contextmanagerr\   r6   r3   	Formatterr:   ra   ro   r   RotatingFileHandlerr   r   r   r[   r   r"   r#   r$   <module>r      s             				 



     ! ! ! ! ! !             I I I I I I I I I I I I I I I I I I                9 8 8 8 8 8 0 0 0 0 0 0 , , , , , , ( ( ( ( ( ( 7 7 7 7 7 7 7 7 . . . . . . B B B B B B / / / / / /Y_
I011     y   
QT-%8 
Q} 
QQU 
Q 
Q 
Q 
Q & &C &	*: ; & & & &1 1 1 1 10 0 0 0 0* 0 0 0f                9+ 9+ 9+ 9+ 9+; 9+ 9+ 9+x     0 D   + + + + +V + + +	* 	* 	* 	* 	*& 	* 	* 	*zS zD z# zSV z z z z z zr#   