
    Mi?                     `   S r SSKrSSKrSSKrSSK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   r\
\\	\\4   4   r\
\\\4   r\
\\	\
\\	\\4   \	\\4   4   S4   4   r\	\\	\S4   \\\\4   r\\\/\4   r\R4                  " S/ S	Q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\
\\#\4   S\\	\\4      4S jr$\RJ                  " 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OptionalSupportsIntTupleUnion   )InfinityInfinityTypeNegativeInfinityNegativeInfinityType)VERSION_PATTERNparseVersionInvalidVersion._Version)epochreleasedevprepostlocal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    c/var/www/html/backend/Backoffice_Marketplace/venv/lib/python3.13/site-packages/packaging/version.pyr   r   +   s     7    c                       \ rS rSrSrSrg)r   7   zRaised when a version string is not a valid version.

>>> Version("invalid")
Traceback (most recent call last):
    ...
packaging.version.InvalidVersion: Invalid version: 'invalid'
 N)__name__
__module____qualname____firstlineno____doc____static_attributes__r    r   r   r   r   7   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)_BaseVersionA   ._keyr   c                 ,    [        U R                  5      $ N)hashr*   selfs    r   __hash___BaseVersion.__hash__D   s    DIIr   otherc                 j    [        U[        5      (       d  [        $ U R                  UR                  :  $ r,   
isinstancer(   NotImplementedr*   r/   r2   s     r   __lt___BaseVersion.__lt__J   (    %..!!yy5::%%r   c                 j    [        U[        5      (       d  [        $ U R                  UR                  :*  $ r,   r4   r7   s     r   __le___BaseVersion.__le__P   (    %..!!yyEJJ&&r   c                 j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r,   r4   r7   s     r   __eq___BaseVersion.__eq__V   r>   r   c                 j    [        U[        5      (       d  [        $ U R                  UR                  :  $ r,   r4   r7   s     r   __ge___BaseVersion.__ge__\   r>   r   c                 j    [        U[        5      (       d  [        $ U R                  UR                  :  $ r,   r4   r7   s     r   __gt___BaseVersion.__gt__b   r:   r   c                 j    [        U[        5      (       d  [        $ U R                  UR                  :g  $ r,   r4   r7   s     r   __ne___BaseVersion.__ne__h   r>   r   r    N)r!   r"   r#   r$   r   r   __annotations__intr0   boolr8   r<   objectr@   rC   rF   rI   r&   r    r   r   r(   r(   A   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>(a|b|c|rc|alpha|beta|pre|preview))
            [-_\.]?
            (?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*$r*   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r,   )rL   .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   grouprL   tuplesplit_parse_letter_version_parse_local_version_version_cmpkeyr   r   r   r   r   r   r*   )r/   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    r.   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   !rZ   c              3   8   #    U  H  n[        U5      v   M     g 7fr,   strrU   xs     r   rW   "Version.__str__.<locals>.<genexpr>        ;lc!fflrY    c              3   8   #    U  H  n[        U5      v   M     g 7fr,   rt   rv   s     r   rW   rx      s      :AQrY   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                 2    U R                   R                  nU$ )zWThe epoch of the version.

>>> Version("2.0.0").epoch
0
>>> Version("1!2.0.0").epoch
1
)ri   r   )r/   _epochs     r   r   Version.epoch  s     mm))r   .c                 2    U R                   R                  nU$ )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.
)ri   r   )r/   _releases     r   r   Version.release  s     %)MM$9$9r   c                 2    U R                   R                  nU$ )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)
)ri   r   )r/   _pres     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)ri   r   r.   s    r   r   Version.post4  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)ri   r   r.   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'
rZ   c              3   8   #    U  H  n[        U5      v   M     g 7fr,   rt   rv   s     r   rW    Version.local.<locals>.<genexpr>T  s     @,?qCFF,?rY   N)ri   r   r~   r.   s    r   r   Version.localJ  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   )ru   rf   r.   s    r   publicVersion.publicX  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   rr   rZ   c              3   8   #    U  H  n[        U5      v   M     g 7fr,   rt   rv   s     r   rW   'Version.base_version.<locals>.<genexpr>z  ry   rY   rz   )r   r}   r~   r   r   s     r   base_versionVersion.base_versione  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   r.   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   r.   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   r.   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   r.   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   r.   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   r.   s    r   microVersion.micro  r   r   )r*   ri   )%r!   r"   r#   r$   r%   recompiler   VERBOSE
IGNORECASErb   CmpKeyrK   ru   rl   ro   r   propertyrL   r   r   r   r   r   r   r   r   r   r   rM   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   )lowerrL   )r   r   s     r   rg   rg     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r,   )isdigitr   rL   )rU   parts     r   rW   '_parse_local_version.<locals>.<genexpr>  s0      
> !%DJJLCI=>s   =?)re   _local_version_separatorsrf   )r   s    r   rh   rh     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    )rw   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)rz   N)r5   rL   r   rT   s     r   rW   _cmpkey.<locals>.<genexpr>0  s.      
NSz!S))QG0@!/DDes   .0)re   reversedlist	itertools	dropwhiler   r
   )r   r   r   r   r   r   r   r   _post_dev_locals              r   rj   rj     s     i))*:HW<MNOPH {t|/ 
 | 0  {' },  
NS
 
 D55r   ))r%   collectionsr   r   typingr   r   r   r   r   r   _structuresr
   r   r   r   __all__InfiniteTypesru   rL   PrePostDevTypeSubLocalType	LocalTyper   rM   VersionComparisonMethod
namedtupler   r   
ValueErrorr   r(   _VERSION_PATTERNr   r   bytesrg   r   r   rh   rj   r    r   r   <module>r      s-     	 E E W W
Cl$889}eCHo56]C,-	,#$&457	

 		
	 
sCx...)S
 #FF#3T#9: !!C
	3 	9 	Z +' +'` > #	e@l e@P	!!sE;67!eCHo!H JJy1 	 	(; 	<6<638_<6 
%S/	"<6 5c?
#	<6
 
%S/	"<6 E,'(<6 <6r   