
    thh6                        d Z ddlZddlZddlZg dZ G d d          Z e            Z G d d          Z e            Z ej        dg d	          Zd
 Z	 G d de
          Z G d d          Z G d de          Z ej        dej                  ZddddddZd Zd ZdZ G d de          Zd Z ej        d          Zd Zd ZdS )zUtility 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                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )Infinityc                     dS )Nr	    selfs    K/var/www/histauto/venv/lib/python3.11/site-packages/numpy/_utils/_pep440.py__repr__zInfinity.__repr__-   s    z    c                 :    t          t          |                     S Nhashreprr   s    r   __hash__zInfinity.__hash__0       DJJr   c                     dS NFr   r   others     r   __lt__zInfinity.__lt__3       ur   c                     dS r   r   r   s     r   __le__zInfinity.__le__6   r   r   c                 ,    t          || j                  S r   
isinstance	__class__r   s     r   __eq__zInfinity.__eq__9       %000r   c                 .    t          || j                   S r   r!   r   s     r   __ne__zInfinity.__ne__<       eT^4444r   c                     dS NTr   r   s     r   __gt__zInfinity.__gt__?       tr   c                     dS r*   r   r   s     r   __ge__zInfinity.__ge__B   r,   r   c                     t           S r   )NegativeInfinityr   s    r   __neg__zInfinity.__neg__E   s    r   N__name__
__module____qualname__r   r   r   r   r$   r'   r+   r.   r1   r   r   r   r	   r	   ,   s                   1 1 15 5 5             r   r	   c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )r0   c                     dS )Nz	-Infinityr   r   s    r   r   zNegativeInfinity.__repr__M   s    {r   c                 :    t          t          |                     S r   r   r   s    r   r   zNegativeInfinity.__hash__P   r   r   c                     dS r*   r   r   s     r   r   zNegativeInfinity.__lt__S   r,   r   c                     dS r*   r   r   s     r   r   zNegativeInfinity.__le__V   r,   r   c                 ,    t          || j                  S r   r!   r   s     r   r$   zNegativeInfinity.__eq__Y   r%   r   c                 .    t          || j                   S r   r!   r   s     r   r'   zNegativeInfinity.__ne__\   r(   r   c                     dS r   r   r   s     r   r+   zNegativeInfinity.__gt___   r   r   c                     dS r   r   r   s     r   r.   zNegativeInfinity.__ge__b   r   r   c                     t           S r   )r	   r   s    r   r1   zNegativeInfinity.__neg__e   s    r   Nr2   r   r   r   r0   r0   L   s                   1 1 15 5 5        r   r0   _Version)epochreleasedevprepostlocalc                 `    	 t          |           S # t          $ r t          |           cY S w xY 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   )versions    r   r   r   t   sD    &w & & &W%%%%%&s    --c                       e Zd ZdZdS )r   zF
    An invalid version was found, users should refer to PEP 440.
    N)r3   r4   r5   __doc__r   r   r   r   r      s           r   r   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
_BaseVersionc                 *    t          | j                  S r   )r   _keyr   s    r   r   z_BaseVersion.__hash__   s    DIr   c                 0    |                      |d           S )Nc                     | |k     S r   r   sos     r   <lambda>z%_BaseVersion.__lt__.<locals>.<lambda>   
    Q r   _comparer   s     r   r   z_BaseVersion.__lt__       }}U$6$6777r   c                 0    |                      |d           S )Nc                     | |k    S r   r   rQ   s     r   rT   z%_BaseVersion.__le__.<locals>.<lambda>   
    a r   rV   r   s     r   r   z_BaseVersion.__le__       }}U$7$7888r   c                 0    |                      |d           S )Nc                     | |k    S r   r   rQ   s     r   rT   z%_BaseVersion.__eq__.<locals>.<lambda>   r[   r   rV   r   s     r   r$   z_BaseVersion.__eq__   r\   r   c                 0    |                      |d           S )Nc                     | |k    S r   r   rQ   s     r   rT   z%_BaseVersion.__ge__.<locals>.<lambda>   r[   r   rV   r   s     r   r.   z_BaseVersion.__ge__   r\   r   c                 0    |                      |d           S )Nc                     | |k    S r   r   rQ   s     r   rT   z%_BaseVersion.__gt__.<locals>.<lambda>   rU   r   rV   r   s     r   r+   z_BaseVersion.__gt__   rX   r   c                 0    |                      |d           S )Nc                     | |k    S r   r   rQ   s     r   rT   z%_BaseVersion.__ne__.<locals>.<lambda>   r[   r   rV   r   s     r   r'   z_BaseVersion.__ne__   r\   r   c                 f    t          |t                    st          S  || j        |j                  S r   )r"   rL   NotImplementedrN   )r   r   methods      r   rW   z_BaseVersion._compare   s0    %.. 	"!!vdi,,,r   N)r3   r4   r5   r   r   r   r$   r.   r+   r'   rW   r   r   r   rL   rL      s          8 8 89 9 99 9 99 9 98 8 89 9 9- - - - -r   rL   c                       e Zd Zd Zd Zd Zed             Zed             Zed             Z	ed             Z
ed             Zd	S )
r   c                 `    t          |          | _        t          | j                  | _        d S r   )str_version_legacy_cmpkeyrN   )r   rH   s     r   __init__zLegacyVersion.__init__   s$    G"4=11			r   c                     | j         S r   rk   r   s    r   __str__zLegacyVersion.__str__   s
    }r   c                 (    dt          |           dS )Nz<LegacyVersion()>rj   r   s    r   r   zLegacyVersion.__repr__   s    0T0000r   c                     | j         S r   ro   r   s    r   publiczLegacyVersion.public   
    }r   c                     | j         S r   ro   r   s    r   base_versionzLegacyVersion.base_version   rv   r   c                     d S r   r   r   s    r   rF   zLegacyVersion.local   s    tr   c                     dS r   r   r   s    r   is_prereleasezLegacyVersion.is_prerelease       ur   c                     dS r   r   r   s    r   is_postreleasezLegacyVersion.is_postrelease   r|   r   N)r3   r4   r5   rm   rp   r   propertyru   rx   rF   r{   r~   r   r   r   r   r      s        2 2 2  1 1 1   X   X   X   X   X  r   r   z(\d+ | [a-z]+ | \.| -)czfinal-@)rD   preview-rcrC   c              #      K   t                               |           D ]Q}t                              ||          }|r|dk    r&|d d         dv r|                    d          V  Jd|z   V  RdV  d S )N.   
0123456789   **final)_legacy_version_component_resplit_legacy_version_replacement_mapgetzfill)rR   parts     r   _parse_version_partsr      s      ,22155 
 
.224>> 	ts{{8|##**Q--* NNNNNr   c                    d}g }t          |                                           D ]}|                    d          rf|dk     r0|r.|d         dk    r"|                                 |r|d         dk    "|r.|d         dk    r"|                                 |r|d         dk    "|                    |           t          |          }||fS )Nr   r   z*final-00000000)r   lower
startswithpopappendtuple)rH   rA   partsr   s       r   rl   rl      s    
 E E$W]]__55  ??3 	h  b	Y 6 6IIKKK   b	Y 6 6  E"I33		  E"I33 	T%LLE%<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                       e Zd Z ej        dez   dz   ej        ej        z            Zd Z	d Z
d Zed             Zed             Zed             Zed	             Zed
             ZdS )r   z^\s*z\s*$c                    | j                             |          }|st          d| d          t          |                    d          r"t          |                    d                    ndt          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                  | _        d S )NzInvalid version: ''rA   r   c              3   4   K   | ]}t          |          V  d S r   )int.0is     r   	<genexpr>z#Version.__init__.<locals>.<genexpr>,  s(      LLQ#a&&LLLLLLr   rB   r   pre_lpre_npost_lpost_n1post_n2dev_ldev_nrF   rA   rB   rD   rE   rC   rF   )_regexsearchr   r@   groupr   r   r   _parse_letter_version_parse_local_versionrk   _cmpkeyrA   rB   rD   rE   rC   rF   rN   )r   rH   matchs      r   rm   zVersion.__init__#  s   ""7++ 	B !@g!@!@!@AAA !/4{{7/C/CJ#ekk'**+++LL%++i*@*@*F*Fs*K*KLLLLL%G$$G$$  'H%%I&&@%++i*@*@  &G$$G$$  'u{{7';';<<
 
 
& MM!MMMM
 
			r   c                 (    dt          |           dS )Nz	<Version(rr   rs   r   s    r   r   zVersion.__repr__F  s    *3t99****r   c                    g }| j         j        dk    r"|                    | j         j         d           |                    d                    d | j         j        D                                  | j         j        <|                    d                    d | j         j        D                                  | j         j        (|                    d| j         j        d                     | j         j        (|                    d	| j         j        d                     | j         j        ?|                    d
d                    d | j         j        D                                   d                    |          S )Nr   !r   c              3   4   K   | ]}t          |          V  d S r   rs   r   xs     r   r   z"Version.__str__.<locals>.<genexpr>Q  (      DDc!ffDDDDDDr    c              3   4   K   | ]}t          |          V  d S r   rs   r   s     r   r   z"Version.__str__.<locals>.<genexpr>U  s(       C CAQ C C C C C Cr   z.postr   z.dev+c              3   4   K   | ]}t          |          V  d S r   rs   r   s     r   r   z"Version.__str__.<locals>.<genexpr>b  s(      AASVVAAAAAAr   )	rk   rA   r   joinrB   rD   rE   rC   rF   r   r   s     r   rp   zVersion.__str__I  sp    =!##LLDM/222333 	SXXDDdm.CDDDDDEEE =(LL C C1B C C CCCDDD =)LL8!3A!688999 =(LL6 1! 466777 =*LLCCHHAAT]-@AAAAACC   wwu~~r   c                 T    t          |                               dd          d         S )Nr   r   r   rj   r   r   s    r   ru   zVersion.publicg  s!    4yysA&&q))r   c                    g }| j         j        dk    r"|                    | j         j         d           |                    d                    d | j         j        D                                  d                    |          S )Nr   r   r   c              3   4   K   | ]}t          |          V  d S r   rs   r   s     r   r   z'Version.base_version.<locals>.<genexpr>t  r   r   r   )rk   rA   r   r   rB   r   s     r   rx   zVersion.base_versionk  s}     =!##LLDM/222333 	SXXDDdm.CDDDDDEEEwwu~~r   c                 d    t          |           }d|v r|                    dd          d         S d S )Nr   r   r   )r   version_strings     r   rF   zVersion.localx  s;    T.  !''Q//22 ! r   c                 L    t          | j        j        p| j        j                  S r   )boolrk   rC   rD   r   s    r   r{   zVersion.is_prerelease~  s    DM%:):;;;r   c                 4    t          | j        j                  S r   )r   rk   rE   r   s    r   r~   zVersion.is_postrelease  s    DM&'''r   N)r3   r4   r5   recompiler   VERBOSE
IGNORECASEr   rm   r   rp   r   ru   rx   rF   r{   r~   r   r   r   r   r     s        RZ/!G+

R]" F
!
 !
 !
F+ + +  < * * X* 
 
 X
 3 3 X3
 < < X< ( ( X( ( (r   r   c                     | rH|d}|                                  } | dk    rd} n| dk    rd} n| dv rd} n| dv rd	} | t          |          fS | s|rd	} | t          |          fS d S d S )
Nr   alphaabetab)r   rD   r   r   )revrrE   )r   r   )letternumbers     r   r   r     s     # >F 
 WFFvFF...FF|##Fs6{{"" #f # s6{{""# # # #r   z[\._-]c                 l    | 1t          d t                              |           D                       S dS )zR
    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
    Nc              3      K   | ];}|                                 s|                                nt          |          V  <d S r   )isdigitr   r   )r   r   s     r   r   z'_parse_local_version.<locals>.<genexpr>  sU       
 
 !%=DJJLLLCII
 
 
 
 
 
r   )r   _local_version_seperatorsr   )rF   s    r   r   r     sN      
 
177>>
 
 
 
 
 	
 r   c                 D   t          t          t          t          j        d t          |                                                  }|||	t
           }n	|t
          }|t
           }|t
          }|	t
           }nt          d |D                       }| |||||fS )Nc                     | dk    S )Nr   r   )r   s    r   rT   z_cmpkey.<locals>.<lambda>  s
    !q& r   c              3   \   K   | ]'}t          |t                    r|d fn	t           |fV  (dS )r   N)r"   r   r	   r   s     r   r   z_cmpkey.<locals>.<genexpr>  sS       
 
 "!S))=QGG	1~
 
 
 
 
 
r   )r   reversedlist	itertools	dropwhiler	   r   s         r   r   r     s       !! 
 
 	 	 G {t|i 
 |y {}	  
 

 
 
 
 

 '3c500r   )rJ   collectionsr   r   __all__r	   r0   
namedtupler@   r   
ValueErrorr   rL   r   r   r   r   r   r   rl   r   r   r   r   r   r   r   r   r   <module>r      s9   >         				                 : 8::       @ $#%% !;!777 	& 	& 	&    Z   - - - - - - - -<    L   B  *rzrz    
 3XS# # 
  "  :@h( h( h( h( h(l h( h( h(V# # #> 'BJy11 
 
 
21 21 21 21 21r   