+
    Bi                    ~    R t ^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIH	t	H
t
 ^ RIHt ^ RIHt ^ RIHt  ! R R	4      tR# )
z`Represents a wheel file and provides access to the various parts of the
name that have meaning.
)annotationsN)IterableTag)BuildTagparse_wheel_filename)InvalidWheelFilename)
deprecatedc                      ] tR t^tRt]P                  ! R]P                  4      tR R lt	]
R R l4       tR R ltR	 R
 ltR R ltR R ltRtR# )Wheelz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)$c                    V ^8  d   QhRRRR/# )   filenamestrreturnNone )formats   "?/usr/lib/python3.14/site-packages/pip/_internal/models/wheel.py__annotate__Wheel.__annotate__   s     - - - -    c                	  aa Wn         V  R V n         \        V4      pVw  V n        q0n        V n        \        V4      V n        R #   \         Ed;   pT P                  P                  T4      pT'       g   \        TP                  ^ ,          4      R h\        RT: RTP                  ^ ,           R2RRRR7       TP                  R4      P                  R	R
4      T n        TP                  R4      P                  R	R
4      T n        TP                  R4      P                  R4      pTP                  R4      P                  R4      oTP                  R4      P                  R4      o\!        TT3R lT 4       4      T n         R p?R # R p?ii ; i)NzWheel filename zU is not correctly normalised. Future versions of pip will raise the following error:
z

zvto rename the wheel to use a correctly normalised name (this may require updating the version in the project metadata)z25.3i2  )reasonreplacementgone_inissuename_-verpyver.abiplatc           	   3  b   <"   T F$  pS F  pS F  p\        WVR 7      x  K  	  K  	  K&  	  R# 5i))interpreterr#   platformNr   ).0pyr#   r$   abisplatss   &   r   	<genexpr>!Wheel.__init__.<locals>.<genexpr>F   s>      '$BC!D d;; " < <$s   ,/)r   
_build_tagr   r   	file_tagsr   version_PackagingInvalidWheelFilenamelegacy_wheel_file_rematchr   argsr	   groupreplacesplit	frozenset)	selfr   
wheel_info_versionelegacy_wheel_info
pyversionsr*   r+   s	   &&     @@r   __init__Wheel.__init__   sc     	+/%	-h7JCM@DIx$.x=DL- !	 $ 9 9 ? ? I$*166!954?%h\ 2Ovvayk'
,  *//7??SIDI,2259AA#sKDL +009??DJ$**5177<D%++F399#>E& '$' DNN9!	s   0A FD/FFc                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r   N   s      8 r   c                	t   V P                   e   V P                   # V P                  P                  V P                  4      pVf   Q R4       hVP	                  R4      p\
        P                  ! RV4      pVf   Q R4       hVP                  4       p\        V^ ,          4      V^,          3V n         V P                   # )Nz!guaranteed by filename validationbuildz^(\d+)(.*)$)r.   r2   r3   r   r5   regroupsint)r9   r=   	build_tagr3   build_tag_groupss   &    r   rG   Wheel.build_tagM   s    ??&??" !55;;DMMJ ,Q.QQ,%++G4	3 E"EE  <<>/235Ea5HIr   c                   V ^8  d   QhRR/# )r   r   z	list[str]r   )r   s   "r   r   r   ]   s     : : :r   c                :    \        R V P                   4       4      # )z4Return the wheel's tags as a sorted list of strings.c              3  8   "   T F  p\        V4      x  K  	  R # 5iN)r   )r(   tags   & r   r,   0Wheel.get_formatted_file_tags.<locals>.<genexpr>_   s     9.3c#hh.s   )sortedr/   )r9   s   &r   get_formatted_file_tagsWheel.get_formatted_file_tags]   s    9$..999r   c                    V ^8  d   QhRRRR/# )r   tags	list[Tag]r   rF   r   )r   s   "r   r   r   a   s      i C r   c                t   a   \        V 3R l\        V4       4       4      #   \         d    \        4       hi ; i)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  R   <"   T F  w  rVSP                   9   g   K  Vx  K  	  R # 5irM   )r/   )r(   itr9   s   &  r   r,   *Wheel.support_index_min.<locals>.<genexpr>o   s      Modadnn9Los   '
')next	enumerateStopIteration
ValueErrorr9   rT   s   f&r   support_index_minWheel.support_index_mina   s4    	MioMMM 	,	s   ! 7c               $    V ^8  d   QhRRRRRR/# )r   rT   rU   tag_to_priorityzdict[Tag, int]r   rF   r   )r   s   "r   r   r   s   s$     
 

0>
	
r   c                B   a \        V3R lV P                   4       4      # )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  F   <"   T F  qS9   g   K  SV,          x  K  	  R # 5irM   r   )r(   rN   rc   s   & r   r,   0Wheel.find_most_preferred_tag.<locals>.<genexpr>   s$      
,:S_>T OC  Ns   !!)minr/   )r9   rT   rc   s   &&fr   find_most_preferred_tagWheel.find_most_preferred_tags   s#    "  
,0NN
 
 	
r   c                    V ^8  d   QhRRRR/# )r   rT   zIterable[Tag]r   boolr   )r   s   "r   r   r      s     3 3m 3 3r   c                B    V P                   P                  V4      '       * # )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.supported   s    
 >>,,T222r   )r.   r/   r   r   r0   N)__name__
__module____qualname____firstlineno____doc__rD   compileVERBOSEr2   r?   propertyrG   rQ   r`   rh   rn   __static_attributes__r   r   r   r   r      sU    ::	 	

	-^  :$
*3 3r   r   )rt   
__future__r   rD   collections.abcr   pip._vendor.packaging.tagsr   pip._vendor.packaging.utilsr   r   r   r1   pip._internal.exceptionspip._internal.utils.deprecationr	   r   r   r   r   <module>r      s4    # 	 $ * F : 6y3 y3r   