+
    Îi                       ^ RI Ht ^ RIt^ RIHtHtHtHt ^RIH	t	H
t
 ^RIHtHtHt ]]R,          ]]]3,          3,          t]! R]4      t ! R R]4      t ! R	 R
]4      t ! R R]4      t]P.                  ! R]P0                  4      t]P.                  ! R4      t]P.                  ! R4      tRR/R R lltR R ltRR/R R lltR R ltR R lt R# )    )annotationsN)NewTypeTupleUnioncast)Tag	parse_tag)InvalidVersionVersion_TrimmedReleaseNormalizedNamec                      ] tR t^tRtRtR# )InvalidNamezO
An invalid distribution name; users should refer to the packaging user guide.
 N__name__
__module____qualname____firstlineno____doc____static_attributes__r       j/Users/ahmad/.openclaw/workspace/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/utils.pyr   r          r   r   c                      ] tR t^tRtRtR# )InvalidWheelFilenamezE
An invalid wheel filename was found, users should refer to PEP 427.
r   Nr   r   r   r   r   r      r   r   r   c                      ] tR t^tRtRtR# )InvalidSdistFilenamezV
An invalid sdist filename was found, users should refer to the packaging user guide.
r   Nr   r   r   r   r   r      r   r   r   z%[A-Z0-9]|[A-Z0-9][A-Z0-9._-]*[A-Z0-9]z+[a-z0-9]|[a-z0-9]([a-z0-9-](?!--))*[a-z0-9]z	(\d+)(.*)validateFc               $    V ^8  d   QhRRRRRR/# )   namestrr   boolreturnr   r   )formats   "r   __annotate__r'   *   s!     
) 
)C 
)d 
)~ 
)r   c                  V'       d+   \         P                  V 4      '       g   \        R V : 24      hV P                  4       P	                  RR4      P	                  RR4      pRV9   d   VP	                  RR4      pK  \        RV4      # )zname is invalid: _-.z--r   )_validate_regex	fullmatchr   lowerreplacer   )r"   r   values   &$ r   canonicalize_namer1   *   st    11$77-dX677 JJL  c*223<E
%-dC( %((r   c                    V ^8  d   QhRRRR/# )r!   r"   r#   r%   r$   r   )r&   s   "r   r'   r'   7   s     9 9S 9T 9r   c                0    \         P                  V 4      R J# )N)_normalized_regexr-   )r"   s   &r   is_normalized_namer5   7   s    &&t,D88r   strip_trailing_zeroTc               $    V ^8  d   QhRRRRRR/# )r!   versionzVersion | strr6   r$   r%   r#   r   )r&   s   "r   r'   r'   ;   s)     M MM48MMr   c                   \        V \        4      '       d    \        V 4      p \        V'       d   \	        V 4      4      # T 4      #   \         d    \        T 4      u # i ; i)a  
Return a canonical form of a version as a string.

>>> canonicalize_version('1.0.1')
'1.0.1'

Per PEP 625, versions may have multiple canonical forms, differing
only by trailing zeros.

>>> canonicalize_version('1.0.0')
'1'
>>> canonicalize_version('1.0.0', strip_trailing_zero=False)
'1.0.0'

Invalid versions are returned unaltered.

>>> canonicalize_version('foo bar baz')
'foo bar baz'
)
isinstancer#   r   r
   r   )r8   r6   s   &$r   canonicalize_versionr;   ;   sX    , '3	 g&G +>w'LLGLL  	 w<	 s   A AAc                    V ^8  d   QhRRRR/# )r!   filenamer#   r%   z8tuple[NormalizedName, Version, BuildTag, frozenset[Tag]]r   )r&   s   "r   r'   r'   Y   s     (( ((((=((r   c                   V P                  R 4      '       g   \        RV : 24      hV RR p V P                  R4      pVR9  d   \        RV : 24      hV P                  RV^,
          4      pV^ ,          pRV9   g)   \        P
                  ! RV\        P                  4      f   \        RV : 24      h\        V4      p \        V^,          4      pT^8X  dk   T^,          p\        P                  T4      pTf   \        R	T R
T : 24      h\        R\        TP                  ^4      4      TP                  ^4      34      p	MRp	\        TR,          4      p
YEY3#   \         d   p\        RT : 24      ThRp?ii ; i)z.whlz3Invalid wheel filename (extension must be '.whl'): Nr*   z0Invalid wheel filename (wrong number of parts): __z^[\w\d._]*$zInvalid project name: z*Invalid wheel filename (invalid version): zInvalid build number: z in BuildTag)      r   )endswithr   countsplitrematchUNICODEr1   r   r
   _build_tag_regexr   intgroupr	   )r=   dashesparts	name_partr"   r8   e
build_partbuild_matchbuildtagss   &          r   parse_wheel_filenamerV   Y   s    V$$"A(N
 	
 }H^^C FV">xlK
 	
 NN3
+EaIyBHH^Y

KS"%;H<#HIIY'D%(# {1X
&,,Z8&(DE  Z#k&7&7&:";[=N=Nq=Q!RSU2YD5''!  "8E
	s   ?E E:%E55E:c                    V ^8  d   QhRRRR/# )r!   r=   r#   r%   ztuple[NormalizedName, Version]r   )r&   s   "r   r'   r'      s      3 +I r   c                   V P                  R 4      '       d   V R\        R 4      )  pM6V P                  R4      '       d   V R\        R4      )  pM\        RV : 24      hVP                  R4      w  r#pV'       g   \        RV : 24      h\	        V4      p \        V4      pWV3#   \         d   p\        RT : 24      ThRp?ii ; i)z.tar.gzNz.zipz@Invalid sdist filename (extension must be '.tar.gz' or '.zip'): r*   zInvalid sdist filename: z*Invalid sdist filename (invalid version): )rE   lenr   
rpartitionr1   r   r
   )r=   	file_stemrP   sepversion_partr"   r8   rQ   s   &       r   parse_sdist_filenamer^      s    ##.I/				6	"	"^F|,	"|
 	
 $-#7#7#< IL"%=h\#JKKY'D,' ?  "8E
	s   B# #C.B>>Cr   )!
__future__r   rH   typingr   r   r   r   rU   r   r	   r8   r
   r   r   rL   r#   r@   r   
ValueErrorr   r   r   compile
IGNORECASEr,   r4   rK   r1   r5   r;   rV   r^   r   r   r   <module>rd      s   
 # 	 . .   = =rE#s(O+,)3/* : :  **Er}}UJJMN ::l+ 
)U 
)9M;?M<((Vr   