Ë
    Ø’‰eU+  ã                   ó  — d Z ddlmZmZ ddlZddlZddlmZmZm	Z	m
Z
mZmZ  e	dd¬«      ZerddlmZ dd	lmZ neZej(                  d
kD  rd„ ZneZ G d„ de«      Z e«       Z G d„ de«      Z G d„ de«      Zd„ Zd„ ZddlmZ d„ Z g d¢Z!y)z0
Versions for Python packages.

See L{Version}.
é    )ÚdivisionÚabsolute_importN)ÚTYPE_CHECKINGÚAnyÚTypeVarÚUnionÚOptionalÚDictÚ_TT)Úcontravariant)ÚLiteral)ÚDistribution©é   c                 ó   — | |k  ry| |k(  ryy)z™
        Compare two objects.

        Returns a negative number if C{a < b}, zero if they are equal, and a
        positive number if C{a > b}.
        éÿÿÿÿr   é   © )ÚaÚbs     ú6/usr/lib/python3/dist-packages/incremental/__init__.pyÚ_cmpr   !   s   € ð ˆqŠ5ØØ�!ŠVØàó    c                   óN   — e Zd ZdZd„ Zej                  dk\  rd„ Zd„ Zd„ Z	d„ Z
yy)	Ú_Infz:
    An object that is bigger than all other objects.
    c                 ó   — |t         u ryy)z‘
        @param other: Another object.
        @type other: any

        @return: 0 if other is inf, 1 otherwise.
        @rtype: C{int}
        r   r   )Ú_inf©ÚselfÚothers     r   Ú__cmp__z_Inf.__cmp__>   s   € ð ”D‰=ØØr   r   c                 ó*   — | j                  |«      dk  S ©Nr   ©r!   r   s     r   Ú__lt__z_Inf.__lt__L   ó   € Ø—<‘< Ó&¨Ñ*Ð*r   c                 ó*   — | j                  |«      dk  S r#   r$   r   s     r   Ú__le__z_Inf.__le__O   ó   € Ø—<‘< Ó&¨!Ñ+Ð+r   c                 ó*   — | j                  |«      dkD  S r#   r$   r   s     r   Ú__gt__z_Inf.__gt__R   r&   r   c                 ó*   — | j                  |«      dk\  S r#   r$   r   s     r   Ú__ge__z_Inf.__ge__U   r)   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r!   ÚsysÚversion_infor%   r(   r+   r-   r   r   r   r   r   9   s5   „ ñò
ð ×Ñ˜4Òò	+ò	,ò	+ó	,ð  r   r   c                   ó   — e Zd ZdZy)ÚIncomparableVersionsz-
    Two versions could not be compared.
    N)r.   r/   r0   r1   r   r   r   r5   r5   \   s   „ òr   r5   c                   ó˜   — e Zd ZdZ	 	 	 	 dd„Zed„ «       Zd„ ZeZeZ	eZ
d„ Zd„ Zd„ Zej                  d	k\  rd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zyy)ÚVersionzÑ
    An encapsulation of a version for a project, with support for outputting
    PEP-440 compatible version strings.

    This class supports the standard major.minor.micro[rcN] scheme of
    versioning.
    Nc	                 óü   — |r|rt        d«      ‚|r |s|}t        j                  dt        d¬«       |dk(  r|s|s|s|s|rt        d«      ‚|| _        || _        || _        || _        || _        || _	        || _
        y)aÒ  
        @param package: Name of the package that this is a version of.
        @type package: C{str}
        @param major: The major version number.
        @type major: C{int} or C{str} (for the "NEXT" symbol)
        @param minor: The minor version number.
        @type minor: C{int}
        @param micro: The micro version number.
        @type micro: C{int}
        @param release_candidate: The release candidate number.
        @type release_candidate: C{int}
        @param prerelease: The prerelease number. (Deprecated)
        @type prerelease: C{int}
        @param post: The postrelease number.
        @type post: C{int}
        @param dev: The development release number.
        @type dev: C{int}
        z Please only return one of these.zvPassing prerelease to incremental.Version was deprecated in Incremental 16.9.0. Please pass release_candidate instead.é   ©Ú
stacklevelÚNEXTz;When using NEXT, all other values except Package must be 0.N)Ú
ValueErrorÚwarningsÚwarnÚDeprecationWarningÚpackageÚmajorÚminorÚmicroÚrelease_candidateÚpostÚdev)	r   rA   rB   rC   rD   rE   Ú
prereleaserF   rG   s	            r   Ú__init__zVersion.__init__k   s“   € ñ: ¡ÜÐ?Ó@Ð@ÙÑ 1Ø *ÐÜ�M‰Mð-ô #Øõð �FŠ?Ù™Ñ!2±d¹cÜ ØQóð ð ˆŒØˆŒ
ØˆŒ
ØˆŒ
Ø!2ˆÔØˆŒ	Øˆ�r   c                 óT   — t        j                  dt        d¬«      f | j                  S )NzuAccessing incremental.Version.prerelease was deprecated in Incremental 16.9.0. Use Version.release_candidate instead.r9   r:   )r>   r?   r@   rE   ©r   s    r   rH   zVersion.prerelease¢   s.   € ä�‰ð1ô Øô	
ñ 	ð ×%Ñ%Ð%r   c                 ó>  — | j                   dk(  r| j                   S | j                  €d}nd| j                  ›�}| j                  €d}nd| j                  ›�}| j                  €d}nd| j                  ›�}d| j                   | j                  | j
                  |||fz  S )zÆ
        Return a PEP440-compatible "public" representation of this L{Version}.

        Examples:

          - 14.4.0
          - 1.2.3rc1
          - 14.2.1rc1dev9
          - 16.04.0dev0
        r<   Ú z.rcz.postz.devz%r.%d.%d%s%s%s)rB   rE   rF   rG   rC   rD   )r   ÚrcrF   rG   s       r   ÚpubliczVersion.public­   s©   € ð �:‰:˜ÒØ—:‘:Ðà×!Ñ!Ð)Ø‰Bð *ð !×2Ò2Ð4ˆBà�9‰9ÐØ‰Dð ð !%§	¢	Ð+ˆDà�8‰8ÐØ‰Cð ð #ŸhšhÐ(ˆCà 4§:¡:¨t¯z©z¸4¿:¹:ÀrÈ4ÐQTÐ"UÑUÐUr   c           	      óH  — | j                   €d}nd| j                   ›�}| j                  €d}nd| j                  ›�}| j                  €d}nd| j                  ›�}d| j                  j                  | j
                  | j                  | j                  | j                  |||fz  S )NrM   z, release_candidate=z, post=z, dev=z%s(%r, %r, %d, %d%s%s%s))	rE   rF   rG   Ú	__class__r.   rA   rB   rC   rD   )r   rE   rF   rG   s       r   Ú__repr__zVersion.__repr__Ð   s³   € à×!Ñ!Ð)Ø "Ñð *ð =A×<RÒ<RÐ TÐà�9‰9ÐØ‰Dð ð #'§)¢)Ð-ˆDà�8‰8ÐØ‰Cð ð !%§¢Ð*ˆCà)Ø�N‰N×#Ñ#Ø�L‰LØ�J‰JØ�J‰JØ�J‰JØØØð	-
ñ 	
ð 		
r   c                 óD   — d| j                   ›d| j                  «       ›d�S )Nú[z
, version ú]©rA   ÚshortrK   s    r   Ú__str__zVersion.__str__ì   s   � Ø%)§\£\°4·:±:µ<Ð@Ð@r   c           	      ó\  — t        || j                  «      st        S | j                  j	                  «       |j                  j	                  «       k7  r$t        | j                  ›d|j                  ›�«      ‚| j                  dk(  rt        }n| j                  }| j                  €t        }n| j                  }| j                  €d}n| j                  }| j                  €t        }n| j                  }|j                  dk(  rt        }n|j                  }|j                  €t        }n|j                  }|j                  €d}n|j                  }|j                  €t        }	n|j                  }	t        || j                  | j                  |||f||j                  |j                  |||	f«      }
|
S )aw  
        Compare two versions, considering major versions, minor versions, micro
        versions, then release candidates, then postreleases, then dev
        releases. Package names are case insensitive.

        A version with a release candidate is always less than a version
        without a release candidate. If both versions have release candidates,
        they will be included in the comparison.

        Likewise, a version with a dev release is always less than a version
        without a dev release. If both versions have dev releases, they will
        be included in the comparison.

        @param other: Another version.
        @type other: L{Version}

        @return: NotImplemented when the other object is not a Version, or one
            of -1, 0, or 1.

        @raise IncomparableVersions: when the package names of the versions
            differ.
        z != r<   r   )Ú
isinstancerQ   ÚNotImplementedrA   Úlowerr5   rB   r   rE   rF   rG   r   rC   rD   )r   r    rB   rE   rF   rG   Ú
othermajorÚotherrcÚ	otherpostÚotherdevÚxs              r   r!   zVersion.__cmp__ï   sb  € ô. ˜% §¡Ô0Ü!Ð!Ø�<‰<×ÑÓ 5§=¡=×#6Ñ#6Ó#8Ò8Ü&°T·\³\À5Ç=Â=Ð'QÓRÐRà�:‰:˜ÒÜ‰Eà—J‘JˆEà×!Ñ!Ð)Ü $Ñà $× 6Ñ 6Ðà�9‰9ÐØ‰Dà—9‘9ˆDà�8‰8ÐÜ‰Cà—(‘(ˆCà�;‰;˜&Ò Ü‰JàŸ™ˆJà×"Ñ"Ð*Ü‰Gà×-Ñ-ˆGà�:‰:ÐØ‰IàŸ
™
ˆIà�9‰9ÐÜ‰Hà—y‘yˆHäØ�D—J‘J §
¡
Ð,=¸tÀSÐIØ˜Ÿ™ e§k¡k°7¸IÀxÐPó
ˆð ˆr   r   c                 óB   — | j                  |«      }|t        u r|S |dk(  S r#   ©r!   r[   ©r   r    Úcs      r   Ú__eq__zVersion.__eq__;  ó&   € Ø—‘˜UÓ#ˆAØ”NÑ"Ø�Ø˜‘6ˆMr   c                 óB   — | j                  |«      }|t        u r|S |dk7  S r#   rc   rd   s      r   Ú__ne__zVersion.__ne__A  rg   r   c                 óB   — | j                  |«      }|t        u r|S |dk  S r#   rc   rd   s      r   r%   zVersion.__lt__G  ó&   € Ø—‘˜UÓ#ˆAØ”NÑ"Ø�Ø�q‘5ˆLr   c                 óB   — | j                  |«      }|t        u r|S |dk  S r#   rc   rd   s      r   r(   zVersion.__le__M  rg   r   c                 óB   — | j                  |«      }|t        u r|S |dkD  S r#   rc   rd   s      r   r+   zVersion.__gt__S  rk   r   c                 óB   — | j                  |«      }|t        u r|S |dk\  S r#   rc   rd   s      r   r-   zVersion.__ge__Y  rg   r   )NNNN)r.   r/   r0   r1   rI   ÚpropertyrH   rO   ÚbaserW   ÚlocalrR   rX   r!   r2   r3   rf   ri   r%   r(   r+   r-   r   r   r   r7   r7   b   sŒ   „ ñð ØØØó5ðn ñ&ó ð&òVð> €DØ€EØ€Eò
ò8AòHðT ×Ñ˜4Òò	ò	ò	ò	ò	ó	ðA  r   r7   c                 óD   — | j                   ›d| j                  «       ›�}|S )z®
    Get a friendly string for the given version object.

    @param version: A L{Version} object.
    @return: A string containing the package and short version number.
    ú rV   )ÚversionÚresults     r   ÚgetVersionStringrv   `  s   € ð  Ÿ›¨¯©¬Ð9€FØ€Mr   c                 ól  — |syddl m} |j                  | «      }|j                  «        |j                  «       D ]a  }|d   dk(  sŒi }t	        |d   «      5 }t        |j                  «       |«       ddd«       |d   j                  «       | j                  _	         y t        d«      ‚# 1 sw Y   Œ9xY w)	zF
    Get the version from the package listed in the Distribution.
    Nr   )Úbuild_pyr   Ú_versionr9   Ú__version__zNo _version.py found.)Údistutils.commandrx   Úfinalize_optionsÚfind_all_modulesÚopenÚexecÚreadrO   Úmetadatart   Ú	Exception)ÚdistÚkeywordÚvaluerx   Ú
sp_commandÚitemÚversion_fileÚfs           r   Ú_get_versionrŠ   k  s±   € ñ Øå*à×"Ñ" 4Ó(€JØ×ÑÔ!à×+Ñ+Ó-ò ˆØ�‰7�jÓ ØˆLä�d˜1‘g“ð - !Ü�Q—V‘V“X˜|Ô,÷-ð %1°Ñ$?×$FÑ$FÓ$HˆD�M‰MÔ!Ùðô Ð+Ó
,Ð,÷-ð -ús   ÁB*Â*B3	r   )rz   c                  ó*   — t        j                  «       S )N)rz   rO   r   r   r   Ú_setuptools_versionrŒ   ‡  s   € Ü×ÑÓÐr   )rz   r7   rv   )"r1   Ú
__future__r   r   r2   r>   Útypingr   r   r   r   r	   r
   r   Útyping_extensionsr   Údistutils.distr   Ú_DistributionÚobjectr3   r   Úcmpr   r   Ú	TypeErrorr5   r7   rv   rŠ   ry   rz   rŒ   Ú__all__r   r   r   ú<module>r–      s¡   ðñ÷ 1ã 
Û ß E× Eñ ˆT Ô&€ñ Ý)Þ<ð €Mà×Ñ�dÒóð  €Dô,ˆ6ô ,ñ@ ƒv€ô˜9ô ô{ˆfô {ò|ò-õ2 "ò ò 9�r   