Edit File: collector.cpython-311.pyc
� Q�dx@ � � � 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 ej9 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<ded4eMdeJfd5�ZNd.e&de*ded) fd6�ZO G d7� d8e� � ZP G d9� d:� � ZQdS )=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 ]D}| � � � � |� � r| t |� � dv r|c S �EdS )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"