§
    øyIf­   ã                  óî  — d Z ddlm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
mZ ddlmZ ddlmZmZmZmZ ddlmZmZmZmZ dd	lmZmZmZ ej        ej        ej        ej        ej         ej!        d
œZ" e#e" $                    ¦   «         ¦  «        Z% ej&        ¦   «         Z'eeef         Z( G d„ de¦  «        Z) G d„ de
¦  «        Z* G d„ dej+        ¦  «        Z,dd„Z-dd„Z.d d„Z/ G d„ de0¦  «        Z1dS )!z!Handle reporting from within tox.é    )ÚannotationsN)Úcontextmanager)ÚBytesIOÚTextIOWrapper)ÚPath)ÚThreadÚcurrent_threadÚ	enumerateÚlocal)ÚIOÚClassVarÚIteratorÚTuple)ÚForeÚStyleÚinit)r   é   é   é   é   é   c                  óÖ   — e Zd ZU dZi Zded<   dd„Zeedd
„¦   «         ¦   «         Z	e
dd„¦   «         Zej        dd„¦   «         Zedd„¦   «         Zed d!d„¦   «         Zed"d„¦   «         ZdS )#Ú_LogThreadLocalz=A thread local variable that inherits values from its parent.zClassVar[dict[int | None, str]]Ú_ident_to_dataÚout_errÚOutErrÚreturnÚNonec                óŠ   — | j                              t          t          ¦   «         dd ¦  «        d¦  «        | _        || _        d S )NÚparent_identÚROOT)r   ÚgetÚgetattrr	   Únamer   ©Úselfr   s     ú>/var/www/piapp/venv/lib/python3.11/site-packages/tox/report.pyÚ__init__z_LogThreadLocal.__init__$   s;   € ØÔ'×+Ò+­GµNÑ4DÔ4DÀnÐVZÑ,[Ô,[Ð]cÑdÔdˆŒ	ØˆŒˆˆó    úIterator[None]c               #  óŽ   ‡K  — dˆfd„} t           j        | cŠt           _        	 d V — ‰t           _        d S # ‰t           _        w xY w)Nr&   r   r   r   c                óN   •— t          ¦   «         j        | _         ‰| ¦  «         d S ©N)r	   Úidentr    )r&   Ú	old_starts    €r'   Ú	new_startz/_LogThreadLocal.patch_thread.<locals>.new_start+   s%   ø€ Ý .Ñ 0Ô 0Ô 6ˆDÔØˆI�d‰OŒOˆOˆOˆOr)   )r&   r   r   r   )r   Ústart)r0   r/   s    @r'   Úpatch_threadz_LogThreadLocal.patch_thread(   sc   øè è € ð	ð 	ð 	ð 	ð 	ð 	õ #)¤,°	Ðˆ	•6”<ð	%ØˆEˆEˆEà$�FŒLˆLˆLø˜9�FŒLÐ$Ð$Ð$Ð$s	   ¤6 ¶AÚstrc                ó   — | j         S r-   )Ú_name©r&   s    r'   r$   z_LogThreadLocal.name5   s
   € àŒzÐr)   Úvaluec                óè   — || _         | j                             ¦   «         d„ t          ¦   «         D ¦   «         z
  D ]}| j                             |¦  «         Œ|| j        t          ¦   «         j        <   d S )Nc                ó   — h | ]	}|j         ’Œ
S © )r.   )Ú.0Úts     r'   ú	<setcomp>z'_LogThreadLocal.name.<locals>.<setcomp>=   s   € Ð2PÐ2PÐ2P¸q°1´7Ð2PÐ2PÐ2Pr)   )r5   r   Úkeysr
   Úpopr	   r.   )r&   r7   r.   s      r'   r$   z_LogThreadLocal.name9   su   € àˆŒ
àÔ(×-Ò-Ñ/Ô/Ð2PÐ2PÅIÁKÄKÐ2PÑ2PÔ2PÑPð 	+ð 	+ˆEØÔ×#Ò# EÑ*Ô*Ð*Ð*Ø6;ˆÔ�NÑ,Ô,Ô2Ñ3Ð3Ð3r)   r$   c              #  óX   K  — | j         |c}| _         	 d V — || _         d S # || _         w xY wr-   )r$   )r&   r$   Úpreviouss      r'   Ú	with_namez_LogThreadLocal.with_nameA   sB   è è € à"œi¨Ðˆ�$”)ð	!ØˆEˆEˆEà ˆDŒIˆIˆIø˜ˆDŒIÐ Ð Ð Ð s   “   	)NÚyesÚboolúOutErr | NoneúIterator[OutErr]c              #  ó
  K  — | j         \  }}	 |rM|€=|                      d| j        › �|¦  «        }|                      d| j        › �|¦  «        }n|\  }}||f| _         | j         V — |r||f| _         d S d S # |r	||f| _         w xY w)Nzout-zerr-)r   Ú_maker$   )r&   rC   r   Úprevious_outÚprevious_errÚoutÚerrs          r'   Úsuspend_out_errz_LogThreadLocal.suspend_out_errI   sÆ   è è € à%)¤\Ñ"ˆ�lð	:Øð (Ø�?ØŸ*š*Ð%7¨D¬IÐ%7Ð%7¸ÑFÔF�CØŸ*š*Ð%7¨D¬IÐ%7Ð%7¸ÑFÔF�C�Cà&‘H�C˜Ø" C˜x�”Ø”,ÐÐÐàð :Ø+¨\Ð9�”��ð:ð :øˆsð :Ø+¨\Ð9�”Ð9Ð9Ð9Ð9s   ŽAA5 Á5BÚprefixÚbased_ofr   c                óv   — t          t          | › d|j        › �¦  «        t          j        d¦  «        ¬¦  «        S )Nú-F)Úencoding)r   ÚNamedBytesIOr$   ÚlocaleÚgetpreferredencoding)rN   rO   s     r'   rH   z_LogThreadLocal._makeY   s:   € å�\¨VÐ*EÐ*E°h´mÐ*EÐ*EÑFÔFÕQWÔQlÐmrÑQsÔQsÐtÑtÔtÐtr)   )r   r   r   r   ©r   r*   ©r   r3   )r7   r3   r   r   ©r$   r3   r   r*   r-   ©rC   rD   r   rE   r   rF   )rN   r3   rO   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r(   Ústaticmethodr   r2   Úpropertyr$   ÚsetterrB   rM   rH   r:   r)   r'   r   r      s  € € € € € € ØGÐGà68€NÐ8Ð8Ð8Ñ8ðð ð ð ð Øð	%ð 	%ð 	%ñ „^ñ „\ð	%ð ðð ð ñ „Xðð 
„[ð<ð <ð <ñ „[ð<ð ð!ð !ð !ñ „^ð!ð ð:ð :ð :ð :ñ „^ð:ð ðuð uð uñ „\ðuð uð ur)   r   c                  ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )rS   r$   r3   r   r   c                óV   •— t          ¦   «                              ¦   «          || _        d S r-   )Úsuperr(   r$   )r&   r$   Ú	__class__s     €r'   r(   zNamedBytesIO.__init___   s$   ø€ Ý‰Œ×ÒÑÔÐØˆŒ	ˆ	ˆ	r)   )r$   r3   r   r   )rZ   r[   r\   r(   Ú__classcell__©re   s   @r'   rS   rS   ^   s=   ø€ € € € € ðð ð ð ð ð ð ð ð ð r)   rS   c                  ó4  ‡ — e Zd Zd'ˆ fd	„Zd(d
„Zed)d„¦   «         Zed*d„¦   «         Zed+d„¦   «         Z	ed+d„¦   «         Z
ed,d„¦   «         Zej        d-d„¦   «         Zed.d/d„¦   «         Zd0d„Zed1d „¦   «         Zd2d#„Zeed3d$„¦   «         ¦   «         Zd4d&„Zˆ xZS )5Ú
ToxHandlerÚlevelÚintÚ
is_coloredrD   r   r   r   r   c                óØ   •— t          |¦  «        | _        t          ¦   «                              | j        ¬¦  «         |rt          ¦   «          || _        |                      ||¦  «         d S )N)Ústream)r   Ú_localrd   r(   Ústdoutr   Ú_is_coloredÚ_setup_level)r&   rj   rl   r   re   s       €r'   r(   zToxHandler.__init__g   sd   ø€ Ý% gÑ.Ô.ˆŒÝ‰Œ×Ò ¤ÐÑ,Ô,Ð,Øð 	Ý‰FŒFˆFØ%ˆÔØ×Ò˜* eÑ,Ô,Ð,Ð,Ð,r)   c                ó  — |                       |¦  «         |                      t          j        ||¦  «        | _        |                      t          j        ||¦  «        | _        |                      t          j        ||¦  «        | _        d S r-   )	ÚsetLevelÚ_get_formatterÚloggingÚERRORÚ_error_formatterÚWARNINGÚ_warning_formatterÚINFOÚ_remaining_formatter)r&   rl   rj   s      r'   rr   zToxHandler._setup_levelo   sn   € Ø�Š�eÑÔÐØ $× 3Ò 3µG´MÀ5È*Ñ UÔ UˆÔØ"&×"5Ò"5µg´oÀuÈjÑ"YÔ"YˆÔØ$(×$7Ò$7½¼ÀeÈZÑ$XÔ$XˆÔ!Ð!Ð!r)   r$   r3   r*   c              #  óx   K  — | j                              |¦  «        5  dV — ddd¦  «         dS # 1 swxY w Y   dS )zj
        Set a new tox environment context.

        :param name: the name of the tox environment
        N)ro   rB   )r&   r$   s     r'   Úwith_contextzToxHandler.with_contextu   s‹   è è € ð Œ[×"Ò" 4Ñ(Ô(ð 	ð 	ØˆEˆEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   �/¯3¶3c                ó   — | j         j        S )z):return: the current tox environment name)ro   r$   r6   s    r'   r$   zToxHandler.name   s   € ð Œ{ÔÐr)   r   c                ó&   — | j         j        d         S )z$:return: the current standard outputr   ©ro   r   r6   s    r'   rp   zToxHandler.stdout„   ó   € ð Œ{Ô" 1Ô%Ð%r)   c                ó&   — | j         j        d         S )z#:return: the current standard errorr   r�   r6   s    r'   ÚstderrzToxHandler.stderr‰   r‚   r)   úIO[str]c                ó   — | j         S )zO:return: the current stream to write to (alias for the current standard output))rp   r6   s    r'   rn   zToxHandler.streamŽ   s   € ð Œ{Ðr)   r7   c                ó   — dS )zIgnore anyone changing this.Nr:   )r&   r7   s     r'   rn   zToxHandler.stream“   s   € € € r)   NrC   rE   rF   c              #  óz   K  — | j                              ||¦  «        5 }|V — d d d ¦  «         d S # 1 swxY w Y   d S r-   )ro   rM   )r&   rC   r   Úout_err_ress       r'   rM   zToxHandler.suspend_out_err—   s‹   è è € àŒ[×(Ò(¨¨gÑ6Ô6ð 	¸+ØÐÐÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ž0°4·4útuple[bytes, bytes]c                óš   — | j         j                             |d         ¦  «         | j        j                             |d         ¦  «         d S )Nr   r   )rp   ÚbufferÚwriter„   r%   s     r'   Úwrite_out_errzToxHandler.write_out_errœ   sB   € àŒÔ× Ò  ¨¤Ñ,Ô,Ð,ØŒÔ× Ò  ¨¤Ñ,Ô,Ð,Ð,Ð,r)   Úenabled_levelúlogging.Formatterc           	     ó^  ‡— dŠ|rF| t           j        k    rt          j        Šn)| t           j        k    rt          j        Šnt          j        Šdˆfd„}‰› d |t          j        ¦  «        › �}|t           j	        k    rZ |t          j
        ¦  «        › d |t          j        ¦  «        › |›  |t          j        ¦  «        › d	 |t          j        ¦  «        › �} |t          j        ¦  «        ›  |t          j        ¦  «        › d
 |t          j        ¦  «        › �|z   }t          j        |¦  «        S )NÚ Úvalrk   r   r3   c                ó*   •— ‰rt          | ¦  «        ndS )Nr’   )r3   )r“   Úcolors    €r'   Ú_cz%ToxHandler._get_formatter.<locals>._c¬   s   ø€ Ø$Ð,•3�s‘8”8�8¨"Ð,r)   z %(message)sz$ %(relativeCreated)d %(levelname).1sz [%(pathname)s:%(lineno)d]z%(env_name)s:)r“   rk   r   r3   )rv   rw   r   ÚREDry   ÚCYANÚWHITEr   Ú	RESET_ALLÚDEBUGÚGREENÚDIMÚBRIGHTÚMAGENTAÚ	Formatter)rj   r�   rl   r–   Úfmtr•   s        @r'   ru   zToxHandler._get_formatter¡   sX  ø€ àˆØð 	#Ø�œÒ%Ð%Ýœ��Ø�'œ/Ò)Ð)Ýœ	��åœ
�ð	-ð 	-ð 	-ð 	-ð 	-ð 	-ð Ð9Ð9 B B¥u¤Ñ$7Ô$7Ð9Ð9ˆØ�GœMÒ)Ð)à�2•d”j‘>”>ð Cð CÀrÀrÍ%Ì/ÑGZÔGZð CÐ\_ð CÐacÐacÕdiÔdmÑanÔanð Cð CØ-/¨Rµ´Ñ-@Ô-@ðCð Cð ð �•E”LÑ!Ô!ÐW 2 2¥d¤lÑ#3Ô#3ÐWÐWÀ"À"ÅUÄ_ÑBUÔBUÐWÐWÐZ]Ñ]ˆÝÔ  Ñ%Ô%Ð%r)   Úrecordúlogging.LogRecordc                óŠ  ‡— | j         j        €dn| j         j        |_        t          t	          |j        ¦  «        j        ¦  «        Št          ˆfd„t          j	        D ¦   «         d¬¦  «        }|j        |dz   d …         |_        |j
        t          j        k    r| j                             |¦  «        S |j
        t          j        k    rb| j        rA|j        dk    r6|j        r/dt&          j        › dt&          j        › dt&          j        › d	�|_        | j                             |¦  «        S | j                             |¦  «        S )
NÚrootc              3  ó`   •K  — | ](}‰                      |¦  «        ¯t          |¦  «        V — Œ)d S r-   )Ú
startswithÚlen)r;   ÚpÚbasenames     €r'   ú	<genexpr>z$ToxHandler.format.<locals>.<genexpr>¼   s=   øè è € Ð!UÐ!U¨Q¸h×>QÒ>QÐRSÑ>TÔ>TÐ!U¥# a¡&¤&Ð!UÐ!UÐ!UÐ!UÐ!UÐ!Ur)   éÿÿÿÿ)Údefaultr   z%s%s> %sz%sú>z %s)ro   r$   Úenv_namer3   r   ÚpathnameÚparentÚmaxÚsysÚpathÚlevelnorv   rw   rx   Úformatry   rq   ÚmsgÚargsr   ÚNORMALr�   rš   rz   r|   )r&   r¢   Úlen_sys_path_matchrª   s      @r'   r¶   zToxHandler.format¸   s&  ø€ à$(¤KÔ$4Ð$<˜&˜&À$Ä+ÔBRˆŒÝ•t˜FœOÑ,Ô,Ô3Ñ4Ô4ˆÝ Ð!UÐ!UÐ!UÐ!Uµ#´(Ð!UÑ!UÔ!UÐ_aÐbÑbÔbÐØ œ/Ð*<¸qÑ*@Ð*BÐ*BÔCˆŒàŒ>�Wœ]Ò*Ð*ØÔ(×/Ò/°Ñ7Ô7Ð7ØŒ>�Wœ_Ò,Ð,ØÔð S F¤J°*Ò$<Ð$<ÀÄÐ$<ØR¥%¤,ÐRÐRµ%´)ÐRÐR½e¼oÐRÐRÐR�”
ØÔ*×1Ò1°&Ñ9Ô9Ð9ØÔ(×/Ò/°Ñ7Ô7Ð7r)   c               #  óv   K  — t                                ¦   «         5  d V — d d d ¦  «         d S # 1 swxY w Y   d S r-   )r   r2   r:   r)   r'   r2   zToxHandler.patch_threadÇ   s‡   è è € õ ×)Ò)Ñ+Ô+ð 	ð 	ØˆEˆEˆEð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   œ.®2µ2Ú	verbosityc                óŽ   — t          |¦  «        }t                               |¦  «         |                      | j        |¦  «         d S r-   )Ú
_get_levelÚLOGGERrt   rr   rq   )r&   r¼   rj   s      r'   Úupdate_verbosityzToxHandler.update_verbosityÍ   s@   € Ý˜9Ñ%Ô%ˆÝ�Š˜ÑÔÐØ×Ò˜$Ô*¨EÑ2Ô2Ð2Ð2Ð2r)   )rj   rk   rl   rD   r   r   r   r   )rl   rD   rj   rk   r   r   rX   rW   )r   r   )r   r…   )r7   r…   r   r   r-   rY   )r   rŠ   r   r   )rj   rk   r�   rk   rl   rD   r   r�   )r¢   r£   r   r3   rV   )r¼   rk   r   r   )rZ   r[   r\   r(   rr   r   r~   r`   r$   rp   r„   rn   ra   rM   rŽ   r_   ru   r¶   r2   rÀ   rf   rg   s   @r'   ri   ri   d   sÂ  ø€ € € € € ð-ð -ð -ð -ð -ð -ðYð Yð Yð Yð ðð ð ñ „^ðð ð ð  ð  ñ „Xð ð ð&ð &ð &ñ „Xð&ð ð&ð &ð &ñ „Xð&ð ðð ð ñ „Xðð „]ð+ð +ð +ñ „]ð+ð ðð ð ð ñ „^ðð-ð -ð -ð -ð
 ð&ð &ð &ñ „\ð&ð,8ð 8ð 8ð 8ð Øðð ð ñ „^ñ „\ðð3ð 3ð 3ð 3ð 3ð 3ð 3ð 3r)   ri   r¼   rk   rl   rD   r   c                ó¸  — t          t          ¦  «         t          | ¦  «        }t                               |¦  «         dD ]}t	          j        |¦  «        }d|_        Œt          j        t          j	        f}t          |||¦  «        }t                               |¦  «         t	          j        dt	          j        |¦  «        t          j        ¦   «         ¦  «         |S )N)zdistlib.utilÚfilelockTzsetup logging to %s on pid %s)Ú_clean_handlersr¿   r¾   rt   rv   Ú	getLoggerÚdisabledr³   rp   r„   ri   Ú
addHandlerÚdebugÚgetLevelNameÚosÚgetpid)r¼   rl   rj   r$   Úloggerr   Úhandlers          r'   Úsetup_reportrÍ   Ó   s¹   € Ý•FÑÔÐÝ�yÑ!Ô!€EÝ
‡O‚O�EÑÔÐØ,ð ð ˆÝÔ" 4Ñ(Ô(ˆØˆŒˆÝ”z¥3¤:Ð.€GÝ˜ 
¨GÑ4Ô4€GÝ
×Ò�gÑÔÐÝ„MÐ1µ7Ô3GÈÑ3NÔ3NÕPRÔPYÑP[ÔP[Ñ\Ô\Ð\Ø€Nr)   c                óB   — t           t          | t          ¦  «                 S r-   )ÚLEVELSÚminÚ	MAX_LEVEL)r¼   s    r'   r¾   r¾   á   s   € Ý•#�i¥Ñ+Ô+Ô,Ð,r)   Úlogúlogging.Loggerr   c                ó^   — t          | j        ¦  «        D ]}|                      |¦  «         Œd S r-   )ÚlistÚhandlersÚremoveHandler)rÒ   Úlog_handlers     r'   rÃ   rÃ   å   s<   € Ý˜CœLÑ)Ô)ð 'ð 'ˆØ×Ò˜+Ñ&Ô&Ð&Ð&ð'ð 'r)   c                  ó   — e Zd ZdZdS )ÚHandledErrorz7Error that has been handled so no need for stack trace.N)rZ   r[   r\   r]   r:   r)   r'   rÚ   rÚ   ê   s   € € € € € ØAÐAÐAÐAr)   rÚ   )r¼   rk   rl   rD   r   ri   )r¼   rk   r   rk   )rÒ   rÓ   r   r   )2r]   Ú
__future__r   rT   rv   rÉ   r³   Ú
contextlibr   Úior   r   Úpathlibr   Ú	threadingr   r	   r
   r   Útypingr   r   r   r   Úcoloramar   r   r   ÚCRITICALrw   ry   r{   r›   ÚNOTSETrÏ   r²   r>   rÑ   rÄ   r¿   r   r   rS   ÚStreamHandlerri   rÍ   r¾   rÃ   ÚRuntimeErrorrÚ   r:   r)   r'   ú<module>ræ      sU  ðØ 'Ð 'à "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø %Ð %Ð %Ð %Ð %Ð %Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0à &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &ð ÔØ„}Ø„Ø„|Ø„}Ø„~ð
ð 
€ð ˆC�—’‘”ÑÔ€	Ø	ˆÔ	Ñ	Ô	€Ø	ˆ}˜mÐ+Ô	,€ð<uð <uð <uð <uð <u�eñ <uô <uð <uð~ð ð ð ð �7ñ ô ð ðl3ð l3ð l3ð l3ð l3�Ô&ñ l3ô l3ð l3ð^ð ð ð ð-ð -ð -ð -ð'ð 'ð 'ð 'ð
Bð Bð Bð Bð B�<ñ Bô Bð Bð Bð Br)   