U e@sdZddlmZddlZddlZddlmZmZddlm Z ddl m Z m Z m Z ddlmZdd lmZdd lmZmZmZd d Zd dZddZddZddZdd dgZdS)z Bootstrap.) annotationsN)eqlt)Path)PIPECalledProcessErrorPopen) from_bundle)add_wheel_to_update_log)VersionWheeldiscover_wheelsc Csxd}|r|tjkr&t|||||||}|rt|dkrt|tjkrtt|t|||||j|d}|dk rt|jrtt||||S)znGet a wheel with the given distribution-version-for_py_version trio, by using the extra search dir + download.N) distribution version_specfor_py_version search_dirsapp_data to_folderenv) r bundler embeddownload_wheelZas_version_spechouseZ can_updater ) rversionrrdownloadrdo_periodic_updaterwheelrL/opt/hc_python/lib/python3.8/site-packages/virtualenv/seed/wheels/acquire.py get_wheels   r cCs||p d}td|||tjddddddd d d |d t||g}t|||}t||ttd dd} | \} } | j dkr| | d} t | j |f| t ||||| } td| j | S)Nzdownload wheel %s %s to %sz-mpiprz--progress-baroffz--disable-pip-version-checkz--only-binary=:all:z --no-depsz--python-versionz-dTzutf-8)rstdoutstderruniversal_newlinesencodingr)outputr%zdownloaded wheel %s) loggingdebugsys executablestrpip_wheel_env_runrr communicate returncoder_find_downloaded_wheelname)rrrrrrrZ to_downloadcmdprocessouterrkwargsresultrrrr3s4    rcCs\|D]D}|}dD]2}||rtt|t|dSqqt||||S)N)zSaved zFile was already downloaded ) splitlineslstrip startswithr rlenabsolutefind_compatible_in_house)rrrrr5lineZ stripped_linemarkerrrrr1Rs   (r1cst||d|}dt|}}|dk r|r|dr>dt}n|drTdt}nt|t||dtfddt |Dt|}||krdS||S)Nrgs z+find_compatible_in_house..) rr<r;rr ValueErrorr Zas_version_tuplenext enumerate)rrrZ in_folderwheelsstartendZfrom_posrrGrr>\s     "r>c Csj|}|ddddtddtjjdtjj|d|d|d}|dkrXd}t|t|j |d <|S) N10)Z PIP_USE_WHEELZPIP_USER PIP_NO_INPUTr".F)rrrrrrrrzcould not find the embedded pip PYTHONPATH) copyupdater r+ version_infomajorminor RuntimeErrorr-path)rrrrmsgrrrr.ls" r.)__doc__ __future__rr)r+operatorrrpathlibr subprocessrrrrr Zperiodic_updater utilr r rr rr1r>r.__all__rrrrs$    #