B
    @)H[t1  ã            	   @   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   ú^C:\Users\HIRONO~1\AppData\Local\Temp\pip-install-qz7kpjmn\pip\pip\_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e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 )Néÿÿÿÿr   )r   r   r   r   r   \   s    zLegacyVersion.epochc             C   s   d S )Nr   )r   r   r   r   r   `   s    zLegacyVersion.releasec             C   s   d S )Nr   )r   r   r   r   r   d   s    zLegacyVersion.prec             C   s   d S )Nr   )r   r   r   r   r   h   s    zLegacyVersion.postc             C   s   d S )Nr   )r   r   r   r   r   l   s    zLegacyVersion.devc             C   s   d S )Nr   )r   r   r   r   r   p   s    zLegacyVersion.localc             C   s   dS )NFr   )r   r   r   r   Úis_prereleaset   s    zLegacyVersion.is_prereleasec             C   s   dS )NFr   )r   r   r   r   Úis_postreleasex   s    zLegacyVersion.is_postreleasec             C   s   dS )NFr   )r   r   r   r   Úis_devrelease|   s    zLegacyVersion.is_devreleaseN)r   r   r   r0   r1   r4   Úpropertyr5   r6   r   r   r   r   r   r   r8   r9   r:   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_partsŠ   s    rK   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 )Nr7   rD   z*finalz*final-Ú00000000)rK   ÚlowerÚ
startswithÚpopÚappendÚtuple)r   r   ÚpartsrJ   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e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   rA   Úpre_lÚpre_nÚpost_lÚpost_n1Úpost_n2Údev_lÚdev_nr   )r   r   r   r   r   r   )Ú_regexÚsearchr
   r2   r   ÚgrouprS   rQ   rF   Ú_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 dkr | d | j ¡¡ | d dd„ | jD ƒ¡¡ | jd k	rb| d dd„ | jD ƒ¡¡ | jd k	r~| d | j¡¡ | jd k	rš| d	 | j¡¡ | jd k	r¶| d
 | j¡¡ d |¡S )Nr   z{0}!rA   c             s   s   | ]}t |ƒV  qd S )N)r-   )rT   Úxr   r   r   rV     s    z"Version.__str__.<locals>.<genexpr>Ú c             s   s   | ]}t |ƒV  qd S )N)r-   )rT   re   r   r   r   rV     s    z.post{0}z.dev{0}z+{0})	r   rP   r2   Újoinr   r   r   r   r   )r   rR   r   r   r   r1     s    




zVersion.__str__c             C   s   | j jS )N)r.   r   )r   r   r   r   r   !  s    zVersion.epochc             C   s   | j jS )N)r.   r   )r   r   r   r   r   %  s    zVersion.releasec             C   s   | j jS )N)r.   r   )r   r   r   r   r   )  s    zVersion.prec             C   s   | j jr| j jd S d S )Nr   )r.   r   )r   r   r   r   r   -  s    zVersion.postc             C   s   | j jr| j jd S d S )Nr   )r.   r   )r   r   r   r   r   1  s    zVersion.devc             C   s(   | j jr d dd„ | j jD ƒ¡S d S d S )NrA   c             s   s   | ]}t |ƒV  qd S )N)r-   )rT   re   r   r   r   rV   8  s    z Version.local.<locals>.<genexpr>)r.   r   rg   )r   r   r   r   r   5  s    zVersion.localc             C   s   t | ƒ dd¡d S )Nú+r   r   )r-   rF   )r   r   r   r   r5   <  s    zVersion.publicc             C   sF   g }| j dkr | d | j ¡¡ | d dd„ | jD ƒ¡¡ d |¡S )Nr   z{0}!rA   c             s   s   | ]}t |ƒV  qd S )N)r-   )rT   re   r   r   r   rV   I  s    z'Version.base_version.<locals>.<genexpr>rf   )r   rP   r2   rg   r   )r   rR   r   r   r   r6   @  s
    
zVersion.base_versionc             C   s   | j d k	p| jd k	S )N)r   r   )r   r   r   r   r8   M  s    zVersion.is_prereleasec             C   s
   | j d k	S )N)r   )r   r   r   r   r9   Q  s    zVersion.is_postreleasec             C   s
   | j d k	S )N)r   )r   r   r   r   r:   U  s    zVersion.is_devreleaseN)r   r   r   ÚreÚcompiler   ÚVERBOSEÚ
IGNORECASEr^   r0   r4   r1   r;   r   r   r   r   r   r   r5   r6   r8   r9   r:   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   )rM   rS   )ÚletterÚnumberr   r   r   ra   Z  s     ra   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)ÚisdigitrM   rS   )rT   rJ   r   r   r   rV   ‚  s   z'_parse_local_version.<locals>.<genexpr>)rQ   Ú_local_version_separatorsrF   )r   r   r   r   rb   |  s    rb   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   )re   r   r   r   r!   �  s    z_cmpkey.<locals>.<lambda>c             s   s*   | ]"}t |tƒr|d fnt |fV  qdS )rf   N)r*   rS   r   )rT   rU   r   r   r   rV   µ  s   z_cmpkey.<locals>.<genexpr>)rQ   ÚreversedÚlistÚ	itertoolsÚ	dropwhiler   )r   r   r   r   r   r   r   r   r   rc   ‡  s&    		
rc   )Ú
__future__r   r   r   Úcollectionsry   ri   Ú_structuresr   Ú__all__Ú
namedtupler   r   Ú
ValueErrorr
   Úobjectr   r	   rj   rk   rE   rG   rK   r/   r   r   ra   rv   rb   rc   r   r   r   r   Ú<module>   s0   9
: 
