a  ze @slddlmZddlmZmZmZmZddlmZddl m Z ee e dddZ d eee e ed d d ZdS))Optional) ArchiveInfo DirectUrlDirInfoVcsInfo)Link)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 isinstanceinforformatrurl commit_idrhashappendr subdirectoryjoin)r r requirement fragmentsrh/opt/bitninja-python-dojo/embedded/lib/python3.9/site-packages/pip/_internal/utils/direct_url_helpers.py%direct_url_as_pep440_direct_references$    rNF)link source_dirlink_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)rrrequested_revision)rrr=)r)is_vcsrget_backend_for_schemeschemeget_url_rev_and_authurl_without_fragment get_revisionrrr subdirectory_fragmentis_existing_dirr hash_namerr) rrr vcs_backendrr _rrr*rrrdirect_url_from_linksF    r-)NF)typingrpip._internal.models.direct_urlrrrrpip._internal.models.linkrpip._internal.vcsrstrrboolr-rrrrs