ó
    Þ j³  ã                   óÂ   • S SK r S SKrS SKrS SKrS SKrS SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJr  S SKJrJr  \R&                  " \5      r\" SS	9 " S
 S5      5       rg)é    N)Ú	dataclass)ÚList)Úcanonicalize_name)ÚPyPI)Úhas_tls)Únormalize_pathÚredact_auth_from_urlT)Úfrozenc            	       ó¢   • \ rS rSr% Sr/ SQr\\   \S'   \\   \S'   \	\S'   \
S\\   S\\   S\	SS 4S j5       rS\4S	 jrS
\S\\   4S jrSrg)ÚSearchScopeé   z>
Encapsulates the locations that pip is configured to search.
©Ú
find_linksÚ
index_urlsÚno_indexr   r   r   Úreturnc                 ó¼  • / nU H[  nUR                  S5      (       a1  [        U5      n[        R                  R	                  U5      (       a  UnUR                  U5        M]     [        5       (       dc  [        R                  " X$5       HI  n[        R                  R                  U5      nUR                  S:X  d  M4  [        R                  S5          O   U " UUUS9$ )zA
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           Ú[/var/www/html/gaurav/venv/lib/python3.13/site-packages/pip/_internal/models/search_scope.pyÚcreateÚSearchScope.create   s¾   € ð ')ÐÛˆDØ�‰˜s×#Ñ#Ü)¨$Ó/�Ü—7‘7—>‘> (×+Ñ+Ø#�DØ×#Ñ# DÖ)ñ ô �y‰yÜ!Ÿš¨
ÖE�ÜŸ™×.Ñ.¨tÓ4�Ø—=‘= GÕ+Ü—N‘Nð%ôñ
 ñ Fñ Ø'Ø!Øñ
ð 	
ó    c                 ó˜  • / n/ nU R                   (       aÔ  U R                   [        R                  /:w  aµ  U R                    Hv  n[        U5      n[        R
                  R                  U5      nUR                  (       d'  UR                  (       d  [        R                  SU5        UR                  U5        Mx     UR                  SR                  SR                  U5      5      5        U R                  (       a@  UR                  SR                  SR                  S U R                   5       5      5      5        SR                  U5      $ )Nz:The index url "%s" seems invalid, please provide a scheme.zLooking in indexes: {}z, zLooking in links: {}c              3   ó6   #   • U H  n[        U5      v •  M     g 7f)N)r	   )Ú.0Úurls     r(   Ú	<genexpr>Ú6SearchScope.get_formatted_locations.<locals>.<genexpr>f   s   é € ÐSÁ?¸CÔ2°3×7Ð7Â?ùs   ‚Ú
)r   r   Ú
simple_urlr	   r   r   Úurlsplitr    Únetlocr!   r"   r   ÚformatÚjoinr   )ÚselfÚlinesÚredacted_index_urlsr/   Úredacted_index_urlÚpurls         r(   Úget_formatted_locationsÚ#SearchScope.get_formatted_locationsH   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                 óx   ^• S[         S[         4U4S jjnU R                   Vs/ sH
  o2" U5      PM     sn$ s  snf )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                 ó¸   >• [         R                  " U [        R                  R	                  [        T5      5      5      nUR                  S5      (       d  US-   nU$ )NÚ/)Ú	posixpathr7   r   r   Úquoter   Úendswith)r/   Úlocr?   s     €r(   Úmkurl_pypi_urlÚ<SearchScope.get_index_urls_locations.<locals>.mkurl_pypi_urlr   sJ   ø€ Ü—.’.Ø”V—\‘\×'Ñ'Ô(9¸,Ó(GÓHóˆCð —<‘< ×$Ñ$Ø˜C‘i�ØˆJr+   )Ústrr   )r8   r?   rG   r/   s    `  r(   Úget_index_urls_locationsÚ$SearchScope.get_index_urls_locationsk   s9   ø€ ð	¤ð 	¬÷ 	ð 04¯ªÓ?©¨�˜sÖ#©Ñ?Ð?ùÒ?s   ¤7© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__r   rI   Ú__annotations__ÚboolÚclassmethodr)   r=   rJ   Ú__static_attributes__rL   r+   r(   r   r      s�   ‡ ñò 9€Ià�S‘	ÓØ�S‘	ÓØƒNàð'
à˜‘Ið'
ð ˜‘Ið'
ð ð	'
ð
 
ó'
ó ð'
ðR! ¨ô ! ðF@°Sð @¸TÀ#¹Y÷ @r+   r   )r   Úloggingr   rC   Úurllib.parser   Údataclassesr   Útypingr   Úpip._vendor.packaging.utilsr   Úpip._internal.models.indexr   Úpip._internal.utils.compatr   Úpip._internal.utils.miscr   r	   Ú	getLoggerrM   r!   r   rL   r+   r(   Ú<module>r`      sZ   ðÛ Û Û 	Û Û Ý !Ý å 9å +Ý .ß Ià	×	Ò	˜8Ó	$€ñ �$Ñ÷l@ð l@ó ñl@r+   