o
    VhQ                     @  s   d dl mZ d dl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rNd 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 deZG dd dZdS )    )annotationsN)Path)TYPE_CHECKING)temporary_directory)
extractall)isolated_builder)Mapping)Sequence)DistributionType)RepositoryPool)ArtifactCache)Envc                   @  s   e Zd ZdS )	ChefErrorN)__name__
__module____qualname__ r   r   l/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/poetry/installation/chef.pyr      s    r   c                   @  sf   e Zd Zd"d	d
Z	d#dddd$ddZdddd%ddZ		d&d'ddZd(ddZed(d d!Z	dS ))Chefartifact_cacher   envr   poolr   returnNonec                 C  s   || _ || _|| _d S N)_env_pool_artifact_cache)selfr   r   r   r   r   r   __init__   s   
zChef.__init__NF)editableconfig_settingsarchiver   
output_dirPath | Noner    boolr!   (Mapping[str, str | Sequence[str]] | Nonec                C  sL   |  |s|S | r|pttjdd}| j||||dS | j|||dS )Nzpoetry-chef-)prefix)destinationr    r!   )r(   r!   )_should_prepareis_dirr   tempfilemkdtemp_prepare_prepare_sdist)r   r"   r#   r    r!   r(   r   r   r   prepare$   s   
zChef.prepare	directoryr(   c                C  s^   |rdnd}t ||| jj| jd}t|j|| |dW  d    S 1 s(w   Y  d S )Nr    wheel)sourcedistributionpython_executabler   r!   )r   r   pythonr   r   buildas_posix)r   r0   r(   r    r!   r3   builderr   r   r   r-   <   s    $zChef._preparec                 C  s   ddl m} |j}|dk}t V}t|}t|||d t|d}	t|	dkr4|	d 	 r4|	d }
n||j
| }
|
	 sB|}
|d u rP| j|| }|jddd | j|
||d	W  d    S 1 siw   Y  d S )
Nr   )Linkz.zip)r2   destzip*   T)parentsexist_okr5   )poetry.core.packages.utils.linkr:   suffixr   r   r   listgloblenr*   namerstripr   get_cache_directory_for_linkas_urimkdirr-   )r   r"   r(   r!   r:   rB   r<   tmp_dirarchive_direlements	sdist_dirr   r   r   r.   S   s.   

$zChef._prepare_sdistc                 C  s   |  p	| | S r   )r*   	_is_wheel)r   r"   r   r   r   r)   x   s   zChef._should_preparec                 C  s
   |j dkS )Nz.whl)rB   )clsr"   r   r   r   rO   {   s   
zChef._is_wheel)r   r   r   r   r   r   r   r   r   )
r"   r   r#   r$   r    r%   r!   r&   r   r   )
r0   r   r(   r   r    r%   r!   r&   r   r   )NN)r"   r   r(   r$   r!   r&   r   r   )r"   r   r   r%   )
r   r   r   r   r/   r-   r.   r)   classmethodrO   r   r   r   r   r      s     


%r   )
__future__r   r+   pathlibr   typingr   poetry.core.utils.helpersr   poetry.utils.helpersr   poetry.utils.isolated_buildr   collections.abcr   r	   r7   r
   poetry.repositoriesr   poetry.utils.cacher   poetry.utils.envr   	Exceptionr   r   r   r   r   r   <module>   s     