
    g                     t    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K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)InvalidWheelFilename)parse_wheel_filename)
deprecatedc                       \ 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                 h   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      nSU;   a   [        U5        UR                  SS5      nX0l        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 H5  oPR                    H"  o`R                     H  n[#        XVU5      iM     M$     M7     snnnU l        g! [         a,  n[        SU< SUR                  S    S	3S
SSS9   SnAGN%SnAff = f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_-verzWheel filename zU is not correctly normalised. Future versions of pip will raise the following error:
r   z

zvto rename the wheel to use a correctly normalised name (this may require updating the version in the project metadata)z25.1i2  )reasonreplacementgone_inissueNbuildpyver.abiplat)wheel_file_rematchr   r   groupreplacer   r   PackagingInvalidWheelNamer	   argsversion	build_tagsplit
pyversionsabisplatsr   	file_tags)selfr   
wheel_info_versionexyzs           b/Users/Alptekin/Desktop/izin_takip/venv/lib/python3.13/site-packages/pip/_internal/models/wheel.py__init__Wheel.__init__   s    ''--h7
&(3R'STT $$V,44S#>	##E*(?$X."  ''S1H#))'2$**7399#>$$U+11#6	%%f-33C8
 #'//
"1Q99ajjCaLjL9L/
3 - )( 6S66!9+T+
0 # 2
s   5E4 -<F-4
F*>!F%%F*c                 :    [        S U R                   5       5      $ )z4Return the wheel's tags as a sorted list of strings.c              3   8   #    U  H  n[        U5      v   M     g 7fN)str).0tags     r1   	<genexpr>0Wheel.get_formatted_file_tags.<locals>.<genexpr>H   s     9.3c#hh.s   )sortedr)   )r*   s    r1   get_formatted_file_tagsWheel.get_formatted_file_tagsF   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   P   >#    U  H  u  pUTR                   ;   d  M  Uv   M     g 7fr6   )r)   )r8   itr*   s      r1   r:   *Wheel.support_index_min.<locals>.<genexpr>X   s      Modadnn9Los   &	&)next	enumerateStopIteration
ValueErrorr*   r@   s   ` r1   support_index_minWheel.support_index_minJ   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r6    )r8   r9   rM   s     r1   r:   0Wheel.find_most_preferred_tag.<locals>.<genexpr>m   s!      
,:S_>T OC Ns   	)minr)   )r*   r@   rM   s     `r1   find_most_preferred_tagWheel.find_most_preferred_tag\   s#    "  
,0NN
 
 	
r?   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)   
isdisjointrJ   s     r1   	supportedWheel.supportedq   s    
 >>,,T222r?   )r'   r$   r)   r   r   r(   r&   r#   )__name__
__module____qualname____firstlineno____doc__recompileVERBOSEr   r7   r2   r   r=   r   intrK   r   rS   r   boolrW   __static_attributes__rP   r?   r1   r   r      s    JJ	 	

	M(
 (
 (
T:c :d3i C $
I
04S#X
	
*3hsm 3 3r?   r   )r]   r^   typingr   r   r   pip._vendor.packaging.tagsr   pip._vendor.packaging.utilsr   r!   r   pip._internal.exceptionspip._internal.utils.deprecationr	   r   rP   r?   r1   <module>ri      s4    
 ' ' * = 9 6d3 d3r?   