3 ”Reã @sºddlZddlmZmZmZmZmZmZddlm Z ddl m Z yddl m Z Wnek rheZ YnXe r’ddlmZddlmZddlmZejeƒZd d „Zdd d „Zdd„ZdS)éN)ÚDIRECT_URL_METADATA_NAMEÚ ArchiveInfoÚ DirectUrlÚDirectUrlValidationErrorÚDirInfoÚVcsInfo)ÚMYPY_CHECK_RUNNING)Úvcs)ÚJSONDecodeError)ÚOptional)ÚLink)Ú DistributioncCsÄ|jƒ|d}g}t|jtƒr>|dj|jj|j|jjƒ7}nVt|jtƒrl||j7}|jj r”|j |jj ƒn(t|jt ƒs|t ‚|jj sŠt ‚||j7}|jrª|j d|jƒ|rÀ|ddj|ƒ7}|S)z0Convert a DirectUrl to a pip requirement string.z @ z{}+{}@{}z subdirectory=ú#ú&)ÚvalidateÚ isinstanceÚinforÚformatr ÚurlÚ commit_idrÚhashÚappendrÚAssertionErrorÚeditableÚ subdirectoryÚjoin)Ú direct_urlÚnameÚ requirementÚ fragments©r ú•/builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el8.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 d�S|j ƒrˆt|jt ƒ|j d�Sd}|j} | r¤dj| |jƒ}t|jt|d�|j d�SdS)N)r rÚrequested_revision)rrrz{}={})r)Úis_vcsr Úget_backend_for_schemeÚschemerÚget_url_rev_and_authÚurl_without_fragmentÚ get_revisionrrrÚsubdirectory_fragmentÚis_existing_dirrÚ hash_namerrr) ÚlinkÚ source_dirÚlink_is_in_wheel_cacheÚ vcs_backendrr#Ú_rrr,r r r!Údirect_url_from_link:s:    r2cCs\|jtƒsdSytj|jtƒƒStttfk rV}ztj dt|j |ƒdSd}~XnXdS)zªObtain 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 ÚUnicodeDecodeErrorÚloggerÚwarningÚ project_name)ÚdistÚer r r!Údist_get_direct_urlls r<)NF)ÚloggingÚpip._internal.models.direct_urlrrrrrrÚpip._internal.utils.typingrÚpip._internal.vcsr Újsonr Ú ImportErrorÚ ValueErrorÚtypingr Úpip._internal.models.linkr Zpip._vendor.pkg_resourcesr Ú getLoggerÚ__name__r7r"r2r<r r r r!Ús         2