U
ʗRe @ s d dl mZ d dlmZmZmZmZ d dlmZ d dl m
Z
d dlmZ ee
e
dddZe
ed d
dZdeee
eedddZdS ) )Optional)ArchiveInfo DirectUrlDirInfoVcsInfo)Link)path_to_url)vcs)
direct_urlnamereturnc C s | |d }g }t| jtr>|d| jj| j| jj7 }nHt| jtrl|| j7 }| jj r|
| jj nt| jts|t|| j7 }| j
r|
d| j
|r|dd| 7 }|S )z0Convert a DirectUrl to a pip requirement string.z @ z{}+{}@{}z
subdirectory=#&)validate
isinstanceinfor formatr url commit_idr hashappendr AssertionErrorsubdirectoryjoin)r
r requirement fragments r /builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/site-packages/pip/_internal/utils/direct_url_helpers.py%direct_url_as_pep440_direct_reference s(
r )
source_dirr c C s t t| tdddS )NT)editable)r r )r r r )r r r r direct_url_for_editable s r! NF)linkr link_is_in_wheel_cacher c
C s | j rlt| j}|st|| j\}}}|r>|s8t|}n|sFt||}t|t |j
||d| jdS | rt| jt
| jdS d }| j} | r| d| j }t| jt|d| jdS d S )N)r r requested_revision)r r r =)r )is_vcsr get_backend_for_schemeschemer get_url_rev_and_authurl_without_fragmentget_revisionr r r subdirectory_fragmentis_existing_dirr hash_namer r )
r" r r# vcs_backendr r$ _r r r. r r r direct_url_from_link' sF
r1 )NF)typingr pip._internal.models.direct_urlr r r r pip._internal.models.linkr pip._internal.utils.urlsr pip._internal.vcsr strr r! boolr1 r r r r