§
    !à2ih  ã                  ól   — d Z ddlmZ ddlmZ ddlmZ ddlmZ	 ddlm
Z
 ddlmZ  G d„ d¦  «        Zd	S )
z`Represents a wheel file and provides access to the various parts of the
name that have meaning.
é    )Úannotations)ÚIterable)ÚTag)ÚInvalidWheelFilename)Úparse_wheel_filenamec                  ó:   — e Zd ZdZdd„Zdd„Zdd„Zdd„Zdd„ZdS )ÚWheelzA wheel fileÚfilenameÚstrÚreturnÚNonec                óä   — || _         	 t          |¦  «        }n-# t          $ r }t          |j        d         ¦  «        d ‚d }~ww xY w|\  | _        }| _        | _        t          |¦  «        | _	        d S )Nr   )
r
   r   Ú_PackagingInvalidWheelFilenamer   ÚargsÚnameÚ	build_tagÚ	file_tagsr   Úversion)Úselfr
   Ú
wheel_infoÚeÚ_versions        úY/var/www/html/pixcura-vrs/venv/lib/python3.11/site-packages/pip/_internal/models/wheel.pyÚ__init__zWheel.__init__   sz   € Ø ˆŒð	<Ý-¨hÑ7Ô7ˆJˆJøÝ-ð 	<ð 	<ð 	<Ý& q¤v¨a¤yÑ1Ô1°tÐ;øøøøð	<øøøð ?IÑ;ˆŒ	8˜Tœ^¨T¬^Ý˜8‘}”}ˆŒˆˆs   ‰ ™
A£>¾Aú	list[str]c                ó>   — t          d„ | j        D ¦   «         ¦  «        S )z4Return the wheel's tags as a sorted list of strings.c              3  ó4   K  — | ]}t          |¦  «        V — Œd S ©N)r   )Ú.0Útags     r   ú	<genexpr>z0Wheel.get_formatted_file_tags.<locals>.<genexpr>"   s(   è è € Ð9Ð9 3•c˜#‘h”hÐ9Ð9Ð9Ð9Ð9Ð9ó    )Úsortedr   )r   s    r   Úget_formatted_file_tagszWheel.get_formatted_file_tags    s!   € åÐ9Ð9¨$¬.Ð9Ñ9Ô9Ñ9Ô9Ð9r"   Útagsú	list[Tag]Úintc                óŽ   ‡ — 	 t          ˆ fd„t          |¦  «        D ¦   «         ¦  «        S # t          $ r t          ¦   «         ‚w xY w)aÜ  Return the lowest index that one of the wheel's file_tag combinations
        achieves in the given list of supported tags.

        For example, if there are 8 supported tags and one of the file tags
        is first in the list, then return 0.

        :param tags: the PEP 425 tags to check the wheel against, in order
            with most preferred first.

        :raises ValueError: If none of the wheel's file tags match one of
            the supported tags.
        c              3  ó4   •K  — | ]\  }}|‰j         v ¯|V — Œd S r   )r   )r   ÚiÚtr   s      €r   r!   z*Wheel.support_index_min.<locals>.<genexpr>2   s3   øè è € ÐMÐM™d˜a ¸¸d¼nÐ9LÐ9L˜Ð9LÐ9LÐ9LÐ9LÐMÐMr"   )ÚnextÚ	enumerateÚStopIterationÚ
ValueError©r   r%   s   ` r   Úsupport_index_minzWheel.support_index_min$   sV   ø€ ð	ÝÐMÐMÐMÐM¥i°¡o¤oÐMÑMÔMÑMÔMÐMøÝð 	ð 	ð 	Ý‘,”,Ðð	øøøs	   ƒ'+ «AÚtag_to_priorityúdict[Tag, int]c                óD   ‡— t          ˆfd„| j        D ¦   «         ¦  «        S )a¨  Return the priority of the most preferred tag that one of the wheel's file
        tag combinations achieves in the given list of supported tags using the given
        tag_to_priority mapping, where lower priorities are more-preferred.

        This is used in place of support_index_min in some cases in order to avoid
        an expensive linear scan of a large list of tags.

        :param tags: the PEP 425 tags to check the wheel against.
        :param tag_to_priority: a mapping from tag to priority of that tag, where
            lower is more preferred.

        :raises ValueError: If none of the wheel's file tags match one of
            the supported tags.
        c              3  ó0   •K  — | ]}|‰v ¯‰|         V — Œd S r   © )r   r    r2   s     €r   r!   z0Wheel.find_most_preferred_tag.<locals>.<genexpr>G   s;   øè è € ð 
ð 
Ø%(¸cÀ_Ð>TÐ>TˆO˜CÔ Ð>TÐ>TÐ>TÐ>Tð
ð 
r"   )Úminr   )r   r%   r2   s     `r   Úfind_most_preferred_tagzWheel.find_most_preferred_tag6   s?   ø€ õ" ð 
ð 
ð 
ð 
Ø,0¬Nð
ñ 
ô 
ñ 
ô 
ð 	
r"   úIterable[Tag]Úboolc                ó8   — | j                              |¦  «         S )zŽReturn whether the wheel is compatible with one of the given tags.

        :param tags: the PEP 425 tags to check the wheel against.
        )r   Ú
isdisjointr0   s     r   Ú	supportedzWheel.supportedK   s   € ð
 ”>×,Ò,¨TÑ2Ô2Ð2Ð2r"   N)r
   r   r   r   )r   r   )r%   r&   r   r'   )r%   r&   r2   r3   r   r'   )r%   r9   r   r:   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r$   r1   r8   r=   r6   r"   r   r	   r	      s~   € € € € € ØÐð	%ð 	%ð 	%ð 	%ð:ð :ð :ð :ðð ð ð ð$
ð 
ð 
ð 
ð*3ð 3ð 3ð 3ð 3ð 3r"   r	   N)rA   Ú
__future__r   Úcollections.abcr   Úpip._vendor.packaging.tagsr   Úpip._vendor.packaging.utilsr   r   r   Úpip._internal.exceptionsr	   r6   r"   r   ú<module>rG      s½   ððð ð #Ð "Ð "Ð "Ð "Ð "à $Ð $Ð $Ð $Ð $Ð $à *Ð *Ð *Ð *Ð *Ð *ðð ð ð ð ð ð =Ð <Ð <Ð <Ð <Ð <à 9Ð 9Ð 9Ð 9Ð 9Ð 9ð>3ð >3ð >3ð >3ð >3ñ >3ô >3ð >3ð >3ð >3r"   