B
    =)H[$-  ã            	   @   sþ   d dl mZmZmZ d dlZd dlZd dlZddlmZ ddddd	gZ	e 
d
ddddddg¡Zdd„ ZG dd„ deƒZG dd„ deƒZG dd„ deƒZe dej¡ZddddddœZdd„ Zdd„ ZdZG d d„ deƒZd!d"„ Ze d#¡Zd$d%„ Zd&d'„ ZdS )(é    )Úabsolute_importÚdivisionÚprint_functionNé   )ÚInfinityÚparseÚVersionÚLegacyVersionÚInvalidVersionÚVERSION_PATTERNÚ_VersionÚepochÚreleaseÚdevÚpreÚpostÚlocalc             C   s&   yt | ƒS  tk
r    t| ƒS X dS )zÑ
    Parse the given version string and return either a :class:`Version` object
    or a :class:`LegacyVersion` object depending on if the given version is
    a valid PEP 440 version or a legacy version.
    N)r   r
   r	   )Úversion© r   úoC:\Users\HIRONO~1\AppData\Local\Temp\pip-install-qz7kpjmn\setuptools\pkg_resources\_vendor\packaging\version.pyr      s    c               @   s   e Zd ZdZdS )r
   zF
    An invalid version was found, users should refer to PEP 440.
    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r
   $   s   c               @   sL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )Ú_BaseVersionc             C   s
   t | jƒS )N)ÚhashÚ_key)Úselfr   r   r   Ú__hash__,   s    z_BaseVersion.__hash__c             C   s   |   |dd„ ¡S )Nc             S   s   | |k S )Nr   )ÚsÚor   r   r   Ú<lambda>0   s    z%_BaseVersion.__lt__.<locals>.<lambda>)Ú_compare)r   Úotherr   r   r   Ú__lt__/   s    z_BaseVersion.__lt__c             C   s   |   |dd„ ¡S )Nc             S   s   | |kS )Nr   )r   r    r   r   r   r!   3   s    z%_BaseVersion.__le__.<locals>.<lambda>)r"   )r   r#   r   r   r   Ú__le__2   s    z_BaseVersion.__le__c             C   s   |   |dd„ ¡S )Nc             S   s   | |kS )Nr   )r   r    r   r   r   r!   6   s    z%_BaseVersion.__eq__.<locals>.<lambda>)r"   )r   r#   r   r   r   Ú__eq__5   s    z_BaseVersion.__eq__c             C   s   |   |dd„ ¡S )Nc             S   s   | |kS )Nr   )r   r    r   r   r   r!   9   s    z%_BaseVersion.__ge__.<locals>.<lambda>)r"   )r   r#   r   r   r   Ú__ge__8   s    z_BaseVersion.__ge__c             C   s   |   |dd„ ¡S )Nc             S   s   | |kS )Nr   )r   r    r   r   r   r!   <   s    z%_BaseVersion.__gt__.<locals>.<lambda>)r"   )r   r#   r   r   r   Ú__gt__;   s    z_BaseVersion.__gt__c             C   s   |   |dd„ ¡S )Nc             S   s   | |kS )Nr   )r   r    r   r   r   r!   ?   s    z%_BaseVersion.__ne__.<locals>.<lambda>)r"   )r   r#   r   r   r   Ú__ne__>   s    z_BaseVersion.__ne__c             C   s   t |tƒstS || j|jƒS )N)Ú
isinstancer   ÚNotImplementedr   )r   r#   Úmethodr   r   r   r"   A   s    
z_BaseVersion._compareN)r   r   r   r   r$   r%   r&   r'   r(   r)   r"   r   r   r   r   r   *   s   r   c               @   s`   e Zd Zdd„ Zdd„ Zdd„ Zedd„ ƒZed	d
„ ƒZedd„ ƒZ	edd„ ƒZ
edd„ ƒZdS )r	   c             C   s   t |ƒ| _t| jƒ| _d S )N)ÚstrÚ_versionÚ_legacy_cmpkeyr   )r   r   r   r   r   Ú__init__J   s    
zLegacyVersion.__init__c             C   s   | j S )N)r.   )r   r   r   r   Ú__str__N   s    zLegacyVersion.__str__c             C   s   d  tt| ƒƒ¡S )Nz<LegacyVersion({0})>)ÚformatÚreprr-   )r   r   r   r   Ú__repr__Q   s    zLegacyVersion.__repr__c             C   s   | j S )N)r.   )r   r   r   r   ÚpublicT   s    zLegacyVersion.publicc             C   s   | j S )N)r.   )r   r   r   r   Úbase_versionX   s    zLegacyVersion.base_versionc             C   s   d S )Nr   )r   r   r   r   r   \   s    zLegacyVersion.localc             C   s   dS )NFr   )r   r   r   r   Úis_prerelease`   s    zLegacyVersion.is_prereleasec             C   s   dS )NFr   )r   r   r   r   Úis_postreleased   s    zLegacyVersion.is_postreleaseN)r   r   r   r0   r1   r4   Úpropertyr5   r6   r   r7   r8   r   r   r   r   r	   H   s   z(\d+ | [a-z]+ | \.| -)Úczfinal-ú@)r   Úpreviewú-Úrcr   c             c   s`   xTt  | ¡D ]F}t ||¡}|r|dkr*q|d d… dkrH| d¡V  qd| V  qW dV  d S )NÚ.r   Ú
0123456789é   Ú*z*final)Ú_legacy_version_component_reÚsplitÚ_legacy_version_replacement_mapÚgetÚzfill)r   Úpartr   r   r   Ú_parse_version_partsr   s    rI   c             C   s†   d}g }xlt |  ¡ ƒD ]\}| d¡rh|dk rJx|rH|d dkrH| ¡  q.W x|rf|d dkrf| ¡  qLW | |¡ qW t|ƒ}||fS )NéÿÿÿÿrB   z*finalz*final-Ú00000000)rI   ÚlowerÚ
startswithÚpopÚappendÚtuple)r   r   ÚpartsrH   r   r   r   r/   ƒ   s    
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               @   s|   e Zd Ze de d ejejB ¡Zdd„ Z	dd„ Z
dd„ Zed	d
„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZdS )r   z^\s*z\s*$c          
   C   sà   | j  |¡}|std |¡ƒ‚t| d¡r8t| d¡ƒndtdd„ | d¡ d¡D ƒƒt	| d¡| d	¡ƒt	| d
¡| d¡p†| d¡ƒt	| d¡| d¡ƒt
| d¡ƒd�| _t| jj| jj| jj| jj| jj| jjƒ| _d S )NzInvalid version: '{0}'r   r   c             s   s   | ]}t |ƒV  qd S )N)Úint)Ú.0Úir   r   r   ú	<genexpr>Ï   s    z#Version.__init__.<locals>.<genexpr>r   r?   Úpre_lÚpre_nÚpost_lÚpost_n1Úpost_n2Údev_lÚdev_nr   )r   r   r   r   r   r   )Ú_regexÚsearchr
   r2   r   ÚgrouprR   rP   rD   Ú_parse_letter_versionÚ_parse_local_versionr.   Ú_cmpkeyr   r   r   r   r   r   r   )r   r   Úmatchr   r   r   r0   Æ   s.    

zVersion.__init__c             C   s   d  tt| ƒƒ¡S )Nz<Version({0})>)r2   r3   r-   )r   r   r   r   r4   é   s    zVersion.__repr__c             C   sî   g }| j jdkr$| d | j j¡¡ | d dd„ | j jD ƒ¡¡ | j jd k	rl| d dd„ | j jD ƒ¡¡ | j jd k	r�| d | j jd	 ¡¡ | j jd k	r´| d
 | j jd	 ¡¡ | j j	d k	rä| d d dd„ | j j	D ƒ¡¡¡ d |¡S )Nr   z{0}!r?   c             s   s   | ]}t |ƒV  qd S )N)r-   )rS   Úxr   r   r   rU   ô   s    z"Version.__str__.<locals>.<genexpr>Ú c             s   s   | ]}t |ƒV  qd S )N)r-   )rS   rd   r   r   r   rU   ø   s    z.post{0}r   z.dev{0}z+{0}c             s   s   | ]}t |ƒV  qd S )N)r-   )rS   rd   r   r   r   rU     s    )
r.   r   rO   r2   Újoinr   r   r   r   r   )r   rQ   r   r   r   r1   ì   s     zVersion.__str__c             C   s   t | ƒ dd¡d S )Nú+r   r   )r-   rD   )r   r   r   r   r5   
  s    zVersion.publicc             C   sL   g }| j jdkr$| d | j j¡¡ | d dd„ | j jD ƒ¡¡ d |¡S )Nr   z{0}!r?   c             s   s   | ]}t |ƒV  qd S )N)r-   )rS   rd   r   r   r   rU     s    z'Version.base_version.<locals>.<genexpr>re   )r.   r   rO   r2   rf   r   )r   rQ   r   r   r   r6     s
    zVersion.base_versionc             C   s$   t | ƒ}d|kr | dd¡d S d S )Nrg   r   )r-   rD   )r   Zversion_stringr   r   r   r     s    zVersion.localc             C   s   t | jjp| jjƒS )N)Úboolr.   r   r   )r   r   r   r   r7   !  s    zVersion.is_prereleasec             C   s   t | jjƒS )N)rh   r.   r   )r   r   r   r   r8   %  s    zVersion.is_postreleaseN)r   r   r   ÚreÚcompiler   ÚVERBOSEÚ
IGNORECASEr]   r0   r4   r1   r9   r5   r6   r   r7   r8   r   r   r   r   r   ¿   s   
#c             C   sv   | rZ|d krd}|   ¡ } | dkr&d} n(| dkr4d} n| dkrBd} n| dkrNd	} | t|ƒfS | sr|rrd	} | t|ƒfS d S )
Nr   ÚalphaÚaÚbetaÚb)r:   r   r<   r>   )ÚrevÚrr   )rL   rR   )ÚletterÚnumberr   r   r   r`   *  s     r`   z[\._-]c             C   s$   | dk	r t dd„ t | ¡D ƒƒS dS )zR
    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
    Nc             s   s&   | ]}|  ¡ s| ¡ nt|ƒV  qd S )N)ÚisdigitrL   rR   )rS   rH   r   r   r   rU   R  s   z'_parse_local_version.<locals>.<genexpr>)rP   Ú_local_version_seperatorsrD   )r   r   r   r   ra   L  s    ra   c             C   s˜   t ttt dd„ t|ƒ¡ƒƒƒ}|d kr@|d kr@|d k	r@t }n|d krLt}|d krZt }|d krft}|d krvt }nt dd„ |D ƒƒ}| |||||fS )Nc             S   s   | dkS )Nr   r   )rd   r   r   r   r!   `  s    z_cmpkey.<locals>.<lambda>c             s   s*   | ]"}t |tƒr|d fnt |fV  qdS )re   N)r*   rR   r   )rS   rT   r   r   r   rU   …  s   z_cmpkey.<locals>.<genexpr>)rP   ÚreversedÚlistÚ	itertoolsÚ	dropwhiler   )r   r   r   r   r   r   r   r   r   rb   W  s&    		
rb   )Ú
__future__r   r   r   Úcollectionsry   ri   Ú_structuresr   Ú__all__Ú
namedtupler   r   Ú
ValueErrorr
   Úobjectr   r	   rj   rk   rC   rE   rI   r/   r   r   r`   rv   ra   rb   r   r   r   r   Ú<module>   s.   !
9k
