a
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|J || j7 }| jr|
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 subdirectoryjoin)r
r requirement fragments r /builddir/build/BUILDROOT/alt-python39-pip-21.3.1-2.el8.x86_64/opt/alt/python39/lib/python3.9/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}|sJ || j\}}}|r>|s8J |}n|sFJ ||}t|t|j ||d| j
dS | rt| jt | j
dS d }| j
} | r| d| j }t| jt|d| j
dS d S )N)r r requested_revision)r r r =)r )is_vcsr get_backend_for_schemeschemeget_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
r0 )NF)typingr pip._internal.models.direct_urlr r r r pip._internal.models.linkr pip._internal.utils.urlsr pip._internal.vcsr strr r boolr0 r r r r