o
    Ô­jõ6  ã                   @   sú   d Z ddlZddlZddlZg d¢ZG dd„ dƒZeƒ ZG dd„ dƒZeƒ Ze dg d	¢¡Zd
d„ Z	G dd„ de
ƒZG dd„ dƒ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 )%zÅUtility to compare pep440 compatible version strings.

The LooseVersion and StrictVersion classes that distutils provides don't
work; they don't recognize anything like alpha/beta/rc/dev versions.
é    N)ÚparseÚVersionÚLegacyVersionÚInvalidVersionÚVERSION_PATTERNc                   @   óT   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d„ ZdS )ÚInfinityc                 C   ó   dS )Nr   © ©Úselfr
   r
   úQ/var/www/html/CropPilot/venv/lib/python3.10/site-packages/numpy/_utils/_pep440.pyÚ__repr__.   ó   zInfinity.__repr__c                 C   ó   t t| ƒƒS ©N©ÚhashÚreprr   r
   r
   r   Ú__hash__1   ó   zInfinity.__hash__c                 C   r	   ©NFr
   ©r   Úotherr
   r
   r   Ú__lt__4   r   zInfinity.__lt__c                 C   r	   r   r
   r   r
   r
   r   Ú__le__7   r   zInfinity.__le__c                 C   ó   t || jƒS r   ©Ú
isinstanceÚ	__class__r   r
   r
   r   Ú__eq__:   r   zInfinity.__eq__c                 C   ó   t || jƒ S r   r   r   r
   r
   r   Ú__ne__=   ó   zInfinity.__ne__c                 C   r	   ©NTr
   r   r
   r
   r   Ú__gt__@   r   zInfinity.__gt__c                 C   r	   r$   r
   r   r
   r
   r   Ú__ge__C   r   zInfinity.__ge__c                 C   ó   t S r   )ÚNegativeInfinityr   r
   r
   r   Ú__neg__F   r   zInfinity.__neg__N©Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r    r"   r%   r&   r)   r
   r
   r
   r   r   -   ó    r   c                   @   r   )r(   c                 C   r	   )Nz	-Infinityr
   r   r
   r
   r   r   N   r   zNegativeInfinity.__repr__c                 C   r   r   r   r   r
   r
   r   r   Q   r   zNegativeInfinity.__hash__c                 C   r	   r$   r
   r   r
   r
   r   r   T   r   zNegativeInfinity.__lt__c                 C   r	   r$   r
   r   r
   r
   r   r   W   r   zNegativeInfinity.__le__c                 C   r   r   r   r   r
   r
   r   r    Z   r   zNegativeInfinity.__eq__c                 C   r!   r   r   r   r
   r
   r   r"   ]   r#   zNegativeInfinity.__ne__c                 C   r	   r   r
   r   r
   r
   r   r%   `   r   zNegativeInfinity.__gt__c                 C   r	   r   r
   r   r
   r
   r   r&   c   r   zNegativeInfinity.__ge__c                 C   r'   r   )r   r   r
   r
   r   r)   f   r   zNegativeInfinity.__neg__Nr*   r
   r
   r
   r   r(   M   r.   r(   Ú_Version)ÚepochÚreleaseÚdevÚpreÚpostÚlocalc                 C   s&   zt | ƒW S  ty   t| ƒ Y S w )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.
    )r   r   r   )Úversionr
   r
   r   r   u   s
   
ÿr   c                   @   s   e Zd ZdZdS )r   zF
    An invalid version was found, users should refer to PEP 440.
    N)r+   r,   r-   Ú__doc__r
   r
   r
   r   r   �   s    r   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 r   )r   Ú_keyr   r
   r
   r   r   ‰   s   
z_BaseVersion.__hash__c                 C   ó   |   |dd„ ¡S )Nc                 S   s   | |k S r   r
   ©ÚsÚor
   r
   r   Ú<lambda>�   ó    z%_BaseVersion.__lt__.<locals>.<lambda>©Ú_comparer   r
   r
   r   r   Œ   ó   z_BaseVersion.__lt__c                 C   r:   )Nc                 S   s   | |kS r   r
   r;   r
   r
   r   r>   �   r?   z%_BaseVersion.__le__.<locals>.<lambda>r@   r   r
   r
   r   r   �   rB   z_BaseVersion.__le__c                 C   r:   )Nc                 S   s   | |kS r   r
   r;   r
   r
   r   r>   “   r?   z%_BaseVersion.__eq__.<locals>.<lambda>r@   r   r
   r
   r   r    ’   rB   z_BaseVersion.__eq__c                 C   r:   )Nc                 S   s   | |kS r   r
   r;   r
   r
   r   r>   –   r?   z%_BaseVersion.__ge__.<locals>.<lambda>r@   r   r
   r
   r   r&   •   rB   z_BaseVersion.__ge__c                 C   r:   )Nc                 S   s   | |kS r   r
   r;   r
   r
   r   r>   ™   r?   z%_BaseVersion.__gt__.<locals>.<lambda>r@   r   r
   r
   r   r%   ˜   rB   z_BaseVersion.__gt__c                 C   r:   )Nc                 S   s   | |kS r   r
   r;   r
   r
   r   r>   œ   r?   z%_BaseVersion.__ne__.<locals>.<lambda>r@   r   r
   r
   r   r"   ›   rB   z_BaseVersion.__ne__c                 C   s   t |tƒstS || j|jƒS r   )r   r8   ÚNotImplementedr9   )r   r   Úmethodr
   r
   r   rA   ž   s   
z_BaseVersion._compareN)r+   r,   r-   r   r   r   r    r&   r%   r"   rA   r
   r
   r
   r   r8   ‡   s    r8   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 r   )ÚstrÚ_versionÚ_legacy_cmpkeyr9   )r   r6   r
   r
   r   Ú__init__§   s   
zLegacyVersion.__init__c                 C   ó   | j S r   ©rF   r   r
   r
   r   Ú__str__«   s   zLegacyVersion.__str__c                 C   ó   d  tt| ƒƒ¡S )Nz<LegacyVersion({0})>©Úformatr   rE   r   r
   r
   r   r   ®   ó   zLegacyVersion.__repr__c                 C   rI   r   rJ   r   r
   r
   r   Úpublic±   ó   zLegacyVersion.publicc                 C   rI   r   rJ   r   r
   r
   r   Úbase_versionµ   rQ   zLegacyVersion.base_versionc                 C   s   d S r   r
   r   r
   r
   r   r5   ¹   ó   zLegacyVersion.localc                 C   r	   r   r
   r   r
   r
   r   Úis_prerelease½   rS   zLegacyVersion.is_prereleasec                 C   r	   r   r
   r   r
   r
   r   Úis_postreleaseÁ   rS   zLegacyVersion.is_postreleaseN)r+   r,   r-   rH   rK   r   ÚpropertyrP   rR   r5   rT   rU   r
   r
   r
   r   r   ¥   s    



r   z(\d+ | [a-z]+ | \.| -)Úczfinal-ú@)r3   Úpreviewú-Úrcr2   c                 c   s^   � t  | ¡D ]#}t ||¡}|r|dkrq|d d… dv r$| d¡V  qd| V  qdV  d S )NÚ.é   Ú
0123456789é   Ú*ú*final)Ú_legacy_version_component_reÚsplitÚ_legacy_version_replacement_mapÚgetÚzfill)r<   Úpartr
   r
   r   Ú_parse_version_partsÏ   s   €
rh   c                 C   s–   d}g }t |  ¡ ƒD ]8}| d¡r=|dk r)|r)|d dkr)| ¡  |r)|d dks|r=|d dkr=| ¡  |r=|d dks1| |¡ q
t|ƒ}||fS )Néÿÿÿÿr`   ra   z*final-Ú00000000)rh   ÚlowerÚ
startswithÚpopÚappendÚtuple)r6   r0   Úpartsrg   r
   r
   r   rG   à   s   
ÿÿrG   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¡rt| d¡ƒndtdd„ | d¡ d¡D ƒƒt	| d¡| d	¡ƒt	| d
¡| d¡pC| 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}'r0   r   c                 s   ó   � | ]}t |ƒV  qd S r   )Úint©Ú.0Úir
   r
   r   Ú	<genexpr>-  ó   € z#Version.__init__.<locals>.<genexpr>r1   r\   Úpre_lÚpre_nÚpost_lÚpost_n1Úpost_n2Údev_lÚdev_nr5   ©r0   r1   r3   r4   r2   r5   )Ú_regexÚsearchr   rN   r/   Úgrouprr   ro   rc   Ú_parse_letter_versionÚ_parse_local_versionrF   Ú_cmpkeyr0   r1   r3   r4   r2   r5   r9   )r   r6   Úmatchr
   r
   r   rH   $  s8   þþþñ
úzVersion.__init__c                 C   rL   )Nz<Version({0})>rM   r   r
   r
   r   r   G  rO   zVersion.__repr__c                 C   sî   g }| j jdkr| d | j j¡¡ | d dd„ | j jD ƒ¡¡ | j jd ur6| d dd„ | j jD ƒ¡¡ | j jd urH| d | j jd	 ¡¡ | j jd urZ| d
 | j jd	 ¡¡ | j j	d urr| d d dd„ | j j	D ƒ¡¡¡ d |¡S )Nr   ú{0}!r\   c                 s   rq   r   ©rE   ©rt   Úxr
   r
   r   rv   R  rw   z"Version.__str__.<locals>.<genexpr>Ú c                 s   rq   r   rˆ   r‰   r
   r
   r   rv   V  rw   z.post{0}r]   z.dev{0}z+{0}c                 s   rq   r   rˆ   r‰   r
   r
   r   rv   c  rw   )
rF   r0   rn   rN   Újoinr1   r3   r4   r2   r5   ©r   rp   r
   r
   r   rK   J  s   ÿ
zVersion.__str__c                 C   s   t | ƒ dd¡d S )Nú+r]   r   ©rE   rc   r   r
   r
   r   rP   h  ó   zVersion.publicc                 C   sL   g }| j jdkr| d | j j¡¡ | d dd„ | j jD ƒ¡¡ d |¡S )Nr   r‡   r\   c                 s   rq   r   rˆ   r‰   r
   r
   r   rv   u  rw   z'Version.base_version.<locals>.<genexpr>r‹   )rF   r0   rn   rN   rŒ   r1   r�   r
   r
   r   rR   l  s
   
zVersion.base_versionc                 C   s$   t | ƒ}d|v r| dd¡d S d S )NrŽ   r]   r�   )r   Úversion_stringr
   r
   r   r5   y  s   ÿzVersion.localc                 C   s   t | jjp| jjƒS r   )ÚboolrF   r2   r3   r   r
   r
   r   rT     r�   zVersion.is_prereleasec                 C   s   t | jjƒS r   )r’   rF   r4   r   r
   r
   r   rU   ƒ  s   zVersion.is_postreleaseN)r+   r,   r-   ÚreÚcompiler   ÚVERBOSEÚ
IGNORECASEr€   rH   r   rK   rV   rP   rR   r5   rT   rU   r
   r
   r
   r   r     s$    

þ#



r   c                 C   sz   | r-|d u rd}|   ¡ } | dkrd} n| dkrd} n| dv r!d} n| dv r'd	} | t|ƒfS | s9|r;d	} | t|ƒfS d S d S )
Nr   ÚalphaÚaÚbetaÚb)rW   r3   rY   r[   )ÚrevÚrr4   )rk   rr   )ÚletterÚnumberr
   r
   r   rƒ   ˆ  s"   ûrƒ   z[\._-]c                 C   s$   | du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 r   )Úisdigitrk   rr   )rt   rg   r
   r
   r   rv   ¯  s
   € ÿ
ÿz'_parse_local_version.<locals>.<genexpr>)ro   Ú_local_version_seperatorsrc   )r5   r
   r
   r   r„   ª  s
   þÿr„   c                 C   s˜   t ttt dd„ t|ƒ¡ƒƒƒ}|d u r |d u r |d ur t }n|d u r&t}|d u r-t }|d u r3t}|d u r;t }n	t dd„ |D ƒƒ}| |||||fS )Nc                 S   s   | dkS )Nr   r
   )rŠ   r
   r
   r   r>   ¾  r?   z_cmpkey.<locals>.<lambda>c                 s   s,   � | ]}t |tƒr|d fnt |fV  qdS )r‹   N)r   rr   r   rs   r
   r
   r   rv   â  s
   € ÿ
ÿz_cmpkey.<locals>.<genexpr>)ro   ÚreversedÚlistÚ	itertoolsÚ	dropwhiler   r   r
   r
   r   r…   µ  s,   þÿÿ	þr…   )r7   Úcollectionsr£   r“   Ú__all__r   r(   Ú
namedtupler/   r   Ú
ValueErrorr   r8   r   r”   r•   rb   rd   rh   rG   r   r   rƒ   r    r„   r…   r
   r
   r
   r   Ú<module>   s<     þ!ÿ
ÿ k
