File: //usr/local/lib/python3.10/site-packages/pip/_internal/index/__pycache__/collector.cpython-310.pyc
o
��ix@ � @ s� 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 er�ddlm7Z7 ne8Z7e�9e:�Z;ee<e<f Z=de<dee< fdd�Z>G dd� de?�Z@deddfdd�ZAG dd� de?�ZBde<de*ddfd d!�ZCde<de*defd"d#�ZDd$e=dee< fd%d&�ZEG d'd(� d(�ZFG d)d*� d*e7�ZGd+eGdeGfd,d-�ZHeHd.d/dee& fd0d1��ZIG d2d/� d/�ZJG d3d4� d4e
�ZK dEd5e&d6ee<e?f d7eed8 ddfd9d:�ZL ;dFded<eMdeJfd=d>�ZNd5e&de*ded/ fd?d@�ZOG dAdB� dBe�ZPG dCdD� dD�ZQdS )GzO
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 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( �H/usr/local/lib/python3.10/site-packages/pip/_internal/index/collector.py�_match_vcs_scheme7 s
�r* c s* e Zd Zdededdf� fdd�Z� ZS )�_NotAPIContent�content_type�request_descr"