Current File : //lib/python3.9/site-packages/pip/_internal/utils/__pycache__/logging.cpython-39.pyc
a

[��f-�@s�ddlZddlZddlZddlZddlZddlZddlmZddlmZm	Z	m
Z
mZmZm
Z
mZmZddlmZmZddlmZddlmZddlmZzddlZWney�ddlZYn0zddlmZWney�dZYn0e��Z ed	�Z!Gd
d�de�Z"ee#e#e$d�d
d�Z%ej&d&e'edd�dd��Z(e'd�dd�Z)Gdd�dej*�Z+e,e
e,ge,fd�dd�Z-Gdd�dej.�Z/Gdd�dej0j1�Z2Gdd �d e�Z3Gd!d"�d"e�Z4e'e$ee,e'd#�d$d%�Z5dS)'�N)�Filter)�IO�Any�Callable�Iterator�Optional�TextIO�Type�cast)�VERBOSE�	getLogger)�WINDOWS)�DEPRECATION_MSG_PREFIX)�
ensure_dir)�coloramazpip.subprocessorc@seZdZdZdS)�BrokenStdoutLoggingErrorzO
    Raised if BrokenPipeError occurs for the stdout stream while logging.
    N)�__name__�
__module__�__qualname__�__doc__�rr�?/usr/lib/python3.9/site-packages/pip/_internal/utils/logging.pyr!sr)�	exc_class�exc�returncCs0|turdStsdSt|t�o.|jtjtjfvS)NTF)�BrokenPipeErrorr
�
isinstance�OSError�errno�EINVALZEPIPE)rrrrr�_is_broken_pipe_error's
r �)�numrc	csDt�t_tj|7_zdVWtj|8_ntj|8_0dS)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)r"rrr�
indent_log4s
r&�rcCsttdd�S)Nr%r)�getattrr$rrrrr#Csr#csZeZdZdZdd�eeedd��fdd�Zeeed�d	d
�Z	e
jed��fdd
�Z�Z
S)�IndentingFormatterz%Y-%m-%dT%H:%M:%SF)�
add_timestampN)�argsr*�kwargsrcs||_t�j|i|��dS)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__rrr.JszIndentingFormatter.__init__)�	formatted�levelnorcCs.|tjkrdS|�t�rdS|tjkr*dSdS)zv
        Return the start of the formatted log message (not counting the
        prefix to add to each line).
        �z	WARNING: zERROR: )�logging�WARNING�
startswithr�ERROR)r/r2r3rrr�get_message_startYs


z$IndentingFormatter.get_message_start��recordrcslt��|�}|�||j�}||}d�|jr<|�|��d���dt�7�d��fdd�|�d�D��}|S)z�
        Calls the standard formatter, but will indent all of the log message
        lines by our current indentation level.
        r4� csg|]}�|�qSrr)�.0�line��prefixrr�
<listcomp>v�z-IndentingFormatter.format.<locals>.<listcomp>T)	r-�formatr9r3r*Z
formatTimer#�join�
splitlines)r/r;r2Z
message_startr0r?rrCiszIndentingFormatter.format)rrrZdefault_time_formatr�boolr.�str�intr9r5�	LogRecordrC�
__classcell__rrr0rr)Gs��r))�colorsrcsttd��fdd�}|S)N)�inprcsd�t��|tjjg�S)Nr4)rD�listrZStyleZ	RESET_ALL)rL�rKrr�wrapped{sz_color_wrap.<locals>.wrapped)rG)rKrOrrNr�_color_wrapzsrPcs�eZdZer2ejeejj�fej	eejj
�fgZngZdee
edd��fdd�
Zed�dd�Zed�dd	�Zejed
��fdd�Zejdd
��fd
d�Z�ZS)�ColorizedStreamHandlerN)�stream�no_colorrcs,t��|�||_tr(tr(t�|j�|_dS�N)r-r.�	_no_colorr
r�AnsiToWin32rR)r/rRrSr0rrr.�szColorizedStreamHandler.__init__r'cCs.tr"tr"ttj|j�}|jtjuS|jtjuS)zA
        Return whether the handler is using sys.stdout.
        )r
rr
rVrRrO�sys�stdout)r/rRrrr�
_using_stdout�sz$ColorizedStreamHandler._using_stdoutcCsXtr
|jrdSt|jtj�s"|jn|jj}t|d�r@|��r@dStj	�
d�dkrTdSdS)NF�isattyTZTERMZANSI)rrUrrRrVrO�hasattrrZ�os�environ�get)r/Zreal_streamrrr�should_color�s
��z#ColorizedStreamHandler.should_colorr:cs>t��|�}|��r:|jD]\}}|j|kr||�}q:q|SrT)r-rCr_�COLORSr3)r/r;�msg�levelZcolorr0rrrC�s
zColorizedStreamHandler.formatcs@t��dd�\}}|r4|r4|��r4t||�r4t��t��|�S)Nr!)rW�exc_inforYr rr-�handleError)r/r;rrr0rrrd�s����z"ColorizedStreamHandler.handleError)NN)rrrrr5r8rPZForeZREDr6ZYELLOWr`rrrFr.rYr_rIrGrCrdrJrrr0rrQ�s�rQcs&eZdZeed��fdd�Z�ZS)�BetterRotatingFileHandlerr'csttj�|j��t���SrT)rr\�path�dirnameZbaseFilenamer-�_open)r/r0rrrh�szBetterRotatingFileHandler._open)rrrrrrhrJrrr0rre�srec@s.eZdZedd�dd�Zejed�dd�ZdS)�MaxLevelFilterN)rbrcCs
||_dSrT)rb)r/rbrrrr.�szMaxLevelFilter.__init__r:cCs|j|jkSrT)r3rb�r/r;rrr�filter�szMaxLevelFilter.filter)	rrrrHr.r5rIrFrkrrrrri�srics*eZdZdZejed��fdd�Z�ZS)�ExcludeLoggerFilterzQ
    A logging Filter that excludes records from a logger (or its children).
    r:cst��|�SrT)r-rkrjr0rrrk�szExcludeLoggerFilter.filter)	rrrrr5rIrFrkrJrrr0rrl�srl)�	verbosityrS�
user_log_filercCs~|dkrtj}nD|dkrt}n6|dkr.tj}n&|dkr>tj}n|dkrNtj}ntj}t�|�}|du}|rt|}d}nd}|}|d	vr�d
nd}ddd
�}	ddd�}
gd�|r�dgng}tj�	dddtjd�dt
jd�dt
jd�d�tdd�tddd�d�||
d||	d d!d"gd#d$�d
|
d||	d%d!gd#d$�||
d||	d%d&gd#d$�d|
d'|d(dd)d*�d+�||d,�d-d.|iid/��|S)0znConfigures and sets up all of the logging

    Returns the requested logging level, as its integer value.
    r!����������N�DEBUGz	/dev/null)�INFOr8r6zext://sys.stdoutzext://sys.stderr)rX�stderrz2pip._internal.utils.logging.ColorizedStreamHandlerz5pip._internal.utils.logging.BetterRotatingFileHandler)rR�file)�console�console_errors�console_subprocess�user_logFz*pip._internal.utils.logging.MaxLevelFilter)�()rbzlogging.Filter)r{�namez/pip._internal.utils.logging.ExcludeLoggerFilter)�exclude_warnings�restrict_to_subprocess�exclude_subprocessz%(message)s)r{rCT)r{rCr*)�indent�indent_with_timestamprRrXrr}r�)rb�classrSrR�filters�	formatterrur~rvzutf-8r�)rbr��filename�encodingZdelayr�)rwrxryrz)rb�handlerszpip._vendorrb)�versionZdisable_existing_loggersr�Z
formattersr��rootZloggers)
r5rsrr6r8ZCRITICALrtZgetLevelNameZconfigZ
dictConfig�subprocess_loggerr|r))rmrSrnZlevel_numberrbZinclude_user_logZadditional_log_fileZ
root_levelZvendored_log_levelZlog_streamsZhandler_classesr�rrr�
setup_logging�s�
����������
�	��	��%�
��Ir�)r!)6�
contextlibrr5Zlogging.handlersr\rWr�typingrrrrrrr	r
Zpip._internal.utils._logrrZpip._internal.utils.compatr
Zpip._internal.utils.deprecationrZpip._internal.utils.miscr�	threading�ImportErrorZdummy_threadingZpip._vendorr�	Exception�localr$r�r�
BaseExceptionrFr �contextmanagerrHr&r#Z	Formatterr)rGrPZ
StreamHandlerrQr�ZRotatingFileHandlerrerirlr�rrrr�<module>sB(

3Q