
     h,/                        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 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,da-dZ. e$d          Z/ G d de0          Z1dee2         de2de3fdZ4e j5        d1de6ded         fd            Z7de6fdZ8 G d dej9                  Z:e G d d                      Z; G d d e          Z<d!d"d#e3defd$Z= G d% d&e          Z> G d' d(ej?        j@                  ZA G d) d*e          ZB G d+ d,e          ZCd-e6d.e3d/eeD         de6fd0ZEdS )2    N)	dataclass)TextIOWrapper)Filter)AnyClassVar	GeneratorListOptional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__     Z/var/www/surfInsights/venv3-11/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)r0   s    r#   
indent_logr5   8   sr       -..Jc!&#%
#%s   A A#c                  .    t          t          dd          S )Nr4   r   )getattrr3   r!   r"   r#   r2   r2   G   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__N   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)r@   rB   rC   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.
        rE    c                     g | ]}|z   S r!   r!   ).0lineprefixs     r#   
<listcomp>z-IndentingFormatter.format.<locals>.<listcomp>z   s    RRRtVd]RRRr"   T)	r>   formatrJ   rC   r:   
formatTimer2   join
splitlines)r@   rK   rB   message_startrQ   rA   s       @r#   rS   zIndentingFormatter.formatm   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intrJ   rF   	LogRecordrS   __classcell__rA   s   @r#   r9   r9   K   s        -
 $* * ** * 	*
 
* * * * * *3       W. 3          r"   r9   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 )NrM   
)renderra   r   split_linesrb   )r@   rc   rd   segmentslinesrP   s         r#   __rich_console__z#IndentedRenderable.__rich_console__   s       >>$/7;;#H-- 	  	 D#+,,,,,OOOOOOO$--	  	 r"   N)
r   r   r   r   __annotations__r[   r   r   r   rk   r!   r"   r#   r`   r`   ~   sW         KKK  )7 	           r"   r`   c                       e Zd ZddZdS )
PipConsoler&   Nc                      t                      d N)r(   )r@   s    r#   on_broken_pipezPipConsole.on_broken_pipe   s     T)r"   )r&   N)r   r   r   rq   r!   r"   r#   rn   rn      s(        * * * * * *r"   rn   Fstderrrs   c                 f    | rt           
J d            t           S t          
J d            t          S )Nzstderr rich console is missing!zstdout rich console is missing!)_stderr_console_stdout_consolerr   s    r#   get_consolerw      s@     **,M*****,M***r"   c                        e Zd ZU g Zeeee                           ed<   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KEYWORDSrc   r&   Nc                 l    t                                          |dddt                                 d S )NF)rc   	show_time
show_level	show_pathhighlighter)r>   r?   r   )r@   rc   rA   s     r#   r?   zRichPipStreamHandler.__init__   sC    ')) 	 	
 	
 	
 	
 	
r"   rK   c                    d }t          |dd          rrt          |j        t                    sJ |j        \  }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)
NrichFz is not rich-console-renderable)rb   red)coloryellowignore)overflowcropstyle)r7   r)   r;   tupler   r   rZ   r`   r2   rS   render_messagerC   rF   rI   r   rG   rc   print	ExceptionhandleError)r@   rK   r   rich_renderablera   messages         r#   emitzRichPipStreamHandler.emit   sy   !% 665)) 	2fk511111!'_"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.Nr/   )	sysexc_inforc   filestdoutr.   r   r>   r   )r@   rK   r$   r%   rA   s       r#   r   z RichPipStreamHandler.handleError   s{     +	3 	-	- !SZ//%i55 0 +,,,ww""6***r"   )r   r   r   rz   r   r
   r	   rZ   rl   r   r?   rF   r\   r   r   r]   r^   s   @r#   ry   ry      s         .0HhxS	*+000
 
D 
 
 
 
 
 
%7, % % % % %8+'"3 + + + + + + + + + + +r"   ry   c                   $     e Zd Zdef fdZ xZS )BetterRotatingFileHandlerr&   c                     t          t          j                            | j                             t                                                      S rp   )r   ospathdirnamebaseFilenamer>   _open)r@   rA   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 rp   )r   )r@   r   s     r#   r?   zMaxLevelFilter.__init__   s    


r"   rK   c                 "    |j         | j        k     S rp   )rC   r   )r@   rK   s     r#   filterzMaxLevelFilter.filter   s    ~
**r"   )	r   r   r   r[   r?   rF   r\   rY   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).
    rK   r&   c                 H    t                                          |           S rp   )r>   r   )r@   rK   rA   s     r#   r   zExcludeLoggerFilter.filter   s     77>>&))))r"   )	r   r   r   r    rF   r\   rY   r   r]   r^   s   @r#   r   r      sX         *W. *4 * * * * * * * * * *r"   r   	verbosityno_color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}	g d|rdgng z   }
t          t          j
        |d          at          t          j        |d          }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         t          ddgd d!d
|	d         |dgd d!||	d         |d"gd d!d|	d#         |d$dd%d&d'||
d(d)d*|iid+           |S ),znConfigures and sets up all of the logging

    Returns the requested logging level, as its integer value.
    r/      NDEBUGz	/dev/null)INFOrI   rG   z0pip._internal.utils.logging.RichPipStreamHandlerz5pip._internal.utils.logging.BetterRotatingFileHandler)streamr   )rc   console_errorsconsole_subprocessuser_logT)r   r   	soft_wrapFz*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   rS   )r   rS   r:   )rb   indent_with_timestampr   r   r   rb   )r   classrc   filters	formatterr   r   zutf-8r   )r   r   filenameencodingdelayr   )rc   r   r   r   )r   handlerszpip._vendorr   )versiondisable_existing_loggersr   
formattersr   rootloggers)rF   r   r   rG   rI   CRITICALr   getLevelNamern   r   r   rv   rs   config
dictConfigsubprocess_loggerr   r9   )r   r   r   level_numberr   include_user_logadditional_log_file
root_levelvendored_log_levelhandler_classesr   ru   s               r#   setup_loggingr      s    A~~}	a	b	b}	b'| ..E %D0 +

)
 ',/@&@&@g EG O CBB(0bH !cj8tTTTO cj8tTTTON(- G$_% %
 +-2+ +
 L-2' '   -+ 
 -+%)* *
 
 #,X6. 46HI!)  ',X6. 45!)# # #,X6. 89!)' ' %,V4 3 '!!8 1   D $$  &1C'DECB	
 B	
D D DL r"   )r/   )F
contextlibr+   rF   logging.handlersr   r   	threadingdataclassesr   ior   r   typingr   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   localr3   rv   ru   r   r   r   BaseExceptionrY   r.   contextmanagerr[   r5   r2   	Formatterr9   r`   rn   rw   ry   r   RotatingFileHandlerr   r   r   rZ   r   r!   r"   r#   <module>r      s2             				 



     ! ! ! ! ! !             A A A A A A A A A A A A A A A A                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                * * * * * * * * #(   4 G    9+ 9+ 9+ 9+ 9+; 9+ 9+ 9+x     0 D   + + + + +V + + +* * * * *& * * *vS vD v# vSV v v v v v vr"   