File: //lib/python3/dist-packages/pip/_internal/models/__pycache__/wheel.cpython-310.pyc
o
@%Ne�
� @ sJ d Z ddlZddlmZmZmZ ddlmZ ddlm Z G dd� d�Z
dS )z`Represents a wheel file and provides access to the various parts of the
name that have meaning.
� N)�Dict�Iterable�List)�Tag)�InvalidWheelFilenamec @ s� e Zd ZdZe�dej�Zdeddfdd�Z de
e fdd �Zd
e
e de
fdd�Zd
e
e d
eee
f de
fdd�Zd
ee defdd�ZdS )�WheelzA wheel filez�^(?P<namever>(?P<name>[^\s-]+?)-(?P<ver>[^\s-]*?))
((-(?P<build>\d[^-]*?))?-(?P<pyver>[^\s-]+?)-(?P<abi>[^\s-]+?)-(?P<plat>[^\s-]+?)
\.whl|\.dist-info)$�filename�returnNc s� � j �|�}|st|� d���|� _|�d��dd�� _|�d��dd�� _|�d�� _|�d�� d�� _
|�d �� d�� _|�d
�� d�� _� fdd�� j
D �� _
d
S )zX
:raises InvalidWheelFilename: when the filename is invalid for a wheel
z is not a valid wheel filename.�name�_�-�ver�build�pyver�.�abi�platc s0 h | ]}� j D ]}� jD ]}t|||��qqqS � )�abis�platsr )�.0�x�y�z��selfr �</usr/lib/python3/dist-packages/pip/_internal/models/wheel.py� <setcomp>( s ��
�z!Wheel.__init__.<locals>.<setcomp>N)�
wheel_file_re�matchr r �group�replacer
�version� build_tag�split�
pyversionsr r � file_tags)r r �
wheel_infor r r �__init__ s
�zWheel.__init__c C s t dd� | jD ��S )z4Return the wheel's tags as a sorted list of strings.c s s � | ]}t |�V qd S �N)�str�r �tagr r r � <genexpr>. s � z0Wheel.get_formatted_file_tags.<locals>.<genexpr>)�sortedr&