U n a@sddlZddlmZmZmZmZmZmZddlm Z ddl m Z zddl m Z Wnek rheZ YnXe rddlmZddlmZddlmZeeZd d Zdd d ZddZdS)N)DIRECT_URL_METADATA_NAME ArchiveInfo DirectUrlDirectUrlValidationErrorDirInfoVcsInfo)MYPY_CHECK_RUNNING)vcs)JSONDecodeError)Optional)Link) DistributioncCs||d}g}t|jtr>|d|jj|j|jj7}nTt|jtrl||j7}|jj r| |jj n&t|jt s|t |jj rt ||j7}|jr| d|j|r|dd|7}|S)z0Convert a DirectUrl to a pip requirement string.z @ z{}+{}@{}z subdirectory=#&)validate isinstanceinforformatr url commit_idrhashappendrAssertionErroreditable subdirectoryjoin) direct_urlname requirement fragmentsr gC:\Users\vtejo\AppData\Local\Temp\pip-unpacked-wheel-6mt8ur68\pip\_internal\utils\direct_url_helpers.py%direct_url_as_pep440_direct_references*     r"Fc Cs|jrlt|j}|st||j\}}}|r>|s8t|}n|sFt||}t|t |j ||d|j dS| rt|jt |j dSd}|j} | rd| |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:sD    r2c Csf|tsdSzt|tWStttfk r`}zt dt|j |WYdSd}~XYnXdS)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