‹“Reã @süddlZddlmZmZmZmZmZmZddlm Z ddl m Z yddl m Z Wnek rˆeZ YnXe r¿ddlmZddlmZddlmZejeƒZd d „Zdd d 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ƒrW|dj|jj|j|jjƒ7}nyt|jtƒr˜||j7}|jj rÐ|j |jj ƒn8t|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-python35-pip-20.2.4-5.el8.x86_64/opt/alt/python35/lib/python3.5/site-packages/pip/_internal/utils/direct_url_helpers.pyÚ%direct_url_as_pep440_direct_references$   "    r"Fc Cs0|jr¬tj|jƒ}|s't‚|j|jƒ\}}}|r]|sTt‚|}n|sit‚|j|ƒ}td|dt d|j d|d|ƒd|j ƒS|j ƒrÚtd|jdt ƒd|j ƒSd}|j} | rdj| |jƒ}td|jdtd|ƒd|j ƒSdS) Nrrr rÚrequested_revisionrz{}={}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ƒƒSWnKtttfk rz}z"tj dt|j |ƒdSWYdd}~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_urllsr<)Ú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