o
    Uh                     @  s   d Z ddlm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mZ ddlmZ dd	lmZ dd
lmZmZmZ eeZdd Zdd Zdd Zdd Zdd Zg dZdS )z
Bootstrap.    )annotationsN)eqlt)Path)PIPECalledProcessErrorPopen   )from_bundle)add_wheel_to_update_log)VersionWheeldiscover_wheelsc           	   	   C  sx   d}|r	|t jkrt| ||||||}|r:|du r:|t jkr:t| t |||||j|d}|dur:|jr:t||| |S )znGet a wheel with the given distribution-version-for_py_version trio, by using the extra search dir + download.N)distributionversion_specfor_py_versionsearch_dirsapp_data	to_folderenv)	r   bundler
   embeddownload_wheelas_version_spechouse
can_updater   )	r   versionr   r   downloadr   do_periodic_updater   wheel r    r/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/virtualenv/seed/wheels/acquire.py	get_wheel   s    	r"   c                 C  s   |  |pd }t d||| tjddddddd	d
d|dt||g}t|||}t||ttddd}	|	 \}
}|	j	dkrM|
|d}t
|	j	|fi |t| ||||
}t d|j |S )N zdownload wheel %s %s to %sz-mpipr   z--progress-baroffz--disable-pip-version-checkz--only-binary=:all:z	--no-depsz--python-versionz-dTzutf-8)r   stdoutstderruniversal_newlinesencodingr   )outputr'   zdownloaded wheel %s)LOGGERdebugsys
executablestrpip_wheel_env_runr   r   communicate
returncoder   _find_downloaded_wheelname)r   r   r   r   r   r   r   to_downloadcmdprocessouterrkwargsresultr    r    r!   r   5   s4   

r   c                 C  s\   |  D ]"}| }dD ]}||r%tt|t|d       S qqt| |||S )N)zSaved zFile was already downloaded )
splitlineslstrip
startswithr   r   lenabsolutefind_compatible_in_house)r   r   r   r   r8   linestripped_linemarkerr    r    r!   r3   T   s   
$r3   c                   s   t || d |}dt|}}|d urH|rH|drdt} n|dr*dt} nt|t||d  t fddt	|D t|}||krNd S || S )Nr   <r	   z==   c                 3  s$    | ]\}} |j r|V  qd S )N)version_tuple).0atwopr   r    r!   	<genexpr>i   s   " z+find_compatible_in_house.<locals>.<genexpr>)
r   r?   r>   r   r   
ValueErrorr   as_version_tuplenext	enumerate)r   r   r   	in_folderwheelsstartendfrom_posr    rK   r!   rA   ^   s   

"rA   c              
   C  sj   |  }|dddd tdd tjj dtjj | d|d|d}|d u r,d}t|t|j	|d	< |S )
N10)PIP_USE_WHEELPIP_USERPIP_NO_INPUTr$   .F)r   r   r   r   r   r   r   r   zcould not find the embedded pip
PYTHONPATH)
copyupdater"   r-   version_infomajorminorRuntimeErrorr/   path)r   r   r   r   msgr    r    r!   r0   n   s"   
r0   )r   r"   r0   )__doc__
__future__r   loggingr-   operatorr   r   pathlibr   
subprocessr   r   r   r   r
   periodic_updater   utilr   r   r   	getLogger__name__r+   r"   r   r3   rA   r0   __all__r    r    r    r!   <module>   s"    
#
