a Re @sddlmZddlmZmZmZmZddlmZddl m Z ddl m Z ee e dddZe ed d d Zdeee eedddZd S))Optional) ArchiveInfo DirectUrlDirInfoVcsInfo)Link) path_to_url)vcs) direct_urlnamereturncCs||d}g}t|jtr>|d|jj|j|jj7}nHt|jtrl||j7}|jj r| |jj nt|jt s|J||j7}|j r| d|j |r|dd |7}|S)z0Convert a DirectUrl to a pip requirement string.z @ z{}+{}@{}z subdirectory=#&)validate isinstanceinforformatr url commit_idrhashappendr subdirectoryjoin)r r requirement fragmentsr/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 cCstt|tdddS)NT)editable)rr)rrr)rrrrdirect_url_for_editable sr NF)linkrlink_is_in_wheel_cacher c Cs|jrlt|j}|sJ||j\}}}|r>|s8J|}n|sFJ||}t|t|j ||d|j dS| rt|jt |j dSd}|j } | r| d|j}t|jt|d|j dSdS)N)r rrequested_revision)rrr=)r)is_vcsr get_backend_for_schemeschemeget_url_rev_and_authurl_without_fragment get_revisionrrr subdirectory_fragmentis_existing_dirr hash_namerr) r!rr" vcs_backendrr#_rrr-rrrdirect_url_from_link'sF    r0)NF)typingrpip._internal.models.direct_urlrrrrpip._internal.models.linkrpip._internal.utils.urlsrpip._internal.vcsr strrr boolr0rrrrs