§
    �’jé  ã                   óÎ   — 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 edd¬¦  «         G d	„ d
¦  «        ¦   «         ZdS )é    N)Ú	dataclass)Úcanonicalize_name)ÚPyPI)Úhas_tls)Únormalize_pathÚredact_auth_from_urlT)ÚfrozenÚslotsc            	       ó²   — e Zd ZU dZee         ed<   ee         ed<   eed<   e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d
S )ÚSearchScopezF
    Encapsulates the locations that pip is configured to search.
    Ú
find_linksÚ
index_urlsÚno_indexÚreturnc                 ó¸  — g }|D ]\}|                      d¦  «        r0t          |¦  «        }t          j                             |¦  «        r|}|                     |¦  «         Œ]t          ¦   «         s^t          j        ||¦  «        D ]H}t          j
                             |¦  «        }|j        dk    rt                               d¦  «          nŒI | |||¬¦  «        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   r   r   )Ú
startswithr   ÚosÚpathÚexistsÚappendr   Ú	itertoolsÚchainÚurllibÚparseÚurlparseÚschemeÚloggerÚwarning)Úclsr   r   r   Úbuilt_find_linksÚlinkÚnew_linkÚparseds           úOC:\Projects\DSCons\.venv\Lib\site-packages\pip\_internal\models\search_scope.pyÚcreatezSearchScope.create   s  € ð ')ÐØð 	*ð 	*ˆDØ�Š˜sÑ#Ô#ð $Ý)¨$Ñ/Ô/�Ý”7—>’> (Ñ+Ô+ð $Ø#�DØ×#Ò# DÑ)Ô)Ð)Ð)õ ‰yŒyð 		Ý!œ¨
Ð4DÑEÔEð ð �Ýœ×.Ò.¨tÑ4Ô4�Ø”= GÒ+Ð+Ý—N’Nð%ñô ð ð
 �Eð ,ð ˆsØ'Ø!Øð
ñ 
ô 
ð 	
ó    c                 ór  — g }g }| j         rÇ| j         t          j        gk    r±| j         D ]n}t          |¦  «        }t          j                             |¦  «        }|j        s"|j        st           
                    d|¦  «         |                     |¦  «         Œo|                     d                     d                     |¦  «        ¦  «        ¦  «         | j        rJ|                     d                     d                     d„ | j        D ¦   «         ¦  «        ¦  «        ¦  «         d                     |¦  «        S )Nz:The index url "%s" seems invalid, please provide a scheme.zLooking in indexes: {}z, zLooking in links: {}c              3   ó4   K  — | ]}t          |¦  «        V — Œd S )N)r   )Ú.0Úurls     r&   ú	<genexpr>z6SearchScope.get_formatted_locations.<locals>.<genexpr>c   s+   è è € ÐSÐS¸CÕ2°3Ñ7Ô7ÐSÐSÐSÐSÐSÐSr(   ú
)r   r   Ú
simple_urlr   r   r   Úurlsplitr   Únetlocr   r    r   ÚformatÚjoinr   )ÚselfÚlinesÚredacted_index_urlsr,   Úredacted_index_urlÚpurls         r&   Úget_formatted_locationsz#SearchScope.get_formatted_locationsE   sG  € ØˆØ ÐØŒ?ð 	˜tœµ4´?Ð2CÒCÐCØ”ð ?ð ?�Ý%9¸#Ñ%>Ô%>Ð"õ ”|×,Ò,Ð-?Ñ@Ô@�ð ”{ð ¨4¬;ð Ý—N’NØTØ*ñô ð ð
 $×*Ò*Ð+=Ñ>Ô>Ð>Ð>à�LŠLØ(×/Ò/°·	²	Ð:MÑ0NÔ0NÑOÔOñô ð ð Œ?ð 	Ø�LŠLØ&×-Ò-Ø—I’IÐSÐSÀ4Ä?ÐSÑSÔSÑSÔSñô ñô ð ð
 �yŠy˜ÑÔÐr(   Úproject_namec                 óT   ‡‡— dt           dt           fˆfd„Šˆfd„| j        D ¦   «         S )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                             t          ‰¦  «        ¦  «        ¦  «        }|                     d¦  «        s|dz   }|S )Nú/)Ú	posixpathr3   r   r   Úquoter   Úendswith)r,   Úlocr:   s     €r&   Úmkurl_pypi_urlz<SearchScope.get_index_urls_locations.<locals>.mkurl_pypi_urlo   sV   ø€ Ý”.Ø•V”\×'Ò'Õ(9¸,Ñ(GÔ(GÑHÔHñô ˆCð —<’< Ñ$Ô$ð  Ø˜C‘i�ØˆJr(   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS © rD   )r+   r,   rB   s     €r&   ú
<listcomp>z8SearchScope.get_index_urls_locations.<locals>.<listcomp>|   s#   ø€ Ð?Ð?Ð?¨��˜sÑ#Ô#Ð?Ð?Ð?r(   )Ústrr   )r4   r:   rB   s    `@r&   Úget_index_urls_locationsz$SearchScope.get_index_urls_locationsh   sO   øø€ ð	¥ð 	­ð 	ð 	ð 	ð 	ð 	ð 	ð @Ð?Ð?Ð?¨t¬Ð?Ñ?Ô?Ð?r(   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚlistrF   Ú__annotations__ÚboolÚclassmethodr'   r9   rG   rD   r(   r&   r   r      sâ   € € € € € € ðð ð �S”	ÐÐÑØ�S”	ÐÐÑØ€N€N�Nàð'
à˜”Ið'
ð ˜”Ið'
ð ð	'
ð
 
ð'
ð '
ð '
ñ „[ð'
ðR! ¨ð ! ð ! ð ! ð ! ðF@°Sð @¸TÀ#¼Yð @ð @ð @ð @ð @ð @r(   r   )r   Úloggingr   r>   Úurllib.parser   Údataclassesr   Úpip._vendor.packaging.utilsr   Úpip._internal.models.indexr   Úpip._internal.utils.compatr   Úpip._internal.utils.miscr   r   Ú	getLoggerrH   r   r   rD   r(   r&   ú<module>rX      s  ðØ Ð Ð Ð Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ø Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !à 9Ð 9Ð 9Ð 9Ð 9Ð 9à +Ð +Ð +Ð +Ð +Ð +Ø .Ð .Ð .Ð .Ð .Ð .Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ Ià	ˆÔ	˜8Ñ	$Ô	$€ð €�$˜dÐ#Ñ#Ô#ðj@ð j@ð j@ð j@ð j@ñ j@ô j@ñ $Ô#ðj@ð j@ð j@r(   