a
    0f                     @   s   d dl 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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 d dlmZ e eZG dd deZdS )    N)Values)List)
cmdoptions)make_target_python)RequirementCommandwith_cleanup)SUCCESS)get_build_tracker)check_legacy_setup_py_options)
ensure_dirnormalize_pathwrite_output)TempDirectoryc                   @   s<   e Zd ZdZdZddddZeeee	 e
ddd	ZdS )
DownloadCommandaL  
    Download packages from:

    - PyPI (and other indexes) using requirement specifiers.
    - VCS project urls.
    - Local project directories.
    - Local or remote source archives.

    pip also supports downloading from "requirements files", which provide
    an easy way to specify a whole environment to be downloaded.
    a  
      %prog [options] <requirement specifier> [package-index-options] ...
      %prog [options] -r <requirements file> [package-index-options] ...
      %prog [options] <vcs project url> ...
      %prog [options] <local project path> ...
      %prog [options] <archive url/path> ...N)returnc              
   C   s\  | j t  | j t  | j t  | j t  | j t  | j t  | j t	  | j t
  | j t  | j t  | j t  | j t  | j t  | j t  | j t  | j t  | j jddddddtjdd t| j  ttj| j}| jd	| | jd	| j  d S )
Nz-dz--destz--destination-dirz--destination-directorydownload_dirdirzDownload packages into <dir>.)destmetavardefaulthelpr   )cmd_opts
add_optionr   constraintsrequirementsno_depsglobal_options	no_binaryonly_binaryprefer_binarysrcprerequire_hashesprogress_barno_build_isolation
use_pep517no_use_pep517check_build_depsignore_requires_pythonoscurdiradd_target_python_optionsmake_option_groupindex_groupparserinsert_option_group)self
index_opts r2   X/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pip/_internal/commands/download.pyadd_options&   sB    zDownloadCommand.add_options)optionsargsr   c              
   C   sJ  d|_ g |_t| t|j|_t|j | |}t|}| j	||||j
d}| t }t|j ddd}| ||||}t|| | j||||||jd| jd}	| j|	|||j
|j|jd}
| | |
j|dd}g }|j D ]4}|jd u r|jd usJ |	| ||j q|	|j  |rFtd	d
 | t!S )NT)r5   sessiontarget_pythonr(   download)deletekindglobally_managedF)temp_build_dirr5   build_trackerr7   finderr   use_user_site	verbosity)preparerr?   r5   r(   r%   py_version_info)check_supported_wheelszSuccessfully downloaded %s )"ignore_installed	editablesr   check_dist_restrictionr   r   r   get_default_sessionr   _build_package_finderr(   enter_contextr	   r   no_cleanget_requirementsr
   make_requirement_preparerrA   make_resolverr%   python_versiontrace_basic_inforesolver   valuessatisfied_bynamesave_linked_requirementappend prepare_linked_requirements_morer   joinr   )r0   r5   r6   r7   r8   r?   r>   	directoryreqsrB   resolverrequirement_setZ
downloadedreqr2   r2   r3   runM   sf    



	


zDownloadCommand.run)__name__
__module____qualname____doc__usager4   r   r   r   strintr_   r2   r2   r2   r3   r      s
   'r   )loggingr)   optparser   typingr   pip._internal.clir   Zpip._internal.cli.cmdoptionsr   pip._internal.cli.req_commandr   r   pip._internal.cli.status_codesr   ,pip._internal.operations.build.build_trackerr	   Zpip._internal.req.req_installr
   pip._internal.utils.miscr   r   r   pip._internal.utils.temp_dirr   	getLoggerr`   loggerr   r2   r2   r2   r3   <module>   s   
