o gN@sddlZddlZddlmZddlmZddlmZddlm Z ddl m Z m Z ddl mZddlmZdd lmZmZmZdd lmZeeZGd d d e ZdS) N)Values)List) cmdoptions)make_target_python)RequirementCommand with_cleanup)SUCCESS)get_requirement_tracker) ensure_dirnormalize_path write_output) TempDirectoryc@s<eZdZdZdZd ddZededee de fd d Z dS) 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] [package-index-options] ... %prog [options] -r [package-index-options] ... %prog [options] ... %prog [options] ... %prog [options] ...returnNc CsL|jt|jt|jt|jt|jt|jt|jt |jt |jt |jt |jt |jt|jt|jt|jt|jjddddddtjddt|jttj|j}|jd ||jd |jdS) Nz-dz--destz--destination-dirz--destination-directory download_dirdirzDownload packages into .)destmetavardefaulthelpr)cmd_opts add_optionr constraints requirementsno_depsglobal_options no_binary only_binary prefer_binarysrcprerequire_hashes progress_barno_build_isolation use_pep517 no_use_pep517ignore_requires_pythonoscurdiradd_target_python_optionsmake_option_group index_groupparserinsert_option_group)self index_optsr0A/usr/lib/python3/dist-packages/pip/_internal/commands/download.py add_options%s@ zDownloadCommand.add_optionsoptionsargsc Cs(d|_g|_t|t|j|_t|j||}t|}|j ||||j d}| t }t |j ddd}|||||}|j||||||jd|jd} |j| |||j |jd} ||| j|dd} g} | jD]} | jdur| jdus|J| | | | jqn| rtd d | tS) NT)r3session target_pythonr&download)deletekindglobally_managedF)temp_build_dirr3 req_trackerr5finderr use_user_site verbosity)preparerr=r3r&py_version_info)check_supported_wheelszSuccessfully downloaded %s )ignore_installed editablesrcheck_dist_restrictionr rr get_default_sessionr_build_package_finderr& enter_contextr r no_cleanget_requirementsmake_requirement_preparerr? make_resolverpython_versiontrace_basic_inforesolvervalues satisfied_bynamesave_linked_requirementappendr joinr)r.r3r4r5r6r=r< directoryreqsr@resolverrequirement_set downloadedreqr0r0r1runKsb          zDownloadCommand.run)rN) __name__ __module__ __qualname____doc__usager2rrrstrintr]r0r0r0r1rs  & r)loggingr'optparsertypingrpip._internal.clirpip._internal.cli.cmdoptionsrpip._internal.cli.req_commandrrpip._internal.cli.status_codesrpip._internal.req.req_trackerr pip._internal.utils.miscr r r pip._internal.utils.temp_dirr getLoggerr^loggerrr0r0r0r1s