Ë
    äØjj#  ã                   ó¤   — d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZ  ej"                  e«      Z G d„ d«      Zy)	é    N)ÚList)Úcanonicalize_name)ÚPyPI)Úhas_tls)Únormalize_pathÚredact_auth_from_urlc            	       óŒ   — e Zd ZdZg d¢Zedee   dee   dedd fd„«       Z	dee   dee   deddfd	„Z
defd
„Zdedee   fd„Zy)ÚSearchScopezF
    Encapsulates the locations that pip is configured to search.
    ©Ú
find_linksÚ
index_urlsÚno_indexr   r   r   Úreturnc                 óš  — g }|D ]P  }|j                  d«      r,t        |«      }t        j                  j	                  |«      r|}|j                  |«       ŒR t        «       s`t        j                  ||«      D ]G  }t        j                  j                  |«      }|j                  dk(  sŒ2t        j                  d«        n  | |||¬«      S )zQ
        Create a SearchScope object after normalizing the `find_links`.
        ú~Úhttpszipip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.r   )Ú
startswithr   ÚosÚpathÚexistsÚappendr   Ú	itertoolsÚchainÚurllibÚparseÚurlparseÚschemeÚloggerÚwarning)Úclsr   r   r   Úbuilt_find_linksÚlinkÚnew_linkÚparseds           úc/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pip/_internal/models/search_scope.pyÚcreatezSearchScope.create   sÂ   € ð ')ÐØò 	*ˆDØ�‰˜sÔ#Ü)¨$Ó/�Ü—7‘7—>‘> (Ô+Ø#�DØ×#Ñ# DÕ)ð	*ô ŒyÜ!Ÿ™¨
Ð4DÓEò �ÜŸ™×.Ñ.¨tÓ4�Ø—=‘= GÓ+Ü—N‘Nð%ôñ
 ðñ Ø'Ø!Øô
ð 	
ó    Nc                 ó.   — || _         || _        || _        y ©Nr   )Úselfr   r   r   s       r%   Ú__init__zSearchScope.__init__C   s   € ð %ˆŒØ$ˆŒØ ˆ�r'   c                 ój  — g }g }| j                   rÇ| j                   t        j                  gk7  r©| j                   D ]k  }t        |«      }t        j
                  j                  |«      }|j                  s"|j                  st        j                  d|«       |j                  |«       Œm |j                  dj                  dj                  |«      «      «       | j                  r@|j                  dj                  dj                  d„ | j                  D «       «      «      «       dj                  |«      S )Nz:The index url "%s" seems invalid, please provide a scheme.zLooking in indexes: {}z, zLooking in links: {}c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr)   )r   )Ú.0Úurls     r%   ú	<genexpr>z6SearchScope.get_formatted_locations.<locals>.<genexpr>k   s   è ø€ ÒS¸CÔ2°3×7ÑSùs   ‚ú
)r   r   Ú
simple_urlr   r   r   Úurlsplitr   Únetlocr   r   r   ÚformatÚjoinr   )r*   ÚlinesÚredacted_index_urlsr/   Úredacted_index_urlÚpurls         r%   Úget_formatted_locationsz#SearchScope.get_formatted_locationsM   sý   € ØˆØ ÐØ�?Š?˜tŸ™´4·?±?Ð2CÒCØ—‘ò ?�Ü%9¸#Ó%>Ð"ô —|‘|×,Ñ,Ð-?Ó@�ð —{’{¨4¯;ª;Ü—N‘NØTØ*ôð
 $×*Ñ*Ð+=Õ>ð#?ð& �L‰LØ(×/Ñ/°·	±	Ð:MÓ0NÓOôð �?Š?Ø�L‰LØ&×-Ñ-Ø—I‘IÑSÀ4Ç?Á?ÔSÓSóôð
 �y‰y˜ÓÐr'   Úproject_namec                 ór   ‡— dt         dt         fˆfd„}| j                  D �cg c]
  } ||«      ‘Œ c}S c c}w )z²Returns the locations found via self.index_urls

        Checks the url_name on the main (first in the list) index and
        use this url_name to produce all locations
        r/   r   c                 ó¬   •— t        j                  | t        j                  j	                  t        ‰«      «      «      }|j                  d«      s|dz   }|S )Nú/)Ú	posixpathr6   r   r   Úquoter   Úendswith)r/   Úlocr<   s     €r%   Úmkurl_pypi_urlz<SearchScope.get_index_urls_locations.<locals>.mkurl_pypi_urlw   sG   ø€ Ü—.‘.Ø”V—\‘\×'Ñ'Ô(9¸,Ó(GÓHóˆCð —<‘< Ô$Ø˜C‘i�ØˆJr'   )Ústrr   )r*   r<   rD   r/   s    `  r%   Úget_index_urls_locationsz$SearchScope.get_index_urls_locationsp   s5   ø€ ð	¤ð 	¬õ 	ð 04¯©Ö?¨‘˜sÕ#Ò?Ð?ùÒ?s   ¢4)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__Úclassmethodr   rE   Úboolr&   r+   r;   rF   © r'   r%   r
   r
      s©   „ ñò 9€Iàð'
à˜‘Ið'
ð ˜‘Ið'
ð ð	'
ð
 
ò'
ó ð'
ðR!à˜‘Ið!ð ˜‘Ið!ð ð	!ð
 
ó!ð! ¨ó ! ðF@°Sð @¸TÀ#¹Yô @r'   r
   )r   Úloggingr   r@   Úurllib.parser   Útypingr   Úpip._vendor.packaging.utilsr   Úpip._internal.models.indexr   Úpip._internal.utils.compatr   Úpip._internal.utils.miscr   r   Ú	getLoggerrG   r   r
   rN   r'   r%   ú<module>rW      sC   ðÛ Û Û 	Û Û Ý å 9å +Ý .ß Ià	ˆ×	Ñ	˜8Ó	$€÷s@ò s@r'   