File: //lib/python3/dist-packages/pip/_internal/index/__pycache__/collector.cpython-312.pyc
�
��h�@ � �" � d Z ddlZddlZddlZddlZddlZddlZddlZddl Z
ddlZ
ddlm
Z
ddlmZ ddlmZmZmZmZmZmZmZmZmZmZmZ ddlmZ ddlmZ ddl m!Z!m"Z" dd l#m$Z$ dd
l%m&Z& ddl'm(Z( ddl)m*Z* dd
l+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5m6Z6 erddlm7Z7 ne8Z7 ejr e:� Z;ee<e<f Z=de<dee< fd�Z> G d� de?� Z@deddfd�ZA G d� de?� ZBde<de*ddfd�ZCde<de*defd�ZDd e=dee< fd!�ZE G d"� d#� ZF G d$� d%e7� ZGd&eGdeGfd'�ZHeHd(d)dee& fd*�� ZI G d+� d)� ZJ G d,� d-e
� ZK d:d.e&d/ee<e?f d0eed1 ddfd2�ZL d;ded3eMdeJfd4�ZNd.e&de*ded) fd5�ZO G d6� d7e� ZP G d8� d9� ZQy)<zO
The main purpose of this module is to expose LinkCollector.collect_sources().
� N)�
HTMLParser)�Values)�
TYPE_CHECKING�Callable�Dict�Iterable�List�MutableMapping�
NamedTuple�Optional�Sequence�Tuple�Union)�requests)�Response)�
RetryError�SSLError)�NetworkConnectionError)�Link)�SearchScope)�
PipSession)�raise_for_status)�is_archive_file��redact_auth_from_url)�vcs� )�CandidatesFromPage�
LinkSource�build_source)�Protocol�url�returnc � � t j D ]6 }| j � j |� s�#| t |� dv s�4|c S y)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"