o
    ©„j_6  ã                   @  s  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,m-Z- e .¡ Z/da0dZ1e%dƒZ2G dd„ de3ƒZ4dAdd„Z5ej6dBdd„ƒZ7ej6dCdDd#d$„ƒZ8dEd%d&„Z9G d'd(„ d(ej:ƒZ;eG d)d*„ d*ƒƒZ<G d+d,„ d,eƒZ=d-d.œdFd1d2„Z>G d3d4„ d4eƒZ?G d5d6„ d6ej@jAƒZBG d7d8„ d8eƒZCG d9d:„ d:eƒZDdGd?d@„ZEdS )Hé    )Ú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_dirÚlooks_like_cizpip.subprocessorc                   @  s   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    r    úY/var/www/html/django_cbt/venv/lib/python3.10/site-packages/pip/_internal/utils/logging.pyr   (   s    r   Ú	exc_classútype[BaseException]ÚexcÚBaseExceptionÚreturnÚboolc                 C  s0   | 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$   r    r    r!   Ú_is_broken_pipe_error.   s
   r.   úGenerator[StringIO, None, None]c               	   c  s´   � i } t  ¡ jD ]}t|tƒr|j| |< qt tj	¡}| s"|V  dS t
t|  ¡ ƒƒj}t||dd�}z| D ]}||_q5|V  W |  ¡ D ]\}}||_qCdS |  ¡ D ]\}}||_qQw )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Úvaluesr1   Ú
PipConsoleÚitems)r4   ÚhandlerÚfake_streamr1   Úfake_consoleÚoriginal_consoler    r    r!   Úcapture_logging;   s*   €

€ÿÿrC   é   ÚnumÚintúGenerator[None, None, None]c              	   c  sD   � t ƒ t_t j| 7  _zdV  W t j| 8  _dS t j| 8  _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)rE   r    r    r!   Ú
indent_log[   s   €"rK   c                   C  s   t tddƒS )NrJ   r   )ÚgetattrrI   r    r    r    r!   rH   j   ó   rH   c                      s@   e Zd ZdZddœd‡ fdd„Zddd„Zd‡ fdd„Z‡  ZS )ÚIndentingFormatterz%Y-%m-%dT%H:%M:%SF)Úadd_timestampÚargsr   rO   r'   Úkwargsr&   ÚNonec                  s   || _ 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)rO   ÚsuperÚ__init__)ÚselfrO   rP   rQ   ©Ú	__class__r    r!   rT   q   s   zIndentingFormatter.__init__Ú	formattedÚstrÚlevelnorF   c                 C  s.   |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: )r3   ÚWARNINGÚ
startswithr   ÚERROR)rU   rX   rZ   r    r    r!   Úget_message_start€   s   


z$IndentingFormatter.get_message_startÚrecordúlogging.LogRecordc                   sl   t ƒ  |¡}|  ||j¡}|| }d‰ | jr|  |¡› d�‰ ˆ dtƒ  7 ‰ d ‡ fdd„| d¡D ƒ¡}|S )z†
        Calls the standard formatter, but will indent all of the log message
        lines by our current indentation level.
        r[   ú c                   s   g | ]}ˆ | ‘qS r    r    )Ú.0Úline©Úprefixr    r!   Ú
<listcomp>�   s    z-IndentingFormatter.format.<locals>.<listcomp>T)	rS   Úformatr_   rZ   rO   Ú
formatTimerH   ÚjoinÚ
splitlines)rU   r`   rX   Úmessage_startrV   re   r!   rh   �   s   zIndentingFormatter.format)rP   r   rO   r'   rQ   r   r&   rR   )rX   rY   rZ   rF   r&   rY   )r`   ra   r&   rY   )r   r   r   Údefault_time_formatrT   r_   rh   Ú__classcell__r    r    rV   r!   rN   n   s    ý
rN   c                   @  s(   e Zd ZU ded< ded< ddd„ZdS )ÚIndentedRenderabler   Ú
renderablerF   Úindentr6   r
   Úoptionsr   r&   r   c                 c  sL   � |  | j|¡}t |¡}|D ]}td| j ƒV  |E d H  tdƒV  qd S )Nrb   Ú
)Úrenderrp   r   Úsplit_linesrq   )rU   r6   rr   ÚsegmentsÚlinesrd   r    r    r!   Ú__rich_console__¦   s   €

ýz#IndentedRenderable.__rich_console__N)r6   r
   rr   r   r&   r   )r   r   r   Ú__annotations__rx   r    r    r    r!   ro   ¡   s   
 ro   c                   @  s   e Zd Zddd„ZdS )r=   r&   rR   c                 C  s   t ƒ d ‚©N)r(   ©rU   r    r    r!   Úon_broken_pipe²   s   zPipConsole.on_broken_pipeN)r&   rR   )r   r   r   r|   r    r    r    r!   r=   ±   s    r=   F©Ústderrr~   r
   c                 C  s,   | rt d us
J dƒ‚t S td usJ dƒ‚tS )Nzstderr rich console is missing!zstdout rich console is missing!)Ú_stderr_consoleÚ_stdout_consoler}   r    r    r!   Úget_console¸   s
   r�   c                      sD   e Zd ZU g Zded< d‡ fdd„Zddd„Zd‡ fdd„Z‡  ZS )r5   zClassVar[list[str] | None]ÚKEYWORDSr6   r
   r&   rR   c                   s   t ƒ j|dddtƒ d� d S )NF)r6   Ú	show_timeÚ
show_levelÚ	show_pathÚhighlighter)rS   rT   r   )rU   r6   rV   r    r!   rT   Ä   s   
ûzRichPipStreamHandler.__init__r`   ra   c                 C  sÞ   d }t |ddƒr+t|jtƒsJ ‚|j\}t|tttfƒs#J |› d�ƒ‚t|tƒ d�}n'|  	|¡}|  
||¡}|jd urR|jtjkrGtdd�}n|jtjkrRtdd�}z| jj|dd|d	� W d S  tyn   |  |¡ Y d S w )
NÚrichFz is not rich-console-renderable)rq   Úred)ÚcolorÚyellowÚignore)ÚoverflowÚcropÚstyle)rL   r)   rP   Útupler   r   rY   ro   rH   rh   Úrender_messagerZ   r3   r^   r   r\   r6   ÚprintÚ	ExceptionÚhandleError)rU   r`   rŽ   Úrich_renderablerp   Úmessager    r    r!   ÚemitÎ   s0   
ÿþÿ


ÿzRichPipStreamHandler.emitc                   sF   t  ¡ dd… \}}|r|r| jjt ju rt||ƒrtƒ ‚tƒ  |¡S )z1Called when logging is unable to log some output.NrD   )	r8   Úexc_infor6   r0   r9   r.   r   rS   r“   )rU   r`   r"   r$   rV   r    r!   r“   ê   s   ÿþÿz RichPipStreamHandler.handleError)r6   r
   r&   rR   )r`   ra   r&   rR   )	r   r   r   r‚   ry   rT   r–   r“   rn   r    r    rV   r!   r5   Á   s
   
 

r5   c                      s   e Zd Zd‡ fdd„Z‡  ZS )ÚBetterRotatingFileHandlerr&   r   c                   s   t tj | j¡ƒ tƒ  ¡ S rz   )r   ÚosÚpathÚdirnameÚbaseFilenamerS   Ú_openr{   rV   r    r!   r�   þ   s   
zBetterRotatingFileHandler._open)r&   r   )r   r   r   r�   rn   r    r    rV   r!   r˜   ý   s    r˜   c                   @  s    e Zd Zddd„Zdd
d„ZdS )ÚMaxLevelFilterÚlevelrF   r&   rR   c                 C  s
   || _ d S rz   )rŸ   )rU   rŸ   r    r    r!   rT     s   
zMaxLevelFilter.__init__r`   ra   r'   c                 C  s   |j | jk S rz   )rZ   rŸ   ©rU   r`   r    r    r!   Úfilter  rM   zMaxLevelFilter.filterN)rŸ   rF   r&   rR   ©r`   ra   r&   r'   )r   r   r   rT   r¡   r    r    r    r!   rž     s    
rž   c                      s"   e Zd ZdZd‡ fdd„Z‡  ZS )	ÚExcludeLoggerFilterzQ
    A logging Filter that excludes records from a logger (or its children).
    r`   ra   r&   r'   c                   s   t ƒ  |¡ S rz   )rS   r¡   r    rV   r    r!   r¡     s   zExcludeLoggerFilter.filterr¢   )r   r   r   r   r¡   rn   r    r    rV   r!   r£     s    r£   Ú	verbosityr1   Úuser_log_fileú
str | Nonec                 C  s¢  | dkrt j}n"| dkrt}n| dkrt j}n| dkrt j}n| dkr't j}nt j}t  |¡}|du}|r:|}d}nd}|}|d	v rDd
nd}dddœ}	g d¢|rSdgng  }
|ddœ}tƒ rbd|d< t	d-dt
ji|¤Žat	d-dt
ji|¤Ž}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.
    rD   é   éÿÿÿÿéþÿÿÿéýÿÿÿNÚDEBUGz	/dev/null)ÚINFOr^   r\   z0pip._internal.utils.logging.RichPipStreamHandlerz5pip._internal.utils.logging.BetterRotatingFileHandler)Ústreamr0   )r6   Úconsole_errorsÚconsole_subprocessÚuser_logT)r1   r2   FÚforce_interactiver0   z*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²   rh   )r²   rh   rO   )rq   Úindent_with_timestampr­   r¶   r´   rq   )rŸ   Úclassr6   ÚfiltersÚ	formatterrµ   zutf-8r·   )rŸ   r¸   ÚfilenameÚencodingÚdelayrº   )r6   r®   r¯   r°   )rŸ   r4   zpip._vendorrŸ   )ÚversionÚdisable_existing_loggersr¹   Ú
formattersr4   ÚrootÚloggersr    )r3   r«   r   r\   r^   ÚCRITICALr¬   ÚgetLevelNamer   r=   r8   r9   r€   r~   ÚconfigÚ
dictConfigÚsubprocess_loggerr³   rN   )r¤   r1   r¥   Úlevel_numberrŸ   Úinclude_user_logÚadditional_log_fileÚ
root_levelÚvendored_log_levelÚhandler_classesr4   Úconsole_optionsr   r    r    r!   Úsetup_logging  s¨   
þÿ
þþþ÷þýûûû
ûúè"þ
¿ÿFrÏ   )r"   r#   r$   r%   r&   r'   )r&   r/   )rD   )rE   rF   r&   rG   )r&   rF   )r~   r'   r&   r
   )r¤   rF   r1   r'   r¥   r¦   r&   rF   )FÚ
__future__r   Ú
contextlibr+   r3   Úlogging.handlersr™   r8   Ú	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   r   ÚlocalrI   r€   r   rÇ   r’   r   r.   ÚcontextmanagerrC   rK   rH   Ú	FormatterrN   ro   r=   r�   r5   r4   ÚRotatingFileHandlerr˜   rž   r£   rÏ   r    r    r    r!   Ú<module>   sV     

3	<