
    m&phj?                     T   S r SSKrSSKrSSKJrJrJrJrJrJ	r	J
r
  SSKJrJrJrJr  / SQr\	\
\\4   S4   r\
\\\	\\4   4   r\
\\	\
\	\\4   \	\\
\\4   4   4   S4   4   r\	\\	\S4   \\\\4   r\\\/\4   r " S S	\5      rS
\SS4S jr " S S\5      r " S S5      rSr\r  " S S\5      r S\\   S\
\\!\S4   S\\	\\4      4S jr"\RF                  " S5      r$S\\   S\\   4S jr%S\S\	\S4   S\\	\\4      S\\	\\4      S\\	\\4      S\\   S\4S jr&g) zB
.. testsetup::

    from packaging.version import parse, Version
    N)AnyCallable
NamedTupleOptionalSupportsIntTupleUnion   )InfinityInfinityTypeNegativeInfinityNegativeInfinityType)VERSION_PATTERNparseVersionInvalidVersion.c                       \ rS rSr% \\S'   \\S4   \S'   \\\\4      \S'   \\\\4      \S'   \\\\4      \S'   \\	   \S'   S	r
g
)_Version$   epoch.releasedevprepostlocal N)__name__
__module____qualname____firstlineno__int__annotations__r   r   str	LocalType__static_attributes__r       S/var/www/html/venv/lib/python3.13/site-packages/wheel/vendored/packaging/version.pyr   r   $   sY    J38_	%S/	""	%S/	""
5c?
##Ir&   r   versionreturnr   c                     [        U 5      $ )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'   r   r   -   s     7r&   c                       \ rS rSrSrSrg)r   9   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&   r   c                       \ rS rSr% \\S4   \S'   S\4S jrSS S\	4S jr
SS S\	4S jrS\S\	4S	 jrSS S\	4S
 jrSS S\	4S jrS\S\	4S jrSrg)_BaseVersionC   ._keyr)   c                 ,    [        U R                  5      $ N)hashr1   selfs    r'   __hash___BaseVersion.__hash__F   s    DIIr&   otherc                 j    [        U[        5      (       d  [        $ U R                  UR                  :  $ r3   
isinstancer/   NotImplementedr1   r6   r9   s     r'   __lt___BaseVersion.__lt__L   (    %..!!yy5::%%r&   c                 j    [        U[        5      (       d  [        $ U R                  UR                  :*  $ r3   r;   r>   s     r'   __le___BaseVersion.__le__R   (    %..!!yyEJJ&&r&   c                 j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r3   r;   r>   s     r'   __eq___BaseVersion.__eq__X   rE   r&   c                 j    [        U[        5      (       d  [        $ U R                  UR                  :  $ r3   r;   r>   s     r'   __ge___BaseVersion.__ge__^   rE   r&   c                 j    [        U[        5      (       d  [        $ U R                  UR                  :  $ r3   r;   r>   s     r'   __gt___BaseVersion.__gt__d   rA   r&   c                 j    [        U[        5      (       d  [        $ U R                  UR                  :g  $ r3   r;   r>   s     r'   __ne___BaseVersion.__ne__j   rE   r&   r   N)r   r   r   r    r   r   r"   r!   r7   boolr?   rC   objectrG   rJ   rM   rP   r%   r   r&   r'   r/   r/   C   s    
S/# &N &t &'N 't ''F 't ''N 't '&N &t &'F 't 'r&   r/   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                   .   \ rS rSr% Sr\R                  " S\-   S-   \R                  \R                  -  5      r
\\S'   S\SS4S	 jrS\4S
 jrS\4S jr\S\4S j5       r\S\\S4   4S j5       r\S\\\\4      4S j5       r\S\\   4S j5       r\S\\   4S j5       r\S\\   4S j5       r\S\4S j5       r\S\4S j5       r\S\4S j5       r\S\4S j5       r\S\4S j5       r \S\4S j5       r!\S\4S j5       r"\S\4S j5       r#Sr$g)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*$r1   r(   r)   Nc                    U R                   R                  U5      nU(       d  [        SU S35      e[        UR	                  S5      (       a  [        UR	                  S5      5      OS[        S UR	                  S5      R                  S5       5       5      [        UR	                  S5      UR	                  S	5      5      [        UR	                  S
5      UR	                  S5      =(       d    UR	                  S5      5      [        UR	                  S5      UR	                  S5      5      [        UR	                  S5      5      S9U l
        [        U R                  R                  U R                  R                  U R                  R                  U R                  R                  U R                  R                   U R                  R"                  5      U l        g)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   r   c              3   8   #    U  H  n[        U5      v   M     g 7fr3   )r!   .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   r1   )r6   r(   matchs      r'   __init__Version.__init__   sU    ""7+ #5gYa!@AA !/4{{7/C/C#ekk'*+L%++i*@*F*Fs*KLL%ekk'&:EKK<PQ&H%u{{9'='WYAW &ekk'&:EKK<PQ&u{{7';<	
 MMMM!!MMMMMMMM
	r&   c                     SU  S3$ )zhA representation of the Version that shows all internal state.

>>> Version('1.0.0')
<Version('1.0.0')>
z
<Version('z')>r   r5   s    r'   __repr__Version.__repr__   s     D6%%r&   c                 d   / nU R                   S:w  a  UR                  U R                    S35        UR                  SR                  S U R                   5       5      5        U R                  b1  UR                  SR                  S U R                   5       5      5        U R
                  b  UR                  SU R
                   35        U R                  b  UR                  SU R                   35        U R                  b  UR                  S	U R                   35        SR                  U5      $ )
zgA string representation of the version that can be rounded-tripped.

>>> str(Version("1.0a5"))
'1.0a5'
r   !r_   c              3   8   #    U  H  n[        U5      v   M     g 7fr3   r#   rZ   xs     r'   r\   "Version.__str__.<locals>.<genexpr>        ;lc!fflr^    c              3   8   #    U  H  n[        U5      v   M     g 7fr3   ry   rz   s     r'   r\   r|      s      :AQr^   z.postz.dev+)r   appendjoinr   r   r   r   r   r6   partss     r'   __str__Version.__str__   s      ::?LLDJJ<q)* 	SXX;dll;;< 88LL : ::; 99 LL5,- 88LL4z*+ ::!LL1TZZL)*wwu~r&   c                 .    U R                   R                  $ )zWThe epoch of the version.

>>> Version("2.0.0").epoch
0
>>> Version("1!2.0.0").epoch
1
)rn   r   r5   s    r'   r   Version.epoch	  s     }}"""r&   .c                 .    U R                   R                  $ )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.
)rn   r   r5   s    r'   r   Version.release  s     }}$$$r&   c                 .    U R                   R                  $ )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)
)rn   r   r5   s    r'   r   Version.pre$  s     }}   r&   c                 n    U R                   R                  (       a  U R                   R                  S   $ S$ )zqThe post-release number of the version.

>>> print(Version("1.2.3").post)
None
>>> Version("1.2.3.post1").post
1
r
   N)rn   r   r5   s    r'   r   Version.post3  s*     )-(:(:t}}!!!$DDr&   c                 n    U R                   R                  (       a  U R                   R                  S   $ S$ )zmThe development number of the version.

>>> print(Version("1.2.3").dev)
None
>>> Version("1.2.3.dev1").dev
1
r
   N)rn   r   r5   s    r'   r   Version.dev>  s*     (,}}'8'8t}}  #BdBr&   c                     U R                   R                  (       a,  SR                  S U R                   R                   5       5      $ g)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   #    U  H  n[        U5      v   M     g 7fr3   ry   rz   s     r'   r\    Version.local.<locals>.<genexpr>S  s     @,?qCFF,?r^   N)rn   r   r   r5   s    r'   r   Version.localI  s3     ==88@DMM,?,?@@@r&   c                 >    [        U 5      R                  SS5      S   $ )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#   rk   r5   s    r'   publicVersion.publicW  s     4ysA&q))r&   c                     / nU R                   S:w  a  UR                  U R                    S35        UR                  SR                  S U R                   5       5      5        SR                  U5      $ )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   rw   r_   c              3   8   #    U  H  n[        U5      v   M     g 7fr3   ry   rz   s     r'   r\   'Version.base_version.<locals>.<genexpr>y  r}   r^   r~   )r   r   r   r   r   s     r'   base_versionVersion.base_versiond  s\      ::?LLDJJ<q)* 	SXX;dll;;<wwu~r&   c                 H    U R                   SL=(       d    U R                  SL$ )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   r5   s    r'   is_prereleaseVersion.is_prerelease}  s!     xxt#;txxt';;r&   c                     U R                   SL$ )zWhether this version is a post-release.

>>> Version("1.2.3").is_postrelease
False
>>> Version("1.2.3.post1").is_postrelease
True
N)r   r5   s    r'   is_postreleaseVersion.is_postrelease  s     yy$$r&   c                     U R                   SL$ )zWhether this version is a development release.

>>> Version("1.2.3").is_devrelease
False
>>> Version("1.2.3.dev1").is_devrelease
True
N)r   r5   s    r'   is_devreleaseVersion.is_devrelease  s     xxt##r&   c                 V    [        U R                  5      S:  a  U R                  S   $ S$ )zYThe first item of :attr:`release` or ``0`` if unavailable.

>>> Version("1.2.3").major
1
r
   r   lenr   r5   s    r'   majorVersion.major  s'     #&dll"3q"8t||A?a?r&   c                 V    [        U R                  5      S:  a  U R                  S   $ S$ )zsThe second item of :attr:`release` or ``0`` if unavailable.

>>> Version("1.2.3").minor
2
>>> Version("1").minor
0
   r
   r   r   r5   s    r'   minorVersion.minor  '     #&dll"3q"8t||A?a?r&   c                 V    [        U R                  5      S:  a  U R                  S   $ S$ )zrThe third item of :attr:`release` or ``0`` if unavailable.

>>> Version("1.2.3").micro
3
>>> Version("1").micro
0
   r   r   r   r5   s    r'   microVersion.micro  r   r&   )r1   rn   )%r   r   r   r    r-   recompiler   VERBOSE
IGNORECASErg   CmpKeyr"   r#   rq   rt   r   propertyr!   r   r   r   r   r   r   r   r   r   r   rR   r   r   r   r   r   r   r%   r   r&   r'   r   r      s   . ZZ/1G;RZZ"--=WXF
L$
 $
 $
L&# & B #s # # %sCx % % !XeCHo. ! ! Ehsm E E CXc] C C x}   
* 
* 
* c  0 <t < <  % % % $t $ $ @s @ @ @s @ @ @s @ @r&   letternumberc                     U (       aE  Uc  SnU R                  5       n U S:X  a  Sn OU S:X  a  Sn OU S;   a  Sn OU S;   a  S	n U [        U5      4$ U (       d  U(       a  S	n U [        U5      4$ g )
Nr   alphaabetab)cr   previewrc)revrr   )lowerr!   )r   r   s     r'   rl   rl     s      >F 
 WFvF..F|#Fs6{""f s6{""r&   z[\._-]r   c                 T    U b%  [        S [        R                  U 5       5       5      $ g)zJ
Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
Nc              3      #    U  H5  nUR                  5       (       d  UR                  5       O
[        U5      v   M7     g 7fr3   )isdigitr   r!   )rZ   parts     r'   r\   '_parse_local_version.<locals>.<genexpr>  s0      
> !%DJJLCI=>s   =?)rj   _local_version_separatorsrk   )r   s    r'   rm   rm     s4      
177>
 
 	
 r&   r   r   r   r   r   c                 $   [        [        [        [        R                  " S [        U5      5      5      5      5      nUc  Uc
  Ub  [
        nOUc  [        nOUnUc  [
        nOUnUc  [        n	OUn	Uc  [
        n
O[        S U 5       5      n
XXxX4$ )Nc                     U S:H  $ )Nr   r   )r{   s    r'   <lambda>_cmpkey.<locals>.<lambda>  s    AFr&   c              3   d   #    U  H&  n[        U[        5      (       a  US 4O[        U4v   M(     g7f)r~   N)r<   r!   r   rY   s     r'   r\   _cmpkey.<locals>.<genexpr>-  s.      
NSz!S))QG0@!/DDes   .0)rj   reversedlist	itertools	dropwhiler   r   )r   r   r   r   r   r   _release_pre_post_dev_locals              r'   ro   ro     s     i))*:HW<MNOPH {t|"2 
 |#3  {"* }/  
NS
 
 D55r&   )'r-   r   r   typingr   r   r   r   r   r   r	   _structuresr   r   r   r   __all__r!   r#   r$   CmpPrePostDevTypeCmpLocalTyper   rR   VersionComparisonMethodr   r   
ValueErrorr   r/   _VERSION_PATTERNr   r   bytesrl   r   r   rm   ro   r   r&   r'   <module>r      s     	 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 	3 	9 	Z +' +'` > #	b@l b@J	 SM #(e[$)F#G eCHo F JJy1 	 	(92E 	;6;638_;6 
%S/	";6 5c?
#	;6
 
%S/	";6 I;6 ;6r&   