
    yIfK                    l   d Z ddlmZ ddlZddlZddlZddlZddl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 ddlmZmZmZmZmZmZmZ ddlZddlmZ dd	lmZ dd
l m!Z! ddl"Z#ddl$m%Z%m&Z&m'Z'm(Z(m)Z) ddl*m+Z+m,Z, ddl-m.Z. ddl/m0Z0m1Z1 ddl"m2Z3 ddl"m4Z5 ddl6m7Z7 ddl8m9Z: ddl;m<Z< er,ddl=m>Z> ddl?m@Z@ ddlAmBZB ddlCmDZD ddlEmFZF ejG        eH         ZGnejG        ZGdejI        d<   dejI        d<    e!            rdejI        d<   dejI        d<    ejJ        d          d_d"            ZK ejJ        d          d`d'            ZLed_d(            ZM ejJ        d          dad+            ZN ejJ        d          dbd.            ZO G d/ d0          ZP ejJ        dd12          d_d3            ZQ G d4 d5          ZR G d6 d7e          ZS ejJ        d89          dcd>            ZT ejJ                    ddd?            ZUd@ZVdedCZWdfdFZX ejY        dG          dgdJ            ZZdhdMZ[ ejJ        d1N          didR            Z\ ejJ        d1N          djdT            Z] ejJ        d          dkdW            Z^ ejJ        dX9          dldZ            Z_dmd]Z`eja        Zaejb        Zbejc        Zcd^ZddS )nz<A pytest plugin useful to test tox itself (and its plugins).    )annotationsN)closingcontextmanager)Path)
ModuleTypeTracebackType)TYPE_CHECKINGAnyCallableIteratorProtocolSequencecast)
SubRequest)IndexServer)fs_supports_symlink)ExecuteExecuteInstanceExecuteOptionsExecuteStatusOutcome)ExecuteRequest	shell_cmd)manager)LOGGEROutErr)run)setup_state)ENV_VAR_KEY)api)ToxEnv)	MagicMock)MockerFixture)EnvConfigSet)	SyncWrite)State1PIP_DISABLE_PIP_VERSION_CHECKPIP_NO_PYTHON_VERSION_WARNINGVIRTUALENV_SYMLINK_APP_DATAVIRTUALENV_SYMLINKST)autousereturnIterator[None]c               #  \   K   t          t          j                  } d V  | t          _        d S N)listr   handlers)before_handlerss    >/var/www/piapp/venv/lib/python3.11/site-packages/tox/pytest.py$ensure_logging_framework_not_alteredr5   7   s)      6?++O	EEE%FOOO    requestr   mockerr#   c              #  B  K   | j                             d          redt          j        cdfd}|j                            t          d|           dV  &t          j        j                                       dS dS |                    d	d
           dV  dS )z=Unless this is a plugin test do not allow loading toxfile.py.plugin_testNpathr   r-   ModuleType | Nonec                     |           S r0    )r;   load_inlinemodules    r4   _load_inlinez*_disable_root_tox_py.<locals>._load_inlineD   s     [&&FMr6   rA   ztox.plugin.inline._load_pluginreturn_value)r;   r   r-   r<   )nodeget_closest_markerr   rA   patchobjectMANAGER
unregister)r7   r8   rA   r?   r@   s      @@r4   _disable_root_tox_pyrJ   >   s       |&&}55 "G$8	 	 	 	 	 	 	
 	G^\BBBO#..v66666  	5DIIIr6   c               #    K   t           j                                        d t          dddfD             } d V  |                                 D ]\  }}||t           j        |<   t           j        fdt                    t                    z
  D             }|                    dd            fdt                    t                    z
  D             }fdt                    t                    z  D             }|s|s|r6d	}|r|d
| z  }|r|d| z  }|r|d| z  }t          j        |           d S d S )Nc                P    i | ]#}|t           j                            |d           $S r0   )osenvironpop).0ks     r4   
<dictcomp>z$check_os_environ.<locals>.<dictcomp>U   s*    tttq2:>>!T**tttr6   TOX_WORK_DIR
PYTHONPATHCOV_CORE_CONTEXTc                "    i | ]}||         S r>   r>   )rP   rQ   news     r4   rR   z$check_os_environ.<locals>.<dictcomp>^   s    4441QA444r6   PLATc                "    i | ]}||         S r>   r>   )rP   rQ   olds     r4   rR   z$check_os_environ.<locals>.<dictcomp>`   s    333!As1v333r6   c                    h | ]?}|         |         k    |                     d           )| d|          d|          @S )PYTEST_z = z vs )
startswith)rP   rQ   rW   rZ   s     r4   	<setcomp>z#check_os_environ.<locals>.<setcomp>a   sh       *+c!fPSTUPVFVFV_`_k_klu_v_vFV1%%Q%%SV%%FVFVFVr6   ztest changed environz extra z miss z diff )	rM   rN   copyr   itemssetrO   pytestfail)	to_cleankeyvalueextramissdiffmsgrW   rZ   s	          @@r4   check_os_environrk   R   s     
*//

Ctt[.R^`r4stttH	EEEnn&& $ $
U#BJsO
*C4444C3s88 3444E	IIfd3333s3xx#c((2333D    /23xx#c((/B  D    $ 	%$U$$$C 	#?D??"C 	#?D??"CC r6   monkeypatchpytest.MonkeyPatchc              #     K   t                      5  d V  |                                  d d d            d S # 1 swxY w Y   d S r0   )rk   undo)rl   s    r4   check_os_environ_stablerp   o   s      			                   s   7;;rp   Nonec                2    |                      dd           d S )NNO_COLORyes)setenv)rl   rp   s     r4   no_colorrv   v   s    z5)))))r6   c                  ~    e Zd Zd#dZed$d            Zd%dZed&d            Ze	d'd(d            Z
ddd)d!Zd*d"ZdS )+
ToxProjectfilesdict[str, Any]basePath | Noner;   r   capfdCaptureFixturerl   rm   r8   r#   r-   rq   c                v    || _         || _        || _        || _        |                     | j         ||           d S r0   )r;   rl   r8   _capfd_setup_files)selfry   r{   r;   r}   rl   r8   s          r4   __init__zToxProject.__init__|   sA     	/:$)T511111r6   destcontentc                R   |/t          j        t          |          t          |                      |                     d           |                                D ]I\  }}t          |t                    s|d|  }t          |          | |z  }t          |          rLt          j	        d
                    t          j        |          d         dd                              }d| }t          |t                    r3|                    d           t                              |d |           t          |t                    r+|                    t          j	        |          d	           ||                                 1d
||z   d|}t          |          d S )NT)exist_okz at 
r      z#from __future__ import annotations
zutf-8)encodingzcould not handle z with content )shutilcopytreestrmkdirr`   
isinstance	TypeErrorcallabletextwrapdedentjoininspectgetsourcelinesdictrx   r   
write_text)r   r{   r   re   rf   rj   at_paths          r4   r   zToxProject._setup_files   s   OCIIs4yy111

D
!!!!--// 	% 	%JCc3'' %**D**nn$SjG G 		'2H2O2OPQ2RSTSUSU2V(W(WXXFuFF%&& 	%t,,,''u====E3'' %""8?5#9#9G"LLLLP'C-PPuPPnn$#	% 	%r6   handle&Callable[[ExecuteRequest], int | None]r"   c                    G fddt                      G d dt                     G fddt                    t          dfd            }t          j        | j        j                            t          d|d          S )Nc                  .     e Zd Zd fdZdfdZ xZS )-ToxProject.patch_execute.<locals>.MockExecutecoloredbool	exit_codeintr-   rq   c                X    || _         t                                          |           d S r0   )r   superr   )r   r   r   	__class__s      r4   r   z6ToxProject.patch_execute.<locals>.MockExecute.__init__   s(    !*  )))))r6   r7   r   optionsr   outr%   errr   c                ,     ||||| j                   S r0   )r   )r   r7   r   r   r   MockExecuteInstances        r4   build_instancez<ToxProject.patch_execute.<locals>.MockExecute.build_instance   s      +*7GS#t~VVVr6   )r   r   r   r   r-   rq   )
r7   r   r   r   r   r%   r   r%   r-   r   )__name__
__module____qualname__r   r   __classcell__)r   r   s   @r4   MockExecuter      sf        * * * * * *W W W W W W W W W Wr6   r   c                  R     e Zd Zd fd
Zedd            ZdddZddZddZ xZ	S )3ToxProject.patch_execute.<locals>.MockExecuteStatusr   r   r   r%   r   r   r   r-   rq   c                \    t                                          |||           || _        d S r0   )r   r   
_exit_code)r   r   r   r   r   r   s        r4   r   z<ToxProject.patch_execute.<locals>.MockExecuteStatus.__init__   s*      #s333"+r6   
int | Nonec                    | j         S r0   r   r   s    r4   r   z=ToxProject.patch_execute.<locals>.MockExecuteStatus.exit_code   s
    &r6   Ntimeoutfloat | Nonec                    | j         S r0   r   )r   r   s     r4   waitz8ToxProject.patch_execute.<locals>.MockExecuteStatus.wait   s
    &r6   r   r   c                    d S r0   r>   )r   r   s     r4   write_stdinz?ToxProject.patch_execute.<locals>.MockExecuteStatus.write_stdin       tr6   c                    d S r0   r>   r   s    r4   	interruptz=ToxProject.patch_execute.<locals>.MockExecuteStatus.interrupt   r   r6   )
r   r   r   r%   r   r%   r   r   r-   rq   )r-   r   r0   )r   r   r-   r   )r   r   r-   rq   r-   rq   )
r   r   r   r   propertyr   r   r   r   r   )r   s   @r4   MockExecuteStatusr      s        , , , , , , ' ' ' X'' ' ' ' '          r6   r   c                  N     e Zd Zd fdZdfdZddZedd            Z xZS )5ToxProject.patch_execute.<locals>.MockExecuteInstancer7   r   r   r   r   r%   r   r   r   r-   rq   c                ^    t                                          ||||           || _        d S r0   )r   r   r   )r   r7   r   r   r   r   r   s         r4   r   z>ToxProject.patch_execute.<locals>.MockExecuteInstance.__init__   s.       '3<<<!*r6   r   c                H     | j         | j        | j        | j                  S r0   )r   _out_errr   )r   r   s    r4   	__enter__z?ToxProject.patch_execute.<locals>.MockExecuteInstance.__enter__   s"    ((ty$)T^\\\r6   exc_typetype[BaseException] | Noneexc_valBaseException | Noneexc_tbTracebackType | Nonec                    d S r0   r>   )r   r   r   r   s       r4   __exit__z>ToxProject.patch_execute.<locals>.MockExecuteInstance.__exit__   s	     r6   Sequence[str]c                    | j         j        S r0   )r7   cmdr   s    r4   r   z9ToxProject.patch_execute.<locals>.MockExecuteInstance.cmd   s    |''r6   )r7   r   r   r   r   r%   r   r%   r   r   r-   rq   )r-   r   )r   r   r   r   r   r   r-   rq   )r-   r   )	r   r   r   r   r   r   r   r   r   )r   r   s   @r4   r   r      s        	+ 	+ 	+ 	+ 	+ 	+] ] ] ] ] ]    ( ( ( X( ( ( ( (r6   r   r   r!   executorr   out_errr   r7   r   showr   r-   Iterator[ExecuteStatus]c              3     K    |          }| |j         |          } 	| ||||          5 }|V  d d d            d S # 1 swxY w Y   d S )N)r   r   )_colored)
r   r   r   r7   r   r   statusr   r   original_execute_calls
          r4   _execute_callz/ToxProject.patch_execute.<locals>._execute_call   s       wI$&;x/@IVVV&&tXwNN RX                 s   AAAr   T)side_effectautospec)r   r!   r   r   r   r   r7   r   r   r   r-   r   )	r   r   r   r   r!   r   r8   rF   rG   )r   r   r   r   r   r   r   s    ` @@@@r4   patch_executezToxProject.patch_execute   s   	W 	W 	W 	W 	W 	W 	W' 	W 	W 	W	 	 	 	 	 	 	 	$	( 	( 	( 	( 	( 	( 	(/ 	( 	( 	(6 
	 	 	 	 	 	 	 
	 !' 4{ '']ei'jjjr6   c                R   i }t          j        t          | j                            D ]}\  }}}t	          |          }|}|                    t          | j                            }|j        D ]}|                    |i           }|D ]}	||	z                                  ||	<   ~|S r0   )	rM   walkr   r;   r   relative_toparts
setdefault	read_text)
r   resultdir_name_ry   dir_pathintorelativeelem	file_names
             r4   	structurezToxProject.structure   s    !#"$'#di.."9"9 	E 	EHaH~~HD++C	NN;;H  1 1tR00" E E	#+i#7"B"B"D"DYEr6   Ntor.   c              #     K   t          j                    }t          j        |p| j                   	 d V  t          j        |           d S # t          j        |           w xY wr0   )r   cwdrM   chdirr;   )r   r   cur_dirs      r4   r   zToxProject.chdir   sa      (**
ty!!!	EEEHWBHWs   A A")from_cwdargsr   r   ToxRunOutcomec          
       
 |                      |          5  d 
| j                                         d }d 
d
fd}| j                                        5 }|                    t          d| j                   |                    t          j	        d|           |                    t          dt          j        d	d
gt          |                     |                    dd           |                    dd           |                    dd           |                    dd           |                    dd           	 t          |           n# t          $ r}|j        }Y d }~nd }~ww xY w|d}t#          |          	 d d d            n# 1 swxY w Y   | j                                        \  }}	t%          || j        t'          t(          |          ||	
          cd d d            S # 1 swxY w Y   d S )Nrf   r   r-   r&   c                &    t          |           S r0   )previous_setup_state)rf   states    r4   our_setup_statez'ToxProject.run.<locals>.our_setup_state  s    ,U33r6   _CWDr   argv-mtoxr*   r'   r+   VIRTUALENV_PIPembedVIRTUALENV_WHEELVIRTUALENV_SETUPTOOLSzexit code not set)rf   r   r-   r&   )r   r   
readouterrrl   contextsetattrtox_env_apir;   r  r   sys
executabler1   ru   tox_run
SystemExitcodeRuntimeErrorr   r   r   )r   r   r   r  r   m	exceptionrj   r   r   r   s             @r4   r   zToxProject.run  s   ZZ!! 	T 	TEK""$$$DE     
 !))++ ,q		+vty999		#'=/BBB		#ve'Qd4jj'QRRR6<<<.444)7333+W5550':::*DMMMM! * * *$>DDDDDD*<-C&s+++  , , , , , , , , , , , , , , ,  {--//HC ty$sD//3USS9	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	Tsa   ?G-C)F EF
E+E&!F&E++FG-F	G-F	A
G--G14G1c                ^    t          |           j         d| j         dt          |            S )Nz(path=z) at )typer   r;   idr   s    r4   __repr__zToxProject.__repr__%  s/    t**%GGTYGGRXXGGGr6   )ry   rz   r{   r|   r;   r   r}   r~   rl   rm   r8   r#   r-   rq   )r   r   r{   r|   r   rz   r-   rq   )r   r   r-   r"   )r-   rz   r0   )r   r|   r-   r.   )r   r   r   r|   r-   r   r-   r   )r   r   r   r   staticmethodr   r   r   r   r   r   r   r  r>   r6   r4   rx   rx   {   s        2 2 2 2 % % % \%.Kk Kk Kk KkZ 
 
 
 X
     ^ 7; T T T T T T>H H H H H Hr6   rx   session)r,   scopec               #     K   	 dd l } n# t          $ r d V  Y d S w xY wddlm} dfd}|j        	 ||_        d V  |_        d S # |_        w xY w)	Nr   )Pep517VirtualEnvPackagerr   r  r-   	list[str]c                H     |           }|                     d           |S )NzCOV_*)append)r   r   previouss     r4   default_pass_envz8enable_pep517_backend_coverage.<locals>.default_pass_env3  s'    $gr6   )r   r  r-   r  )coverageImportError0tox.tox_env.python.virtual_env.package.pyprojectr  _default_pass_env)r"  r  r!  r   s      @r4   enable_pep517_backend_coverager&  )  s          ZYYYYY     
 (9H>5E 25= 222X 2====s   
 A 	Ac                      e Zd Zd'dZed(d            Zd)dZed*d            Zd+dZd,d-dZ	d.dZ
ed.d            Zdddd/d!Zed0d1d&            ZdS )2r   r   r   r   r   r  r   r   r   r   r   State | Noner-   rq   c                    t           j        ddg}|                    |           || _        || _        || _        || _        || _        || _        d S )Nr  r  )	r  r  extendr   r   r  r   r   _state)r   r   r   r  r   r   r   extended_cmds           r4   r   zToxRunOutcome.__init__A  sT     e4C   *	$)r6   r&   c                @    | j         d}t          |          | j         S )Nzno state)r+  r  )r   rj   s     r4   r   zToxRunOutcome.stateS  s%    ;Cs###{r6   namer$   c                @    | j         j                            |          S r0   )r   confget_env)r   r.  s     r4   env_confzToxRunOutcome.env_confZ  s    z&&t,,,r6   r   c                ,    | j         t          j        k    S r0   )r  r   OKr   s    r4   successzToxRunOutcome.success]  s    yGJ&&r6   c                B    | j         sJ t          |                       d S r0   )r5  reprr   s    r4   assert_successzToxRunOutcome.assert_successa  s$    |''T$ZZ'''''r6   Nr   c                Z    || j         dk    n
| j         |k    }|sJ d| d|              d S )Nr   z
should be z, got )r  )r   r  status_matchs      r4   assert_failedzToxRunOutcome.assert_failedd  sG    )-tyA~~49;L<<<$<<d<<<<<<<r6   c           	         d                     d dt          | j                  fd| j        fdt          | j                  fd| j        fd| j        ffD                       S )Nr   c              3  Z   K   | ]&\  }}|d                      |d|v rdnd|          V  'dS )z{}{}{}r   z: N)format)rP   rQ   vs      r4   	<genexpr>z)ToxRunOutcome.__repr__.<locals>.<genexpr>i  s^       

 

1 

OOAtqyyttdA>>

 

 

 

 

 

r6   r  r   r   zstandard outputzstandard error)r   r   r  r   r   r   r   r   s    r4   r  zToxRunOutcome.__repr__h  sv    yy 

 

 TY('DH&"DH-!48,

 

 

 

 

 
	
r6   c                *    t          | j                  S r0   )r   r   r   s    r4   r   zToxRunOutcome.shell_cmdu  s    """r6   TF)r   regexr   rB  c                  |r&t          j        |                                          }|r4|                     || j        t
          j        t
          j        z             n| j        |k    sJ |r&t          j        |                                          }|r5|                     || j        t
          j        t
          j        z             d S | j        |k    sJ d S r0   )	r   r   lstripmatchesr   re	MULTILINEDOTALLr   )r   r   r   r   rB  s        r4   assert_out_errzToxRunOutcome.assert_out_erry  s     	0/#&&--//C 	#LLdhry(@AAAA8s???? 	0/#&&--//C 	#LLdhry(@AAAAA8s??????r6   r   patterntextflagsc                    	 ddl m}  || |          |k    sJ d S # t          $ r< t          j        | ||          }|t          j        dt          d           |sJ Y d S w xY w)Nr   )Matches)rL  z:install the re-assert PyPI package for bette error messager   )
stacklevel)	re_assertrN  r#  rF  matchwarningswarnUserWarning)rJ  rK  rL  rN  rQ  s        r4   rE  zToxRunOutcome.matches  s    	9)))))) 77%000D888888  	 	 	HWdE22E}Z\gtuvvvvLLLLLL		s    AA#"A#)r   r   r   r   r  r   r   r   r   r   r   r(  r-   rq   )r-   r&   )r.  r   r-   r$   )r-   r   r   r0   )r  r   r-   rq   r  )
r   r   r   r   r   r   rB  r   r-   rq   )r   )rJ  r   rK  r   rL  r   r-   rq   )r   r   r   r   r   r   r2  r5  r8  r;  r  r   rI  r  rE  r>   r6   r4   r   r   @  s*       * * * *$    X- - - - ' ' ' X'( ( ( (= = = = =
 
 
 
 # # # X# DHW\ # # # # # # 	9 	9 	9 	9 \	9 	9 	9r6   r   c                      e Zd Z	 	 d
dd	ZdS )ToxProjectCreatorNry   rz   r{   r|   prj_pathr-   rx   c                    d S r0   r>   )r   ry   r{   rW  s       r4   __call__zToxProjectCreator.__call__  s	    
 Sr6   NNry   rz   r{   r|   rW  r|   r-   rx   )r   r   r   rY  r>   r6   r4   rV  rV    s5         ! $	      r6   rV  tox_project)r.  tmp_pathr   r}   r~   c                "     d	d
 fd}|S )Nry   rz   r{   r|   rW  r-   rx   c                6    t          | ||pdz            S )zCreate tox  projects.p)rx   )ry   r{   rW  r}   r8   rl   r]  s      r4   _initzinit_fixture.<locals>._init  s%    %x'A8c>5+W]^^^r6   rZ  r[  r>   )r]  r}   rl   r8   ra  s   ```` r4   init_fixturerb    sI    _ _ _ _ _ _ _ _ _ _ Lr6   c                T     | ddi          }|                     |j                   |S )Nztox.ini )r   r;   )r\  rl   projects      r4   empty_projectrf    s0    k9b/**Ggl###Nr6   z--run-integrationparserpytest.Parserc                @    |                      t          dd           d S )N
store_truezrun the integration tests)actionhelp)	addoption_RUN_INTEGRATION_TEST_FLAG)rg  s    r4   pytest_addoptionro    s%    
/Kfgggggr6   configpytest.Configc                ^    |                      dd           |                      dd           d S )Nmarkersintegrationr:   )addinivalue_line)rp  s    r4   pytest_configurerv    s4    
I}555
I}55555r6   )trylastr`   list[pytest.Function]c                8   t          |          dk    rd S t          j                            dt           d          }dd	}|                     t                    }|s%|D ]"} ||          r|                    |           #|                    |
           d S )Nr   zintegration tests not run (no z flag))reason	test_itempytest.Functionr-   r   c                0    |                      d          d uS )Nrt  )rE   )r{  s    r4   is_integrationz5pytest_collection_modifyitems.<locals>.is_integration  s    ++M::$FFr6   )re   )r{  r|  r-   r   )lenrb   markskiprn  	getoption
add_markersort)rp  r`   skip_intr~  integration_enableditems         r4   pytest_collection_modifyitemsr    s     5zzQ{'jHb'j'j'jkkHG G G G !**+EFF * 	* 	*D~d## *)))	JJ>J"""""r6   url
str | Nonec                    ||                      dd           n|                     d|           |                     dt          d                     |                     dt          d                     d S )NPIP_INDEX_URLF)raisingPIP_RETRIES   PIP_TIMEOUT   )delenvru   r   )rl   r  s     r4   enable_pypi_serverr    sw    
{?E::::?C000}c!ff---}c!ff-----r6   )r  tmp_path_factorypytest.TempPathFactoryIterator[IndexServer]c              #     K   |                      d          }t          |          5 }|                    dd           |V  d d d            d S # 1 swxY w Y   d S )Npypiemptyzvolatile=False)mktempr   create_index)r  r;   servers      r4   pypi_serverr    s       ""6**D	T		 fG%5666                 s   AAAr   c                 &   t          t          j        t          j        t          j                            5 } |                     d           t          t          |                                 d                   cd d d            S # 1 swxY w Y   d S )N)rd  r   r   )r   socketAF_INETSOCK_STREAMbindr   r   getsockname)socket_handlers    r4   _invalid_index_fake_portr    s    	v~v/ABB	C	C :~G$$$C3355a899: : : : : : : : : : : : : : : : : :s   ABB
B
r  tuple[str, str | None]c                   t           j                            d          }d|  d}|                    d|           |                    dt	          d                     |                    dt	          d                     ||fS )`Set a fake pip index url, tests that want to use a pypi server should create and overwrite this.r  zhttp://localhost:z/bad-pypi-serverr  r   r  gMbP?)rM   rN   getru   r   )r  rl   previous_urlnew_urls       r4   disable_pip_pypi_accessr    s     :>>/22LL":LLLG000}c!ff---}c%jj111L  r6   enable_pip_pypi_accessr  c                0    | \  }}t          ||           |S )r  )r  )r  rl   r   r  s       r4   enable_pip_pypi_access_fixturer    s#     .OA|{L111r6   r   Callable[..., Any]c                @   t          j                    d         }t          j        |d                   }|J t          |j         d|d                    }|j        |_        |j                            d |D                        |                     d|           d S )Nr   r   |   c                    i | ]
}|j         |S r>   )r   )rP   fs     r4   rR   z*register_inline_plugin.<locals>.<dictcomp>  s    888aAJ888r6   ztox.plugin.manager.load_inlinerB   )	r   stack	getmoduler   r   __file____dict__updaterF   )r8   r   
frame_infocaller_moduleplugins        r4   register_inline_pluginr    s    #J%jm44M$$$=1CCJqMCCDDF#,FO
O884888999
LL1LGGGGGr6   )
r~   LogCaptureFixtureMonkeyPatchr   TempPathFactoryrx   rV  r   rk   r  )r-   r.   )r7   r   r8   r#   r-   r.   )rl   rm   r-   r.   )rl   rm   rp   rq   r-   rq   )
r]  r   r}   r~   rl   rm   r8   r#   r-   rV  )r\  rV  rl   rm   r-   rx   )rg  rh  r-   rq   )rp  rq  r-   rq   )rp  rq  r`   rx  r-   rq   )rl   rm   r  r  r-   rq   )r  r  r-   r  )r-   r   )r  r   rl   rm   r-   r  )r  r  rl   rm   r-   r  )r8   r#   r   r  r-   rq   )e__doc__
__future__r   r   rM   rF  r   r  r  r   rR  
contextlibr   r   pathlibr   typesr   r   typingr	   r
   r   r   r   r   r   rb   _pytest.fixturesr   devpi_processr   virtualenv.infor   tox.runr  tox.execute.apir   r   r   r   r   tox.execute.requestr   r   
tox.pluginr   
tox.reportr   r   r   r  r   r   tox.session.cmd.run.parallelr   tox.tox_envr    r
  tox.tox_env.apir!   unittest.mockr"   pytest_mockr#   tox.config.setsr$   tox.execute.streamr%   tox.session.stater&   r~   r   rN   fixturer5   rJ   rk   rp   rv   rx   r&  r   rV  rb  rf  rn  ro  rv  hookimplr  r  r  r  r  r  r  r  r  r  __all__r>   r6   r4   <module>r     s!   B B " " " " " "  				 				   



   . . . . . . . .       + + + + + + + + S S S S S S S S S S S S S S S S S S  ' ' ' ' ' ' % % % % % % / / / / / /  \ \ \ \ \ \ \ \ \ \ \ \ \ \ 9 9 9 9 9 9 9 9       % % % % % % % % " " " " " " 7 7 7 7 7 7 4 4 4 4 4 4 * * * * * * " " " " " " +'''''')))))),,,,,,,,,,,,''''''*3/NN*N.1
* +.1
* + ,03BJ,-(+BJ$% & & & &    &    8     * * * *kH kH kH kH kH kH kH kH\ I...> > > /.>,Q9 Q9 Q9 Q9 Q9 Q9 Q9 Q9h        ]###
 
 
 $#
     1 h h h h6 6 6 6
 # # # #&. . . . i      !  i   : : : ! : ! ! ! ! -...   /.H H H H , ( r6   