+
    ÎiZ                       R t ^ RIHt ^ RIt^ RIt^ RIt^ RIHtHtHtH	t	H
t
HtHtHt ^RIHtHtHtHt ]P&                  '       d	   ^ RIHtHt ]P.                  R@8  d   ^ RIHt M']P&                  '       d   ^ RIHt M^ RIt^ RItR R ltR	R
RRRRRRRRRRRR/t. RAOt]]]]3,          R3,          t ]]]]]]3,          3,          t!]]]]]]]3,          ]]]]]3,          3,          3,          R3,          3,          t"]]]]R3,          ]!]!]!]"3,          t#]]#]#.]$3,          t% ! R R]RR7      t&R R lt' ! R R](4      t) ! R R4      t*R t+]+PY                  R!R"4      PY                  R#R$4      t-]P\                  P^                  R%8X  d   ]P.                  RB8  g>   ]P\                  P^                  R&8X  d   ]P.                  RC8  g   ]P.                  RD8  d   ]-M]+t0 ]Pb                  ! R']Pd                  4      t3R( R) lt4R* R+ lt5R, R- lt6R. R/ lt7R0 R1 lt8R2 R3 lt9 ! R4 R5]	4      t: ! R6 R]*4      t; ! R7 R8];4      t<R9 R: lt=]Pb                  ! R;4      t>R< R= lt?R> R? lt@R# )EzN
.. testsetup::

    from pip._vendor.packaging.version import parse, Version
)annotationsN)AnyCallableLiteral
NamedTupleSupportsIntTuple	TypedDictUnion)InfinityInfinityTypeNegativeInfinityNegativeInfinityType)SelfUnpack)
deprecatedc                    V ^8  d   QhRRRR/# )   messagestrreturnobject )formats   "l/Users/ahmad/.openclaw/workspace/scripts/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/version.py__annotate__r   '   s      S V     c                   a  R  V 3R llpV# )c                    V ^8  d   QhRRRR/# )r   funcr   r   r   )r   s   "r   r   !_deprecated.<locals>.__annotate__(   s     
	 
	F 
	v 
	r   c                P   <a  \         P                  ! S 4      R  V V3R ll4       pV# )c               $    V ^8  d   QhRRRRRR/# )r   argsr   kwargsr   r   )r   s   "r   r   4_deprecated.<locals>.decorator.<locals>.__annotate__*   s!     - -v - -F -r   c                 N   < \         P                  ! S\        ^R7       S! V / VB # )r   )category
stacklevel)warningswarnDeprecationWarning)r#   r$   r   r   s   *,r   wrapper/_deprecated.<locals>.decorator.<locals>.wrapper)   s*    / 
 T,V,,r   )	functoolswraps)r   r,   r   s   f r   	decorator_deprecated.<locals>.decorator(   s*    __T"- - #- Nr   r   )r   r0   s   f r   _deprecatedr2   '   s    
	 
	 r   alphaabetabcrcprepreviewrevpostrInvalidVersionVersion.c                  T    ] tR t^Ut$ R]R&   R]R&   R]R&   R]R&   R]R&   R	]R
&   RtR# )_VersionReplace
int | Noneepochztuple[int, ...] | Nonerelease*tuple[Literal['a', 'b', 'rc'], int] | Noner9   r<   dev
str | Nonelocalr   N__name__
__module____qualname____firstlineno____annotations____static_attributes__r   r   r   rA   rA   U   s%    ##	33
	Or   rA   F)totalc                    V ^8  d   QhRRRR/# )r   versionr   r   r?   r   )r   s   "r   r   r   ^   s     	 	3 	7 	r   c                    \        V 4      # )zParse the given version string.

>>> parse('1.0.dev1')
<Version('1.0.dev1')>

:param version: The version string to parse.
:raises InvalidVersion: When the version string is not a valid version.
)r?   )rR   s   &r   parserT   ^   s     7r   c                      ] tR t^jtRtRtR# )r>   zRaised when a version string is not a valid version.

>>> Version("invalid")
Traceback (most recent call last):
    ...
packaging.version.InvalidVersion: Invalid version: 'invalid'
r   N)rJ   rK   rL   rM   __doc__rO   r   r   r   r>   r>   j   s    r   c                      ] tR t^ttRt]P                  '       d   ]R R l4       tR R lt	R R lt
R R ltR	 R
 ltR R ltR R ltR R ltRtR# )_BaseVersionc                   V ^8  d   QhRR/# )r   r   ztuple[Any, ...]r   )r   s   "r   r   _BaseVersion.__annotate__}   s    ../.r   c                	    R # Nr   selfs   &r   _key_BaseVersion._key|   s    +.r   c                   V ^8  d   QhRR/# r   r   intr   )r   s   "r   r   rZ      s      # r   c                	,    \        V P                  4      # r\   )hashr_   r]   s   &r   __hash___BaseVersion.__hash__   s    DIIr   c                    V ^8  d   QhRRRR/# r   otherrX   r   boolr   )r   s   "r   r   rZ           & &L &T &r   c                	l    \        V\        4      '       g   \        # V P                  VP                  8  # r\   
isinstancerX   NotImplementedr_   r^   rj   s   &&r   __lt___BaseVersion.__lt__   (    %..!!yy5::%%r   c                    V ^8  d   QhRRRR/# ri   r   )r   s   "r   r   rZ           ' 'L 'T 'r   c                	l    \        V\        4      '       g   \        # V P                  VP                  8*  # r\   rn   rq   s   &&r   __le___BaseVersion.__le__   (    %..!!yyEJJ&&r   c                    V ^8  d   QhRRRR/# r   rj   r   r   rk   r   )r   s   "r   r   rZ           ' 'F 't 'r   c                	l    \        V\        4      '       g   \        # V P                  VP                  8H  # r\   rn   rq   s   &&r   __eq___BaseVersion.__eq__   rz   r   c                    V ^8  d   QhRRRR/# ri   r   )r   s   "r   r   rZ      rv   r   c                	l    \        V\        4      '       g   \        # V P                  VP                  8  # r\   rn   rq   s   &&r   __ge___BaseVersion.__ge__   rz   r   c                    V ^8  d   QhRRRR/# ri   r   )r   s   "r   r   rZ      rl   r   c                	l    \        V\        4      '       g   \        # V P                  VP                  8  # r\   rn   rq   s   &&r   __gt___BaseVersion.__gt__   rt   r   c                    V ^8  d   QhRRRR/# r|   r   )r   s   "r   r   rZ      r}   r   c                	l    \        V\        4      '       g   \        # V P                  VP                  8g  # r\   rn   rq   s   &&r   __ne___BaseVersion.__ne__   rz   r   r   N)rJ   rK   rL   rM   	__slots__typingTYPE_CHECKINGpropertyr_   rf   rr   rx   r   r   r   r   rO   r   r   r   rX   rX   t   sK    I
 	. 
.&'''&' 'r   rX   a1  
    v?+                                                   # optional leading v
    (?:
        (?:(?P<epoch>[0-9]+)!)?+                          # epoch
        (?P<release>[0-9]+(?:\.[0-9]+)*+)                 # release segment
        (?P<pre>                                          # pre-release
            [._-]?+
            (?P<pre_l>alpha|a|beta|b|preview|pre|c|rc)
            [._-]?+
            (?P<pre_n>[0-9]+)?
        )?+
        (?P<post>                                         # post release
            (?:-(?P<post_n1>[0-9]+))
            |
            (?:
                [._-]?
                (?P<post_l>post|rev|r)
                [._-]?
                (?P<post_n2>[0-9]+)?
            )
        )?+
        (?P<dev>                                          # dev release
            [._-]?+
            (?P<dev_l>dev)
            [._-]?+
            (?P<dev_n>[0-9]+)?
        )?+
    )
    (?:\+
        (?P<local>                                        # local version
            [a-z0-9]+
            (?:[._-][a-z0-9]+)*+
        )
    )?+
z*+*z?+?cpythonpypyz[a-z0-9]+(?:[._-][a-z0-9]+)*c                    V ^8  d   QhRRRR/# )r   valuer   r   rc   r   )r   s   "r   r   r      s      6  r   c               x    T ;'       g    ^ p\        V\        4      '       d
   V^ 8  d   V# RV 2p\        V4      h)    z(epoch must be non-negative integer, got ro   rc   r>   )r   rC   msgs   "  r   _validate_epochr      s<    JJQE%%1*4UG
<C

r   c                    V ^8  d   QhRRRR/# )r   r   r   r   tuple[int, ...]r   )r   s   "r   r   r      s     	 	V 	? 	r   c                   V f   RMT p\        V\        4      '       dM   \        V4      ^ 8  d=   \        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       d   V# RV 2p\	        V4      h)Nc              3  \   "   T F"  p\        V\        4      ;'       d    V^ 8  x  K$  	  R# 5i)r   N)ro   rc   .0is   & r   	<genexpr>$_validate_release.<locals>.<genexpr>   s&     ?w!
1c"--qAv-ws   ,,FTz@release must be a non-empty tuple of non-negative integers, got )r   )ro   tuplelenallr>   )r   rD   r   s   "  r   _validate_releaser      sc    mdG7E""L1C?w?CCC?w???LWI
VC

r   c                    V ^8  d   QhRRRR/# )r   r   r   r   rE   r   )r   s   "r   r   r     s       'Q r   c                   V f   V # \        V \        4      '       dL   \        V 4      ^8X  d<   V ^ ,          R9   d.   \        V ^,          \        4      '       d   V ^,          ^ 8  d   V # RV  2p\	        V4      h)Nz=pre must be a tuple of ('a'|'b'|'rc', non-negative int), got )r4   r6   r8   )ro   r   r   rc   r>   r   r   s   " r   _validate_prer     si    }5%  J!O!H((uQx%%!HMI%
QC

r   c                    V ^8  d   QhRRRR/# )r   r   r   r   z"tuple[Literal['post'], int] | Noner   )r   s   "r   r   r     s      & (J r   c               p    V f   V # \        V \        4      '       d   V ^ 8  d   RV 3# RV  2p\        V4      h)Nr<   z'post must be non-negative integer, got r   r   s   " r   _validate_postr     s@    }%%1*3E7
;C

r   c                    V ^8  d   QhRRRR/# )r   r   r   r   z!tuple[Literal['dev'], int] | Noner   )r   s   "r   r   r     s       'H r   c               p    V f   V # \        V \        4      '       d   V ^ 8  d   RV 3# RV  2p\        V4      h)NrF   z&dev must be non-negative integer, got r   r   s   " r   _validate_devr     s@    }%%1*u~25'
:C

r   c                    V ^8  d   QhRRRR/# )r   r   r   r   LocalType | Noner   )r   s   "r   r   r   #  s      6 )9 r   c                   V f   V # \        V \        4      '       d'   \        P                  V 4      '       d   \	        V 4      # RV : 2p\        V4      h)Nz*local must be a valid version string, got )ro   r   _LOCAL_PATTERN	fullmatch_parse_local_versionr>   r   s   " r   _validate_localr   #  sK    }%.":":5"A"A#E**6ui
@C

r   c                  T    ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R]R	&   R
]R&   RtR# )_Versioni-  rc   rC   r   rD   tuple[str, int] | NonerF   r9   r<   r   rH   r   NrI   r   r   r   r   r   -  s%    J		
  r   r   c                     ] tR tRt$ RtR=tR?t]P                  ! R
]	,           R
,           ]P                  ]P                  ,          4      tR]R&   R]R	&   R]R&   R]R&   R]R&   R]R&   R]R&   R R ltR R lt]R R l4       t]]! R4      R R l4       4       t]P(                  ]! R4      R R l4       4       tR R ltR R lt]R R  l4       t]R! R" l4       t]R# R$ l4       t]R% R& l4       t]R' R( l4       t]R) R* l4       t]R+ R, l4       t]R- R. l4       t]R/ R0 l4       t]R1 R2 l4       t ]R3 R4 l4       t!]R5 R6 l4       t"]R7 R8 l4       t#]R9 R: l4       t$]R; R< l4       t%R=t&R># )@r?   i6  am  This class abstracts handling of a project's versions.

A :class:`Version` instance is comparison aware and can be compared and
sorted using the standard Python interfaces.

>>> v1 = Version("1.0a5")
>>> v2 = Version("1.0")
>>> v1
<Version('1.0a5')>
>>> v2
<Version('1.0')>
>>> v1 < v2
True
>>> v1 == v2
False
>>> v1 > v2
False
>>> v1 >= v2
False
>>> v1 <= v2
True
_dev_epoch
_key_cache_local_post_pre_releasez\s*rc   r   r   r   zCmpKey | Nonec                    V ^8  d   QhRRRR/# )r   rR   r   r   Noner   )r   s   "r   r   Version.__annotate__\  s        r   c                   V P                   P                  V4      pV'       g   \        RV: 24      hVP                  R4      '       d   \	        VP                  R4      4      M^ V n        \        \        \        VP                  R4      P                  R4      4      4      V n	        \        VP                  R4      VP                  R4      4      V n        \        VP                  R4      VP                  R4      ;'       g    VP                  R	4      4      V n        \        VP                  R
4      VP                  R4      4      V n        \        VP                  R4      4      V n        RV n        R# )a  Initialize a Version object.

:param version:
    The string representation of a version which will be parsed and normalized
    before use.
:raises InvalidVersion:
    If the ``version`` does not conform to PEP 440 in any way then this
    exception will be raised.
zInvalid version: rC   rD   .pre_lpre_npost_lpost_n1post_n2dev_ldev_nrH   N)_regexr   r>   grouprc   r   r   mapsplitr   _parse_letter_versionr   r   r   r   r   r   )r^   rR   matchs   && r   __init__Version.__init__\  s    %%g. #4WK!@AA38;;w3G3Gc%++g./Qc#u{{9'='C'CC'HIJ)%++g*>G@TU	*KK!5;;y#9#S#SU[[=S

 *%++g*>G@TU	*5;;w+?@ r   c                    V ^8  d   QhRRRR/# )r   r$   zUnpack[_VersionReplace]r   r   r   )r   s   "r   r   r   v  s      $;  r   c                	&   R V9   d   \        VR ,          4      MV P                  pRV9   d   \        VR,          4      MV P                  pRV9   d   \	        VR,          4      MV P
                  pRV9   d   \        VR,          4      MV P                  pRV9   d   \        VR,          4      MV P                  pRV9   d   \        VR,          4      MV P                  pW P                  8X  dS   W0P                  8X  dC   W@P
                  8X  d3   WPP                  8X  d#   W`P                  8X  d   WpP                  8X  d   V # V P                  P                  V P                  4      pRVn        W(n        W8n        WHn        WXn        Whn	        Wxn        V# )rC   rD   r9   r<   rF   rH   N)r   r   r   r   r   r   r   r   r   r   r   r   	__class____new__r   )	r^   r$   rC   rD   r9   r<   rF   rH   new_versions	   &,       r   __replace__Version.__replace__v  s;   4;v4Ew04;; F" fY/0 	
 /4vomF5M*4991761A~fVn-tzz.3vomF5M*4994;v4Ew04;; [[ ==(yy 

"yy $Knn,,T^^<!%"& "r   c                   V ^8  d   QhRR/# )r   r   CmpKeyr   )r   s   "r   r   r     s     
 
f 
r   c                	    V P                   fR   \        V P                  V P                  V P                  V P
                  V P                  V P                  4      V n         V P                   # r\   )r   _cmpkeyr   r   r   r   r   r   r]   s   &r   r_   Version._key  sN    ??"%		

		DO r   z4Version._version is private and will be removed soonc                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r     s     
 
( 
r   c                	    \        V P                  V P                  V P                  V P                  V P
                  V P                  4      # r\   )r   r   r   r   r   r   r   r]   s   &r   _versionVersion._version  s6     KK		499djj$++
 	
r   c                    V ^8  d   QhRRRR/# )r   r   r   r   r   r   )r   s   "r   r   r     s      h 4 r   c                	    VP                   V n        VP                  V n        VP                  V n        VP                  V n        VP                  V n	        VP                  V n        R V n        R # r\   )rC   r   rD   r   rF   r   r9   r   r<   r   rH   r   r   )r^   r   s   &&r   r   r     sM     kkII	II	ZZ
kkr   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   r     s     & &# &r   c                    RV  R2# )zhA representation of the Version that shows all internal state.

>>> Version('1.0.0')
<Version('1.0.0')>
z
<Version('z')>r   r]   s   &r   __repr__Version.__repr__  s     D6%%r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r     s       r   c                   RP                  \        \        V P                  4      4      pV P                  '       d   V P                   RV 2pV P
                  e1   VRP                  \        \        V P
                  4      4      ,          pV P                  e   VRV P                   2,          pV P                  e   VRV P                   2,          pV P                  e   VRV P                   2,          pV# )zeA string representation of the version that can be round-tripped.

>>> str(Version("1.0a5"))
'1.0a5'
r   ! z.postz.dev+)	joinr   r   rD   rC   r9   r<   rF   rH   )r^   rR   s   & r   __str__Version.__str__  s     ((3sDLL12 :::AgY/G 88rwws3122G 99 tyyk**G 88dhhZ((G ::!4::,''Gr   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r     s      c r   c                    \        V 4      # )z Internal property for match_argsr   r]   s   &r   _strVersion._str  s     4yr   c                   V ^8  d   QhRR/# rb   r   )r   s   "r   r   r     s      s r   c                    V P                   # )zWThe epoch of the version.

>>> Version("2.0.0").epoch
0
>>> Version("1!2.0.0").epoch
1
)r   r]   s   &r   rC   Version.epoch  s     {{r   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   r     s       r   c                    V P                   # )a  The components of the "release" segment of the version.

>>> Version("1.2.3").release
(1, 2, 3)
>>> Version("2.0.0").release
(2, 0, 0)
>>> Version("1!2.0.0.post0").release
(2, 0, 0)

Includes trailing zeroes but not the epoch or any pre-release / development /
post-release suffixes.
)r   r]   s   &r   rD   Version.release  s     }}r   c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r     s      + r   c                    V P                   # )zThe pre-release segment of the version.

>>> print(Version("1.2.3").pre)
None
>>> Version("1.2.3a1").pre
('a', 1)
>>> Version("1.2.3b1").pre
('b', 1)
>>> Version("1.2.3rc1").pre
('rc', 1)
)r   r]   s   &r   r9   Version.pre  s     yyr   c                   V ^8  d   QhRR/# r   r   rB   r   )r   s   "r   r   r     s     5 5j 5r   c                P    V P                   '       d   V P                   ^,          # R# )zqThe post-release number of the version.

>>> print(Version("1.2.3").post)
None
>>> Version("1.2.3.post1").post
1
N)r   r]   s   &r   r<   Version.post  s     !%


tzz!}44r   c                   V ^8  d   QhRR/# r  r   )r   s   "r   r   r     s     3 3Z 3r   c                P    V P                   '       d   V P                   ^,          # R# )zmThe development number of the version.

>>> print(Version("1.2.3").dev)
None
>>> Version("1.2.3.dev1").dev
1
N)r   r]   s   &r   rF   Version.dev  s      $yyytyy|2d2r   c                   V ^8  d   QhRR/# )r   r   rG   r   )r   s   "r   r   r   #  s      z r   c                n    V P                   '       d#   RP                  R V P                    4       4      # R# )zwThe local version segment of the version.

>>> print(Version("1.2.3").local)
None
>>> Version("1.2.3+abc").local
'abc'
r   c              3  8   "   T F  p\        V4      x  K  	  R # 5ir\   r   )r   xs   & r   r    Version.local.<locals>.<genexpr>,  s     8KqCFFKs   N)r   r   r]   s   &r   rH   Version.local"  s)     ;;;888DKK888r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   1  s     
* 
* 
*r   c                F    \        V 4      P                  R^4      ^ ,          # )zThe public portion of the version.

>>> Version("1.2.3").public
'1.2.3'
>>> Version("1.2.3+abc").public
'1.2.3'
>>> Version("1!1.2.3dev1+abc").public
'1!1.2.3.dev1'
r   )r   r   r]   s   &r   publicVersion.public0  s     4ysA&q))r   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r   >  s     T Tc Tr   c                    RP                  \        \        V P                  4      4      pV P                  '       d   V P                   RV 2# T# )a  The "base version" of the version.

>>> Version("1.2.3").base_version
'1.2.3'
>>> Version("1.2.3+abc").base_version
'1.2.3'
>>> Version("1!1.2.3dev1+abc").base_version
'1!1.2.3'

The "base version" is the public version of the project without any pre or post
release markers.
r   r   )r   r   r   rD   rC   )r^   release_segments   & r   base_versionVersion.base_version=  s@     ((3sDLL#9:48JJJ$**Q/0SOSr   c                   V ^8  d   QhRR/# r   r   rk   r   )r   s   "r   r   r   O  s     < <t <r   c                J    V P                   RJ;'       g    V P                  RJ# )zWhether this version is a pre-release.

>>> Version("1.2.3").is_prerelease
False
>>> Version("1.2.3a1").is_prerelease
True
>>> Version("1.2.3b1").is_prerelease
True
>>> Version("1.2.3rc1").is_prerelease
True
>>> Version("1.2.3dev1").is_prerelease
True
N)rF   r9   r]   s   &r   is_prereleaseVersion.is_prereleaseN  s$     xxt#;;txxt';;r   c                   V ^8  d   QhRR/# r  r   )r   s   "r   r   r   `  s     % % %r   c                    V P                   RJ# )zWhether this version is a post-release.

>>> Version("1.2.3").is_postrelease
False
>>> Version("1.2.3.post1").is_postrelease
True
N)r<   r]   s   &r   is_postreleaseVersion.is_postrelease_  s     yy$$r   c                   V ^8  d   QhRR/# r  r   )r   s   "r   r   r   k  s     $ $t $r   c                    V P                   RJ# )zWhether this version is a development release.

>>> Version("1.2.3").is_devrelease
False
>>> Version("1.2.3.dev1").is_devrelease
True
N)rF   r]   s   &r   is_devreleaseVersion.is_devreleasej  s     xxt##r   c                   V ^8  d   QhRR/# rb   r   )r   s   "r   r   r   v  s     @ @s @r   c                `    \        V P                  4      ^8  d   V P                  ^ ,          # ^ # )zYThe first item of :attr:`release` or ``0`` if unavailable.

>>> Version("1.2.3").major
1
r   rD   r]   s   &r   majorVersion.majoru  s'     #&dll"3q"8t||A?a?r   c                   V ^8  d   QhRR/# rb   r   )r   s   "r   r   r          @ @s @r   c                `    \        V P                  4      ^8  d   V P                  ^,          # ^ # )zsThe second item of :attr:`release` or ``0`` if unavailable.

>>> Version("1.2.3").minor
2
>>> Version("1").minor
0
r,  r]   s   &r   minorVersion.minor~  '     #&dll"3q"8t||A?a?r   c                   V ^8  d   QhRR/# rb   r   )r   s   "r   r   r     r0  r   c                `    \        V P                  4      ^8  d   V P                  ^,          # ^ # )zrThe third item of :attr:`release` or ``0`` if unavailable.

>>> Version("1.2.3").micro
3
>>> Version("1").micro
0
r,  r]   s   &r   microVersion.micro  r4  r   r   r   r   r   r   r   r   N)r   )'rJ   rK   rL   rM   rV   r   __match_args__recompileVERSION_PATTERNVERBOSE
IGNORECASEr   rN   r   r   r   r_   r2   r   setterr   r   r   rC   rD   r9   r<   rF   rH   r  r  r   r$  r(  r-  r2  r7  rO   r   r   r   r?   r?   6  s   . XINZZ0692::;UVFK
  
  !!4B 
 
 GH
 I 

 __GH I &>         5 5 3 3   
* 
* T T  < <  % % $ $ @ @ @ @ @ @r   c                  N   a  ] tR tRtRtR V 3R llt]R V 3R ll4       tRtV ;t	# )_TrimmedReleasei  c                    V ^8  d   QhRRRR/# )r   rR   zstr | Versionr   r   r   )r   s   "r   r   _TrimmedRelease.__annotate__  s     
" 
" 
"$ 
"r   c                	D  < \        V\        4      '       dz   VP                  V n        VP                  V n        VP                  V n        VP
                  V n        VP                  V n        VP                  V n        VP                  V n        R # \        SV `)  V4       R # r\   )ro   r?   r   r   r   r   r   r   r   superr   )r^   rR   r   s   &&r   r   _TrimmedRelease.__init__  sq    gw''!..DK#,,DMDIDI DJ!..DK%00DO!r   c                   V ^8  d   QhRR/# r  r   )r   s   "r   r   rD    s     4 4 4r   c                   < \         SV `  p\        V4      pTpV^8  d    W^,
          ,          ^ 8X  d   V^,          pK&  W28X  d   V# VRV # )z
Release segment without any trailing zeros.

>>> _TrimmedRelease('1.0.0').release
(1,)
>>> _TrimmedRelease('0.0').release
(0,)
N)rF  rD   r   )r^   rellen_releaser   r   s   &   r   rD   _TrimmedRelease.release  sN     go#h!eE
aFA&s3CG3r   r9  r   )
rJ   rK   rL   rM   r   r   r   rD   rO   __classcell__)r   s   @r   rB  rB    s&    I
" 
" 4 4r   rB  c               $    V ^8  d   QhRRRRRR/# )r   letterrG   numberz str | bytes | SupportsInt | Noner   r   r   )r   s   "r   r   r     s$       @r   c                    V '       d=   V P                  4       p \        P                  W 4      p T \        T;'       g    ^ 4      3# V'       d   R\        V4      3# R# )r   r<   N)lower_LETTER_NORMALIZATIONgetrc   )rO  rP  s   &&r   r   r     sS     
 '**6: s6;;Q''' s6{""r   z[\._-]c                    V ^8  d   QhRRRR/# )r   rH   rG   r   r   r   )r   s   "r   r   r     s     	 	
 	/? 	r   c                    V eS   \         ;QJ d'    . R \        P                  V 4       4       F  NK  	  5# ! R \        P                  V 4       4       4      # R# )zJ
Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
Nc              3     "   T F6  pVP                  4       '       g   VP                  4       M
\        V4      x  K8  	  R # 5ir\   )isdigitrR  rc   )r   parts   & r   r   '_parse_local_version.<locals>.<genexpr>  s0      
> !%DJJLCI=>s
   A #A )r   _local_version_separatorsr   )rH   s   &r   r   r     sW     u 
177>
u 	
u 
177>
 
 	
 r   c               4    V ^8  d   QhRRRRRRRRRRR	R
RR/# )r   rC   rc   rD   r   r9   r   r<   rF   rH   r   r   r   r   )r   s   "r   r   r     sN     :6 :6:6:6 
 :6 !	:6
 
 :6 :6 :6r   c                p   \        V4      pTpV'       d    W^,
          ,          ^ 8X  d   V^,          pK'  Wv8X  d   TMVRV pVf   Vf   Ve   \        p	MVf   \        p	MTp	Vf   \        p
MTp
Vf   \        pMTpVf   \        pM,\        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      pWWW3# )   Nc              3  f   "   T F'  p\        V\        4      '       d   VR 3M\        V3x  K)  	  R# 5i)r   N)ro   rc   r   r   s   & r   r   _cmpkey.<locals>.<genexpr>  s.      
NSz!S))QG0@!/DDes   /1)r   r   r   r   )rC   rD   r9   r<   rF   rH   rK  r   r   r   r   r   r   s   &&&&&&       r   r   r     s     g,KA
A!#	Q*wH {t|"2 
 |#3  {"* }/  
NS
 
NS
 
 D55r   )      )r=  r>   r?   rT   )ra        )ra  rc  rb  )ra  rc  )ArV   
__future__r   r;  sysr   r   r   r   r   r   r   r	   r
   _structuresr   r   r   r   r   typing_extensionsr   r   version_infor)   r   r2   r.   rS  __all__rc   r   	LocalTypeCmpPrePostDevTypeCmpLocalTyper   rk   VersionComparisonMethodrA   rT   
ValueErrorr>   rX   _VERSION_PATTERNreplace_VERSION_PATTERN_OLDimplementationnamer=  r<  r?  r   r   r   r   r   r   r   r   r?   rB  r   r[  r   r   r   r   r   <module>ru     s   # 	 
 	 	 	 X W	.w2;" S
C	4t	6  D%S/3&'	,(<eCHoMN 	%c3h';U38_'L!MM
NPS
STV 
	#s(O
 #FF#3T#9: iu 	Z 3' 3't" H (//c:BB4M  	9,1A1AJ1N6)c.>.>.L
'!  
 	 ;R]]K	z \@l \@~
4g 4D0 JJy1 	:6r   