§
    ø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 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 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" erddl#m$Z$ ddl%m&Z& ed$d„¦   «         Z'd%d„Z(d&d„Z)d'd#„Z*dS )(zNThis package handles provisioning an appropriate tox version per requirements.é    )ÚannotationsN)ÚPackageNotFoundErrorÚdistribution)ÚPath)ÚTYPE_CHECKINGÚListÚcast)ÚRequirement)Úcanonicalize_name)ÚVersion)ÚMemoryLoader)ÚStdinSource)Úimpl)ÚHandledError)ÚSkip)Ú
PythonDeps)Ú	PythonRun)ÚArgumentParser)ÚStateÚparserr   ÚreturnÚNonec                ó¢   — |                       dddddd¬¦  «         |                       dd	d
d¬¦  «         |                       ddddd¬¦  «         d S )Nz--no-provisionFTú?ÚREQ_JSONzddo not perform provision, but fail and if a path was provided write provision metadata as JSON to it)ÚdefaultÚconstÚnargsÚmetavarÚhelpz--no-recreate-provisionÚno_recreate_provisionz<if recreate is set do not recreate provision tox environmentÚ
store_true)Údestr    Úactionz-rz
--recreateÚrecreatezrecreate the tox environments)Úadd_argument)r   s    úA/var/www/piapp/venv/lib/python3.11/site-packages/tox/provision.pyÚtox_add_optionr(      s”   € à
×ÒØØØØØØsð ñ ô ð ð ×ÒØ!Ø$ØKØð	 ñ ô ð ð ×ÒØØØØ,Øð ñ ô ð ð ð ó    Ústater   ú
int | boolc           
     óÐ  ‡ — ‰ j         j                             ddgt          d d¬¦  «         ‰ j         j                             dt          dd¬¦  «         d'ˆ fd„}‰ j         j                             dt
          t                   g d|¬¦  «         ddlm} | 	                    ‰ j         j        ‰ ¦  «         ‰ j         j        d         }t          |¦  «        }d                     d„ |D ¦   «         ¦  «        }t          g dt          d                     d„ |D ¦   «         ¦  «        ‰ j         j        d         ¬¦  «        dg‰ j         j        j        o‰ j         j        j         ¬¦  «        }‰ j         j        d         }‰ j         j        |                              |¦  «         ‰ j                             t+          |¦  «        |¦  «         |sdS d|› �}‰ j         j        j        }	|	r×dt.          j        › d|› �}
t3          |	t          ¦  «        r¡|
d|	› �z  }
t	          t5          d„ |D ¦   «         ¦  «        ¦  «                             d¦  «        }t9          |¦  «        d k    r|d!         nd d"„ |D ¦   «         d#œ}t;          |	¦  «                             t?          j         |d$¬%¦  «        ¦  «         tC          |
¦  «        ‚tE          j#        d&t.          j        |¦  «         tI          |‰ ¦  «        S )(NÚmin_versionÚ
minversionz.Define the minimal tox version required to run)ÚkeysÚof_typer   ÚdescÚprovision_tox_envz.toxz8Name of the virtual environment used to provision a tox.Úreqsúlist[Requirement]r   c                ó„   •— ‰j         j        d         }|                      t          d|rd|› �nd› �¦  «        ¦  «         | S )Nr-   Útoxz>=Ú )ÚconfÚcoreÚappendr
   )r3   r-   r*   s     €r'   Úadd_tox_requires_min_versionz/provision.<locals>.add_tox_requires_min_versionG   sL   ø€ Ø$œzœ¨}Ô=ˆØ�Š•KÐ Q¸KÐ&OÐ&8¨;Ð&8Ð&8Ð&8ÈRÐ QÐ QÑRÔRÑSÔSÐSØˆr)   Úrequires)r/   r0   r   r1   Úpost_processr   )ÚMANAGERz, c              3  ó8   K  — | ]\  }}|› |€dnd|› d�› �V — Œd S )Nr7   z (ú)© )Ú.0ÚpÚvs      r'   ú	<genexpr>zprovision.<locals>.<genexpr>[   sA   è è € ÐPÐPÁÀÀ1˜Ð;  ˜2˜2°	°Q°	°	°	Ð;Ð;ÐPÐPÐPÐPÐPÐPr)   Úskipú
c              3  ó4   K  — | ]}t          |¦  «        V — Œd S )N©Ústr)rB   Úrs     r'   rE   zprovision.<locals>.<genexpr>`   s(   è è € Ð!;Ð!;¨Q¥# a¡&¤&Ð!;Ð!;Ð!;Ð!;Ð!;Ð!;r)   Útox_root)ÚrootÚ*)ÚbaseÚpackageÚdepsÚpass_envr%   Fzis missing [requires (has)]: z(provisioning explicitly disabled within z, but z and wrote to c              3  ó:   K  — | ]}|j         d k    ¯|j        V — ŒdS )r6   N)ÚnameÚ	specifier©rB   Úis     r'   rE   zprovision.<locals>.<genexpr>r   s*   è è € Ð"TÐ"T°1ÀAÄFÈeÂOÀO 1¤;ÀOÀOÀOÀOÐ"TÐ"Tr)   ú=é   é   c                ó,   — g | ]}t          |¦  «        ‘ŒS rA   rI   rV   s     r'   ú
<listcomp>zprovision.<locals>.<listcomp>u   s   € Ð6Ð6Ð6¨�S ™VœVÐ6Ð6Ð6r)   )r.   r<   é   )Úindentz5will run in automatically provisioned tox, host %s %s)r3   r4   r   r4   )%r8   r9   Ú
add_configr   rJ   r   r
   Útox.plugin.managerr>   Útox_add_core_configÚ_get_missingÚjoinr   r   Úoptionsr%   r!   Úmemory_seed_loadersr:   ÚenvsÚ_mark_provisionÚboolÚno_provisionÚsysÚ
executableÚ
isinstanceÚnextÚsplitÚlenr   Ú
write_textÚjsonÚdumpsr   ÚloggingÚwarningÚrun_provision)r*   r;   r>   r<   ÚmissingrQ   Úloaderr2   Úmiss_msgri   Úmsgr-   Úrequires_dicts   `            r'   Ú	provisionr{   7   s  ø€ à	„J„O×ÒØ˜\Ð*ÝàØ=ð ñ ô ð ð 
„J„O×ÒØ ÝØØGð	 ñ ô ð ðð ð ð ð ð ð
 
„J„O×ÒØÝ•[Ô!ØØGØ1ð ñ ô ð ð +Ð*Ð*Ð*Ð*Ð*à×Ò ¤
¤°Ñ7Ô7Ð7à"'¤*¤/°*Ô"=€HÝ˜8Ñ$Ô$€Gà�9Š9ÐPÐPÈÐPÑPÔPÑPÔP€DÝØØå˜Ÿ	š	Ð!;Ð!;°(Ð!;Ñ!;Ô!;Ñ;Ô;À%Ä*Ä/ÐR\ÔB]Ð^Ñ^Ô^Ø�Ø”Ô#Ô,Ð]°U´ZÔ5GÔ5]Ð1]ðñ ô €Fð #œZœ_Ð-@ÔAÐØ	„JÔ"Ð#4Ô5×<Ò<¸VÑDÔDÐDØ	„J×Ò�t G™}œ}Ð.?Ñ@Ô@Ð@àð Øˆuà5¨tÐ5Ð5€Hà$œzÔ1Ô>€LØð 
 ØY½¼ÐYÐYÈxÐYÐYˆÝ�l¥CÑ(Ô(ð 	OØÐ2 LÐ2Ð2Ñ2ˆCÝ�dÐ"TÐ"T¸Ð"TÑ"TÔ"TÑTÔTÑUÔU×[Ò[Ð\_Ñ`Ô`ˆKå03°KÑ0@Ô0@ÀAÒ0EÐ0E˜k¨!œn˜nÈ4Ø6Ð6¨XÐ6Ñ6Ô6ðð ˆMõ �ÑÔ×)Ò)­$¬*°]È1Ð*MÑ*MÔ*MÑNÔNÐNÝ˜3ÑÔÐå„OÐKÍSÌ^Ð]eÑfÔfÐfÝÐ*¨EÑ2Ô2Ð2r)   r<   r4   ú$list[tuple[Requirement, str | None]]c                ó$  — g }| D ]Š}t          |j        ¦  «        }	 t          |¦  «        }|j                             |j        d¬¦  «        s|                     ||j        f¦  «         Œd# t          $ r |                     |d f¦  «         Y Œ‡w xY w|S )NT)Úprereleases)r   rT   r   rU   ÚcontainsÚversionr:   r   )r<   rv   rP   Úpackage_nameÚdists        r'   rb   rb   ~   s³   € Ø46€GØð 8ð 8ˆÝ(¨¬Ñ6Ô6ˆð	8Ý Ñ-Ô-ˆDð Ô$×-Ò-¨d¬lÈÐ-ÑMÔMð 8Ø—’ ¨¬Ð6Ñ7Ô7Ð7øøõ	 $ð 	,ð 	,ð 	,Ø�NŠN˜G T˜?Ñ+Ô+Ð+Ð+Ð+ð	,øøøð
 €Ns   œA)Á)!BÂBrT   rJ   Úintc                ó.  — t          t          |j        |          ¦  «        }|                     ¦   «         }t	          j        d|¦  «         	 |                     ¦   «          n5# t          $ r(}d|j        d         › d|› �}t          |¦  «        |‚d }~ww xY wt          |¦  «        ddg}|                     |j        ¦  «         |                     |t          j        ¦   «         ddt!          j        ¦   «         ¬	¦  «        }t          t$          |j        ¦  «        S )
NzCwill run in a automatically provisioned python environment under %sz!cannot provision tox environment Úenv_namez	 because z-mr6   Tr{   )ÚcmdÚstdinÚshowÚrun_idÚcwd)r	   r   rf   Ú
env_pythonrs   ÚinfoÚsetupr   r8   r   rJ   ÚextendÚargsÚexecuter   Ú	user_onlyr   rŠ   rƒ   Ú	exit_code)rT   r*   Útox_envr‹   Ú	exceptionry   r�   Úoutcomes           r'   ru   ru   Œ   s  € Ý�i¨¬°DÔ)9Ñ:Ô:€GØ×#Ò#Ñ%Ô%€JÝ„LÐVÐXbÑcÔcÐcð/Ø�Š‰ŒˆˆøÝð /ð /ð /Ø`°'´,¸zÔ2JÐ`Ð`ÐU^Ð`Ð`ˆÝ˜3ÑÔ YÐ.øøøøð/øøøõ ˜:‘”¨¨eÐ4€DØ‡K‚K�”
ÑÔÐØ�oŠo $­kÔ.CÑ.EÔ.EÈDÐYdÕjnÔjrÑjtÔjtˆoÑuÔu€GÝ•�WÔ&Ñ'Ô'Ð's   ÁA  Á 
BÁ*#BÂB)r   r   r   r   )r*   r   r   r+   )r<   r4   r   r|   )rT   rJ   r*   r   r   rƒ   )+Ú__doc__Ú
__future__r   rq   rs   rj   Úimportlib.metadatar   r   Úpathlibr   Útypingr   r   r	   Úpackaging.requirementsr
   Úpackaging.utilsr   Úpackaging.versionr   Útox.config.loader.memoryr   Útox.execute.apir   Ú
tox.pluginr   Ú
tox.reportr   Útox.tox_env.errorsr   Útox.tox_env.python.pip.req_filer   Útox.tox_env.python.runnerr   Úargparser   Útox.session.stater   r(   r{   rb   ru   rA   r)   r'   ú<module>r§      sË  ðØ TÐ Tà "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø 
€
€
€
Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à .Ð .Ð .Ð .Ð .Ð .Ø -Ð -Ð -Ð -Ð -Ð -Ø %Ð %Ð %Ð %Ð %Ð %à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø #Ð #Ð #Ð #Ð #Ð #Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø /Ð /Ð /Ð /Ð /Ð /àð (Ø'Ð'Ð'Ð'Ð'Ð'à'Ð'Ð'Ð'Ð'Ð'ð ðð ð ñ „ðð0D3ð D3ð D3ð D3ðNð ð ð ð(ð (ð (ð (ð (ð (r)   