
    vKg                     P    S r SSKrSSKJrJrJr  SSKJr  SSKJ	r	   " S S5      r
g)z`Represents a wheel file and provides access to the various parts of the
name that have meaning.
    N)DictIterableList)Tag)InvalidWheelFilenamec                       \ rS rSrSr\R                  " S\R                  5      rS\	SS4S jr
S\\	   4S jrS	\\   S\4S
 jrS	\\   S\\\4   S\4S jrS	\\   S\4S jrSrg)Wheel   zA 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                    U R                   R                  U5      nU(       d  [        U S35      eXl        UR	                  S5      R                  SS5      U l        UR	                  S5      R                  SS5      U l        UR	                  S5      U l        UR	                  S5      R                  S5      U l
        UR	                  S	5      R                  S5      U l        UR	                  S
5      R                  S5      U l        U R                   VVVs1 sH3  o0R                   H!  o@R                   H  n[        X4U5      iM     M#     M5     snnnU l        gs  snnnf )zH
:raises InvalidWheelFilename: when the filename is invalid for a wheel
z is not a valid wheel filename.name_-verbuildpyver.abiplatN)wheel_file_rematchr   r   groupreplacer   version	build_tagsplit
pyversionsabisplatsr   	file_tags)selfr   
wheel_infoxyzs         Z/var/www/highfloat_scraper/venv/lib/python3.13/site-packages/pip/_internal/models/wheel.py__init__Wheel.__init__   s    ''--h7
&(3R'STT $$V,44S#>	 "''.66sC@#))'2$**7399#>$$U+11#6	%%f-33C8
 #'//
"1Q99ajjCaLjL9L/
 
s   9Ec                 :    [        S U R                   5       5      $ )z4Return the wheel's tags as a sorted list of strings.c              3   6   #    U H  n[        U5      v   M     g 7fN)str).0tags     r'   	<genexpr>0Wheel.get_formatted_file_tags.<locals>.<genexpr>/   s     9.3c#hh.s   )sortedr!   )r"   s    r'   get_formatted_file_tagsWheel.get_formatted_file_tags-   s    9$..999    tagsc                 r   ^   [        U 4S j[        U5       5       5      $ ! [         a    [        5       ef = f)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   N   >#    U H  u  pUTR                   ;   d  M  Uv   M     g 7fr,   )r!   )r.   itr"   s      r'   r0   *Wheel.support_index_min.<locals>.<genexpr>?   s      Modadnn9Los   %	%)next	enumerateStopIteration
ValueErrorr"   r6   s   ` r'   support_index_minWheel.support_index_min1   s4    	MioMMM 	,	s   ! 6tag_to_priorityc                 B   ^ [        U4S jU R                   5       5      $ )aX  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   :   >#    U H  oT;   d  M
  TU   v   M     g 7fr,    )r.   r/   rC   s     r'   r0   0Wheel.find_most_preferred_tag.<locals>.<genexpr>T   s!      
,:S_>T OC Ns   )minr!   )r"   r6   rC   s     `r'   find_most_preferred_tagWheel.find_most_preferred_tagC   s#    "  
,0NN
 
 	
r5   c                 B    U R                   R                  U5      (       + $ )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'   	supportedWheel.supportedX   s    
 >>,,T222r5   )r   r   r!   r   r   r    r   r   )__name__
__module____qualname____firstlineno____doc__recompileVERBOSEr   r-   r(   r   r3   r   intrA   r   rI   r   boolrM   __static_attributes__rF   r5   r'   r	   r	      s    JJ	 	

	M
 
 
,:c :d3i C $
I
04S#X
	
*3hsm 3 3r5   r	   )rS   rT   typingr   r   r   pip._vendor.packaging.tagsr   pip._internal.exceptionsr   r	   rF   r5   r'   <module>r]      s'    
 ' ' * 9P3 P3r5   