Ë
    »ÿæih  ã                  ód   — 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y	)
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                  óD   — e Zd ZdZdd„Zd	d„Zd
d„Z	 	 	 	 	 	 dd„Zdd„Zy)ÚWheelzA wheel filec                óÊ   — || _         	 t        |«      }|\  | _        }| _        | _        t        |«      | _	        y # t        $ r}t        |j                  d   «      d ‚d }~ww xY w)Nr   )
Úfilenamer   Ú_PackagingInvalidWheelFilenamer   ÚargsÚnameÚ	build_tagÚ	file_tagsÚstrÚversion)Úselfr   Ú
wheel_infoÚeÚ_versions        úo/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/pip/_internal/models/wheel.pyÚ__init__zWheel.__init__   sa   € Ø ˆŒð	<Ü-¨hÓ7ˆJð ?IÑ;ˆŒ	�8˜Tœ^¨T¬^Ü˜8“}ˆ�øô	 .ò 	<Ü& q§v¡v¨a¡yÓ1°tÐ;ûð	<ús   ‰; »	A"ÁAÁA"c                ó:   — t        d„ | j                  D «       «      S )z4Return the wheel's tags as a sorted list of strings.c              3  ó2   K  — | ]  }t        |«      –— Œ y ­w©N)r   )Ú.0Útags     r   Ú	<genexpr>z0Wheel.get_formatted_file_tags.<locals>.<genexpr>"   s   è ø€ Ð9©. 3”c˜#—h©.ùs   ‚)Úsortedr   )r   s    r   Úget_formatted_file_tagszWheel.get_formatted_file_tags    s   € äÑ9¨$¯.ª.Ó9Ó9Ð9ó    c                ón   ‡ — 	 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  óF   •K  — | ]  \  }}|‰j                   v sŒ|–— Œ y ­wr   )r   )r   ÚiÚtr   s      €r   r   z*Wheel.support_index_min.<locals>.<genexpr>2   s!   øè ø€ ÐM¡o™d˜a ¸¸d¿n¹nÒ9Lœ¡oùs   ƒ!š!)ÚnextÚ	enumerateÚStopIterationÚ
ValueError©r   Útagss   ` r   Úsupport_index_minzWheel.support_index_min$   s4   ø€ ð	ÜÓM¤i°¤oÓMÓMÐMøÜò 	Ü“,Ðð	ús   ƒ   4c                ó@   ‡— 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  ó2   •K  — | ]  }|‰v sŒ‰|   –— Œ y ­wr   © )r   r   Útag_to_prioritys     €r   r   z0Wheel.find_most_preferred_tag.<locals>.<genexpr>G   s!   øè ø€ ð 
Ù,: S¸cÀ_Ò>TˆO˜CÕ ©Nùs   ƒ	�
)Úminr   )r   r+   r0   s     `r   Úfind_most_preferred_tagzWheel.find_most_preferred_tag6   s#   ø€ ô" ó 
Ø,0¯NªNó
ó 
ð 	
r!   c                ó:   — | j                   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   Ú
isdisjointr*   s     r   Ú	supportedzWheel.supportedK   s   € ð
 —>‘>×,Ñ,¨TÓ2Ð2Ð2r!   N)r   r   ÚreturnÚNone)r6   z	list[str])r+   ú	list[Tag]r6   Úint)r+   r8   r0   zdict[Tag, int]r6   r9   )r+   zIterable[Tag]r6   Úbool)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r    r,   r2   r5   r/   r!   r   r	   r	      s6   „ Ùó	%ó:óð$
Øð
Ø0>ð
à	ó
ô*3r!   r	   N)r>   Ú
__future__r   Úcollections.abcr   Úpip._vendor.packaging.tagsr   Úpip._vendor.packaging.utilsr   r   r   Úpip._internal.exceptionsr	   r/   r!   r   Ú<module>rD      s,   ðñõ #å $å *õõ =å 9÷>3ò >3r!   