o
    tfы                     @   s  d dl Z d dlZe eZdZeZG dd dZG dd de	Z
dd Zed Ze
 Zi Ze Zd	ee< e Zd
ee< e Zdee< e Zdee  d d ee  d d ee  d ee< e Zdee  d d ee  d d ee  d ee< e Zdee  d ee  d ee< e Zdee  d ee  d ee< e Zdee  d ee  d ee< e Zdee  d ee  d ee< e Zdee< e Zdee  d ee  d ee< e Zdee  ee  d ee  d Zde d ee< dee  ee  d ee  d Ze Zde d ee< e Zdee< e Zee d ee< e Z ee d ee < e Z!dee   d d ee   d d ee   d d ee  d  ee  d d! ee!< e Z"dee  d d ee  d d ee  d d ee  d  ee  d d! ee"< e Z#dee  d" ee!  d ee#< e Z$dee  d" ee"  d ee$< e Z%d#ee%< e Z&d$ee%  d% ee&< e'ee& ej(ee&< d&Z)e Z*dee%  ee!  d ee*< e Z+dee%  ee"  d ee+< e Z,d'ee,< e Z-d$ee,  d% ee-< e'ee- ej(ee-< d(Z.e Z/dee,  ee!  d ee/< e Z0dee,  ee"  d ee0< e Z1dee  d) e d* ee1< e Z2dee  d) e d* ee2< e Z3d$ee  d) e d ee!  d ee3< e'ee3 ej(ee3< d+Z4e Z5d,ee!  d d- d ee!  d d. ee5< e Z6d,ee"  d d- d ee"  d d. ee6< e Z7d/ee7< e Z8ee Z9ee Z:d0e9 d1e9 d2e: dee8< e;e< D ]Z=e>d3e=ee=  e=evre'ee= ee=< qd4d5 Z?d6d7 Z@d8d9 ZAe'd:ZBd;d< ZCeCZDG d=d> d>ZEdd?d@ZFdAdB ZGdCdD ZHdEdF ZIdGdH ZJdIdJ ZKdKdL ZLeLdMZMeLdMZNdNdO ZOdPdQ ZPdRdS ZQdTdU ZRdVdW ZSdXdY ZTdZd[ ZUd\d] ZVd^d_ ZWd`da ZXeXZYeZ Z[G dbdc dcZ\ddde Z]G dfdg dgZ^dhdi Z_djdk Z`dldm Zadndo Zbdpdq Zcdrds Zddtdu Zedvdw Zfdxdy Zgdzd{ Zhd|d} Zid~d ZjdddZkdddZldd Zmdd Zndd Zodd ZpdS )    Nz2.0.0c                   @   s$   e Zd Zdd Zdd Zdd ZdS )_Rc                 C   s
   || _ d S Ni)selfr    r   Z/var/www/html/software/conda/envs/catlas/lib/python3.10/site-packages/jupyterlab/semver.py__init__*      
z_R.__init__c                 C   s   | j }|  j d7  _ |S )N   r   )r   vr   r   r   __call__-   s   z_R.__call__c                 C      | j S r   r   r   r   r   r   value2      z_R.valueN)__name__
__module____qualname__r	   r   r   r   r   r   r   r   )   s    r   c                   @   s   e Zd Zdd ZdS )
Extendlistc                 C   sB   z
t | || W d S  ty    t| |kr| | Y d S  w r   )list__setitem__
IndexErrorlenappend)r   r   r   r   r   r   r   7   s   zExtendlist.__setitem__N)r   r   r   r   r   r   r   r   r   6   s    r   c                 C   s    z| | W S  t y   Y d S w r   )r   )xsr   r   r   r   list_getA   s
   
r   z
0|[1-9]\d*z[0-9]+z\d*[a-zA-Z-][a-zA-Z0-9-]*(z)\.)z(?:|z(?:-(z(?:\.z)*))z(?:-?(z[0-9A-Za-z-]+z(?:\+(zv??^$z[v=\s]*z((?:<|>)?=?)z|x|X|\*z[v=\s]*(z(?:\.(z)?z)?)?z\s*z(?:~>?)z(\s*)\s+z\1~z(?:\^)z\1^z\s*(z)$|^$z\1\2\3z^\s*(z\s+-\s+z\s*$z(<|>)?=?\s*\*zv?(z)(?:\.(z))?zgenregxp %s %sc                 C   s0   |rt t nt t }|| }|rt| |S d S r   )regexpLOOSEFULLsearchsemver)versionloosermr   r   r   parseG  s
   

r-   c                 C   s   t | |}|jr
|S d S r   r-   r)   )r)   r*   r   r   r   r   validP  s   
r/   c                 C   s   t | |}|r
|jS d S r   r.   )r)   r*   sr   r   r   cleanX  s   
r1   z^\d+$c                 C   sD   t | tr| j|kr| S | j} nt | tstd|  	 t| |S )NInvalid Version: )
isinstanceSemVerr*   r)   string_type
ValueError)r)   r*   r   r   r   r(   c  s   



r(   c                   @   sN   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dZ
dS )r4   c                 C   s\  t d|| || _|| _t|rtnt | }|sg|s%t	d| tt
 | }|dr:t|dnd| _|drIt|dnd| _d| _|dsXg | _nPdd |dd	D | _nAt|d| _t|d| _t|d| _|d
sg | _ndd |d
d	D | _|dr|dd	| _ng | _|   d S )NzSemVer %s, %sr2   r   r         c                 S   "   g | ]}t |rt|n|qS r   NUMERICr'   int.0id_r   r   r   
<listcomp>      z#SemVer.__init__.<locals>.<listcomp>.   c                 S   r9   r   r:   r=   r   r   r   r@     rA      )loggerdebugr*   rawr$   r%   r&   r'   stripr6   RECOVERYVERSIONNAMEgroupr<   majorminorpatch
prereleasesplitbuildformat)r   r)   r*   r,   r   r   r   r	   w  s8   



zSemVer.__init__c                 C   sV   | j  d| j d| j | _t| jdkr(|  jdddd | jD 7  _| jS )NrB   r   z-{}c                 s   s    | ]}t |V  qd S r   )str)r>   r   r   r   r   	<genexpr>  s    z SemVer.format.<locals>.<genexpr>)rK   rL   rM   r)   r   rN   rQ   joinr   r   r   r   rQ     s   &zSemVer.formatc                 C      d|  dS )Nz<SemVer z >r   r   r   r   r   __repr__     zSemVer.__repr__c                 C   r   r   r)   r   r   r   r   __str__  r   zSemVer.__str__c                 C   sN   t d| j| j| t|tst|| j}| |p| |}t d| |S )NzSemVer.compare %s %s %szcompare result %s)	rE   rF   r)   r*   r3   r4   make_semvercompare_maincompare_pre)r   otherresultr   r   r   compare  s   
zSemVer.comparec                 C   sX   t |tst|| j}tt| jt|jp+tt| jt|jp+tt| jt|jS r   )	r3   r4   rZ   r*   compare_identifiersrR   rK   rL   rM   )r   r]   r   r   r   r[     s   
zSemVer.compare_mainc                 C   s   t |tst|| j}t| jdk}t|jdk}|s|rdS |r%|s%dS |s+|s+dS d}	 t| j|}t|j|}td||| |d7 }|d u rP|d u rPdS |d u rVdS |d u r\dS ||kraq-t	t
|t
|S )Nr   r   Tzprerelease compare %s: %s %s)r3   r4   rZ   r*   r   rN   r   rE   rF   r`   rR   )r   r]   Zis_self_more_than_zeroZis_other_more_than_zeror   abr   r   r   r\     s2   
zSemVer.compare_preNc                 C   sz  t d| j| |dkr%g | _d| _d| _|  jd7  _| jd|d n|dkr>g | _d| _|  jd7  _| jd|d n|dkrTg | _| jd	|d | jd|d n|d
krnt| jdkrf| jd	|d | jd|d n|dkr| jdks| jdkst| jdkr|  jd7  _d| _d| _g | _n|dkr| jdkst| jdkr|  jd7  _d| _g | _n|d	krt| jdkr|  jd7  _g | _nk|dkr,t d| j t| jdkrdg| _n*t| jd }|dkr
t| j| t	r| j|  d7  < |d8 }|d8 }|dks|d ur+| jd |kr&t| jd t	s%|dg| _n|dg| _nt
d| |   | j| _| S )Nzinc release %s %sZpremajorr   r   pre
identifierZpreminorZprepatchrM   rN   rK   rL   zinc prerelease %sr7   zinvalid increment argument: )rE   rF   rN   rM   rL   rK   incr   r3   r<   r6   rQ   r)   rG   )r   releaserf   r   r   r   r   rg     sr   "





z
SemVer.incr   )r   r   r   r	   rQ   rV   rY   r_   r[   r\   rg   r   r   r   r   r4   v  s    &
 r4   c              
   C   sN   zt | |j||djW S  ty& } ztj|dd W Y d }~d S d }~ww )Nre   rD   )exc_info)rZ   rg   r)   	ExceptionrE   rF   )r)   rh   r*   rf   er   r   r   rg   /  s   rg   c                 C   s`   t | }t |}|r|rt| } t|}|r|sdS |r"|s"dS | |k r(dS | |kr.dS dS )Nra   r   r   r:   )rb   rc   ZanumZbnumr   r   r   r`   7  s   

r`   c                 C   s
   t || S r   )r`   rb   rc   r   r   r   rcompare_identifiersK  r
   rm   c                 C   s   t | ||S r   )rZ   r_   rb   rc   r*   r   r   r   r_   O     r_   c                 C   s   t | |dS )NTr_   rl   r   r   r   compare_looseS  rW   rq   c                 C   s   t || |S r   rp   rn   r   r   r   rcompareW  rW   rr   c                    s    fdd}|S )Nc                    sH   t |  }|j|j|jf}|jr|t|j }|S g |tdR }|S )Ninf)rZ   rK   rL   rM   rN   tuplefloat)r)   r   keyr*   r   r   key_function\  s   
z'make_key_function.<locals>.key_functionr   )r*   rx   r   rw   r   make_key_function[  s   ry   Tc                 C   s   |rt nt}| j|d | S )N)rv   loose_key_functionfull_key_functionsortlist_r*   Zkeyfr   r   r   r}   n  s   r}   c                 C   s   |rt nt}| j|dd | S )NT)rv   reverserz   r~   r   r   r   rsortt  s   r   c                 C   s   t | ||dkS Nr   rp   rn   r   r   r   gtz  ro   r   c                 C   s   t | ||dk S r   rp   rn   r   r   r   lt~  ro   r   c                 C   s   t | ||dkS r   rp   rn   r   r   r   eq  ro   r   c                 C   s   t | ||dkS r   rp   rn   r   r   r   neq  ro   r   c                 C   s   t | ||dkS r   rp   rn   r   r   r   gte  ro   r   c                 C   s   t | ||dkS r   rp   rn   r   r   r   lte  ro   r   c                 C   s   t d| |dkr| |kS |dkr| |kS |dks"|dks"|dkr(t| ||S |dkr2t| ||S |dkr<t| ||S |d	krFt| ||S |d
krPt| ||S |dkrZt| ||S td| )Nzcmp: %sz===z!== =z==z!=>>=<<=zInvalid operator: )	rE   rF   r   r   r   r   r   r   r6   )rb   oprc   r*   r   r   r   cmp  s$   r   c                 C   s(   t | tr| j|kr| S | j} t| |S r   )r3   
Comparatorr*   r   compr*   r   r   r   
comparator  s
   


r   c                   @   s8   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d ZdS )r   Nc                 C   sF   t d|| || _| | | jtkrd| _d S | j| jj | _d S )Nzcomparator: %s %sr   )	rE   rF   r*   r-   r(   ANYr   operatorr)   )r   r   r*   r   r   r   r	     s   


zComparator.__init__c                 C   s~   | j rtt ntt }td| ||}|d u r!td| |d| _	|dd u r3t
| _d S t|d| j | _d S )Nzparse comp=%szInvalid comparator: r   r7   )r*   r$   COMPARATORLOOSE
COMPARATORrE   rF   r'   r6   rJ   r   r   r(   )r   r   r+   r,   r   r   r   r-     s   

zComparator.parsec                 C   rU   )Nz<SemVer Comparator "">r   r   r   r   r   rV     rW   zComparator.__repr__c                 C   r   r   r   r   r   r   r   rY     r   zComparator.__str__c                 C   s2   t d|| j | jtkrdS t|| j| j| jS )NzComparator, test %s, %sT)rE   rF   r*   r(   r   r   r   r   r)   r   r   r   test  s   
zComparator.test)	r   r   r   r(   r	   r-   rV   rY   r   r   r   r   r   r     s    
r   c                 C   s"   t | tr| j|kr| S t| |S r   )r3   Ranger*   range_r*   r   r   r   
make_range  s   
r   c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )r   c                    sZ   | _ | _ fddtd|D }dd |D  _t js'td|    d S )Nc                    s   g | ]	}  | qS r   )parse_rangerH   r>   r+   r   r   r   r@         z"Range.__init__.<locals>.<listcomp>z
\s*\|\|\s*c                 S   s   g | ]}|r|qS r   r   r   r   r   r   r@     s    zInvalid SemVer Range: )r*   rG   rerO   setr   r6   rQ   )r   r   r*   r   r   r   r   r	     s   
zRange.__init__c                 C   s   d| j  dS )Nz<SemVer Range "r   ranger   r   r   r   rV        zRange.__repr__c                 C   s0   d dd | jD  | _td| j | jS )Nz||c                 S   s$   g | ]}d  dd |D  qS ) c                 s   s    | ]}|j V  qd S r   r   r>   cr   r   r   rS     s    z*Range.format.<locals>.<listcomp>.<genexpr>)rT   rH   )r>   compsr   r   r   r@     s   $ z Range.format.<locals>.<listcomp>zRange format %s)rT   r   rH   r   rE   rF   r   r   r   r   rQ     s   zRange.formatc                 C   r   r   r   r   r   r   r   rY     r   zRange.__str__c              	      s   | j td| rtt ntt }|t|}td| tt t	|}td|tt  tt
 t|}tt t|}dtd|}rPtt ntt  tddfdd|dD }| j rs fdd|D }fd	d|D }|S )
Nzrange %s %szhyphen replace %szcomparator trim %s, %sr   r#   c                       g | ]}t | qS r   )parse_comparatorr>   r   rw   r   r   r@   #      z%Range.parse_range.<locals>.<listcomp>c                    s   g | ]	}  |r|qS r   )r'   r   )comp_rer   r   r@   '  r   c                    r   r   )make_comparatorr   rw   r   r   r@   (  r   )r*   rE   rF   r$   HYPHENRANGELOOSEHYPHENRANGEsubhyphen_replaceCOMPARATORTRIMcomparatorTrimReplace	TILDETRIMtildeTrimReplace	CARETTRIMcaretTrimReplacerT   r   rO   r   r   )r   r   hrset_r   )r   r*   r   r     s*   zRange.parse_rangec                    s8    sdS t  trt | jd t fdd| jD S )NFrw   c                 3   s    | ]}t | V  qd S r   )test_set)r>   rk   rX   r   r   rS   2  s    zRange.test.<locals>.<genexpr>)r3   r5   rZ   r*   anyr   r   r   rX   r   r   +  s
   
z
Range.testN)	r   r   r   r	   rV   rQ   rY   r   r   r   r   r   r   r     s    %r   c                 C   s   dd t | |jD S )Nc                 S   s*   g | ]}d  dd |D  d qS )r   c                 S   s   g | ]}|j qS r   r   r   r   r   r   r@   8  s    z-to_comparators.<locals>.<listcomp>.<listcomp>)rT   rH   rO   r   r   r   r   r@   7  s    z"to_comparators.<locals>.<listcomp>)r   r   r   r   r   r   to_comparators6  s   
r   c                 C   sh   t d|  t| |} t d|  t| |} t d|  t| |} t d|  t| |} t d|  | S )Nzcomp %szcaret %sz	tildes %sz	xrange %szstars %s)rE   rF   replace_caretsreplace_tildesreplace_xrangesreplace_starsr   r   r   r   r   B  s   



r   c                 C   s$   | d u p| dkp|   dkp| dkS )Nr   x*)lower)r?   r   r   r   is_xO     $r   c                    $   d  fddtd|  D S )Nr   c                    r   r   )replace_tilder   rw   r   r   r@   \  r   z"replace_tildes.<locals>.<listcomp>r#   rT   r   rO   rH   r   r   rw   r   r   [  r   r   c                    ,   |rt t nt t } fdd}|| S )Nc              	      sN  |  d}|  \}}}}}td ||||| t|r d}nt|r5d| d tt|d  d }njt|rRd| d | d	 | d tt|d  d
 }nM|rtd| |d dkrdd| }d| d | d | | d | d tt|d  d
 }nd| d | d | d | d tt|d  d
 }td| |S )Nr   ztilde %s %s %s %s %s %sr   r   .0.0 <r   .0.0rB   .0 <.0zreplaceTilde pr %s- <ztilde return, %srJ   groupsrE   rF   r   rR   r<   )mob_Mr,   pprretr   r   r   replb  s"   
"2>8zreplace_tilde.<locals>.repl)r$   
TILDELOOSETILDEr   r   r*   r+   r   r   r   r   r   _  s   r   c                    r   )Nr   c                    r   r   )replace_caretr   rw   r   r   r@     r   z"replace_carets.<locals>.<listcomp>r#   r   r   r   rw   r   r     r   r   c                    r   )Nc              	      s  |  d}|  \}}}}}td ||||| t|r!d}n3t|r7d| d tt|d  d }nt|rm|dkrXd| d	 | d
 | d	 tt|d  d }nd| d	 | d
 tt|d  d }n|rtd| |d dkrd| }|dkr|dkrd| d	 | d	 |pd | d | d	 | d	 tt|pdd  }nd| d	 | d	 |pd | d | d	 tt|d  d }nd| d	 | d	 |pd | d tt|d  d }nj|dkr9|dkrd| d	 | d	 |pd d | d	 | d	 tt|pdd  }n;d| d	 | d	 |p&d d | d	 tt|d  d }nd| d	 | d	 |pFd d tt|d  d }td| |S )Nr   zcaret %s %s %s %s %s %sr   r   r   r   r   0rB   r   r   zreplaceCaret pr %sr   r   zcaret return %sr   )r   Zm0r   r,   r   r   r   r   r   r   r   r     s   
$2*	
	
:

	
	
6zreplace_caret.<locals>.repl)r$   
CARETLOOSECARETr   r   r   r   r   r     s   Xr   c                    s2   t d|   d fddtd|  D S )NzreplaceXRanges %s %sr   c                    r   r   )replace_xranger   rw   r   r   r@     r   z#replace_xranges.<locals>.<listcomp>r#   )rE   rF   rT   r   rO   rH   r   r   rw   r   r     s   $r   c                    s4       |r
tt ntt } fdd}|| S )Nc              
      s  |  d}|  \}}}}}}td |||||| t|}|p$t|}	|	p*t|}
|
}|dkr5|r5d}td|| |rL|dksF|dkrId}nd	}n|r|r|	rTd}|
rXd}|dkrvd
}|	rkt|d }d}d}n |
rut|d }d}n|dkrd}|	rt|d }nt|d }|t| d t| d t| }n-|	rd
| d tt|d  d }n|
rd
| d | d | d tt|d  d }td| |S )Nr   zxrange %s %s %s %s %s %s %sr   r   zxrange gtlt=%s any_x=%sr   r   z<0.0.0r   r   r   r   rB   r   r   r   r   zxRange return %s)rJ   r   rE   rF   r   r<   rR   )r   r   Zgtltr   r,   r   r   r   ZxMZxmZxpZany_xr   r   r   r     sR   
&"0zreplace_xrange.<locals>.repl)rH   r$   XRANGELOOSEXRANGEr   r   r   r   r   r     s   :r   c                 C   s"   t d| | tt d|  S )NzreplaceStars %s %sr   )rE   rF   r$   STARr   rH   r   r   r   r   r   +  s   r   c                 C   s  |   \}}}}}}}}}	}
}}t|rd}nt|r"d| d }nt|r1d| d | d }nd| }t|r<d}n=t|	rMdtt|d  d }n,t|
rbd| d tt|	d  d }n|rud| d |	 d |
 d	 | }nd| }|d
 |  S )Nr   r   r   rB   r   r   r   r   r   r   )r   r   rR   r<   rH   )r   Zfrom_ZfMfmfpZfprZfbtoZtMtmtpZtprtbr   r   r   r   6  s$    ""r   c                 C   s   | D ]
}| |s dS qt|jdkrA| D ](}|jtkrqt|jjdkr>|j}|j|jkr>|j|jkr>|j|jkr> dS qdS dS )NFr   T)r   r   rN   r(   r   rK   rL   rM   )r   r)   rk   allowedr   r   r   r   N  s"   

r   Fc                 C   s.   zt ||}W n
 ty   Y dS w || S )NF)r   rj   r   r)   r   r*   r   r   r   	satisfiesh  s   
r   c                 C   sl   zt ||d}W n
 ty   Y d S w d }d }| D ]}||r3|d u s+||dkr3|}t||d}q|S )Nrw   ra   )r   rj   r   r_   rZ   )versionsr   r*   Zrange_obZmax_Zmax_svr   r   r   r   max_satisfyingp  s   
r   c                 C   s(   z	t | |jpdW S  ty   Y d S w )Nr   )r   r   rj   r   r   r   r   valid_range  s
   r   c                 C      t | |d|S )Nr   outsider   r   r   r   ltr  r   r   c                 C   r   )Nr   r   r   r   r   r   rtr  r   r   c                 C   s  t | |} t||}|dkrt}t}t}d}d}n|dkr(t}t}t}d}d}ntdt| ||r4dS |jD ](}	d }
d }|	D ]}|
pD|}
|pH|}||j	|
j	|rT|}
q?||j	|j	|r^|}q?q7|
j
|ksj|
j
|krldS |j
rt|j
|kr||| |j	r|dS |j
|kr|| |j	rdS dS )Nr   r   r   r   z%Must provide a hilo val of '<' or '>'FT)rZ   r   r   r   r   r   r6   r   r   r(   r   )r)   r   Zhilor*   ZgtfnZltefnZltfnr   Zecompcomparatorshighlowr   r   r   r   r     sH   


r   r   )F)qloggingr   	getLoggerr   rE   ZSEMVER_SPEC_VERSIONrR   r5   r   r   r   r   Rsrcr$   ZNUMERICIDENTIFIERZNUMERICIDENTIFIERLOOSEZNONNUMERICIDENTIFIERZMAINVERSIONZMAINVERSIONLOOSEZPRERELEASEIDENTIFIERZPRERELEASEIDENTIFIERLOOSEZ
PRERELEASEZPRERELEASELOOSEZBUILDIDENTIFIERBUILDr&   Z	FULLPLAINZ
LOOSEPLAINr%   ZGTLTZXRANGEIDENTIFIERLOOSEZXRANGEIDENTIFIERZXRANGEPLAINZXRANGEPLAINLOOSEr   r   Z	LONETILDEr   compiler   r   r   r   Z	LONECARETr   r   r   r   r   r   r   r   r   r   r   rI   Z_n_prer   r   r   rF   r-   r/   r1   r;   r(   rZ   r4   rg   r`   rm   r_   rq   rr   ry   r{   r|   r}   r   r   r   r   r   r   r   r   r   r   objectr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   s  
 	 $$	
	
  (&
	
 
:*	J"^C


