U jaQ*@sddlZddlZddlZddlmZmZmZmZmZm Z m Z m Z m Z ddl mZddlmZddlmZddlmZmZddlmZmZddlmZmZdd lmZdd lmZe e!Z"Gd d d e Z#dddZ$ee%dddZ&ee#dddZ'GdddZ(dS)N) ContainerDictIterableIteratorList NamedTupleOptionalSetUnion) Requirement)canonicalize_name)Version) BadCommandInstallationError)BaseDistributionget_environment)install_req_from_editableinstall_req_from_line) COMMENT_RE)%direct_url_as_pep440_direct_referencec@s.eZdZUeeed<eed<eeed<dS) _EditableInfo requirementeditablecommentsN)__name__ __module__ __qualname__rstr__annotations__boolrr r w/private/var/folders/k6/_7fsz4ts3b78x3b3xwrxjh_c8s8xv7/T/pip-unpacked-wheel-bug3gbve/pip/_internal/operations/freeze.pyr s  rFr c csXi}t|j|d|d}|D]$} t| } |r6| jr6q| || j<q|rt} tt } |D]z} t | f}|D]X}| r| ds| dr| }|| krr| ||Vqr| ds| dr| dr|dd }n|tdd d}t||d }nttd | |d }|jsRtd | | td qrt|j}||kr| |jstd | td | |jn| |j| qrt|| V||=| |j| qrW5QRXq\| D]4\}}t|dkrtd|dtt|qdVt|dddD] }|j|kr2t| Vq2dS)Nr ) local_onlyskip user_only#) z-rz --requirementz-fz --find-linksz-iz --index-urlz--prez--trusted-hostz--process-dependency-linksz--extra-index-urlz --use-featurez-ez --editable=)isolatedzWSkipping line in requirement file [%s] because it's not clear what it would install: %sz9 (add #egg=PackageName to the URL to avoid this warning)zBRequirement file [%s] contains %s, but package %r is not installedz+Requirement %s included multiple times [%s]z, z7## The following requirements were added by pip freeze:cSs |jSN)namelower)xr r r!zfreeze..)key) rZiter_installed_distributionsFrozenRequirement from_distrcanonical_nameset collections defaultdictlistopenstrip startswithrstripaddlenlstriprrrsubr,loggerinfor warningappendritemsjoinsortedvalues)rr"r$pathsr(Zexclude_editabler#Z installationsdistsdistreqZemitted_optionsZ req_filesZ req_file_pathreq_filelineZline_reqZline_req_canonical_namer,filesZ installationr r r!freeze&s                 rPrKreturncCs0t|jtr|jd|jS|jd|jS)Nz==z===) isinstanceversionr raw_name)rKr r r!_format_as_name_versions rVc Cs|jstddgdS|jdkrJt|}td|tddd|dgdStjtj |j}dd l m }m }m }||}|dkrt|}td ||t|dd |dgdSt|j}z|||j}Wn|k rt|}t|dd |d |dgdYS|k rf} z:t|}t|dd |d|dd| jdgdWYSd} ~ XYnptk rtd||jtddgdYStk r} ztd| W5d} ~ XYnXt|dgdStd|tdddgdS)zk Compute and return values (req, editable, comments) for use in FrozenRequirement.from_dist(). NF)rrrz*Editable requirement not found on disk: %sTz# Editable install not found ()r)RemoteNotFoundErrorRemoteNotValidErrorvcsz1No VCS found for editable requirement "%s" in: %rz,# Editable install with no version control (z # Editable z install with no remote (z install (z4) with either a deleted local remote or invalid URI:z# ''zPcannot determine version of editable source in %s (%s command not found in path)zYError when trying to get requirement for VCS system %s, falling back to uneditable formatz-Could not determine repository location of %sz-## !! Could not determine repository location)rrlocationrVrArCospathnormcaseabspathpip._internal.vcsrXrYrZget_backend_for_dirdebugtyperget_src_requirementrUurlrr,r) rKZdisplayr\rXrYrZ vcs_backendZvcs_namerLexexcr r r!_get_editable_infos~          rjc@s2eZdZd ddZeeddddZddZd S) r2r cCs&||_t||_||_||_||_dSr+)r,r r4rLrr)selfr,rLrrr r r!__init__s  zFrozenRequirement.__init__rQcCsVt|\}}}|dkr4|s4|j}|r4t||j}g}|dkrDt|}||j|||dS)N)r)rj direct_urlrrUrV)clsrKrLrrrmr r r!r3s zFrozenRequirement.from_distcCs4|j}|jrd|}dt|jt|gdS)Nz-e  )rLrrFr8rr)rkrLr r r!__str__s zFrozenRequirement.__str__N)r )rrrrl classmethodrr3rpr r r r!r2s r2)NFFNFFr ))r6loggingr]typingrrrrrrrr r Z"pip._vendor.packaging.requirementsr pip._vendor.packaging.utilsr pip._vendor.packaging.versionr pip._internal.exceptionsrrZpip._internal.metadatarrpip._internal.req.constructorsrrZpip._internal.req.req_filer&pip._internal.utils.direct_url_helpersr getLoggerrrArrPrrVrjr2r r r r!s0,       tS