‹“Re ã @ sü d d l Z d d l m Z m Z m Z m Z m Z m Z d d l m Z d d l m Z y d d l m Z Wn e k rˆ e Z Yn Xe r¿ d d l m Z d d l m Z d d l m Z e j e ƒ Z d d „ Z d d d d „ Z d d „ Z d S)é N)ÚDIRECT_URL_METADATA_NAMEÚArchiveInfoÚ DirectUrlÚDirectUrlValidationErrorÚDirInfoÚVcsInfo)ÚMYPY_CHECK_RUNNING)Úvcs)ÚJSONDecodeError)ÚOptional)ÚLink)ÚDistributionc C s | j ƒ | d } g } t | j t ƒ rW | d j | j j | j | j j ƒ 7} ny t | j t ƒ r˜ | | j 7} | j j rÐ | j | j j ƒ n8 t | j t ƒ s° t ‚ | j j sà t ‚ | | j 7} | j rí | j d | j ƒ | r | d d j | ƒ 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_reference s$ " r" Fc C s0 | j r¬ t j | j ƒ } | s' t ‚ | j | j ƒ \ } } } | r] | sT t ‚ | } n | si t ‚ | j | ƒ } t d | d t d | j d | d | ƒ d | j ƒ S| j ƒ rÚ t d | j d t ƒ d | j ƒ Sd } | j } | rd j | | j ƒ } t d | j d t d | ƒ d | j ƒ Sd S) Nr r r r Úrequested_revisionr z{}={}r )Úis_vcsr Úget_backend_for_schemeÚschemer Úget_url_rev_and_authÚurl_without_fragmentÚget_revisionr r r Úsubdirectory_fragmentÚis_existing_dirr Ú hash_namer r r ) ÚlinkÚ source_dirÚlink_is_in_wheel_cacheÚvcs_backendr r# Ú_r r r, r r r! Údirect_url_from_link: s: r2 c C s | j t ƒ s d Sy t j | j t ƒ ƒ SWnK t t t f k rz } z" t j d t | j | ƒ d SWYd d } ~ Xn Xd S)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_metadatar r Ú from_jsonÚget_metadatar r ÚUnicodeDecodeErrorÚloggerÚwarningÚproject_name)ÚdistÚer r r! Údist_get_direct_urll s r<