JFIF$        dd7 

Viewing File: /usr/lib/python3.9/site-packages/pip/_internal/models/__pycache__/wheel.cpython-39.pyc

a

[��f�
�@sJdZddlZddlmZmZmZddlmZddlm	Z	Gdd�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�eZdZdZe�dej�Zedd�dd�Z	e
ed�dd	�Ze
ee
d
�dd�Ze
eeee
fe
d
�dd�Zeeed
�dd�ZdS)�WheelzA wheel filez�^(?P<namever>(?P<name>.+?)-(?P<ver>.*?))
        ((-(?P<build>\d[^-]*?))?-(?P<pyver>.+?)-(?P<abi>.+?)-(?P<plat>.+?)
        \.whl|\.dist-info)$N)�filename�returncs��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�_�-ZverZbuildZpyver�.ZabiZplatcs0h|](}�jD]}�jD]}t|||��qqqS�)�abis�platsr)�.0�x�y�z��selfr�>/usr/lib/python3.9/site-packages/pip/_internal/models/wheel.py�	<setcomp>(sz!Wheel.__init__.<locals>.<setcomp>N)�
wheel_file_re�matchrr�group�replacer
�versionZ	build_tag�splitZ
pyversionsrr�	file_tags)rrZ
wheel_inforrr�__init__s
�zWheel.__init__)r	cCstdd�|jD��S)z4Return the wheel's tags as a sorted list of strings.css|]}t|�VqdS�N)�str�r�tagrrr�	<genexpr>.�z0Wheel.get_formatted_file_tags.<locals>.<genexpr>)�sortedrrrrr�get_formatted_file_tags,szWheel.get_formatted_file_tags)�tagsr	cst�fdd�|jD��S)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.
        c3s |]}|�vr��|�VqdSr!)�indexr#�r)rrr%=r&z*Wheel.support_index_min.<locals>.<genexpr>��minr�rr)rr+r�support_index_min0s
zWheel.support_index_min)r)�tag_to_priorityr	cst�fdd�|jD��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.
        c3s|]}|�vr�|VqdSr!rr#�r0rrr%Psz0Wheel.find_most_preferred_tag.<locals>.<genexpr>r,)rr)r0rr1r�find_most_preferred_tag?s�zWheel.find_most_preferred_tagcCs|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.rrr�	supportedTszWheel.supported)�__name__�
__module__�__qualname__�__doc__�re�compile�VERBOSErr"r rr(r�intr/rr2r�boolr4rrrrrs��r)r8r9�typingrrrZpip._vendor.packaging.tagsrZpip._internal.exceptionsrrrrrr�<module>s

Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg