§
    øyIf  ã                  óî   — d Z ddlmZ ddl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 ddlmZ d	d
lmZmZ erddlmZ ddlmZ  ej        e¦  «        ZdZdZdZe
d$d„¦   «         Zd%d„Z	 d&d'd„Zd(d#„Z dS ))z!Run tox environments in parallel.é    )ÚannotationsN)ÚArgumentParserÚArgumentTypeError)ÚTYPE_CHECKING)Úimpl)ÚCliEnvÚregister_env_select_flags)Úauto_detect_cpusé   )Úenv_run_create_flagsÚexecute)Ú	ToxParser)ÚStateÚTOX_PARALLEL_ENVÚautoÚparserr   ÚreturnÚNonec                óÊ   — |                       ddgdt          ¦  «        }t          |t          ¦   «         ¬¦  «         t	          |d¬¦  «         t          |t          ¬¦  «         d S )Nzrun-parallelÚpzrun environments in parallel)Údefault)Úmode)Údefault_parallel)Úadd_commandÚrun_parallelr	   r   r   Úparallel_flagsÚDEFAULT_PARALLEL)r   Úours     úP/var/www/piapp/venv/lib/python3.11/site-packages/tox/session/cmd/run/parallel.pyÚtox_add_optionr       sc   € à
×
Ò
˜^¨c¨UÐ4RÕT`Ñ
aÔ
a€CÝ˜c­6©8¬8Ð4Ñ4Ô4Ð4Ý˜ >Ð2Ñ2Ô2Ð2Ý�3Õ)9Ð:Ñ:Ô:Ð:Ð:Ð:ó    Ú	str_valueÚstrú
int | Nonec                óâ   — | dk    rd S | dk    rt          ¦   «         S 	 t          | ¦  «        }n'# t          $ r}d| ›�}t          |¦  «        |‚d }~ww xY w|dk     rd|›�}t          |¦  «        ‚|S )NÚallr   z$value must be a positive number, is r   zvalue must be positive, is )r
   ÚintÚ
ValueErrorr   )r"   ÚvalueÚexcÚmsgs       r   Úparse_num_processesr,   "   s¢   € Ø�EÒÐØˆtØ�FÒÐÝÑ!Ô!Ð!ð.Ý�I‘”ˆˆøÝð .ð .ð .ØB°YÐBÐBˆÝ Ñ$Ô$¨#Ð-øøøøð.øøøð ˆq‚y€yØ5¨EÐ5Ð5ˆÝ Ñ$Ô$Ð$Ø€Ls   ž. ®
A¸AÁAFr   r   r   ú	int | strÚno_argsÚboolc           
     ó®   —  | j         	 	 ddddt          |ddœ|rdd	ini ¤Ž |                       d
dddd¬¦  «         |                       dddd¬¦  «         d S )Nú-pú
--parallelÚparallelz|run tox environments in parallel, the argument controls limit: all, auto - cpu count, some positive number, zero is turn offÚstoreÚVAL)ÚdestÚhelpÚactionÚtyper   ÚmetavarÚnargsú?z-oz--parallel-liveÚ
store_trueÚparallel_livez,connect to stdout while running environments)r8   r6   r7   z--parallel-no-spinnerÚparallel_no_spinnerzPrun tox environments in parallel, but don't show the spinner, implies --parallel)r1   r2   )Úadd_argumentr,   )r   r   r.   s      r   r   r   2   s¼   € ð
 €CÔØØðð ðDàÝ Ø Øðð ð %Ð,ˆG�Sˆ>ˆ>¨"ðð ð ð ×ÒØØØØØ;ð ñ ô ð ð ×ÒØØØ"Ø_ð	 ñ ô ð ð ð r!   Ústater   r'   c                óŠ   — | j         j        }t          | |j        du rdn|j        |j        du o|j        du |j        ¬¦  «        S )z-Here we'll just start parallel sub-processes.TNF)Úmax_workersÚhas_spinnerÚlive)ÚconfÚoptionsr   r?   r3   r>   )rA   Úoptions     r   r   r   R   s[   € àŒZÔ€FÝØØ"Ô6¸$Ð>Ð>�D�DÀFÄOØÔ.°%Ð7ÐY¸FÔ<PÐTYÐ<YØÔ!ð	ñ ô ð r!   )r   r   r   r   )r"   r#   r   r$   )F)r   r   r   r-   r.   r/   r   r   )rA   r   r   r'   )!Ú__doc__Ú
__future__r   ÚloggingÚargparser   r   Útypingr   Ú
tox.pluginr   Útox.session.env_selectr   r	   Útox.util.cpur
   Úcommonr   r   Útox.config.cli.parserr   Útox.session.stater   Ú	getLoggerÚ__name__ÚloggerÚENV_VAR_KEYÚ	OFF_VALUEr   r    r,   r   r   © r!   r   ú<module>rZ      sc  ðØ 'Ð 'à "Ð "Ð "Ð "Ð "Ð "à €€€Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ð Ð Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ )Ð )Ð )Ð )Ð )Ð )à 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1àð (Ø/Ð/Ð/Ð/Ð/Ð/Ø'Ð'Ð'Ð'Ð'Ð'à	ˆÔ	˜8Ñ	$Ô	$€à €Ø€	ØÐ ð ð;ð ;ð ;ñ „ð;ðð ð ð ð& ðð ð ð ð ð@ð ð ð ð ð r!   