File: //usr/local/lib/python3.10/dist-packages/pip/_internal/index/__pycache__/collector.cpython-310.pyc
o
��h9? � @ sN d Z ddlmZ ddlZddlZddlZddlZddlZddl Z ddl
Z
ddlZddl
ZddlmZmZmZ ddlmZ ddlmZ ddlmZ ddlmZmZmZ dd lmZ dd
lmZ ddl m!Z!m"Z" ddl#m$Z$ dd
l%m&Z& ddl'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5m6Z6 e �7e8�Z9ee:e:f Z;dSdd�Z<G dd� de=�Z>dTd!d"�Z?G d#d$� d$e=�Z@dUd'd(�ZAdVd)d*�ZBdWd-d.�ZCG d/d0� d0�ZDG d1d2� d2e�ZEdXd4d5�ZFeFdYd9d:��ZGed;d<�G d=d7� d7��ZHG d>d?� d?e�ZI dZd[dFdG�ZJ ;d\d]dJdK�ZKd^dMdN�ZLG dOdP� dPe�ZMG dQdR� dR�ZNdS )_zO
The main purpose of this module is to expose LinkCollector.collect_sources().
� )�annotationsN)�Iterable�MutableMapping�Sequence)� dataclass)�
HTMLParser)�Values)�Callable�
NamedTuple�Protocol)�requests)�Response)�
RetryError�SSLError)�NetworkConnectionError)�Link)�SearchScope)�
PipSession)�raise_for_status)�is_archive_file��redact_auth_from_url)�vcs� )�CandidatesFromPage�
LinkSource�build_source�url�str�return�
str | Nonec 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&