
    y/YhV-                        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jX                         Z- e%d      Z. G d de/      Z0dee1   de1de2fdZ3e jh                  d*de5ded   fd       Z6de5fdZ7 G d dejp                        Z9e G d d             Z: G d de      Z; G d  d!ejx                  jz                        Z> G d" d#e      Z? G d$ d%e      Z@d&e5d'e2d(eeA   de5fd)ZBy)+    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y)BrokenStdoutLoggingErrorzO
    Raised if BrokenPipeError occurs for the stdout stream while logging.
    N)__name__
__module____qualname____doc__     \/var/www/html/profi_bot/bot/venv/lib/python3.12/site-packages/pip/_internal/utils/logging.pyr   r   #   s    r#   r   	exc_classexcreturnc                     | t         u ryt        syt        |t              xr, |j                  t        j
                  t        j                  fv S )NTF)BrokenPipeErrorr   
isinstanceOSErrorerrnoEINVALEPIPE)r%   r&   s     r$   _is_broken_pipe_errorr/   )   s=    O#
 c7#P		ellEKK5P(PPr#   num)NNNc              #      K   t               t        _        t        xj                  | z  c_        	 d t        xj                  | z  c_        y# t        xj                  | z  c_        w xY w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   6   sN      -.Jc!&#%
#%s   -A,A A,A))A,c                  $    t        t        dd      S )Nr4   r   )getattrr3   r"   r#   r$   r2   r2   E   s    :}a00r#   c            	       v     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                2    || _         t        |   |i | y)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y|j                  t              ry|t         j                  k  ryy)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[   s9    
 W__$ 67 W]]"r#   recordc                 8   t         |   |      }| j                  ||j                        }||z   }d}| j                  r| j                  |       d}|dt               z  z  }dj                  |j                  d      D cg c]  }||z   	 c}      }|S c c}w )z
        Calls the standard formatter, but will indent all of the log message
        lines by our current indentation level.
        rE    T)	r>   formatrJ   rC   r:   
formatTimer2   join
splitlines)r@   rK   rB   message_startprefixlinerA   s         r$   rN   zIndentingFormatter.formatk   s    
 GN6*	..y&..I!I-	/02F#)))GGy7K7KD7QR7QtVd]7QRS	 Ss   B)r   r   r    default_time_formatr   boolr?   strintrJ   rF   	LogRecordrN   __classcell__rA   s   @r$   r9   r9   I   sq    -
 $** * 	*
 
*3    W.. 3  r#   r9   c                   6    e Zd ZU eed<   eed<   dededefdZ	y)IndentedRenderable
renderableindentconsoleoptionsr'   c              #      K   |j                  | j                  |      }t        j                  |      }|D ]3  }t        d| j                  z         |E d {    t        d       5 y 7 w)NrM   
)renderr^   r   split_linesr_   )r@   r`   ra   segmentslinesrT   s         r$   __rich_console__z#IndentedRenderable.__rich_console__   s^      >>$//7;##H-D#+,,OO$- s   AA/A-A/N)
r   r   r    r   __annotations__rX   r   r   r   rh   r"   r#   r$   r]   r]   |   s*    K  )7 	 r#   r]   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                 V    t         |   t        ||d      dddt                      y )NT)filern   	soft_wrapF)r`   	show_time
show_level	show_pathhighlighter)r>   r?   r   r   )r@   rm   rn   rA   s      r$   r?   zRichPipStreamHandler.__init__   s0    (dK') 	 	
r#   rK   c                 p   d }t        |dd      ret        |j                  t              sJ |j                  \  }t        |t        t
        t        f      s
J | d       t        |t                     }n| j                  |      }| j                  ||      }|j                  S|j                  t        j                  k\  rt        d      }n)|j                  t        j                  k\  rt        d      }	 | j                   j#                  |dd|	       y # t$        $ r | j'                  |       Y y w xY w)
NrichFz is not rich-console-renderable)r_   red)coloryellowignore)overflowcropstyle)r7   r*   r;   tupler   r   rW   r]   r2   rN   render_messagerC   rF   rI   r   rG   r`   print	ExceptionhandleError)r@   rK   r~   rich_renderabler^   messages         r$   emitzRichPipStreamHandler.emit   s   !% 665)fkk5111!'_"3Xs!C C!""ABC  *<(9*J kk&)G,,VW=J~~)>>W]]2!.E^^w6!1E	%LLzH5PUV 	%V$	%s   8D D54D5c                     t        j                         dd \  }}|r>|r<| j                  j                  t         j                  u rt        ||      r
t               t        | !  |      S )z1Called when logging is unable to log some output.N   )	sysexc_infor`   rp   stdoutr/   r   r>   r   )r@   rK   r%   r&   rA   s       r$   r   z RichPipStreamHandler.handleError   s\     +	3 !!SZZ/%i5*,,w"6**r#   )r   r   r    rl   r   r
   r	   rW   ri   r   rV   r?   rF   rY   r   r   rZ   r[   s   @r$   rk   rk      sq    .0HhxS	*+0
x/ 
4 
D 
%7,, % %8+'"3"3 + + +r#   rk   c                   $     e Zd Zdef fdZ xZS )BetterRotatingFileHandlerr'   c                     t        t        j                  j                  | j                               t
        |          S N)r   ospathdirnamebaseFilenamer>   _open)r@   rA   s    r$   r   zBetterRotatingFileHandler._open   s*    277??4#4#456w}r#   )r   r   r    r   r   rZ   r[   s   @r$   r   r      s    }  r#   r   c                   @    e Zd ZdeddfdZdej                  defdZy)MaxLevelFilterlevelr'   Nc                     || _         y r   )r   )r@   r   s     r$   r?   zMaxLevelFilter.__init__   s	    
r#   rK   c                 4    |j                   | j                  k  S r   )rC   r   )r@   rK   s     r$   filterzMaxLevelFilter.filter   s    ~~

**r#   )	r   r   r    rX   r?   rF   rY   rV   r   r"   r#   r$   r   r      s.    c d +W.. +4 +r#   r   c                   @     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                 $    t         |   |       S r   )r>   r   )r@   rK   rA   s     r$   r   zExcludeLoggerFilter.filter   s     7>&)))r#   )	r   r   r    r!   rF   rY   rV   r   rZ   r[   s   @r$   r   r      s&    *W.. *4 * *r#   r   	verbosityrn   user_log_filec                    | dk\  rt         j                  }n^| dk(  rt        }nR| dk(  rt         j                  }n<| 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                  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.
    r      NDEBUGz	/dev/null)INFOrI   rG   zext://sys.stdoutzext://sys.stderr)r   stderrz0pip._internal.utils.logging.RichPipStreamHandlerz5pip._internal.utils.logging.BetterRotatingFileHandler)rm   rp   )r`   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   rN   T)r   rN   r:   )r_   indent_with_timestamprm   r   r   r   r_   )r   classrn   rm   filters	formatterr   r   )r   r   rm   rn   r   r   rp   zutf-8r   )r   r   filenameencodingdelayr   )r`   r   r   r   )r   handlerszpip._vendorr   )versiondisable_existing_loggersr   
formattersr   rootloggers)rF   r   r   rG   rI   CRITICALr   getLevelNameconfig
dictConfigsubprocess_loggerr   r9   )r   rn   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H NN(- G$__%
 +-22+
 L-2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	
GR r#   )r   )C
contextlibr,   rF   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   localr3   r   r   r   BaseExceptionrV   r/   contextmanagerrX   r5   r2   	Formatterr9   r]   rk   r   RotatingFileHandlerr   r   r   rW   r   r"   r#   r$   <module>r      sh       	 
  !   I I I  9 0 , ( 7 . B /Y__
01 y 
QT-%8 
Q} 
QQU 
Q &C &	*: ; & &1 10** 0f      9+; 9+x 0 0 D D +V +*& *zS zD z# zSV zr#   