
    4[g6                        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y)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                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)Infinityc                      y)Nr	    selfs    M/var/www/html/bid-api/venv/lib/python3.12/site-packages/scipy/_lib/_pep440.py__repr__zInfinity.__repr__.   s        c                 *    t        t        |             S Nhashreprr   s    r   __hash__zInfinity.__hash__1       DJr   c                      yNFr   r   others     r   __lt__zInfinity.__lt__4       r   c                      yr   r   r   s     r   __le__zInfinity.__le__7   r   r   c                 .    t        || j                        S r   
isinstance	__class__r   s     r   __eq__zInfinity.__eq__:       %00r   c                 0    t        || j                         S r   r!   r   s     r   __ne__zInfinity.__ne__=       eT^^444r   c                      yNTr   r   s     r   __gt__zInfinity.__gt__@       r   c                      yr*   r   r   s     r   __ge__zInfinity.__ge__C   r,   r   c                     t         S r   )NegativeInfinityr   s    r   __neg__zInfinity.__neg__F   s    r   N__name__
__module____qualname__r   r   r   r   r$   r'   r+   r.   r1   r   r   r   r	   r	   -   s/     15 r   r	   c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)r0   c                      y)Nz	-Infinityr   r   s    r   r   zNegativeInfinity.__repr__N   s    r   c                 *    t        t        |             S r   r   r   s    r   r   zNegativeInfinity.__hash__Q   r   r   c                      yr*   r   r   s     r   r   zNegativeInfinity.__lt__T   r,   r   c                      yr*   r   r   s     r   r   zNegativeInfinity.__le__W   r,   r   c                 .    t        || j                        S r   r!   r   s     r   r$   zNegativeInfinity.__eq__Z   r%   r   c                 0    t        || j                         S r   r!   r   s     r   r'   zNegativeInfinity.__ne__]   r(   r   c                      yr   r   r   s     r   r+   zNegativeInfinity.__gt__`   r   r   c                      yr   r   r   s     r   r.   zNegativeInfinity.__ge__c   r   r   c                     t         S r   )r	   r   s    r   r1   zNegativeInfinity.__neg__f   s    r   Nr2   r   r   r   r0   r0   M   s/     15r   r0   _Version)epochreleasedevprepostlocalc                 N    	 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   u   s,    &w &W%%&s   
 $$c                       e Zd ZdZy)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
y	)
_BaseVersionc                 ,    t        | j                        S r   )r   _keyr   s    r   r   z_BaseVersion.__hash__   s    DIIr   c                 (    | j                  |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77r   c                 (    | j                  |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88r   c                 (    | j                  |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                 (    | j                  |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                 (    | j                  |d       S )Nc                     | |kD  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                 (    | j                  |d       S )Nc                     | |k7  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                 h    t        |t              st        S  || j                  |j                        S r   )r"   rL   NotImplementedrN   )r   r   methods      r   rW   z_BaseVersion._compare   s'    %.!!dii,,r   N)r3   r4   r5   r   r   r   r$   r.   r+   r'   rW   r   r   r   rL   rL      s*    899989-r   rL   c                   n    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y	)
r   c                 X    t        |      | _        t        | j                        | _        y r   )str_version_legacy_cmpkeyrN   )r   rH   s     r   __init__zLegacyVersion.__init__   s    G"4==1	r   c                     | j                   S r   rk   r   s    r   __str__zLegacyVersion.__str__   s    }}r   c                 2    dt        t        |              dS )Nz<LegacyVersion()>r   rj   r   s    r   r   zLegacyVersion.__repr__   s     c$i 144r   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                      y r   r   r   s    r   rF   zLegacyVersion.local   s    r   c                      yr   r   r   s    r   is_prereleasezLegacyVersion.is_prerelease       r   c                      y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      su    25          r   r   z(\d+ | [a-z]+ | \.| -)czfinal-@)rD   preview-rcrC   c              #      K   t         j                  |       D ]B  }t        j                  ||      }|r|dk(  r!|d d dv r|j	                  d       <d|z    D d y w)N.   
0123456789   **final)_legacy_version_component_resplit_legacy_version_replacement_mapgetzfill)rR   parts     r   _parse_version_partsr      sf     ,2215.224>ts{8|#**Q-* 6 Ns   A A"c                 F   d}g }t        | j                               D ]s  }|j                  d      rO|dk  r%|r#|d   dk(  r|j                          |r	|d   dk(  r|r#|d   dk(  r|j                          |r	|d   dk(  r|j	                  |       u 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??3hb	Y 6IIK b	Y 6 E"I3		 E"I3 	T 6 %LE%<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y)r   z^\s*z\s*$c                    | j                   j                  |      }|st        d| d      t        |j	                  d      rt        |j	                  d            ndt        d |j	                  d      j                  d      D              t        |j	                  d      |j	                  d	            t        |j	                  d
      |j	                  d      xs |j	                  d            t        |j	                  d      |j	                  d            t        |j	                  d                  | _
        t        | j                  j                  | j                  j                  | j                  j                  | j                  j                  | j                  j                   | j                  j"                        | _        y )NzInvalid version: ''rA   r   c              3   2   K   | ]  }t        |        y wr   )int.0is     r   	<genexpr>z#Version.__init__.<locals>.<genexpr>-  s     L*KQ#a&*K   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+ #5gYa!@AA !/4{{7/C#ekk'*+L%++i*@*F*Fs*KLL%G$G$ 'H%I&@%++i*@ &G$G$ 'u{{7';<
& MMMM!!MMMMMMMM
	r   c                 2    dt        t        |              dS )Nz	<Version(rr   rs   r   s    r   r   zVersion.__repr__G  s    4D	?+2..r   c                    g }| j                   j                  dk7  r(|j                  | j                   j                   d       |j                  dj                  d | j                   j                  D                     | j                   j
                  ;|j                  dj                  d | j                   j
                  D                     | j                   j                  +|j                  d| j                   j                  d           | j                   j                  +|j                  d	| j                   j                  d           | j                   j                  J|j                  d
j                  dj                  d | j                   j                  D                           dj                  |      S )Nr   !r   c              3   2   K   | ]  }t        |        y wr   rj   r   xs     r   r   z"Version.__str__.<locals>.<genexpr>R       D.Cc!f.Cr    c              3   2   K   | ]  }t        |        y wr   r   r   s     r   r   z"Version.__str__.<locals>.<genexpr>V  s      C1BAQ1Br   z.postr   z.devz+{}c              3   2   K   | ]  }t        |        y wr   r   r   s     r   r   z"Version.__str__.<locals>.<genexpr>c  s     %J6Ic!f6Ir   )
rk   rA   r   joinrB   rD   rE   rC   rF   formatr   r   s     r   rp   zVersion.__str__J  sT    ==!#LLDMM//023 	SXXDdmm.C.CDDE ==(LL C1B1B CCD ==)LL5!3!3A!6 789 ==(LL4 1 1! 4567 ==*LLSXX%Jdmm6I6I%JJK wwu~r   c                 >    t        |       j                  dd      d   S )N+r   r   rj   r   r   s    r   ru   zVersion.publich  s    4ysA&q))r   c                     g }| j                   j                  dk7  r(|j                  | j                   j                   d       |j                  dj                  d | j                   j                  D                     dj                  |      S )Nr   r   r   c              3   2   K   | ]  }t        |        y wr   r   r   s     r   r   z'Version.base_version.<locals>.<genexpr>u  r   r   r   )rk   rA   r   r   rB   r   s     r   rx   zVersion.base_versionl  sn     ==!#LLDMM//023 	SXXDdmm.C.CDDEwwu~r   c                 L    t        |       }d|v r|j                  dd      d   S y )Nr   r   r   )r   version_strings     r   rF   zVersion.localy  s0    T. !''Q/22 !r   c                 p    t        | j                  j                  xs | j                  j                        S r   )boolrk   rC   rD   r   s    r   r{   zVersion.is_prerelease  s&    DMM%%:):):;;r   c                 @    t        | j                  j                        S r   )r   rk   rE   r   s    r   r~   zVersion.is_postrelease  s    DMM&&''r   N)r3   r4   r5   recompiler   VERBOSE
IGNORECASEr   rm   r   rp   r   ru   rx   rF   r{   r~   r   r   r   r   r     s    RZZ/!G+


R]]"F
!
F/< * * 
 
 3 3
 < < ( (r   r   c                     | r>|d}| j                         } | 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 y y )
Nr   alphaabetab)r   rD   r   r   )revrrE   )r   r   )letternumbers     r   r   r     s     >F 
 WFvF..F|#Fs6{""f s6{"" 6r   z[\._-]c                 R    | %t        d t        j                  |       D              S y)zR
    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
    Nc              3   r   K   | ]/  }|j                         s|j                         n
t        |       1 y wr   )isdigitr   r   )r   r   s     r   r   z'_parse_local_version.<locals>.<genexpr>  s/      
> !%DJJLCI=>s   57)r   _local_version_seperatorsr   )rF   s    r   r   r     s4      
177>
 
 	
 r   c                    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   V   K   | ]!  }t        |t              r|d fnt         |f # yw)r   N)r"   r   r	   r   s     r   r   z_cmpkey.<locals>.<genexpr>  s0      
 "!S)QG	1~=s   '))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      s   >   	   : : @ $% !;!!7	&Z - -<L B  *rzzrzz  
 3XS# 
":@h(l h(V#> 'BJJy1 
21r   