File: //usr/lib/python3/dist-packages/pip/_internal/index/__pycache__/collector.cpython-310.pyc
o
@%Ne�S � @ s� d Z ddlZddlZddlZddlZddlZddlZddlZddlZ ddl
Z ddlZddl
mZ ddlmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZm Z ddl!m"Z" ddl#m$Z$m%Z% dd l&m'Z' dd
l(m)Z) ddl*m+Z+ ddl,m-Z- dd
l.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5m6Z6 ddl7m8Z8 ddl9m:Z:m;Z;m<Z< er�ddlm=Z= ne>Z=e�?e@�ZAejBjCjDZEeeFeFf ZGdeFdeeF fdd�ZHG dd� deI�ZJde"ddfdd�ZKG dd� deI�ZLdeFd e-ddfd!d"�ZMdeFd e-de"fd#d$�ZNd%eGdeeF fd&d'�ZOd(eEd)eFdeFfd*d+�ZPd,eFdeFfd-d.�ZQd,eFdeFfd/d0�ZRe�Sd1ejT�ZUd2eFd3eVdeFfd4d5�ZWdeFdeFfd6d7�ZXd8eeFeeF f d)eFd9eFdee) fd:d;�ZYG d<d=� d=�ZZG d>d?� d?e=�Z[d@e[de[fdAdB�Z\dCdDdee) fdEdF�Z]e\dCdDdGeVdee) fdHdI��Z^G dJdD� dD�Z_G dKdL� dLe�Z` d]dMe)dNeeFeIf dOeedP ddfdQdR�Zad^de"dTeVde_fdUdV�Zb d]dMe)d ee- dedD fdWdX�ZcG dYdZ� dZe�ZdG d[d\� d\�ZedS )_zO
The main purpose of this module is to expose LinkCollector.collect_sources().
� N)�
HTMLParser)�Values)�
TYPE_CHECKING�Any�Callable�Dict�Iterable�List�MutableMapping�
NamedTuple�Optional�Sequence�Tuple�Union)�html5lib�requests)�Response)�
RetryError�SSLError)�NetworkConnectionError)�Link)�SearchScope)�
PipSession)�raise_for_status)�
deprecated)�is_archive_file)�pairwise�redact_auth_from_url)�vcs� )�CandidatesFromPage�
LinkSource�build_source)�Protocol�url�returnc C s6 t jD ]}| �� �|�r| t|� dv r| S qdS )zgLook for VCS schemes in the URL.
Returns the matched VCS scheme, or None if there's no match.
z+:N)r �schemes�lower�
startswith�len)r$ �scheme� r+ �?/usr/lib/python3/dist-packages/pip/_internal/index/collector.py�_match_vcs_scheme; s
�r- c s* e Zd Zdededdf� fdd�Z� ZS )�_NotHTML�content_type�request_descr% Nc s t � �||� || _|| _d S �N)�super�__init__r/ r0 )�selfr/ r0 �� __class__r+ r, r3 G s
z_NotHTML.__init__)�__name__�
__module__�__qualname__�strr3 �
__classcell__r+ r+ r5 r, r. F s "r. �responsec C s. | j �dd�}|�� �d�st|| jj��dS )z�Check the Content-Type header to ensure the response contains HTML.
Raises `_NotHTML` if the content type is not text/html.
�Content-Type� � text/htmlN)�headers�getr'