
    yIf`                       d 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mZ ddlmZ ddlmZmZmZ dd	lmZmZ er$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$  G d de          Z% G d de          Z& G d de&          Z' G d de&          Z( G d de&          Z) G d de&          Z* G d deee          Z+dS )z5A tox build environment that handles Python packages.    )annotations)ABCabstractmethod)TYPE_CHECKINGAny	GeneratorIteratorListSequencecast)Requirement)Skip)PackagePackageToxEnvPathPackage   )NoInterpreterPython)Path)Config)EnvConfigSet)ToxEnvCreateArgs)	RunToxEnv)
PythonDepsc                      e Zd ZdZdS )PythonPackagezpython package.N__name__
__module____qualname____doc__     N/var/www/piapp/venv/lib/python3.11/site-packages/tox/tox_env/python/package.pyr   r      s        r#   r   c                        e Zd Zd fdZ xZS )	PythonPathPackageWithDepspathr   depsSequence[Any]returnNonec                Z    t                                          |           || _        d S )N)r'   )super__init__r(   )selfr'   r(   	__class__s      r$   r.   z"PythonPathPackageWithDeps.__init__   s)    d###'+			r#   )r'   r   r(   r)   r*   r+   )r   r   r    r.   __classcell__r0   s   @r$   r&   r&      s=        , , , , , , , , , ,r#   r&   c                      e Zd ZdZdS )WheelPackagezwheel package.Nr   r"   r#   r$   r4   r4   $           r#   r4   c                      e Zd ZdZdS )SdistPackagezsdist package.Nr   r"   r#   r$   r7   r7   (   r5   r#   r7   c                      e Zd ZdZdS )EditableLegacyPackagezlegacy editable package.Nr   r"   r#   r$   r9   r9   ,   s        """"r#   r9   c                      e Zd ZdZdS )EditablePackagezPEP-660 editable package.Nr   r"   r#   r$   r;   r;   0   s        ####r#   r;   c                  d     e Zd Zd fdZd fdZedd            Zd fdZddZd fdZ	 xZ
S )PythonPackageToxEnvcreate_argsr   r*   r+   c                X    i | _         t                                          |           d S N)_wheel_build_envsr-   r.   )r/   r>   r0   s     r$   r.   zPythonPackageToxEnv.__init__5   s)    AC%%%%%r#   c                   t                                                       |                     |                                 t          j        d           |                     | j        d         t          j        d           dS )zSetup the tox environment.requiresr(   N)r-   
_setup_env_installrC   r=   r   conf)r/   r0   s    r$   rD   zPythonPackageToxEnv._setup_env9   sb    dmmoo':'CZPPPdi')<)EvNNNNNr#   $tuple[Requirement, ...] | PythonDepsc                    t           r@   )NotImplementedError)r/   s    r$   rC   zPythonPackageToxEnv.requires?   s    !!r#   run_envr   /Generator[tuple[str, str], PackageToxEnv, None]c              #     K   t                                                    E d {V  j        d         dk    r7d j        vr. j                            dt          t
                   g d           t          t                    rj        d         dvs	dj        v rd S d fd}j                            dgt          |d           j        d         }|j        d         fV }t          t          |           j        |<   d S )Npackageskipr(   z7Name of the python dependencies as specified by PEP-440)keysof_typedefaultdesc>   wheeleditablewheel_build_envrF   r   env_name
str | Noner*   strc                l   	 t          t                    j        }n# t          $ r d }Y nw xY w|4d                    j        d                   }d| }t          |          j        }|j        |j        k    r|j        |j        k    rj        j	        S j        j	         d|j         |j         S )N,base_pythonz#could not resolve base python with -)
r   r   r[   r   joinrF   r   version_no_dot
impl_lowername)rF   rV   run_pybasemsgdefault_pkg_pyrJ   r/   s         r$   default_wheel_tagz?PythonPackageToxEnv.register_run_env.<locals>.default_wheel_tagT   s    fg..:     ~xx] ;<<BDBB3ii!-N-1FFF"-1BBBy~%inQQv'8Q&:OQQQs    --z*wheel tag to use for building applicationspackage_tox_env_type)rF   r   rV   rW   r*   rX   )r-   register_run_envrF   
add_configr
   r   
isinstancer   rX   r   r=   rA   )r/   rJ   re   pkg_envresultr0   s   ``   r$   rg   z$PythonPackageToxEnv.register_run_envC   sY     77++G444444444<	"f,,ty1H1HI  [)N	 !    7F++	|I&.CCC GL00F	R 	R 	R 	R 	R 	R 	R6 	#$%=	 	  	
 	
 	
 ,01-C DDDD*./BF*K*Kw'''r#   run_confr   Iterator[PackageToxEnv]c              #     K   |d         dk    r8| j                             |d                   }||j        | j        k    r
|V  d S d S d S d S )NrM   rS   rU   )rA   getr`   )r/   rl   envs      r$   child_pkg_envsz"PythonPackageToxEnv.child_pkg_envsy   se      I'))(,,X6G-HIIC38ty#8#8					 *)#8#8r#   c                   | j                                         D ]L}|| urF|                    | j                  5  |                                 d d d            n# 1 swxY w Y   Mt                                                       d S r@   )rA   valuesdisplay_context_has_display_suspendedteardownr-   	_teardown)r/   rp   r0   s     r$   rw   zPythonPackageToxEnv._teardown   s    )0022 	# 	#C$(()DEE # #LLNNN# # # # # # # # # # # # # # #s   AA 	#A 	)r>   r   r*   r+   )r*   r+   )r*   rG   )rJ   r   r*   rK   )rl   r   r*   rm   )r   r   r    r.   rD   r   rC   rg   rq   rw   r1   r2   s   @r$   r=   r=   4   s        & & & & & &O O O O O O " " " ^"4L 4L 4L 4L 4L 4Ll            r#   r=   N),r!   
__future__r   abcr   r   typingr   r   r   r	   r
   r   r   packaging.requirementsr   tox.tox_env.errorsr   tox.tox_env.packager   r   r   apir   r   pathlibr   tox.config.mainr   tox.config.setsr   tox.tox_env.apir   tox.tox_env.runnerr   pip.req_filer   r   r&   r4   r7   r9   r;   r=   r"   r#   r$   <module>r      s{   ; ; " " " " " " # # # # # # # # P P P P P P P P P P P P P P P P P P . . . . . . # # # # # # C C C C C C C C C C & & & & & & & & )&&&&&&,,,,,,000000,,,,,,((((((    G   , , , , , , , ,    ,       ,   # # # # #5 # # #$ $ $ $ $/ $ $ $P P P P P&- P P P P Pr#   