
    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    


^cU4RT`
a
aCc688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 . . .BYBB$$#-. qyy5E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    %,GS>>"   ;     "_	      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$>>DDFO.%7YF<PTY<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!   