<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
U
    .e                     @   s   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 d dlmZ er|d dlmZ eeZG d	d
 d
eZdS )    N)canonicalize_name)parse)PyPI)HAS_TLS)normalize_pathredact_auth_from_url)MYPY_CHECK_RUNNING)Listc                   @   s4   e Zd ZdZedd Zdd Zdd Zdd	 Zd
S )SearchScopezF
    Encapsulates the locations that pip is configured to search.
    c                 C   s~   g }|D ]0}| dr.t|}tj|r.|}|| qtsrt||D ]&}t	
|}|jdkrJtd  qrqJ| ||dS )zQ
        Create a SearchScope object after normalizing the `find_links`.
        ~Zhttpszipip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
find_links
index_urls)
startswithr   ospathexistsappendr   	itertoolschainurllib_parseZurlparseZschemeloggerZwarning)clsr   r   Zbuilt_find_linkslinkZnew_linkZparsed r   E/usr/lib/python3.8/site-packages/pip/_internal/models/search_scope.pycreate   s&    


zSearchScope.createc                 C   s   || _ || _d S Nr   )selfr   r   r   r   r   __init__G   s    zSearchScope.__init__c                 C   sl   g }| j r:| j tjgkr:|dddd | j D  | jrb|dddd | jD  d|S )NzLooking in indexes: {}z, c                 s   s   | ]}t |V  qd S r   r   .0urlr   r   r   	<genexpr>U   s    z6SearchScope.get_formatted_locations.<locals>.<genexpr>zLooking in links: {}c                 s   s   | ]}t |V  qd S r   r    r!   r   r   r   r$   Z   s    
)r   r   Z
simple_urlr   formatjoinr   )r   linesr   r   r   get_formatted_locationsP   s    z#SearchScope.get_formatted_locationsc                    s    fdd  fdd| j D S )zReturns 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
        c                    s,   t | tt }|ds(|d }|S )N/)	posixpathr'   r   Zquoter   endswith)r#   Zloc)project_namer   r   mkurl_pypi_urlg   s    
z<SearchScope.get_index_urls_locations.<locals>.mkurl_pypi_urlc                    s   g | ]} |qS r   r   r!   )r.   r   r   
<listcomp>t   s     z8SearchScope.get_index_urls_locations.<locals>.<listcomp>)r   )r   r-   r   )r.   r-   r   get_index_urls_locations_   s    z$SearchScope.get_index_urls_locationsN)	__name__
__module____qualname____doc__classmethodr   r   r)   r0   r   r   r   r   r
      s   
(	r
   )r   Zloggingr   r+   Zpip._vendor.packaging.utilsr   Zpip._vendor.six.moves.urllibr   r   Zpip._internal.models.indexr   Zpip._internal.utils.compatr   Zpip._internal.utils.miscr   r   Zpip._internal.utils.typingr   typingr	   Z	getLoggerr1   r   objectr
   r   r   r   r   <module>   s   
