§
    øyIf~  ã                  óî   — d Z ddlm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 dd	lmZmZmZmZ dd
lmZ ddlmZ ddlmZ e	rddlmZ ddlmZ  G d„ de¦  «        Z G d„ de¦  «        ZdS )zlA executor that reuses a single subprocess for all backend calls (saving on python startup/import overhead).é    )ÚannotationsN)ÚTimeoutExpired)ÚLock)ÚTYPE_CHECKINGÚSequence)ÚBackendFailed)ÚExecuteRequest)ÚExecuteÚExecuteInstanceÚExecuteOptionsÚExecuteStatus)ÚLocalSubProcessExecuteInstance)ÚStdinSource)Ú	SyncWrite)ÚPath)ÚTracebackTypec                  óT   ‡ — e Zd ZdZdˆ fd„Zdd„Zd d„Zed!d„¦   «         Zd"d„Z	ˆ xZ
S )#ÚLocalSubProcessPep517Executorz%Executor holding the backend process.ÚcoloredÚboolÚcmdúSequence[str]Úenvúdict[str, str]Úcwdr   ÚreturnÚNonec                óž   •— t          ¦   «                              |¦  «         || _        || _        || _        d | _        d | _        d| _        d S )NF)ÚsuperÚ__init__r   r   r   Ú_local_executeÚ_excÚis_alive)Úselfr   r   r   r   Ú	__class__s        €úN/var/www/piapp/venv/lib/python3.11/site-packages/tox/execute/pep517_backend.pyr    z&LocalSubProcessPep517Executor.__init__   sJ   ø€ Ý‰Œ×Ò˜Ñ!Ô!Ð!ØˆŒØˆŒØˆŒØ[_ˆÔØ&*ˆŒ	Ø#ˆŒˆˆó    Úrequestr	   Úoptionsr   Úoutr   Úerrr   c           	     óN   — t          |||||                      |¦  «        ¦  «        S ©N)Ú$LocalSubProcessPep517ExecuteInstanceÚlocal_execute)r$   r(   r)   r*   r+   s        r&   Úbuild_instancez,LocalSubProcessPep517Executor.build_instance#   s*   € õ 4°G¸WÀcÈ3ÐPT×PbÒPbÐcjÑPkÔPkÑlÔlÐlr'   ú4tuple[LocalSubProcessExecuteInstance, ExecuteStatus]c           
     óZ  — | j         �| j         ‚| j        �€t          | j        | j        | j        t          j        d¬¦  «        }t          ||t          dd d ¬¦  «        t          dd d ¬¦  «        d¬¦  «        }| 
                    ¦   «         }||f| _        	 d	|j        v rd| _        nd
|j        v raddlm} t!          ddddœ|j                             ¦   «         |j                             ¦   «         ¬¦  «        } ||¦  «        | _         | j         ‚t%          j        d¦  «         Œ�| j        S )NÚpep517)r   r   r   ÚstdinÚrun_idz
pep517-out)ÚnameÚtargetÚcolorz
pep517-errF)r(   r)   r*   r+   Úon_exit_drainTs   started backend s   failed to start backendr   )ÚToxBackendFailedéûÿÿÿÚFailedToStartzcould not start backend)ÚcodeÚexc_typeÚexc_msg)Úresultr*   r+   g{®Gáz„?)r"   r!   r	   r   r   r   r   ÚAPIr   r   Ú	__enter__r*   r#   r+   Ú0tox.tox_env.python.virtual_env.package.pyprojectr:   r   ÚdecodeÚtimeÚsleep)r$   r)   r(   ÚinstanceÚstatusr:   Úfailures          r&   r/   z+LocalSubProcessPep517Executor.local_execute,   s_  € ØŒ9Ð Ø”)ˆOØÔÑ&Ý$¨¬°t´xÀTÄXÕU`ÔUdÐmuÐvÑvÔvˆGå5ØØÝ <¸ÀDÐIÑIÔIÝ <¸ÀDÐIÑIÔIØ#ðñ ô ˆHð ×'Ò'Ñ)Ô)ˆFØ"*¨FÐ"2ˆDÔð!Ø&¨&¬*Ð4Ð4Ø$(�D”MØØ-°´Ð;Ð;ØaÐaÐaÐaÐaÐaå+à$&Ø(7Ø'@ð ð  ð
 #œJ×-Ò-Ñ/Ô/Ø"œJ×-Ò-Ñ/Ô/ðñ ô �Gð !1Ð 0°Ñ 9Ô 9�D”IØœ)�OÝ”
˜4Ñ Ô Ð ð%!ð& Ô"Ð"r'   ÚintoÚ	bytearrayÚcontentÚbytesc                ó0   — |                       |¦  «         dS )zIgnore content generated.N)Úextend)rJ   rL   s     r&   Ú_handlerz&LocalSubProcessPep517Executor._handlerP   s   € ð 	�Š�GÑÔÐÐÐr'   c                ó$  — | j         ��| j         \  }}|                     d d d ¦  «         |j        �R|j        j        €F	 |j                             d¬¦  «         n)# t
          $ r |j                             ¦   «          Y nw xY wd | _         d| _        d S )Ngš™™™™™¹?)ÚtimeoutF)r!   Ú__exit__ÚprocessÚ
returncodeÚwaitr   Ú	terminater#   )r$   ÚexecuteÚ_statuss      r&   Úclosez#LocalSubProcessPep517Executor.closeU   s«   € ØÔÐ*Ø#Ô2ÑˆG�WØ×Ò˜T 4¨Ñ.Ô.Ð.ØŒÐ*¨w¬Ô/IÐ/Qð0Ø”O×(Ò(°Ð(Ñ5Ô5Ð5Ð5øÝ%ð 0ð 0ð 0Ø”O×-Ò-Ñ/Ô/Ð/Ð/Ð/ð0øøøà"&ˆDÔØˆŒˆˆs   ½A Á#A?Á>A?)
r   r   r   r   r   r   r   r   r   r   )
r(   r	   r)   r   r*   r   r+   r   r   r   )r)   r   r   r1   )rJ   rK   rL   rM   r   r   ©r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r    r0   r/   ÚstaticmethodrP   rZ   Ú__classcell__©r%   s   @r&   r   r      s¤   ø€ € € € € Ø/Ð/ð$ð $ð $ð $ð $ð $ðmð mð mð mð"#ð "#ð "#ð "#ðH ðð ð ñ „\ðð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r'   r   c                  óT   ‡ — e Zd ZdZdˆ fd„Zedd„¦   «         Zdd„Zdd„Zdd„Z	ˆ xZ
S )r.   zA backend invocation.r(   r	   r)   r   r*   r   r+   Úinstance_statusr1   r   r   c                ó”   •— t          ¦   «                              ||||¦  «         |\  | _        | _        t	          ¦   «         | _        d S r-   )r   r    Ú	_instancerY   r   Ú_lock)r$   r(   r)   r*   r+   rd   r%   s         €r&   r    z-LocalSubProcessPep517ExecuteInstance.__init__e   s@   ø€ õ 	‰Œ×Ò˜ '¨3°Ñ4Ô4Ð4Ø'6Ñ$ˆŒ˜œÝ‘V”VˆŒ
ˆ
ˆ
r'   r   c                ó   — | j         j        S r-   )rf   r   ©r$   s    r&   r   z(LocalSubProcessPep517ExecuteInstance.cmdq   s   € àŒ~Ô!Ð!r'   r   c                ój   — | j                              ¦   «          |                      ¦   «          | j        S r-   )rg   ÚacquireÚ_swap_out_errrY   ri   s    r&   rB   z.LocalSubProcessPep517ExecuteInstance.__enter__u   s0   € ØŒ
×ÒÑÔÐØ×ÒÑÔÐØŒ|Ðr'   r>   útype[BaseException] | NoneÚexc_valúBaseException | NoneÚexc_tbúTracebackType | Nonec                ó`   — |                       ¦   «          | j                             ¦   «          d S r-   )rl   rg   Úrelease)r$   r>   rn   rp   s       r&   rS   z-LocalSubProcessPep517ExecuteInstance.__exit__z   s0   € ð 	×ÒÑÔÐØŒ
×ÒÑÔÐÐÐr'   c                ó¨   — | j         | j        }}| j                             ||¦  «        \  | _         | _        | j                             ||¦  «         d S r-   )Ú_outÚ_errrf   Úset_out_errrY   )r$   r*   r+   s      r&   rl   z2LocalSubProcessPep517ExecuteInstance._swap_out_errƒ   sM   € Ø”9˜dœiˆSˆà#œ~×9Ò9¸#¸sÑCÔCÑˆŒ	�4”9àŒ× Ò   cÑ*Ô*Ð*Ð*Ð*r'   )r(   r	   r)   r   r*   r   r+   r   rd   r1   r   r   )r   r   )r   r   )r>   rm   rn   ro   rp   rq   r   r   r[   )r\   r]   r^   r_   r    Úpropertyr   rB   rS   rl   ra   rb   s   @r&   r.   r.   b   sŸ   ø€ € € € € ØÐð
ð 
ð 
ð 
ð 
ð 
ð ð"ð "ð "ñ „Xð"ðð ð ð ð
ð ð ð ð+ð +ð +ð +ð +ð +ð +ð +r'   r.   ) r_   Ú
__future__r   rE   Ú
subprocessr   Ú	threadingr   Útypingr   r   Úpyproject_apir   Útox.executer	   Útox.execute.apir
   r   r   r   Útox.execute.local_sub_processr   Útox.execute.requestr   Útox.execute.streamr   Úpathlibr   Útypesr   r   r.   © r'   r&   ú<module>r†      ss  ðØ rÐ rà "Ð "Ð "Ð "Ð "Ð "à €€€Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *à 'Ð 'Ð 'Ð 'Ð 'Ð 'à &Ð &Ð &Ð &Ð &Ð &Ø SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SØ HÐ HÐ HÐ HÐ HÐ HØ +Ð +Ð +Ð +Ð +Ð +Ø (Ð (Ð (Ð (Ð (Ð (àð $ØÐÐÐÐÐØ#Ð#Ð#Ð#Ð#Ð#ðHð Hð Hð Hð H Gñ Hô Hð HðV&+ð &+ð &+ð &+ð &+¨?ñ &+ô &+ð &+ð &+ð &+r'   