+
     h  c                   s~    R t ^ RIt^ RIHtHtHt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.
N)DictIterableListOptionalTag)BuildTagparse_wheel_filename)InvalidWheelFilename)
deprecatedc                   s   a  ] tR t^t o Rt]P                  ! R]P                  4      tV 3R lR lt	]
V 3R lR l4       tV 3R lR ltV 3R	 lR
 ltV 3R lR ltV 3R lR ltRtV 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                s$   < V ^8  d   QhRS[ RR/# )   filenamereturnNstrZformat__classdict__   "?/usr/lib/python3.14/site-packages/pip/_internal/models/wheel.py__annotate__Wheel.__annotate__   s     - - - -    c                s  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  )ZreasonZreplacementZgone_inZissuenameZ_Z-ZverZpyverZ.abiplatc           	   3   sb   <"   T F$  pS F  pS F  p\        WVR 7      x  K  	  K  	  K&  	  R# 5i))Zinterpreterr   ZplatformNr   ).0Zpyr   r   abisplatss   &   r   	<genexpr>Z!Wheel.__init__.<locals>.<genexpr>D   s>      '$BC!D d;; " < <$s   ,/)r   
_build_tagr   r   	file_tagsr   version_PackagingInvalidWheelFilenamelegacy_wheel_file_rematchr   Zargsr	   groupZreplaceZsplitZ	frozenset)	selfr   Z
wheel_infoZ_versionZelegacy_wheel_infoZ
pyversionsr   r   s	   &&     @@r   __init__ZWheel.__init__   sc     	.2%	-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                s    < V ^8  d   QhRS[ /# r   r   )r   r   r   r   r   r   L   s      8 r   c                st   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 validationZbuildz^(\d+)(.*)$)r   r"   r#   r   r$   reZgroupsint)r%   r&   	build_tagr#   Zbuild_tag_groupss   &    r   r+   ZWheel.build_tagK   s    ??&??" !55;;DMMJ ,Q.QQ,%++G4	3 E"EE  <<>/235Ea5HIr   c                s0   < V ^8  d   QhRS[ S[,          /# r(   )r   r   r   r   r   r   r   [   s     : :c :r   c                s:    \        R V P                   4       4      # )z4Return the wheel's tags as a sorted list of strings.c              3   s8   "   T F  p\        V4      x  K  	  R # 5iNr   )r   tags   & r   r   Z0Wheel.get_formatted_file_tags.<locals>.<genexpr>]   s     9.3c#hh.s   )Zsortedr   )r%   s   &r   get_formatted_file_tagsZWheel.get_formatted_file_tags[   s    9$..999r   c                6   < V ^8  d   QhRS[ S[,          RS[/# r   tagsr   )r   r   r*   r   r   r   r   r   _   s      d3i C r   c                st   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   sR   <"   T F  w  rVSP                   9   g   K  Vx  K  	  R # 5ir,   )r   )r   ZiZtr%   s   &  r   r   Z*Wheel.support_index_min.<locals>.<genexpr>m   s      Modadnn9Los   '
')ZnextZ	enumerateZStopIterationZ
ValueErrorr%   r1   s   f&r   support_index_minZWheel.support_index_min_   s4    	MioMMM 	,	s   ! 7c                sR   < V ^8  d   QhRS[ S[,          RS[S[S[3,          RS[/# )r   r1   tag_to_priorityr   )r   r   r    r*   r   r   r   r   r   q   s1     
 
I
04S#X
	
r   c                sB   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   sF   <"   T F  qS9   g   K  SV,          x  K  	  R # 5ir,    )r   r-   r4   s   & r   r   Z0Wheel.find_most_preferred_tag.<locals>.<genexpr>   s$      
,:S_>T OC  Ns   !!)Zminr   )r%   r1   r4   s   &&fr   find_most_preferred_tagZWheel.find_most_preferred_tagq   s#    "  
,0NN
 
 	
r   c                r/   r0   )r   r   Zboolr   r   r   r   r      s     3 3hsm 3 3r   c                sB    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   Z
isdisjointr2   s   &&r   	supportedZWheel.supported   s    
 >>,,T222r   )r   r   r   r   r    N)Z__name__Z
__module__Z__qualname__Z__firstlineno____doc__r)   ZcompileZVERBOSEr"   r'   Zpropertyr+   r.   r3   r6   r7   Z__static_attributes__Z__classdictcell__)r   s   @r   r
   r
      sl     ::	 	

	- -^  : : $
 
*3 3r   r
   )r8   r)   Ztypingr    r   r   r   Zpip._vendor.packaging.tagsr   Zpip._vendor.packaging.utilsr   r   r   r!   Zpip._internal.exceptionsZpip._internal.utils.deprecationr	   r
   r5   r   r   <module>r9      s4    
 1 1 * F : 6y3 y3r   