3 Re @sddlZddlmZmZmZmZmZmZddlm Z ddl m Z yddl m Z Wnek rheZ YnXe rddlmZddlmZddlmZejeZd d Zdd d ZddZdS)N)DIRECT_URL_METADATA_NAME ArchiveInfo DirectUrlDirectUrlValidationErrorDirInfoVcsInfo)MYPY_CHECK_RUNNING)vcs)JSONDecodeError)Optional)Link) DistributioncCs|j|d}g}t|jtr>|dj|jj|j|jj7}nVt|jtrl||j7}|jj r|j |jj n(t|jt s|t |jj st ||j7}|jr|j d|j|r|ddj|7}|S)z0Convert a DirectUrl to a pip requirement string.z @ z{}+{}@{}z subdirectory=#&)validate isinstanceinforformatr url commit_idrhashappendrAssertionErroreditable subdirectoryjoin) direct_urlname requirement fragmentsr /builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el9.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/utils/direct_url_helpers.py%direct_url_as_pep440_direct_references$    r"Fc Cs|jrltj|j}|st|j|j\}}}|r>|s8t|}n|sFt|j|}t|t |j ||d|j dS|j rt|jt |j dSd}|j} | rdj| |j}t|jt|d|j dSdS)N)r rrequested_revision)rrrz{}={})r)is_vcsr get_backend_for_schemeschemerget_url_rev_and_authurl_without_fragment get_revisionrrrsubdirectory_fragmentis_existing_dirr hash_namerrr) link source_dirlink_is_in_wheel_cache vcs_backendrr#_rrr,r r r!direct_url_from_link:s:    r2cCs\|jtsdSytj|jtStttfk rV}ztj dt|j |dSd}~XnXdS)zObtain a DirectUrl from a pkg_resource.Distribution. Returns None if the distribution has no `direct_url.json` metadata, or if `direct_url.json` is invalid. NzError parsing %s for %s: %s) has_metadatarr from_json get_metadatarr UnicodeDecodeErrorloggerwarning project_name)dister r r!dist_get_direct_urlls r<)NF)loggingpip._internal.models.direct_urlrrrrrrpip._internal.utils.typingrpip._internal.vcsr jsonr ImportError ValueErrortypingr pip._internal.models.linkr Zpip._vendor.pkg_resourcesr getLogger__name__r7r"r2r<r r r r!s         2