§
    øyIf%  ã                  óš  — d Z ddlmZ ddlZddlZddlZddlmZ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 dd	lmZmZ dd
lmZ erddlmZ ddlmZ ddlmZ ee gdf         Z!eee!e!ge"f         Z# ej$        e%¦  «        Z& G d„ d¦  «        Z' G d„ de¦  «        Z( G d„ de¦  «        Z) G d„ de¦  «        Z* G d„ d¦  «        Z+dZ,dS )zAAbstract base API for executing commands within tox environments.é    )ÚannotationsN)ÚABCÚabstractmethod)Úcontextmanager)ÚTYPE_CHECKINGÚAnyÚCallableÚIteratorÚNoReturnÚSequenceÚcast)ÚForeé   )ÚExecuteRequestÚStdinSource)Ú	SyncWrite)ÚTracebackType)ÚOutErr)ÚToxEnvc                  óv   — e Zd Zdd„Zedd„¦   «         Zedd„¦   «         Zedd	„¦   «         Zedd
„¦   «         Z	dS )ÚExecuteOptionsÚenvr   ÚreturnÚNonec                ó   — || _         d S ©N)Ú_env)Úselfr   s     úC/var/www/piapp/venv/lib/python3.11/site-packages/tox/execute/api.pyÚ__init__zExecuteOptions.__init__   s   € ØˆŒ	ˆ	ˆ	ó    c                óÞ   — |j                              dgdt          d¬¦  «         |j                              dgdt          d¬¦  «         |j                              dgd	t          d
¬¦  «         d S )NÚsuicide_timeoutz6timeout to allow process to exit before sending SIGINTg        )ÚkeysÚdescÚof_typeÚdefaultÚinterrupt_timeoutz+timeout before sending SIGTERM after SIGINTg333333Ó?Úterminate_timeoutz,timeout before sending SIGKILL after SIGTERMgš™™™™™É?)ÚconfÚ
add_configÚfloat©Úclsr   s     r   Úregister_confzExecuteOptions.register_conf    sš   € àŒ×ÒØ#Ð$ØIÝØð	 	ñ 	
ô 	
ð 	
ð 	Œ×ÒØ%Ð&Ø>ÝØð	 	ñ 	
ô 	
ð 	
ð 	Œ×ÒØ%Ð&Ø?ÝØð	 	ñ 	
ô 	
ð 	
ð 	
ð 	
r!   r,   c                óL   — t          t          | j        j        d         ¦  «        S )Nr#   ©r   r,   r   r*   ©r   s    r   r#   zExecuteOptions.suicide_timeout5   s   € å•E˜4œ9œ>Ð*;Ô<Ñ=Ô=Ð=r!   c                óL   — t          t          | j        j        d         ¦  «        S )Nr(   r1   r2   s    r   r(   z ExecuteOptions.interrupt_timeout9   ó   € å•E˜4œ9œ>Ð*=Ô>Ñ?Ô?Ð?r!   c                óL   — t          t          | j        j        d         ¦  «        S )Nr)   r1   r2   s    r   r)   z ExecuteOptions.terminate_timeout=   r4   r!   N©r   r   r   r   ©r   r,   )
Ú__name__Ú
__module__Ú__qualname__r    Úclassmethodr/   Úpropertyr#   r(   r)   © r!   r   r   r      s²   € € € € € ðð ð ð ð ð
ð 
ð 
ñ „[ð
ð( ð>ð >ð >ñ „Xð>ð ð@ð @ð @ñ „Xð@ð ð@ð @ð @ñ „Xð@ð @ð @r!   r   c                  óØ   — e Zd Zdd„Zeedd
„¦   «         ¦   «         Zeddd„¦   «         Zedd„¦   «         Zedd„¦   «         Z	d d„Z
ed!d„¦   «         Zed!d„¦   «         Zed"d„¦   «         ZdS )#ÚExecuteStatusÚoptionsr   Úoutr   Úerrr   r   c                ó>   — d | _         || _        || _        || _        d S r   )Úoutcomer@   Ú_outÚ_err)r   r@   rA   rB   s       r   r    zExecuteStatus.__init__C   s"   € Ø'+ˆŒØˆŒØˆŒ	ØˆŒ	ˆ	ˆ	r!   ú
int | Nonec                ó   — t           ‚r   ©ÚNotImplementedErrorr2   s    r   Ú	exit_codezExecuteStatus.exit_codeI   ó
   € õ "Ð!r!   NÚtimeoutúfloat | Nonec                ó   — t           ‚r   rI   )r   rM   s     r   ÚwaitzExecuteStatus.waitN   ó   € å!Ð!r!   ÚcontentÚstrc                ó   — t           ‚r   rI   )r   rR   s     r   Úwrite_stdinzExecuteStatus.write_stdinR   rQ   r!   c                ó   — t           ‚r   rI   r2   s    r   Ú	interruptzExecuteStatus.interruptV   rQ   r!   útuple[SyncWrite, SyncWrite]c                ó@   — | j         | j        f}||c| _         | _        |S r   )rE   rF   )r   rA   rB   Úress       r   Úset_out_errzExecuteStatus.set_out_errZ   s%   € ØŒi˜œÐ"ˆØ" CÐˆŒ	�4”9Øˆ
r!   Ú	bytearrayc                ó   — | j         j        S r   )rE   rR   r2   s    r   rA   zExecuteStatus.out_   ó   € àŒyÔ Ð r!   c                ó   — | j         j        S r   )rF   rR   r2   s    r   rB   zExecuteStatus.errc   r^   r!   údict[str, Any]c                ó   — i S r   r=   r2   s    r   ÚmetadatazExecuteStatus.metadatag   s   € àˆ	r!   )r@   r   rA   r   rB   r   r   r   )r   rG   r   )rM   rN   r   rG   )rR   rS   r   r   ©r   r   )rA   r   rB   r   r   rX   )r   r\   )r   r`   )r8   r9   r:   r    r<   r   rK   rP   rU   rW   r[   rA   rB   rb   r=   r!   r   r?   r?   B   s+  € € € € € ðð ð ð ð Øð"ð "ð "ñ „^ñ „Xð"ð ð"ð "ð "ð "ñ „^ð"ð ð"ð "ð "ñ „^ð"ð ð"ð "ð "ñ „^ð"ðð ð ð ð
 ð!ð !ð !ñ „Xð!ð ð!ð !ð !ñ „Xð!ð ðð ð ñ „Xðð ð r!   r?   c                  ór   — e Zd ZU dZeZded<   dd„Zedd„¦   «         Z	e
dd„¦   «         Zedd„¦   «         ZdS )ÚExecutez0Abstract API for execution of a tox environment.ztype[ExecuteOptions]Ú_option_classÚcoloredÚboolr   r   c                ó   — || _         d S r   )Ú_colored)r   rg   s     r   r    zExecute.__init__q   s   € ØˆŒˆˆr!   Úrequestr   ÚshowÚout_errr   r   r   úIterator[ExecuteStatus]c              #  ó²  K  — t          j        ¦   «         }	 |d         j        |d         j        }}t          |j        |r|nd ¦  «        }t          |j        |r|nd | j        rt          j        nd ¦  «        }	|5  |	5  |                      ||  	                    |¦  «        ||	¦  «        }
|
5 }|V — d d d ¦  «         n# 1 swxY w Y   |j
        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          j        ¦   «         }n# t          j        ¦   «         }w xY wt          ||||j        |	j        |||
j        |j        ¦	  «	        |_        d S )Nr   r   )ÚtimeÚ	monotonicÚbufferr   Únamerj   r   ÚREDÚbuild_instancerf   rK   ÚOutcomeÚtextÚcmdrb   rD   )r   rk   rl   rm   r   ÚstartrA   rB   Úout_syncÚerr_syncÚinstanceÚstatusrK   Úends                 r   ÚcallzExecute.callt   s  è è € õ ”Ñ Ô ˆð	#à˜q”zÔ(¨'°!¬*Ô*;�ˆCÝ  ¤°$Ð+@¨3¨3¸DÑAÔAˆHÝ  ¤°$Ð+@¨3¨3¸DÈdÌmÐBeÅ$Ä(À(ÐaeÑfÔfˆHØð -ð -˜8ð -ð -Ø×.Ò.¨w¸×8JÒ8JÈ3Ñ8OÔ8OÐQYÐ[cÑdÔd�Øð ! Ø �L�L�Lð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !à"Ô,�	ð	-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð -ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -õ ”.Ñ"Ô"ˆCˆCø•$”.Ñ"Ô"ˆCÐ"Ð"Ð"Ð"Ý ØØØØŒMØŒMØØØŒLØŒOñ

ô 

ˆŒˆˆsx   —A"D Á9C0Á<.CÂ*B;Â/CÂ;B?Â?CÃB?Ã
CÃC0ÃC	ÃC0Ã C	Ã!C0Ã$D Ã0C4Ã4D Ã7C4Ã8D ÄD$r@   r   rA   r   rB   ÚExecuteInstancec                ó   — t           ‚r   rI   ©r   rk   r@   rA   rB   s        r   ru   zExecute.build_instance•   s
   € õ "Ð!r!   c                ó:   — | j                              |¦  «         d S r   )rf   r/   r-   s     r   r/   zExecute.register_confŸ   s   € àÔ×'Ò'¨Ñ,Ô,Ð,Ð,Ð,r!   N)rg   rh   r   r   )
rk   r   rl   rh   rm   r   r   r   r   rn   )
rk   r   r@   r   rA   r   rB   r   r   r€   r6   )r8   r9   r:   Ú__doc__r   rf   Ú__annotations__r    r   r   r   ru   r;   r/   r=   r!   r   re   re   l   s¢   € € € € € € Ø:Ð:à*8€MÐ8Ð8Ð8Ñ8ð ð  ð  ð  ð ð
ð 
ð 
ñ „^ð
ð@ ð"ð "ð "ñ „^ð"ð ð-ð -ð -ñ „[ð-ð -ð -r!   re   c                  ó¢   — e Zd ZdZdd„Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         Z	edd„¦   «         Z
eedd„¦   «         ¦   «         ZdS ) r€   z#An instance of a command execution.rk   r   r@   r   rA   r   rB   r   r   c                ó>   — || _         || _        || _        || _        d S r   )rk   r@   rE   rF   r‚   s        r   r    zExecuteInstance.__init__§   s"   € ØˆŒØˆŒØˆŒ	ØˆŒ	ˆ	ˆ	r!   ÚContentHandlerc                ó   — | j         j        S r   )rE   Úhandlerr2   s    r   Úout_handlerzExecuteInstance.out_handler­   r^   r!   c                ó   — | j         j        S r   )rF   rŠ   r2   s    r   Úerr_handlerzExecuteInstance.err_handler±   r^   r!   r?   c                ó   — t           ‚r   rI   r2   s    r   Ú	__enter__zExecuteInstance.__enter__µ   rQ   r!   Úexc_typeútype[BaseException] | NoneÚexc_valúBaseException | NoneÚexc_tbúTracebackType | Nonec                ó   — t           ‚r   rI   )r   r�   r’   r”   s       r   Ú__exit__zExecuteInstance.__exit__¹   s
   € õ "Ð!r!   úSequence[str]c                ó   — t           ‚r   rI   r2   s    r   rx   zExecuteInstance.cmdÂ   rL   r!   N)
rk   r   r@   r   rA   r   rB   r   r   r   )r   rˆ   )r   r?   )r�   r‘   r’   r“   r”   r•   r   r   )r   r˜   )r8   r9   r:   r„   r    r<   r‹   r�   r   r�   r—   rx   r=   r!   r   r€   r€   ¤   sØ   € € € € € Ø-Ð-ðð ð ð ð ð!ð !ð !ñ „Xð!ð ð!ð !ð !ñ „Xð!ð ð"ð "ð "ñ „^ð"ð ð"ð "ð "ñ „^ð"ð Øð"ð "ð "ñ „^ñ „Xð"ð "ð "r!   r€   c                  ón   — e Zd ZdZdZd#d„Zd$d„Zd%d„Zd&d„Zd&d„Z	d'd„Z
d(d„Zed)d„¦   «         Zd*d!„Zd"S )+rv   zResult of a command execution.r   rk   r   Úshow_on_standardrh   rK   rG   rA   rS   rB   ry   r,   r~   rx   r˜   rb   r`   r   r   c
                ó„   — || _         || _        || _        || _        || _        || _        || _        || _        |	| _        dS )aa  
        Create a new execution outcome.

        :param request: the execution request
        :param show_on_standard: a flag indicating if the execution was shown on stdout/stderr
        :param exit_code: the exit code for the execution
        :param out: the standard output of the execution
        :param err: the standard error of the execution
        :param start: a timer sample for the start of the execution
        :param end: a timer sample for the end of the execution
        :param cmd: the command as executed
        :param metadata: additional metadata attached to the execution
        N)	rk   r›   rK   rA   rB   ry   r~   rx   rb   )
r   rk   r›   rK   rA   rB   ry   r~   rx   rb   s
             r   r    zOutcome.__init__Í   sH   € ð2 ˆŒØ 0ˆÔØ"ˆŒØˆŒØˆŒØˆŒ
ØˆŒØˆŒØ ˆŒˆˆr!   c                ó"   — | j         | j        k    S r   )rK   ÚOKr2   s    r   Ú__bool__zOutcome.__bool__ð   s   € ØŒ~ ¤Ò(Ð(r!   c                óZ   — | j         j        › d| j        › d| j        d›d| j        j        › �S )Nz: exit z in z.2fz seconds for )Ú	__class__r8   rK   Úelapsedrk   Ú	shell_cmdr2   s    r   Ú__repr__zOutcome.__repr__ó   sJ   € àŒ~Ô&ð -ð -¨t¬~ð -ð -À4Ä<Ð]ð -ð -Ø”LÔ*ð-ð -ð	
r!   c                óš   — | j         �$| j         | j        k    r|                      ¦   «          |                      t          j        ¦  «         dS )z$Assert that the execution succeeded.N©rK   rž   Ú_assert_failÚlog_run_doneÚloggingÚINFOr2   s    r   Úassert_successzOutcome.assert_successù   óF   € àŒ>Ð%¨$¬.¸D¼GÒ*CÐ*CØ×ÒÑÔÐØ×Ò�'œ,Ñ'Ô'Ð'Ð'Ð'r!   c                óš   — | j         �$| j         | j        k    r|                      ¦   «          |                      t          j        ¦  «         dS )z!Assert that the execution failed.Nr¦   r2   s    r   Úassert_failurezOutcome.assert_failureÿ   r¬   r!   r   c                ó°  — | j         du �r| j        r]t          j                             | j        ¦  «         | j                             d¦  «        st          j                             d¦  «         | j        r¯t          j                             t          j	        ¦  «         t          j                             | j        ¦  «         t          j                             t          j
        ¦  «         | j                             d¦  «        st          j                             d¦  «         |                      t          j        ¦  «         t          | j        ¦  «        ‚)NFú
)r›   rA   ÚsysÚstdoutÚwriteÚendswithrB   Ústderrr   rt   ÚRESETr¨   r©   ÚCRITICALÚ
SystemExitrK   r2   s    r   r§   zOutcome._assert_fail  s  € ØÔ  EÐ)Ñ)ØŒxð +Ý”
× Ò  ¤Ñ*Ô*Ð*Ø”x×(Ò(¨Ñ.Ô.ð +Ý”J×$Ò$ TÑ*Ô*Ð*ØŒxð +Ý”
× Ò ¥¤Ñ*Ô*Ð*Ý”
× Ò  ¤Ñ*Ô*Ð*Ý”
× Ò ¥¤Ñ,Ô,Ð,Ø”x×(Ò(¨Ñ.Ô.ð +Ý”J×$Ò$ TÑ*Ô*Ð*Ø×Ò�'Ô*Ñ+Ô+Ð+Ý˜œÑ(Ô(Ð(r!   ÚlvlÚintc           	     ó   — | j         }d}| j        r9dd                     d„ | j                             ¦   «         D ¦   «         ¦  «        › �}t                               |d| j        | j        |j        |j	        |¦  «         dS )z€
        Log that the run was done.

        :param lvl: the level on what to log as interpreted by :func:`logging.log`
        Ú ú z, c              3  ó*   K  — | ]\  }}|› d |› �V — ŒdS )ú=Nr=   )Ú.0ÚkÚvs      r   ú	<genexpr>z'Outcome.log_run_done.<locals>.<genexpr>  s0   è è € Ð$RÐ$R±D°A°q¨ Z Z¨A Z ZÐ$RÐ$RÐ$RÐ$RÐ$RÐ$Rr!   zexit %s (%.2f seconds) %s> %s%sN)
rk   rb   ÚjoinÚitemsÚLOGGERÚlogrK   r¢   Úcwdr£   )r   r¹   Úreqrb   s       r   r¨   zOutcome.log_run_done  sŽ   € ð ŒlˆØˆØŒ=ð 	UØT˜4Ÿ9š9Ð$RÐ$R¸D¼M×<OÒ<OÑ<QÔ<QÐ$RÑ$RÔ$RÑRÔRÐTÐTˆHÝ�
Š
ØØ-ØŒNØŒLØŒGØŒMØñ	
ô 	
ð 	
ð 	
ð 	
r!   c                ó    — | j         | j        z
  S )z+:return: time the execution took in seconds)r~   ry   r2   s    r   r¢   zOutcome.elapsed(  s   € ð Œx˜$œ*Ñ$Ð$r!   útuple[str, str]c                ó   — | j         | j        fS )z::return: a tuple of the standard output and standard error)rA   rB   r2   s    r   rm   zOutcome.out_err-  s   € àŒx˜œÐ!Ð!r!   N)rk   r   r›   rh   rK   rG   rA   rS   rB   rS   ry   r,   r~   r,   rx   r˜   rb   r`   r   r   )r   rh   )r   rS   rc   )r   r   )r¹   rº   r   r   r7   )r   rË   )r8   r9   r:   r„   rž   r    rŸ   r¤   r«   r®   r§   r¨   r<   r¢   rm   r=   r!   r   rv   rv   È   sà   € € € € € Ø(Ð(à	
€Bð!!ð !!ð !!ð !!ðF)ð )ð )ð )ð
ð 
ð 
ð 
ð(ð (ð (ð (ð(ð (ð (ð (ð)ð )ð )ð )ð
ð 
ð 
ð 
ð( ð%ð %ð %ñ „Xð%ð"ð "ð "ð "ð "ð "r!   rv   )rˆ   re   r€   r   r?   rv   r   )-r„   Ú
__future__r   r©   r±   rp   Úabcr   r   Ú
contextlibr   Útypingr   r   r	   r
   r   r   r   Úcoloramar   rk   r   r   Ústreamr   Útypesr   Ú
tox.reportr   Útox.tox_env.apir   Úbytesrˆ   rº   ÚExecutorÚ	getLoggerr8   rÆ   r   r?   re   r€   rv   Ú__all__r=   r!   r   ú<module>rÚ      s8  ðØ GÐ Gà "Ð "Ð "Ð "Ð "Ð "à €€€Ø 
€
€
€
Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø %Ð %Ð %Ð %Ð %Ð %Ø SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ Sà Ð Ð Ð Ð Ð à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø Ð Ð Ð Ð Ð àð 'Ø#Ð#Ð#Ð#Ð#Ð#à!Ð!Ð!Ð!Ð!Ð!Ø&Ð&Ð&Ð&Ð&Ð&à˜5˜' 4˜-Ô(€Ø�^ ^°^ÐDÀcÐIÔJ€Ø	ˆÔ	˜8Ñ	$Ô	$€ð#@ð #@ð #@ð #@ð #@ñ #@ô #@ð #@ðL'ð 'ð 'ð 'ð '�Cñ 'ô 'ð 'ðT5-ð 5-ð 5-ð 5-ð 5-ˆcñ 5-ô 5-ð 5-ðp!"ð !"ð !"ð !"ð !"�cñ !"ô !"ð !"ðHg"ð g"ð g"ð g"ð g"ñ g"ô g"ð g"ðT€€€r!   