§ ¢‹ßjl?ãó—dZddlZddlZddlmZmZmZmZmZm Z m Z ddl m Z m Z mZmZgd¢Ze e eefdfZe e ee eeffZe ee e e eefe ee eefffdffZe ee edfeeeefZeeegefZGd„d e¦«Zd ed d fd „ZGd„de¦«ZGd„d¦«ZdZeZ Gd„d e¦«Z deede ee!edfd ee eeffd„Z"ej#d¦«Z$deed eefd„Z%dede edfdee eefdee eefdee eefdeed efd„Z&dS) 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ó¼—eZdZUeed<eedfed<eeeefed<eeeefed<eeeefed<eeed<dS) Ú_VersionÚepoch.ÚreleaseÚdevÚpreÚpostÚlocalN) Ú__name__Ú __module__Ú __qualname__ÚintÚ__annotations__rrÚstrÚ LocalType©óúl/var/lib/jenkins/workspace/erp-frontend-deploy-instance/node_modules/node-gyp/gyp/pylib/packaging/version.pyrr$s‹€€€€€€Ø €J€J�JØ �3˜�8Œ_ÐÐÑØ �%˜˜S˜”/Ô "Ð"Ð"Ñ"Ø �%˜˜S˜”/Ô "Ð"Ð"Ñ"Ø �5˜˜c˜”?Ô #Ð#Ð#Ñ#Ø �IÔ ÐÐÑÐÐr#rÚversionÚreturnrcó —t|¦«S)z×Parse the given version string. >>> parse('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$rr-s€õ �7Ñ Ô Ðr#có—eZdZdZdS)rzÉRaised when a version string is not a valid version. >>> Version("invalid") Traceback (most recent call last): ... packaging.version.InvalidVersion: Invalid version: 'invalid' N)rrrÚ__doc__r"r#r$rr9s€€€€€ððððr#rcó–—eZdZUeedfed<defd„Zdddefd„Z dddefd„Z de defd„Z dddefd „Z dddefd „Zde defd „Zd S) Ú _BaseVersion.Ú_keyr&có*—t|j¦«S©N)Úhashr,©Úselfs r$Ú__hash__z_BaseVersion.__hash__Fs€Ý�D”I‰ŒÐr#ÚothercóZ—t|t¦«stS|j|jkSr.©Ú isinstancer+ÚNotImplementedr,©r1r3s r$Ú__lt__z_BaseVersion.__lt__Ló)€Ý˜%¥Ñ.Ô.ð "Ý!Ð !àŒy˜5œ:Ò%Ð%r#cóZ—t|t¦«stS|j|jkSr.r5r8s r$Ú__le__z_BaseVersion.__le__Ró)€Ý˜%¥Ñ.Ô.ð "Ý!Ð !àŒy˜EœJÒ&Ð&r#cóZ—t|t¦«stS|j|jkSr.r5r8s r$Ú__eq__z_BaseVersion.__eq__Xr=r#cóZ—t|t¦«stS|j|jkSr.r5r8s r$Ú__ge__z_BaseVersion.__ge__^r=r#cóZ—t|t¦«stS|j|jkSr.r5r8s r$Ú__gt__z_BaseVersion.__gt__dr:r#cóZ—t|t¦«stS|j|jkSr.r5r8s r$Ú__ne__z_BaseVersion.__ne__jr=r#N)rrrrrrrr2Úboolr9r<Úobjectr?rArCrEr"r#r$r+r+Cs€€€€€€Ø ��S�Œ/ÐÐÑð˜#ððððð &˜Nð&¨tð&ð&ð&ð&ð '˜Nð'¨tð'ð'ð'ð'ð '˜Fð' tð'ð'ð'ð'ð '˜Nð'¨tð'ð'ð'ð'ð &˜Nð&¨tð&ð&ð&ð&ð '˜Fð' tð'ð'ð'ð'ð'ð'r#r+a• v? (?: (?:(?P[0-9]+)!)? # epoch (?P[0-9]+(?:\.[0-9]+)*) # release segment (?P
                                          # pre-release
            [-_\.]?
            (?Palpha|a|beta|b|preview|pre|c|rc)
            [-_\.]?
            (?P[0-9]+)?
        )?
        (?P                                         # post release
            (?:-(?P[0-9]+))
            |
            (?:
                [-_\.]?
                (?Ppost|rev|r)
                [-_\.]?
                (?P[0-9]+)?
            )
        )?
        (?P                                          # dev release
            [-_\.]?
            (?Pdev)
            [-_\.]?
            (?P[0-9]+)?
        )?
    )
    (?:\+(?P[a-z0-9]+(?:[-_\.][a-z0-9]+)*))?       # local version
cóf—eZdZUdZejdezdzejejz¦«Z	e
ed<deddfd„Z
defd	„Zdefd
„Zedefd„¦«Zedeedffd
„¦«Zedeeeeffd„¦«Zedeefd„¦«Zedeefd„¦«Zedeefd„¦«Zedefd„¦«Zedefd„¦«Zedefd„¦«Zedefd„¦«Zedefd„¦«Zedefd„¦«Z edefd„¦«Z!edefd„¦«Z"dS)ra¹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
    
    >>> v2
    
    >>> v1 < v2
    True
    >>> v1 == v2
    False
    >>> v1 > v2
    False
    >>> v1 >= v2
    False
    >>> v1 <= v2
    True
    z^\s*z\s*$r,r%r&NcóÌ—|j |¦«}|std|›d�¦«‚t| d¦«r"t| d¦«¦«ndt
d„| d¦« d¦«D¦«¦«t| d¦«| d	¦«¦«t| d
¦«| d¦«p| d¦«¦«t| d
¦«| d¦«¦«t| d¦«¦«¬¦«|_
t|j
j|j
j
|j
j|j
j|j
j|j
j¦«|_dS)aCInitialize 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.
        zInvalid version: 'ú'rrc3ó4K—|]}t|¦«V—ŒdSr.)r©Ú.0Úis  r$ú	z#Version.__init__..Ís(èè€ÐLÐL Q�#˜a™&œ&ÐLÐLÐLÐLÐLÐLr#rú.Úpre_lÚpre_nÚpost_lÚpost_n1Úpost_n2Údev_lÚdev_nr)rrrrrrN)Ú_regexÚsearchrrÚgrouprÚtupleÚsplitÚ_parse_letter_versionÚ_parse_local_versionÚ_versionÚ_cmpkeyrrrrrrr,)r1r%Úmatchs   r$Ú__init__zVersion.__init__ºsš€ð”×"Ò" 7Ñ+Ô+ˆØð	BÝ Ð!@°gÐ!@Ð!@Ð!@ÑAÔAÐAõ!Ø/4¯{ª{¸7Ñ/CÔ/CÐJ•#�e—k’k 'Ñ*Ô*Ñ+Ô+Ð+ÈÝÐLÐL¨%¯+ª+°iÑ*@Ô*@×*FÒ*FÀsÑ*KÔ*KÐLÑLÔLÑLÔLÝ% e§k¢k°'Ñ&:Ô&:¸E¿KºKÈÑ>> Version('1.0.0')
        
        z
r"r0s r$Ú__repr__zVersion.__repr__às€ð&˜DÐ%Ð%Ð%Ð%r#cóB—g}|jdkr| |j›d�¦«| d d„|jD¦«¦«¦«|j�7| d d„|jD¦«¦«¦«|j�| d|j›�¦«|j�| d	|j›�¦«|j�| d
|j›�¦«d |¦«S)zA string representation of the version that can be rounded-tripped.

        >>> str(Version("1.0a5"))
        '1.0a5'
        rú!rPc3ó4K—|]}t|¦«V—ŒdSr.©r ©rMÚxs  r$rOz"Version.__str__..õó(èè€Ð;Ð;¨�c !™fœfÐ;Ð;Ð;Ð;Ð;Ð;r#NÚc3ó4K—|]}t|¦«V—ŒdSr.rhris  r$rOz"Version.__str__..ùs(èè€Ð :Ð :¨A¥ Q¡¤Ð :Ð :Ð :Ð :Ð :Ð :r#z.postz.devú+)rÚappendÚjoinrrrrr©r1Úpartss  r$Ú__str__zVersion.__str__ès"€ðˆðŒ:˜Š?ˆ?Ø�LŠL˜DœJÐ)Ð)Ð)Ñ*Ô*Ð*ð	�Š�S—X’XÐ;Ð;¨d¬lÐ;Ñ;Ô;Ñ;Ô;Ñ<Ô<Ð<ðŒ8ÐØ�LŠL˜ŸšÐ :Ð :°´Ð :Ñ :Ô :Ñ:Ô:Ñ;Ô;Ð;ðŒ9Ð Ø�LŠLÐ, ¤Ð,Ð,Ñ-Ô-Ð-ðŒ8ÐØ�LŠLÐ* ¤Ð*Ð*Ñ+Ô+Ð+ðŒ:Ð!Ø�LŠLÐ)˜TœZÐ)Ð)Ñ*Ô*Ð*à�wŠw�u‰~Œ~Ðr#có—|jjS)zThe epoch of the version.

        >>> Version("2.0.0").epoch
        0
        >>> Version("1!2.0.0").epoch
        1
        )r_rr0s r$rz
Version.epoch	s€ðŒ}Ô"Ð"r#.có—|jjS)adThe 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_rr0s r$rzVersion.releases€ðŒ}Ô$Ð$r#có—|jjS)aThe 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_rr0s r$rzVersion.pre$s€ðŒ}Ô Ð r#cóB—|jjr|jjdndS)z™The post-release number of the version.

        >>> print(Version("1.2.3").post)
        None
        >>> Version("1.2.3.post1").post
        1
        r
N)r_rr0s r$rzVersion.post3s#€ð)-¬
Ô(:ÐDˆtŒ}Ô! !Ô$Ð$ÀÐDr#cóB—|jjr|jjdndS)z•The development number of the version.

        >>> print(Version("1.2.3").dev)
        None
        >>> Version("1.2.3.dev1").dev
        1
        r
N)r_rr0s r$rzVersion.dev>s#€ð(,¤}Ô'8ÐBˆtŒ}Ô  Ô#Ð#¸dÐBr#cóp—|jjr)d d„|jjD¦«¦«SdS)zŸThe local version segment of the version.

        >>> print(Version("1.2.3").local)
        None
        >>> Version("1.2.3+abc").local
        'abc'
        rPc3ó4K—|]}t|¦«V—ŒdSr.rhris  r$rOz Version.local..Ss(èè€Ð@Ð@ q�C ™FœFÐ@Ð@Ð@Ð@Ð@Ð@r#N)r_rrpr0s r$rz
Version.localIs<€ðŒ=Ôð	Ø—8’8Ð@Ð@¨D¬MÔ,?Ð@Ñ@Ô@Ñ@Ô@Ð@à�4r#cóT—t|¦« dd¦«dS)zÕThe 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'
        rnr
r)r r\r0s r$ÚpubliczVersion.publicWs#€õ�4‰yŒy�Š˜s AÑ&Ô& qÔ)Ð)r#cóî—g}|jdkr| |j›d�¦«| d d„|jD¦«¦«¦«d |¦«S)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.
        rrfrPc3ó4K—|]}t|¦«V—ŒdSr.rhris  r$rOz'Version.base_version..yrkr#rl)rrorprrqs  r$Úbase_versionzVersion.base_versiondst€ðˆðŒ:˜Š?ˆ?Ø�LŠL˜DœJÐ)Ð)Ð)Ñ*Ô*Ð*ð	�Š�S—X’XÐ;Ð;¨d¬lÐ;Ñ;Ô;Ñ;Ô;Ñ<Ô<Ð<à�wŠw�u‰~Œ~Ðr#có&—|jdup|jduS)aTWhether 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)rrr0s r$Ú
is_prereleasezVersion.is_prerelease}s€ðŒx˜tÐ#Ð; t¤x°tÐ';Ð;r#có—|jduS)zªWhether this version is a post-release.

        >>> Version("1.2.3").is_postrelease
        False
        >>> Version("1.2.3.post1").is_postrelease
        True
        N)rr0s r$Úis_postreleasezVersion.is_postreleaseŽs€ðŒy Ð$Ð$r#có—|jduS)z®Whether this version is a development release.

        >>> Version("1.2.3").is_devrelease
        False
        >>> Version("1.2.3.dev1").is_devrelease
        True
        N)rr0s r$Ú
is_devreleasezVersion.is_devrelease™s€ðŒx˜tÐ#Ð#r#cóP—t|j¦«dkr
|jdndS)zqThe first item of :attr:`release` or ``0`` if unavailable.

        >>> Version("1.2.3").major
        1
        r
r©Úlenrr0s r$Úmajorz
Version.major¤s(€õ#& d¤lÑ"3Ô"3°qÒ"8Ð"8ˆtŒ|˜AŒˆ¸aÐ?r#cóP—t|j¦«dkr
|jdndS)z›The second item of :attr:`release` or ``0`` if unavailable.

        >>> Version("1.2.3").minor
        2
        >>> Version("1").minor
        0
        ér
rr‡r0s r$Úminorz
Version.minor­ó(€õ#& d¤lÑ"3Ô"3°qÒ"8Ð"8ˆtŒ|˜AŒˆ¸aÐ?r#cóP—t|j¦«dkr
|jdndS)zšThe third item of :attr:`release` or ``0`` if unavailable.

        >>> Version("1.2.3").micro
        3
        >>> Version("1").micro
        0
        ér‹rr‡r0s r$Úmicroz
Version.micro¸r�r#)#rrrr)ÚreÚcompilerÚVERBOSEÚ
IGNORECASErXÚCmpKeyrr rbrdrsÚpropertyrrrrrrrrrr|rrFr�rƒr…r‰rŒr�r"r#r$rrŸs	€€€€€€ððð.ˆRŒZ˜ /Ñ1°GÑ;¸R¼ZÈ"Ì-Ñ=WÑ
XÔ
X€FØ
€L€L�Lð$
 ð$
¨ð$
ð$
ð$
ð$
ðL&˜#ð&ð&ð&ð&ð˜ðððððBð#�sð#ð#ð#ñ„Xð#ðð
%˜˜s C˜xœð
%ð
%ð
%ñ„Xð
%ðð!�X˜e C¨ HœoÔ.ð!ð!ð!ñ„Xð!ððE�h˜s”mðEðEðEñ„XðEððC�X˜c”]ðCðCðCñ„XðCðð�x ”}ðððñ„Xððð
*˜ð
*ð
*ð
*ñ„Xð
*ðð˜cðððñ„Xðð0ð<˜tð<ð<ð<ñ„Xð<ð ð% ð%ð%ð%ñ„Xð%ðð$˜tð$ð$ð$ñ„Xð$ðð@�sð@ð@ð@ñ„Xð@ðð@�sð@ð@ð@ñ„Xð@ðð@�sð@ð@ð@ñ„Xð@ð@ð@r#ÚletterÚnumbercóÈ—|rH|€d}| ¦«}|dkrd}n|dkrd}n
|dvrd}n|dvrd	}|t|¦«fS|s|rd	}|t|¦«fSdS)
NrÚalphaÚaÚbetaÚb)ÚcrÚpreviewÚrc)ÚrevÚrr)Úlowerr)r—r˜s  r$r]r]Äs­€ðð#ðˆ>؈Fð—’‘”ˆð
�WÒÐØˆFˆFØ
�vÒ
Ð
؈FˆFØ
Ð.Ð
.Ð
.؈FˆFØ
�|Ð
#Ð
#؈Fà•s˜6‘{”{Ð"Ð"Øð#�fð#ðˆà•s˜6‘{”{Ð"Ð"àˆ4r#z[\._-]rcól—|�1td„t |¦«D¦«¦«SdS)zR
    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
    Nc3ó„K—|];}| ¦«s| ¦«nt|¦«V—Œ.ðsUèè€ð
ð
àð!%§¢¡¤Ð=ˆD�JŠJ‰LŒLˆLµC¸±I´Ið
ð
ð
ð
ð
ð
r#)r[Ú_local_version_separatorsr\)rs r$r^r^ësM€ð
ÐÝð
ð
å1×7Ò7¸Ñ>Ô>ð
ñ
ô
ñ
ô
ð	
ðˆ4r#rrrrrcóP—ttttjd„t|¦«¦«¦«¦«¦«}|€|€
|�t
}n|€t}n|}|€t
}n|}|€t}	n|}	|€t
}
ntd„|D¦«¦«}
|||||	|
fS)Ncó—|dkS)Nrr")rjs r$úz_cmpkey..s
€°A¸²F€r#c3óZK—|]&}t|t¦«r|dfnt|fV—Œ'dS)rlN)r6rr
rLs  r$rOz_cmpkey../sPèè€ð
ð
ØIJ•z !¥SÑ)Ô)ÐDˆQ�ˆGˆGÕ0@À!Ð/Dð
ð
ð
ð
ð
ð
r#)r[ÚreversedÚlistÚ	itertoolsÚ	dropwhiler
r)rrrrrrÚ_releaseÚ_preÚ_postÚ_devÚ_locals           r$r`r`÷sà€õÝ••iÔ)Ð*:Ð*:½HÀWÑr¿sRððððÐÐÐØ	€	€	€	ØQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQÐQàWÐWÐWÐWÐWÐWÐWÐWÐWÐWÐWÐWà
CÐ
CÐ
C€à�%˜˜S˜”/ 3Ð&Ô'€	à˜,Ð(<¸eÀCÈÀH¼oÐMÔNÐØØØ	ˆ%��c˜3�h” Ð';¸UÀ3ÈÀ8¼_Ð'LÔ!MÐMÔ
NÐPSÐ
SÔTðVô€ð
ØØ	ˆ#ˆsˆ(„OØØØØðô
€ð# F¨FÐ#3°TÐ#9Ô:Ððððððˆzñôðð	�3ð	˜9ð	ð	ð	ð	ððððð�Zñôðð+'ð+'ð+'ð+'ð+'ñ+'ô+'ð+'ð`Ðð>#€ð	ðb@ðb@ðb@ðb@ðb@ˆlñb@ôb@ðb@ðJ	!Ø�SŒMð!Ø#(¨¨e°[À$Ð)FÔ#Gð!à
ˆe�C˜�HŒoÔð!ð!ð!ð!ðH'˜BœJ yÑ1Ô1Ðð	 ¨¤
ð	°(¸9Ô2Eð	ð	ð	ð	ð<6Øð<6à
�3˜�8Œ_ð<6ð
�%˜˜S˜”/Ô	"ð<6ð�5˜˜c˜”?Ô
#ð	<6ð

�%˜˜S˜”/Ô	"ð<6ð�IÔð
<6ðð<6ð<6ð<6ð<6ð<6ð<6r#