
    3i                    `   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 ddlmZmZmZ erddlmZ  ej4                  e      Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 	 ddZ ddZ!g dZ"y)z
Bootstrap.    )annotationsN)eqlt)Path)PIPECalledProcessErrorPopen)TYPE_CHECKING   )from_bundle)add_wheel_to_update_log)VersionWheeldiscover_wheels)AppDatac           	        d}|r|t         j                  k7  rt        | ||||||      }|r_|]|t         j                  k7  rJt	        | t        j
                  |      ||||j                  |      }||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   wheels	            Q/var/www/opsc/venv/lib/python3.12/site-packages/virtualenv/seed/wheels/acquire.py	get_wheelr%      s     Ew'..0L'>;PXZlnqrEMg&>% 009)#nn
 !4!4#E>8DL    c                   |  |xs d }t         j                  d|||       t        j                  ddddddd	d
d|dt	        |      |g}t        |||      }t        ||t        t        dd      }	|	j                         \  }
}|	j                  dk7  r|
|d}t        |	j                  |fi |t        | ||||
      }t         j                  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-dT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results                 r$   r   r   9   s     "N<#52"67K
LL-{NIV%IC" K3
7CCSdt^efG""$HCQ3/ !3!3SCFCC#L,PY[^_F
LL&4Mr&   c           
         |j                         D ]\  }|j                         }dD ]E  }|j                  |      st        t	        |t        |      d        j                               c c S  ^ t        | |||      S )N)zSaved zFile was already downloaded )
splitlineslstrip
startswithr   r   lenabsolutefind_compatible_in_house)r   r   r   r   r>   linestripped_linemarkers           r$   r9   r9   `   s~       L@ 	LF''/T-F">?HHJKK	LL $L,PYZZr&   c                ^  	 t        || d |      }dt        |      }}||r|j                  d      r
dt        c}n&|j                  d      r
dt        c}nt        |      t        j                  ||d        	t        	fdt        |      D        t        |            }||k(  rd S ||   S )Nr   <r   z==   c              3  P   K   | ]  \  }} |j                         s|  y w)N)version_tuple).0atwopr    s      r$   	<genexpr>z+find_compatible_in_house.<locals>.<genexpr>y   s"     XUR2aoow;WbXs   &&)
r   rF   rE   r   r   
ValueErrorr   as_version_tuplenext	enumerate)
r   r   r   	in_folderwheelsstartendfrom_posrT   r    s
           @@r$   rH   rH   l   s     YdNKFCK3EL""3'bLHb$$T*bLHb\**((hi)@AXi&7XZ]^dZefC<42VE]2r&   c           
     0   |j                         }|j                  ddddd       t        dd t        j                  j
                   dt        j                  j                   | d|d|      }|d	}t        |      t        |j                        |d
<   |S )N10r+   )PIP_USE_WHEELPIP_USERPIP_NO_INPUTPYTHONIOENCODINGr)   .F)r   r    r   r   r!   r   r"   r   zcould not find the embedded pip
PYTHONPATH)
copyupdater%   r3   version_infomajorminorRuntimeErrorr5   path)r   r   r   r#   msgs        r$   r6   r6   ~   s    
((*CJJ#s`ghi**00133C3C3I3I2JK 	E }/3EJJCJr&   )r   r%   r6   )r   r5   r    
str | Noner   r5   r   
list[Path]r!   boolr   r   r"   rr   r   dict[str, str]returnWheel | None)r   r5   r   rp   r   r5   r   rq   r   r   r   r   r   rs   rt   r   )r   r5   r   rp   r   r5   r   r   r>   r5   rt   ru   )
r   r5   r   rp   r   r5   rZ   r   rt   ru   )r   rq   r   r   r   rs   rt   rs   )#__doc__
__future__r   loggingr3   operatorr   r   pathlibr   
subprocessr   r   r	   typingr
   r   r   periodic_updater   utilr   r   r   virtualenv.app_data.baser   	getLogger__name__r1   r%   r   r9   rH   r6   __all__ r&   r$   <module>r      sg    "  
   6 6    4 1 10			8	$      	 
       
   F$$$ $ 	$
 $ $ 
$ $N	[	[%/	[AD	[QU	[\_	[	[33%/3AD3QU33$(r&   