/usr/share/cagefs-skeleton/usr/local/lib/python3.9/site-packages/pip/_internal/index/__pycache__
a ���h�! � @ s\ d dl mZ d dlZd dlZd dlZd dlmZ d dlmZ d dl m Z d dlmZm Z mZmZmZ d dlmZ d dlmZ d d lmZmZ d d lmZ e�e�Zee Zee Ze egee f Ze ege f Z!G dd� d�Z"d dd�dd�Z#G dd� d�Z$G dd� de"�Z%G dd� de"�Z&G dd� de"�Z'G dd� de"�Z(d ddddd dd�d d!�Z)dS )"� )�annotationsN)�defaultdict)�Iterable)�Callable)�InvalidSdistFilename�InvalidWheelFilename�canonicalize_name�parse_sdist_filename�parse_wheel_filename)�InstallationCandidate)�Link)�path_to_url�url_to_path)�is_urlc @ s: e Zd Zedd�dd��Zdd�dd�Zdd�d d �ZdS )� LinkSource�Link | None��returnc C s t � �dS )z,Returns the underlying link, if there's one.N��NotImplementedError��self� r �E/usr/local/lib/python3.9/site-packages/pip/_internal/index/sources.py�link s zLinkSource.link�FoundCandidatesc C s t � �dS )z9Candidates found by parsing an archive listing HTML file.Nr r r r r �page_candidates% s zLinkSource.page_candidates� FoundLinksc C s t � �dS )z,Links found by specifying archives directly.Nr r r r r � file_links) s zLinkSource.file_linksN)�__name__� __module__�__qualname__�propertyr r r r r r r r s r �str�bool)�file_urlr c C s t j| dd�d dkS )NF)�strictr z text/html)� mimetypes� guess_type)r% r r r � _is_html_file. s r) c @ sR e Zd ZdZddd�dd�Zdd�dd �Zed d�dd��Zed d�dd��ZdS )�_FlatDirectoryToUrlsz"Scans directory and caches resultsr# �None)�pathr c C s || _ g | _tt�| _d| _d S )NF)�_path�_page_candidatesr �list�_project_name_to_urls�_scanned_directory)r r, r r r �__init__5 s z_FlatDirectoryToUrls.__init__r c C s� t �| j�D ]�}t|j�}t|�r0| j�|� qzt|j �d }W n> t y� zt|j �d }W n tyz Y Y qY n0 Y n0 | j | �|� qd| _dS )zrScans directory once and populates both page_candidates and project_name_to_urls at the same time r TN)�os�scandirr- r r, r) r. �appendr �namer r r r0 r1 )r �entry�urlZproject_filenamer r r �_scan_directory; s z$_FlatDirectoryToUrls._scan_directoryz list[str]c C s | j s| �� | jS �N)r1 r9 r. r r r r r R s z$_FlatDirectoryToUrls.page_candidateszdict[str, list[str]]c C s | j s| �� | jS r: )r1 r9 r0 r r r r �project_name_to_urlsY s z)_FlatDirectoryToUrls.project_name_to_urlsN) r r r! �__doc__r2 r9 r"