
    VPif4                       d dl m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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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+m,Z,  ej-                    Z.da/dZ0 e%d          Z1 G d de2          Z3d;dZ4ej5        d<d            Z6ej5        d=d>d!            Z7d?d"Z8 G d# d$ej9                  Z:e G d% d&                      Z; G d' d(e          Z<d)d*d@d-Z= G d. d/e          Z> G d0 d1ej?        j@                  ZA G d2 d3e          ZB G d4 d5e          ZCdAd:ZDdS )B    )annotationsN)	Generator)	dataclass)StringIOTextIOWrapper)Filter)AnyClassVar)ConsoleConsoleOptionsConsoleRenderableRenderableTypeRenderResultRichCast)NullHighlighter)RichHandler)Segment)Style)VERBOSE	getLogger)WINDOWS)DEPRECATION_MSG_PREFIX)StreamWrapper
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__     o/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pip/_internal/utils/logging.pyr   r   (   s           r"   r   	exc_classtype[BaseException]excBaseExceptionreturnboolc                    | 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_errorr1   .   sF    O##t
  uc7##P	elEK5P(PPr"   Generator[StringIO, None, None]c               #    K   i } t          j                    j        D ]!}t          |t                    r
|j        | |<   "t          j        t          j	                  }| s|V  dS t          t          |                                                     j        }t          ||d          }	 | D ]	}||_        
|V  |                                 D ]\  }}||_        dS # |                                 D ]\  }}||_        w xY w)z-Capture all pip logs in a buffer temporarily.NTfileno_color	soft_wrap)loggingr   handlersr,   RichPipStreamHandlerconsoler   from_streamsysstdoutnextitervaluesr6   
PipConsoleitems)r9   handlerfake_streamr6   fake_consoleoriginal_consoles         r#   capture_loggingrH   ;   s8      H$&&/ 0 0g344 	0 !(HW+CJ77K  D**++,,5H;TRRRL/ 	+ 	+G*GOO)1)9)9 	/ 	/%G%.GOO	/ 	/)9)9 	/ 	/%G%.GOO	/s   +C #D   numintGenerator[None, None, None]c              #     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)rJ   s    r#   
indent_logrQ   [   sr       -..Jc!&#%
#%s   A A#c                 .    t          t          dd          S )NrP   r   )getattrrO   r!   r"   r#   rN   rN   j   s    :}a000r"   c                  >     e Zd ZdZddd fdZddZd fdZ xZS )IndentingFormatterz%Y-%m-%dT%H:%M:%SF)add_timestampargsr	   rV   r)   kwargsr(   Nonec               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)rV   super__init__)selfrV   rW   rX   	__class__s       r#   r\   zIndentingFormatter.__init__q   s/     +$)&)))))r"   	formattedstrlevelnorK   c                    |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: )r8   WARNING
startswithr   ERROR)r]   r_   ra   s      r#   get_message_startz$IndentingFormatter.get_message_start   sK    
 W_$$2 677 	 2W]"";yr"   recordlogging.LogRecordc                ^   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.
        rc    c                    g | ]}|z   S r!   r!   ).0lineprefixs     r#   
<listcomp>z-IndentingFormatter.format.<locals>.<listcomp>   s    RRRtVd]RRRr"   T)	r[   formatrg   ra   rV   
formatTimerN   join
splitlines)r]   rh   r_   message_startro   r^   s       @r#   rq   zIndentingFormatter.format   s    
 GGNN6**	..y&.II!I-	 	3//222F#))))GGRRRRy7K7KD7Q7QRRRSS	r"   )rW   r	   rV   r)   rX   r	   r(   rY   )r_   r`   ra   rK   r(   r`   )rh   ri   r(   r`   )r   r   r   default_time_formatr\   rg   rq   __classcell__r^   s   @r#   rU   rU   n   s        -
 $* * * * * * * *             r"   rU   c                  ,    e Zd ZU ded<   ded<   ddZdS )IndentedRenderabler   
renderablerK   indentr;   r   optionsr   r(   r   c              #     K   |                     | j        |          }t          j        |          }|D ]4}t          d| j        z            V  |E d {V  t          d          V  5d S )Nrk   
)renderr{   r   split_linesr|   )r]   r;   r}   segmentslinesrn   s         r#   __rich_console__z#IndentedRenderable.__rich_console__   s       >>$/7;;#H-- 	  	 D#+,,,,,OOOOOOO$--	  	 r"   N)r;   r   r}   r   r(   r   )r   r   r   __annotations__r   r!   r"   r#   rz   rz      s?         KKK           r"   rz   c                      e Zd ZddZdS )rB   r(   rY   c                     t                      d N)r+   )r]   s    r#   on_broken_pipezPipConsole.on_broken_pipe   s     T)r"   N)r(   rY   )r   r   r   r   r!   r"   r#   rB   rB      s(        * * * * * *r"   rB   Fstderrr   r   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_consoler   s    r#   get_consoler      s@     **,M*****,M***r"   c                  D     e Zd ZU g Zded<   d fdZdd
Zd fdZ xZS )r:   zClassVar[list[str] | None]KEYWORDSr;   r   r(   rY   c                l    t                                          |dddt                                 d S )NF)r;   	show_time
show_level	show_pathhighlighter)r[   r\   r   )r]   r;   r^   s     r#   r\   zRichPipStreamHandler.__init__   sC    ')) 	 	
 	
 	
 	
 	
r"   rh   ri   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)r|   red)coloryellowignore)overflowcropstyle)rS   r,   rW   tupler   r   r`   rz   rN   rq   render_messagera   r8   rf   r   rd   r;   print	ExceptionhandleError)r]   rh   r   rich_renderabler{   messages         r#   emitzRichPipStreamHandler.emit   sx   " 665)) 	2fk511111!'_"3Xs!C  C C!BBB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.NrI   )	r=   exc_infor;   r5   r>   r1   r   r[   r   )r]   rh   r$   r&   r^   s       r#   r   z RichPipStreamHandler.handleError   s{     +	3 	-	- !SZ//%i55 0 +,,,ww""6***r"   )r;   r   r(   rY   )rh   ri   r(   rY   )	r   r   r   r   r   r\   r   r   rw   rx   s   @r#   r:   r:      s         +-H----
 
 
 
 
 
% % % %8+ + + + + + + + + +r"   r:   c                        e Zd Zd fdZ xZS )BetterRotatingFileHandlerr(   r   c                    t          t          j                            | j                             t                                                      S r   )r   ospathdirnamebaseFilenamer[   _open)r]   r^   s    r#   r   zBetterRotatingFileHandler._open   s4    27??4#455666ww}}r"   )r(   r   )r   r   r   r   rw   rx   s   @r#   r   r      s=                 r"   r   c                      e Zd ZddZdd	Zd
S )MaxLevelFilterlevelrK   r(   rY   c                    || _         d S r   )r   )r]   r   s     r#   r\   zMaxLevelFilter.__init__  s    


r"   rh   ri   r)   c                "    |j         | j        k     S r   )ra   r   )r]   rh   s     r#   filterzMaxLevelFilter.filter  s    ~
**r"   N)r   rK   r(   rY   rh   ri   r(   r)   )r   r   r   r\   r   r!   r"   r#   r   r     s<           + + + + + +r"   r   c                  $     e Zd ZdZd fdZ xZS )ExcludeLoggerFilterzQ
    A logging Filter that excludes records from a logger (or its children).
    rh   ri   r(   r)   c                H    t                                          |           S r   )r[   r   )r]   rh   r^   s     r#   r   zExcludeLoggerFilter.filter  s     77>>&))))r"   r   )r   r   r   r    r   rw   rx   s   @r#   r   r     sG         * * * * * * * * * *r"   r   	verbosityr6   user_log_file
str | Nonec                   | 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.
    rI      NDEBUGz	/dev/null)INFOrf   rd   z0pip._internal.utils.logging.RichPipStreamHandlerz5pip._internal.utils.logging.BetterRotatingFileHandler)streamr5   )r;   console_errorsconsole_subprocessuser_logTr4   Fz*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   rq   )r   rq   rV   )r|   indent_with_timestampr   r   r   r|   )r   classr;   filters	formatterr   r5   zutf-8r   )r   r   filenameencodingdelayr   )r;   r   r   r   )r   r9   zpip._vendorr   )versiondisable_existing_loggersr   
formattersr9   rootloggers)r8   r   r   rd   rf   CRITICALr   getLevelNamerB   r=   r>   r   r   config
dictConfigsubprocess_loggerr   rU   )r   r6   r   level_numberr   include_user_logadditional_log_file
root_levelvendored_log_levelhandler_classesr9   r   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$   r%   r&   r'   r(   r)   )r(   r2   )rI   )rJ   rK   r(   rL   )r(   rK   )r   r)   r(   r   )r   rK   r6   r)   r   r   r(   rK   )E
__future__r   
contextlibr.   r8   logging.handlersr   r=   	threadingcollections.abcr   dataclassesr   ior   r   r   typingr	   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   r   localrO   r   r   r   r   r   r1   contextmanagerrH   rQ   rN   	FormatterrU   rz   rB   r   r:   r9   RotatingFileHandlerr   r   r   r   r!   r"   r#   <module>r      s   " " " " " "           				 



     % % % % % % ! ! ! ! ! ! & & & & & & & &                                      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 
Q 
Q 
Q / / / /> & & & & &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 + + +* * * * *& * * *v v v v v vr"   