+
    SBij?              
          R t ^ RIt^ RIt^ RIHtHtHtHtHtH	t	H
t
 ^RIHtHtHtHt . ROt]	]
]]3,          R3,          t]
]]]	]]3,          3,          t]
]]	]
]	]]3,          ]	]]
]]3,          3,          3,          R3,          3,          t]	]]	]R3,          ]]]]3,          t]]].]3,          t ! R R]4      tR	 R
 lt ! R R]4      t ! R R4      tRt]t  ! R R]4      t R R lt!]PD                  ! R4      t#R R lt$R R lt%R# )zB
.. testsetup::

    from packaging.version import parse, Version
N)AnyCallable
NamedTupleOptionalSupportsIntTupleUnion)InfinityInfinityTypeNegativeInfinityNegativeInfinityTypeVersionInvalidVersion.c                   ,   a  ] tR t^$t o V 3R ltRtV tR# )_Versionc                   < V ^8  d   Qh/ S[ ;R&   S[S[ R3,          ;R&   S[S[S[S[ 3,          ,          ;R&   S[S[S[S[ 3,          ,          ;R&   S[S[S[S[ 3,          ,          ;R&   S[S[,          ;R&   # )   epoch.releasedevprepostlocal)intr   r   str	LocalType)format__classdict__s   "E/usr/lib/python3.14/site-packages/wheel/vendored/packaging/version.py__annotate___Version.__annotate__$   s     J 38_  
%S/	""  
%S/	""	 
 5c?
##  I      N)__name__
__module____qualname____firstlineno____annotate_func____static_attributes____classdictcell__r   s   @r   r   r   $   s      r!   r   c                (    V ^8  d   QhR\         RR/# )r   versionreturnr   r   )r   s   "r   r   r   -   s     	 	3 	9 	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   )r,   s   &r   parser0   -   s     7r!   c                       ] tR t^9t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)r#   r$   r%   r&   __doc__r(   r"   r!   r   r   r   9   s    r!   c                      a  ] tR t^Ct o 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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tRtV tR# )_BaseVersionc                    < V ^8  d   QhRS[ /# r   r-   r   )r   r   s   "r   r   _BaseVersion.__annotate__F   s      # r!   c                ,    \        V P                  4      # N)hash_keyselfs   &r   __hash___BaseVersion.__hash__F   s    DIIr!   c                $   < V ^8  d   QhRRRS[ /# r   otherr4   r-   bool)r   r   s   "r   r   r8   L        & &N &t &r!   c                l    \        V\        4      '       g   \        # V P                  VP                  8  # r:   
isinstancer4   NotImplementedr<   r>   rC   s   &&r   __lt___BaseVersion.__lt__L   (    %..!!yy5::%%r!   c                $   < V ^8  d   QhRRRS[ /# rB   rD   )r   r   s   "r   r   r8   R        ' 'N 't 'r!   c                l    \        V\        4      '       g   \        # V P                  VP                  8*  # r:   rH   rK   s   &&r   __le___BaseVersion.__le__R   (    %..!!yyEJJ&&r!   c                &   < V ^8  d   QhRS[ RS[/# r   rC   r-   objectrE   )r   r   s   "r   r   r8   X        ' 'F 't 'r!   c                l    \        V\        4      '       g   \        # V P                  VP                  8H  # r:   rH   rK   s   &&r   __eq___BaseVersion.__eq__X   rT   r!   c                $   < V ^8  d   QhRRRS[ /# rB   rD   )r   r   s   "r   r   r8   ^   rP   r!   c                l    \        V\        4      '       g   \        # V P                  VP                  8  # r:   rH   rK   s   &&r   __ge___BaseVersion.__ge__^   rT   r!   c                $   < V ^8  d   QhRRRS[ /# rB   rD   )r   r   s   "r   r   r8   d   rF   r!   c                l    \        V\        4      '       g   \        # V P                  VP                  8  # r:   rH   rK   s   &&r   __gt___BaseVersion.__gt__d   rN   r!   c                &   < V ^8  d   QhRS[ RS[/# rV   rW   )r   r   s   "r   r   r8   j   rY   r!   c                l    \        V\        4      '       g   \        # V P                  VP                  8g  # r:   rH   rK   s   &&r   __ne___BaseVersion.__ne__j   rT   r!   c                :   < V ^8  d   Qh/ S[ S[R3,          ;R&   # )r   .r<   )r   r   )r   r   s   "r   r   r8   C   s     
S/ r!   r"   N)r#   r$   r%   r&   r?   rL   rR   r[   r_   rc   rg   r'   r(   r)   r*   s   @r   r4   r4   C   sS      & &' '' '' '& &' 'O  r!   r4   a  
    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>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))?       # local version
c                   f  a  ] tR t^t o Rt]P                  ! R],           R,           ]P                  ]P                  ,          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4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R lR l4       t]V 3R  lR! l4       t]V 3R" lR# l4       t]V 3R$ lR% l4       tV 3R& ltR'tV tR(# ))r   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
z^\s*z\s*$c                $   < V ^8  d   QhRS[ RR/# )r   r,   r-   Nr.   )r   r   s   "r   r   Version.__annotate__   s     $
 $
 $
 $
r!   c                0   V P                   P                  V4      pV'       g   \        RV R24      h\        VP	                  R4      '       d   \        VP	                  R4      4      M^ \        ;QJ d2    . R VP	                  R4      P                  R4       4       F  NK  	  5M+! R VP	                  R4      P                  R4       4       4      \        VP	                  R4      VP	                  R4      4      \        VP	                  R	4      VP	                  R
4      ;'       g    VP	                  R4      4      \        VP	                  R4      VP	                  R4      4      \        VP	                  R4      4      R7      V n
        \        V P                  P                  V P                  P                  V P                  P                  V P                  P                  V P                  P                   V P                  P"                  4      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: ''r   c              3   8   "   T F  p\        V4      x  K  	  R # 5ir:   r7   .0is   & r   	<genexpr>#Version.__init__.<locals>.<genexpr>   s     L*KQ#a&&*K   r   .pre_lpre_npost_lpost_n1post_n2dev_ldev_nr   )r   r   r   r   r   r   N)_regexsearchr   r   groupr   tuplesplit_parse_letter_version_parse_local_version_version_cmpkeyr   r   r   r   r   r   r<   )r>   r,   matchs   && r   __init__Version.__init__   sz    ""7+ #5gYa!@AA !/4{{7/C/C#ekk'*+EL%++i*@*F*Fs*KLEEL%++i*@*F*Fs*KLL%ekk'&:EKK<PQ&H%u{{9'='W'WYAW &ekk'&:EKK<PQ&u{{7';<	
 MMMM!!MMMMMMMM
	r!   c                    < V ^8  d   QhRS[ /# r6   r.   )r   r   s   "r   r   rl      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S[ /# r6   r.   )r   r   s   "r   r   rl      s       r!   c                n   . pV P                   ^ 8w  d   VP                  V P                    R24       VP                  RP                  R V P                   4       4      4       V P                  e2   VP                  RP                  R V P                   4       4      4       V P
                  e   VP                  RV P
                   24       V P                  e   VP                  RV P                   24       V P                  e   VP                  RV P                   24       RP                  V4      # )	zgA string representation of the version that can be rounded-tripped.

>>> str(Version("1.0a5"))
'1.0a5'
!rv   c              3   8   "   T F  p\        V4      x  K  	  R # 5ir:   r.   rq   xs   & r   rs   "Version.__str__.<locals>.<genexpr>        ;lc!fflru    c              3   8   "   T F  p\        V4      x  K  	  R # 5ir:   r.   r   s   & r   rs   r      s      :AQru   z.postz.dev+)r   appendjoinr   r   r   r   r   r>   partss   & r   __str__Version.__str__   s      ::?LLDJJ<q)* 	SXX;dll;;< 88LL : ::; 99 LL5,- 88LL4z*+ ::!LL1TZZL)*wwu~r!   c                    < V ^8  d   QhRS[ /# r6   r7   )r   r   s   "r   r   rl   
  s     # #s #r!   c                .    V P                   P                  # )zWThe epoch of the version.

>>> Version("2.0.0").epoch
0
>>> Version("1!2.0.0").epoch
1
)r   r   r=   s   &r   r   Version.epoch	  s     }}"""r!   c                4   < V ^8  d   QhRS[ S[R3,          /# )r   r-   .)r   r   )r   r   s   "r   r   rl     s     % %sCx %r!   c                .    V P                   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   r=   s   &r   r   Version.release  s     }}$$$r!   c                F   < V ^8  d   QhRS[ S[S[S[3,          ,          /# r6   )r   r   r   r   )r   r   s   "r   r   rl   %  s!     ! !XeCHo. !r!   c                .    V P                   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   r=   s   &r   r   Version.pre$  s     }}   r!   c                0   < V ^8  d   QhRS[ S[,          /# r6   r   r   )r   r   s   "r   r   rl   4  s     E Ehsm Er!   c                x    V P                   P                  '       d   V P                   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   r=   s   &r   r   Version.post3  s-     )-(:(:(:t}}!!!$DDr!   c                0   < V ^8  d   QhRS[ S[,          /# r6   r   )r   r   s   "r   r   rl   ?  s     C CXc] Cr!   c                x    V P                   P                  '       d   V P                   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   r=   s   &r   r   Version.dev>  s-     (,}}'8'8'8t}}  #BdBr!   c                0   < V ^8  d   QhRS[ S[,          /# r6   )r   r   )r   r   s   "r   r   rl   J  s      x} r!   c                    V P                   P                  '       d-   RP                  R V P                   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'
rv   c              3   8   "   T F  p\        V4      x  K  	  R # 5ir:   r.   r   s   & r   rs    Version.local.<locals>.<genexpr>S  s     @,?qCFF,?ru   N)r   r   r   r=   s   &r   r   Version.localI  s6     ==88@DMM,?,?@@@r!   c                    < V ^8  d   QhRS[ /# r6   r.   )r   r   s   "r   r   rl   X  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.2.3+abc.dev1").public
'1.2.3'
r   )r   r   r=   s   &r   publicVersion.publicW  s     4ysA&q))r!   c                    < V ^8  d   QhRS[ /# r6   r.   )r   r   s   "r   r   rl   e  s      c r!   c                    . pV P                   ^ 8w  d   VP                  V P                    R24       VP                  RP                  R V P                   4       4      4       RP                  V4      # )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.3+abc.dev1").base_version
'1!1.2.3'

The "base version" is the public version of the project without any pre or post
release markers.
r   rv   c              3   8   "   T F  p\        V4      x  K  	  R # 5ir:   r.   r   s   & r   rs   'Version.base_version.<locals>.<genexpr>y  r   ru   r   )r   r   r   r   r   s   & r   base_versionVersion.base_versiond  s\      ::?LLDJJ<q)* 	SXX;dll;;<wwu~r!   c                    < V ^8  d   QhRS[ /# r6   rD   )r   r   s   "r   r   rl   ~  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)r   r   r=   s   &r   is_prereleaseVersion.is_prerelease}  s$     xxt#;;txxt';;r!   c                    < V ^8  d   QhRS[ /# r6   rD   )r   r   s   "r   r   rl     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S[ /# r6   rD   )r   r   s   "r   r   rl     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)r   r=   s   &r   is_devreleaseVersion.is_devrelease  s     xxt##r!   c                    < V ^8  d   QhRS[ /# r6   r7   )r   r   s   "r   r   rl     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
lenr   r=   s   &r   majorVersion.major  s'     #&dll"3q"8t||A?a?r!   c                    < V ^8  d   QhRS[ /# r6   r7   )r   r   s   "r   r   rl          @ @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S[ /# r6   r7   )r   r   s   "r   r   rl     r   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  r   r!   c                &   < V ^8  d   Qh/ S[ ;R&   # )r   r<   )CmpKey)r   r   s   "r   r   rl      s     2 L3 r!   )r<   r   N) r#   r$   r%   r&   r2   recompileVERSION_PATTERNVERBOSE
IGNORECASEr~   r   r   r   propertyr   r   r   r   r   r   r   r   r   r   r   r   r   r   r'   r(   r)   r*   s   @r   r   r      s}    . ZZ/1G;RZZ"--=WXF$
 $
L& & B # # % % ! ! E E C C   
* 
*  0 < <  % % $ $ @ @ @ @ @ @u  r!   c          	          V ^8  d   QhR\         \        ,          R\        \        \        \        R3,          R\         \
        \        \        3,          ,          /# )r   letternumberNr-   )r   r   r   bytesr   r   r   )r   s   "r   r   r     sC        SM #(e[$)F#G eCHo r!   c                     V '       dK   Vf   ^ pV P                  4       p V R8X  d   Rp MV R8X  d   Rp MV R9   d   Rp M	V R9   d   Rp V \        V4      3# V '       g   V'       d   Rp V \        V4      3# R # )	Nalphaabetabrcr   )cr   preview)revr)lowerr   )r   r   s   &&r   r   r     s      >F 
 WFvF..F|#Fs6{""f s6{""r!   z[\._-]c                \    V ^8  d   QhR\         \        ,          R\         \        ,          /# )r   r   r-   )r   r   r   )r   s   "r   r   r     s#     	 	 	(92E 	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:   )isdigitr   r   )rq   parts   & r   rs   '_parse_local_version.<locals>.<genexpr>  s0      
> !%DJJLCI=>s
   A #A )r   _local_version_separatorsr   )r   s   &r   r   r     sW     u 
177>
u 	
u 
177>
 
 	
 r!   c                D   V ^8  d   QhR\         R\        \         R3,          R\        \        \        \         3,          ,          R\        \        \        \         3,          ,          R\        \        \        \         3,          ,          R\        \        ,          R\
        /# )	r   r   r   .r   r   r   r   r-   )r   r   r   r   r   r   )r   s   "r   r   r     s     ;6 ;6;638_;6 
%S/	";6 5c?
#	;6
 
%S/	";6 I;6 ;6r!   c                 f   \        \        \        \        P                  ! R  \        V4      4      4      4      4      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WxW3# )c                     V ^ 8H  # )    r"   )r   s   &r   <lambda>_cmpkey.<locals>.<lambda>  s    AFr!   c              3   f   "   T F'  p\        V\        4      '       d   VR 3M\        V3x  K)  	  R# 5i)r   N)rI   r   r   rp   s   & r   rs   _cmpkey.<locals>.<genexpr>-  s.      
NSz!S))QG0@!/DDes   /1)r   reversedlist	itertools	dropwhiler   r	   )r   r   r   r   r   r   _release_pre_post_dev_locals   &&&&&&     r   r   r     s     i))*:HW<MNOPH {t|"2 
 |#3  {"* }/  
NS
 
NS
 
 D55r!   )r   r0   r   r   )&r2   r  r   typingr   r   r   r   r   r   r   _structuresr	   r
   r   r   __all__r   r   r   CmpPrePostDevTypeCmpLocalTyper   rE   VersionComparisonMethodr   r0   
ValueErrorr   r4   _VERSION_PATTERNr   r   r   r   r   r   r   r"   r!   r   <module>r     sN    	 Q Q Q W W
C%S/3&'	,(<eCHoMN 	%c3h';U38_'L!MM
NPS
STV 
	#s(O
 #FF#3T#9: z 	Z +' +'` > #	b@l b@J	 F JJy1 	;6r!   