Ë
    äØjjS-  ã                   ó’  — 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__© ó    ú]/opt/eval-harness/bench_task/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Ñ#Øõ
 Øä�cœ7Ó#ÒP¨¯	©	´e·l±lÄEÇKÁKÐ5PÐ(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�   ø€ ô
 ‘G‘N 6Ó*ˆ	Ø×.Ñ.¨y¸&¿.¹.ÓIˆØ! IÑ-ˆ	àˆØ×ÒØŸ™¨Ó/Ð0°Ð2ˆFØ�#œÓ)Ñ)Ñ)ˆØ—G‘G°y×7KÑ7KÈDÓ7QÖR¨t˜V d›]Ò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__�   sc   è ø€ ð —>‘> $§/¡/°7Ó;ˆÜ×#Ñ# HÓ-ˆØò 	 ˆDÜ˜# §¡Ñ+Ó,Ò,Ø�OˆOÜ˜$“-Óñ	 àú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        |j                  t        «      sJ ‚t        |dd«      rI|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)r*   r;   Útupler7   r   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  € Ø!%ˆô ˜&Ÿ+™+¤uÔ-Ð-Ð-Ü�6˜6 5Ô)Ø!'§¡Ñˆ_ÜØÔ"3´X¼sÐ!Côð Cà!Ð"Ð"AÐBóCð ô *<Ø¬Ó(9ô*‰Jð —k‘k &Ó)ˆGØ×,Ñ,¨V°WÓ=ˆJØ�~‰~Ð)Ø—>‘>¤W§]¡]Ò2Ü!¨Ô.‘EØ—^‘^¤w§¡Ò6Ü!¨Ô1�Eð	%Ø�L‰L×Ñ˜z°HÀ5ÐPUÐÕ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ñ ÙØ—‘×!Ñ!¤S§Z¡ZÑ/Ü% 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   ø… Ø.0€Hˆh�x  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*   ø€ Ü”2—7‘7—?‘? 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ô ‡N�N×ÑàØ(-ð GÜ$Ÿ_™_ñ%ð
 +Ü-×2Ñ2ñ+ð
 LÜ-×2Ñ2ñ'ñô  -Ø+ñô
 -Ø+Ø%)ñ*ñ
ð #Ø,¨XÑ6Ø (Ø)¨(Ñ3Ø 4Ð6HÐIØ!)ñð 'Ø,¨XÑ6Ø (Ø)¨(Ñ3Ø 4Ð5Ø!)ñ#ð #Ø,¨XÑ6Ø)¨(Ñ3Ø (Ø 8Ð9Ø!)ñ'ð %Ø,¨VÑ4Ø 3Ø 'Ø!Ø!8ññ7#ðJ $Ø$ñð &¨Ð1CÐ'DÐEñI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#   