§
    øyIf�  ã                  óÌ   — 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 d dlmZmZ ddlmZmZ dd	lmZmZmZ dd
lmZ erd dlmZ  G d„ dee¦  «        ZdS )é    )ÚannotationsN)ÚABCÚabstractmethod)Úsha256)ÚTYPE_CHECKINGÚAnyÚIterableÚList)ÚCommandÚEnvListé   )ÚToxEnvÚToxEnvCreateArgs)ÚPackageÚPackageToxEnvÚPathPackage)Úadd_change_dir_conf)Ú
EnvJournalc                  óN  ‡ — e Zd Zd%ˆ fd„Zd&ˆ fd„Zd&ˆ fd„Zd&ˆ fd„Zd'd
„Zd(d„Zd)d*ˆ fd„Z	e
d+d„¦   «         Ze
ed+d„¦   «         ¦   «         Ze
ed+d„¦   «         ¦   «         Zd&d„Zd,d„Zd&d„Zed-d„¦   «         Ze
d.ˆ fd „¦   «         Zed/d!„¦   «         Ze
d0d#„¦   «         Zd&d$„Zˆ xZS )1Ú	RunToxEnvÚcreate_argsr   ÚreturnÚNonec                ót   •— d | _         g | _        t          ¦   «                              |¦  «         d | _        d S ©N)Úpackage_envÚ	_packagesÚsuperÚ__init__Ú_package_envs)Úselfr   Ú	__class__s     €úF/var/www/piapp/venv/lib/python3.11/site-packages/tox/tox_env/runner.pyr   zRunToxEnv.__init__   s8   ø€ Ø15ˆÔØ(*ˆŒÝ‰Œ×Ò˜Ñ%Ô%Ð%ØEIˆÔÐÐó    c                ó   •— dd„}| j                              dgt          dd|¬¦  «         | j                              d	t          d
t          g ¦  «        ¬¦  «         t	          ¦   «                              ¦   «          | j                              dgt          t                   g d¬¦  «         | j                              dgt          t                   g d¬¦  «         | j                              dgt          t                   g d¬¦  «         t          | j         | j	        ¦  «         | j                              dgt          dd¬¦  «         | j                              dgt          dd¬¦  «         | j                              dgt          dd¬¦  «         d S )NÚvalueÚstrr   c                ó~   — t          j        dd|                      dd¦  «                             dd¦  «        ¦  «        S )Nz\s+ú úÚ ú
)ÚreÚsubÚreplace)r&   s    r#   Úensure_one_linez2RunToxEnv.register_config.<locals>.ensure_one_line   s4   € Ý”6˜& # u§}¢}°T¸2Ñ'>Ô'>×'FÒ'FÀtÈSÑ'QÔ'QÑRÔRÐRr$   Údescriptionr+   z+description attached to the tox environment)ÚkeysÚof_typeÚdefaultÚdescÚpost_processÚdependszKtox environments that this environment depends on (must be run after those))r3   r5   r4   Úcommands_prez(the commands to be called before testing©r2   r3   r4   r5   Úcommandsz%the commands to be called for testingÚcommands_postz'the commands to be called after testingÚargs_are_pathsTz=if True rewrite relative posargs paths from cwd to change_dirÚignore_errorsFzZwhen executing the commands keep going even if a sub-command exits with non-zero exit codeÚignore_outcomezZif set to true a failing result of this testenv will not make tox fail (instead just warn))r&   r'   r   r'   )ÚconfÚ
add_configr'   r   r   Úregister_configr
   r   r   ÚcoreÚbool)r!   r0   r"   s     €r#   rA   zRunToxEnv.register_config   sß  ø€ ð	Sð 	Sð 	Sð 	Sð 	Œ	×ÒØ�ÝØØ>Ø(ð 	ñ 	
ô 	
ð 	
ð 	Œ	×ÒØÝØ^Ý˜B‘K”Kð	 	ñ 	
ô 	
ð 	
õ 	‰Œ×ÒÑ!Ô!Ð!ØŒ	×ÒØ Ð!Ý�”MØØ;ð	 	ñ 	
ô 	
ð 	
ð 	Œ	×ÒØ�Ý�”MØØ8ð	 	ñ 	
ô 	
ð 	
ð 	Œ	×ÒØ!Ð"Ý�”MØØ:ð	 	ñ 	
ô 	
ð 	
õ 	˜DœI t¤yÑ1Ô1Ð1ØŒ	×ÒØ"Ð#ÝØØPð	 	ñ 	
ô 	
ð 	
ð 	Œ	×ÒØ!Ð"ÝØØmð	 	ñ 	
ô 	
ð 	
ð 	Œ	×ÒØ"Ð#ÝØØmð	 	ñ 	
ô 	
ð 	
ð 	
ð 	
r$   c                ó~   •— t          ¦   «                              ¦   «          |                      d| j        ¦  «         d S )NÚteardown_env)r   Ú	_teardownÚ_call_pkg_envsr?   ©r!   r"   s    €r#   rF   zRunToxEnv._teardownS   s7   ø€ Ý‰Œ×ÒÑÔÐØ×Ò˜N¨D¬IÑ6Ô6Ð6Ð6Ð6r$   c                ór   •— t          ¦   «                              ¦   «          |                      d¦  «         d S )NÚ	interrupt)r   rJ   rG   rH   s    €r#   rJ   zRunToxEnv.interruptW   s3   ø€ Ý‰Œ×ÒÑÔÐØ×Ò˜KÑ(Ô(Ð(Ð(Ð(r$   útuple[str, str] | Nonec                óÀ  — |                       ¦   «         rÉ| j        d         dk    }| j                             ddgt          | j        d¬¦  «         | j                             dgt          | j        d         › |rdnd› �d¬¦  «         | j        d         dk    }| j                             d	gd
|r| j        n| j        ¬¦  «         | j        d         | j        d	         fS d S )NÚpackageÚexternalr   Úisolated_build_envztox environment used to packager9   Ú	_externalr+   Úpackage_tox_env_typez-tox package type used to generate the package)r2   r5   r&   )	Ú_register_package_confr?   rB   r@   r'   Ú_default_package_envÚadd_constantÚ_external_pkg_tox_env_typeÚ_package_tox_env_type)r!   Úhas_external_pkgÚis_externals      r#   Úget_package_env_typeszRunToxEnv.get_package_env_types[   s  € Ø×&Ò&Ñ(Ô(ð 	OØ#œy¨Ô3°zÒAÐØŒI× Ò Ø#Ð%9Ð:ÝØÔ1Ø6ð	 !ñ ô ð ð ŒI× Ò Ø#�_ÝØœ9 ]Ô3Ð^ÐDTÐ5\°[°[ÐZ\Ð^Ð^Ø6ð	 !ñ ô ð ð œ) IÔ.°*Ò<ˆKØŒI×"Ò"Ø,Ð-ØDØ9DÐd�dÔ5Ð5È$ÔJdð #ñ ô ð ð
 ”9˜]Ô+¨T¬YÐ7MÔ-NÐNÐNØˆtr$   Úmethod_namer'   Úargsr   c                ó¦   — | j         D ]H}|                     | j        ¬¦  «        5   t          ||¦  «        |Ž  d d d ¦  «         n# 1 swxY w Y   ŒId S )N)Úsuspend)Úpackage_envsÚdisplay_contextÚ_has_display_suspendedÚgetattr)r!   rZ   r[   r   s       r#   rG   zRunToxEnv._call_pkg_envss   s¥   € ØÔ,ð 	9ð 	9ˆKØ×,Ò,°TÔ5PÐ,ÑQÔQð 9ð 9Ø1•˜ [Ñ1Ô1°4Ð8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9øð	9ð 	9s   ¥AÁA		ÁA		FÚ
transitiverC   c                ó|   •— t          ¦   «                              |¦  «         |r|                      d¦  «         d S d S )NÚ_clean)r   rd   rG   )r!   rb   r"   s     €r#   rd   zRunToxEnv._cleanx   sE   ø€ Ý‰Œ�Š�zÑ"Ô"Ð"Øð 	*Ø×Ò Ñ)Ô)Ð)Ð)Ð)ð	*ð 	*r$   c                ó   — dS )Nz.pkg© ©r!   s    r#   rS   zRunToxEnv._default_package_env}   s   € àˆvr$   c                ó   — t           ‚r   ©ÚNotImplementedErrorrg   s    r#   rV   zRunToxEnv._package_tox_env_type�   ó
   € õ "Ð!r$   c                ó   — t           ‚r   ri   rg   s    r#   rU   z$RunToxEnv._external_pkg_tox_env_type†   rk   r$   c                ó    — | j         �Ft          | j        dd¦  «        }|du rt          j        d¦  «         d S |                      ¦   «          d S d S )NÚskip_pkg_installFTz(skip building and installing the package)r   ra   ÚoptionsÚloggingÚwarningÚ
_setup_pkg)r!   rn   s     r#   Ú_setup_with_envzRunToxEnv._setup_with_env‹   s`   € ØÔÐ'Ý%,¨T¬\Ð;MÈuÑ%UÔ%UÐØ 4Ð'Ð'Ý”Ð JÑKÔKÐKÐKÐKà—’Ñ!Ô!Ð!Ð!Ð!ð (Ð'r$   c                óØ   — | j                              ddgt          dd¬¦  «         | j         d         }|du rdS | j                             dt          dd¬¦  «         | j        d         }| S )	zYIf this returns True package_env and package_tox_env_type configurations must be defined.Ú
no_packageÚ	skipsdistFz/is there any packaging involved in this projectr9   TÚskip_installzskip installation)rB   r@   rC   r?   )r!   Úcore_no_packagerw   s      r#   rR   z RunToxEnv._register_package_conf“   s’   € àŒ	×ÒØ Ð,ÝØØBð	 	ñ 	
ô 	
ð 	
ð !%¤	¨,Ô 7ˆØ˜dÐ"Ð"Ø�5ØŒ	×ÒØÝØØ$ð	 	ñ 	
ô 	
ð 	
ð "œY ~Ô6ˆØÐÐr$   c                óÜ   — |                       ¦   «         | _        | j        j        s&|                      | j        t
          j        d¦  «         |                      | j        | j        ¦  «         d S )NrM   )	Ú_build_packagesr   ro   Úpackage_onlyÚ_installr   Ú__name__Ú_handle_journal_packageÚjournalrg   s    r#   rr   zRunToxEnv._setup_pkg§   s^   € Ø×-Ò-Ñ/Ô/ˆŒØŒ|Ô(ð 	IØ�MŠM˜$œ.­)Ô*<¸iÑHÔHÐHØ×$Ò$ T¤\°4´>ÑBÔBÐBÐBÐBr$   r   r   Úpackagesúlist[Package]c                ó¾  — | sd S g }|D ]¯}t          |t          ¦  «        r||j        }|                     ¦   «         rdn|                     ¦   «         rdnd}|j        |dœ}|dk    r6t          |                     ¦   «         ¦  «                             ¦   «         |d<   nt          ‚| 
                    |¦  «         Œ°|r"t          |¦  «        dk    r|d         n|| d<   d S d S )	NÚfileÚdirzN/A)ÚbasenameÚtyper   r   r   Ú
installpkg)Ú
isinstancer   ÚpathÚis_fileÚis_dirÚnamer   Ú
read_bytesÚ	hexdigestrj   ÚappendÚlen)r   r€   Úinstalled_metarM   Úpkgr3   Úmetas          r#   r~   z!RunToxEnv._handle_journal_package­   s  € àð 	ØˆFØˆØð 		(ð 		(ˆGÝ˜'¥;Ñ/Ô/ð *Ø”l�Ø$'§K¢K¡M¤MÐY˜&˜&ÀÇÂÁÄÐ8X¸¸ÐSX�Ø$'¤H°gÐ>Ð>�Ø˜fÒ$Ð$Ý%+¨C¯NªNÑ,<Ô,<Ñ%=Ô%=×%GÒ%GÑ%IÔ%I�D˜‘Nøå)Ð)Ø×!Ò! $Ñ'Ô'Ð'Ð'Øð 	fÝ9<¸^Ñ9LÔ9LÐPQÒ9QÐ9Q N°1Ô$5Ð$5ÐWeˆG�LÑ!Ð!Ð!ð	fð 	fr$   údict[str, str]c                ó¬   •— t          ¦   «         j        }| j        �8| j        r1t          j                             d„ | j        D ¦   «         ¦  «        |d<   |S )Nc              3  ó4   K  — | ]}t          |¦  «        V — Œd S r   )r'   )Ú.0Úis     r#   ú	<genexpr>z2RunToxEnv.environment_variables.<locals>.<genexpr>Ä   s(   è è € ÐBbÐBbÈaÅ3ÀqÁ6Ä6ÐBbÐBbÐBbÐBbÐBbÐBbr$   ÚTOX_PACKAGE)r   Úenvironment_variablesr   r   ÚosÚpathsepÚjoin)r!   r›   r"   s     €r#   r›   zRunToxEnv.environment_variables¿   sR   ø€ å %¡¤Ô =ÐØÔÐ'¨D¬NÐ'å35´:·?²?ÐBbÐBbÐSWÔSaÐBbÑBbÔBbÑ3bÔ3bÐ! -Ñ0Ø$Ð$r$   c                ó   — t           ‚)z9:returns: a list of packages installed in the environmentri   rg   s    r#   rz   zRunToxEnv._build_packagesÇ   rk   r$   úIterable[PackageToxEnv]c              #  óx   K  — | j         �0| j         V — | j                              | j        ¦  «        E d {V —† d S d S r   )r   Úchild_pkg_envsr?   rg   s    r#   r^   zRunToxEnv.package_envsÌ   sW   è è € àÔÐ'ØÔ"Ð"Ð"Ð"ØÔ'×6Ò6°t´yÑAÔAÐAÐAÐAÐAÐAÐAÐAÐAÐAð (Ð'r$   c                óD   — | j         D ]}|                     | ¦  «         Œd S r   )r^   Úmark_active_run_env)r!   Úpkg_envs     r#   Úmark_activezRunToxEnv.mark_activeÒ   s5   € ØÔ(ð 	.ð 	.ˆGØ×'Ò'¨Ñ-Ô-Ð-Ð-ð	.ð 	.r$   )r   r   r   r   )r   r   )r   rK   )rZ   r'   r[   r   r   r   )F)rb   rC   r   r   )r   r'   )r   rC   )r   r   r€   r�   r   r   )r   r”   )r   r�   )r   r    )r}   Ú
__module__Ú__qualname__r   rA   rF   rJ   rY   rG   rd   ÚpropertyrS   r   rV   rU   rs   rR   rr   Ústaticmethodr~   r›   rz   r^   r¦   Ú__classcell__)r"   s   @r#   r   r      sC  ø€ € € € € ðJð Jð Jð Jð Jð Jð6
ð 6
ð 6
ð 6
ð 6
ð 6
ðp7ð 7ð 7ð 7ð 7ð 7ð)ð )ð )ð )ð )ð )ðð ð ð ð09ð 9ð 9ð 9ð
*ð *ð *ð *ð *ð *ð *ð
 ðð ð ñ „Xðð Øð"ð "ð "ñ „^ñ „Xð"ð Øð"ð "ð "ñ „^ñ „Xð"ð"ð "ð "ð "ð ð  ð  ð  ð(Cð Cð Cð Cð ðfð fð fñ „\ðfð" ð%ð %ð %ð %ð %ñ „Xð%ð ð"ð "ð "ñ „^ð"ð ðBð Bð Bñ „XðBð
.ð .ð .ð .ð .ð .ð .ð .r$   r   )Ú
__future__r   rp   rœ   r-   Úabcr   r   Úhashlibr   Útypingr   r   r	   r
   Útox.config.typesr   r   Úapir   r   rM   r   r   r   Úutilr   Útox.journalr   r   rf   r$   r#   ú<module>r´      s:  ðØ "Ð "Ð "Ð "Ð "Ð "à €€€Ø 	€	€	€	Ø 	€	€	€	Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5à -Ð -Ð -Ð -Ð -Ð -Ð -Ð -à )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø %Ð %Ð %Ð %Ð %Ð %àð 'Ø&Ð&Ð&Ð&Ð&Ð&ð@.ð @.ð @.ð @.ð @.�˜ñ @.ô @.ð @.ð @.ð @.r$   