a
    2bψ                     @   s  d dl Z d dlZe eZdZzeZW n ey<   e	ZY n0 G dd de
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 Z0d$ee/  d% ee0< e*ee0 ej+ee0< d(Z1e Z2dee/  ee$  d ee2< e Z3dee/  ee%  d ee3< e Z4dee!  d) e d* ee4< e Z5dee!  d) e d* ee5< e Z6d$ee!  d) e d ee$  d ee6< e*ee6 ej+ee6< d+Z7e Z8d,ee$  d d- d ee$  d d. ee8< e Z9d,ee%  d d- d ee%  d d. ee9< e Z:d/ee:< e Z;d0j<ee ee d1ee;< e=e> D ]4Z?e@d2e?ee?  e?evre*ee? ee?< qd3d4 ZAd5d6 ZBd7d8 ZCe*d9ZDd:d; ZEeEZFG d<d= d=e
ZGdd>d?ZHd@dA ZIdBdC ZJdDdE ZKdFdG ZLdHdI ZMdJdK ZNeNdLZOeNdLZPdMdN ZQdOdP ZRdQdR ZSdSdT ZTdUdV ZUdWdX ZVdYdZ ZWd[d\ ZXd]d^ ZYd_d` ZZeZZ[e
 Z\G dadb dbe
Z]dcdd Z^G dedf dfe
Z_dgdh Z`didj Zadkdl Zbdmdn Zcdodp Zddqdr Zedsdt Zfdudv Zgdwdx Zhdydz Zid{d| Zjd}d~ ZkdddZldddZmdd Zndd Zodd Zpdd Zqd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   0lib/python3.9/site-packages/jupyterlab/semver.py__init__*   s    z_R.__init__c                 C   s   | j }|  j d7  _ |S )N   r   )r   vr   r   r   __call__-   s    z_R.__call__c                 C   s   | j S r   r   r   r   r   r   value2   s    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   sD   zt | || W n, ty>   t| |kr8| | n Y n0 d S 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 0 d S 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?({n})(?:\.({n}))?{pre}?)nprezgenregxp %s %sc                 C   s6   |rt t }nt t }|| }|r.t| |S d S d S r   )regexpLOOSEFULLsearchsemver)versionloosermr   r   r   parse  s    


r,   c                 C   s   t | |}|jr|S d S d S r   r,   r(   )r(   r)   r   r   r   r   valid(  s    
r.   c                 C   s   t | |}|r|jS d S d S r   r-   )r(   r)   sr   r   r   clean0  s    
r0   z^\d+$c                 C   sB   t | tr | j|kr| S | j} nt | ts8td| t| |S )NInvalid Version: {})
isinstanceSemVerr)   r(   string_type
ValueErrorformat)r(   r)   r   r   r   r'   ;  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 )r3   c                 C   s`  t d|| || _|| _t|r$tnt | }|s|sJt	d
|tt | }|drtt|dnd| _|drt|dnd| _d| _|dsg | _ndd |dd	D | _nt|d| _t|d| _t|d| _|d
sg | _ndd |d
d	D | _|drN|dd	| _ng | _| 
  d S )NzSemVer %s, %sr1   r
   r         c                 S   s"   g | ]}t |rt|n|qS r   NUMERICr&   int.0idr   r   r   
<listcomp>_  s   z#SemVer.__init__.<locals>.<listcomp>.   c                 S   s"   g | ]}t |rt|n|qS r   r9   r<   r   r   r   r?   k  s      )loggerdebugr)   rawr#   r$   r%   r&   stripr5   r6   RECOVERYVERSIONNAMEgroupr;   majorminorpatch
prereleasesplitZbuild)r   r(   r)   r+   r   r   r   r	   O  s8    

zSemVer.__init__c                 C   sP   d | j| j| j| _t| jdkrJ|  jd ddd | jD 7  _| jS )Nz{}.{}.{}r   z-{}r@   c                 s   s   | ]}t |V  qd S r   )str)r=   r   r   r   r   	<genexpr>w      z SemVer.format.<locals>.<genexpr>)r6   rI   rJ   rK   r(   r   rL   joinr   r   r   r   r6   t  s    &zSemVer.formatc                 C   s
   d | S )Nz<SemVer {} >r6   r   r   r   r   __repr__z  s    zSemVer.__repr__c                 C   s   | j S r   )r(   r   r   r   r   __str__}  s    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)	rC   rD   r(   r)   r2   r3   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pVtt| jt|jpVtt| jt|jS r   )	r2   r3   rU   r)   compare_identifiersrN   rI   rJ   rK   )r   rX   r   r   r   rV     s    
zSemVer.compare_mainc                 C   s   t |tst|| j}t| jdk}t|jdk}|s>|r>dS |rJ|sJdS |sV|sVdS d}t| j|}t|j|}td||| |d7 }|d u r|d u rdS |d u rdS |d u rdS ||krqZqZt	t
|t
|S qZd S )Nr   r
   zprerelease compare %s: %s %s)r2   r3   rU   r)   r   rL   r   rC   rD   r[   rN   )r   rX   Zis_self_more_than_zeroZis_other_more_than_zeror   abr   r   r   rW     s0    
zSemVer.compare_preNc                 C   s  t d| j| |dkrJg | _d| _d| _|  jd7  _| jd|d n6|dkr~g | _d| _|  jd7  _| jd|d n|dkrg | _| jd	|d | jd|d n|d
krt| jdkr| jd	|d | jd|d n|dkr8| jdks| jdkst| jdkr"|  jd7  _d| _d| _g | _nH|dkr|| jdks^t| jdkrl|  jd7  _d| _g | _n|d	krt| jdkr|  jd7  _g | _n|dkrrt d| j t| jdkrdg| _nPt| jd }|dkr.t| j| t	r"| j|  d7  < |d8 }|d8 }q|d ur| jd |krft| jd t	sp|dg| _n
|dg| _nt
d||   | j| _| S )Nzinc release %s %sZpremajorr   r
   r"   
identifierZpreminorZprepatchrK   rL   rI   rJ   zinc prerelease %sr7   zinvalid increment argument: {})rC   rD   rL   rK   rJ   rI   incr   r2   r;   r5   r6   r(   rE   )r   releaser`   r   r   r   r   ra     sl    
(







z
SemVer.inc)N)r   r   r   r	   r6   rS   rT   rZ   rV   rW   ra   r   r   r   r   r3   N  s   % r3   c              
   C   sR   zt | |j||djW S  tyL } ztj|dd W Y d }~d S d }~0 0 d S )Nr_   rB   )exc_info)rU   ra   r(   	ExceptionrC   rD   )r(   rb   r)   r`   er   r   r   ra     s
    ra   c                 C   sd   t | }t |}|r,|r,t| } t|}|r8|s8dS |rD|sDdS | |k rPdS | |kr\dS dS d S )Nr\   r
   r   r9   )r]   r^   ZanumZbnumr   r   r   r[     s    

r[   c                 C   s
   t || S r   )r[   r]   r^   r   r   r   rcompare_identifiers   s    rg   c                 C   s   t | ||S r   )rU   rZ   r]   r^   r)   r   r   r   rZ   $  s    rZ   c                 C   s   t | |dS )NTrZ   rf   r   r   r   compare_loose(  s    rj   c                 C   s   t || |S r   ri   rh   r   r   r   rcompare,  s    rk   c                    s    fdd}|S )Nc                    sB   t |  }|j|j|jf}|jr0|t|j }n|tdf }|S )Ninf)rU   rI   rJ   rK   rL   tuplefloat)r(   r   keyr)   r   r   key_function1  s    
z'make_key_function.<locals>.key_functionr   )r)   rq   r   rp   r   make_key_function0  s    
rr   Tc                 C   s   |rt nt}| j|d | S )N)ro   loose_key_functionfull_key_functionsortr   r)   Zkeyfr   r   r   rv   A  s    rv   c                 C   s   |rt nt}| j|dd | S )NT)ro   reversers   rw   r   r   r   rsortG  s    ry   c                 C   s   t | ||dkS Nr   ri   rh   r   r   r   gtM  s    r{   c                 C   s   t | ||dk S rz   ri   rh   r   r   r   ltQ  s    r|   c                 C   s   t | ||dkS rz   ri   rh   r   r   r   eqU  s    r}   c                 C   s   t | ||dkS rz   ri   rh   r   r   r   neqY  s    r~   c                 C   s   t | ||dkS rz   ri   rh   r   r   r   gte]  s    r   c                 C   s   t | ||dkS rz   ri   rh   r   r   r   ltea  s    r   c                 C   s   t d| |dkr| |kS |dkr,| |kS |dksD|dksD|dkrPt| ||S |dkrdt| ||S |dkrxt| ||S |d	krt| ||S |d
krt| ||S |dkrt| ||S td	|d S )Nzcmp: %sz===z!== =z==z!=>>=<<=zInvalid operator: {})
rC   rD   r}   r~   r{   r   r|   r   r5   r6   )r]   opr^   r)   r   r   r   cmpe  s$    r   c                 C   s(   t | tr| j|kr| S | j} t| |S r   )r2   
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   sD   t d|| || _| | | jtkr0d| _n| j| jj | _d S )Nzcomparator: %s %sr   )	rC   rD   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 rDtd||	d| _
|	dd u rft| _nt|	d| j | _d S )Nzparse comp=%szInvalid comparator: {}r
   r7   )r)   r#   COMPARATORLOOSE
COMPARATORrC   rD   r&   r5   r6   rH   r   r   r'   )r   r   r*   r+   r   r   r   r,     s    

zComparator.parsec                 C   s
   d | S )Nz<SemVer Comparator "{}">rR   r   r   r   r   rS     s    zComparator.__repr__c                 C   s   | j S r   r   r   r   r   r   rT     s    zComparator.__str__c                 C   s6   t d|| j | jtkrdS t|| j| j| jS d S )NzComparator, test %s, %sT)rC   rD   r)   r'   r   r   r   )r   r(   r   r   r   test  s    
zComparator.test)	r   r   r   r'   r	   r,   rS   rT   r   r   r   r   r   r     s   
r   c                 C   s"   t | tr| j|kr| S t| |S r   )r2   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sNtd|   d S )Nc                    s   g | ]}  | qS r   )parse_rangerF   r=   r*   r   r   r   r?     rP   z"Range.__init__.<locals>.<listcomp>z
\s*\|\|\s*c                 S   s   g | ]}|r|qS r   r   r   r   r   r   r?     rP   zInvalid SemVer Range: {})r)   rE   rerM   setr   r5   r6   )r   r   r)   r   r   r   r   r	     s    
zRange.__init__c                 C   s   d | jS )Nz<SemVer Range "{}">)r6   ranger   r   r   r   rS     s    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   rO     rP   z*Range.format.<locals>.<listcomp>.<genexpr>)rQ   rF   )r=   compsr   r   r   r?     rP   z Range.format.<locals>.<listcomp>zRange format %s)rQ   r   rF   r   rC   rD   r   r   r   r   r6     s    zRange.formatc                 C   s   | j S r   )r   r   r   r   r   rT     s    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|}rtt  ntt  tddfdd|dD }| j r fdd|D }fd	d|D }|S )
Nzrange %s %szhyphen replace %szcomparator trim %s, %sr   r    c                    s   g | ]}t | qS r   )parse_comparatorr=   r   rp   r   r   r?     rP   z%Range.parse_range.<locals>.<listcomp>c                    s   g | ]}  |r|qS r   )r&   r   )comp_rer   r   r?     rP   c                    s   g | ]}t | qS r   )make_comparatorr   rp   r   r   r?     rP   )r)   rC   rD   r#   HYPHENRANGELOOSEHYPHENRANGEsubhyphen_replaceCOMPARATORTRIMcomparatorTrimReplace	TILDETRIMtildeTrimReplace	CARETTRIMcaretTrimReplacerQ   r   rM   r   r   )r   r   hrset_r   )r   r)   r   r     s(    

&zRange.parse_rangec                 C   s@   |sdS t |tr t|| jd}| jD ]}t||r& dS q&dS )NFrp   T)r2   r4   rU   r)   r   test_set)r   r(   re   r   r   r   r      s    


z
Range.testN)	r   r   r   r	   rS   r6   rT   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?     rP   z-to_comparators.<locals>.<listcomp>.<listcomp>)rQ   rF   rM   r   r   r   r   r?     s   z"to_comparators.<locals>.<listcomp>)r   r   r   r   r   r   to_comparators  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)rC   rD   replace_caretsreplace_tildesreplace_xrangesreplace_starsr   r   r   r   r     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_x$  s    r   c                    s$   d  fddtd|  D S )Nr   c                    s   g | ]}t | qS r   )replace_tilder   rp   r   r   r?   0  s   z"replace_tildes.<locals>.<listcomp>r    rQ   r   rM   rF   r   r   rp   r   r   /  s    r   c                    s.   |rt t }nt t } fdd}|| S )Nc              	      sR  |  d}|  \}}}}}td ||||| t|rBd}n t|rld| d tt|d  d }nt|rd| d | d	 | d tt|d  d
 }n|r
td| |d dkrd| }d| d | d | | d | d tt|d  d
 }n8d| 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.0r@   .0 <.0zreplaceTilde pr %s- <ztilde return, %srH   groupsrC   rD   r   rN   r;   )mob_Mr+   pprretr   r   r   repl:  s"    
"2>8zreplace_tilde.<locals>.repl)r#   
TILDELOOSETILDEr   r   r)   r*   r   r   r   r   r   4  s
    
r   c                    s$   d  fddtd|  D S )Nr   c                    s   g | ]}t | qS r   )replace_caretr   rp   r   r   r?   Y  s   z"replace_carets.<locals>.<listcomp>r    r   r   r   rp   r   r   X  s    r   c                    s.   |rt t }nt t } fdd}|| S )Nc              	      s  |  d}|  \}}}}}td ||||| t|rBd}nxt|rnd| d tt|d  d }nLt|r|dkrd| d	 | d
 | d	 tt|d  d }n(d| d	 | d
 tt|d  d }n|rtd| |d dkrd| }|dkr|dkrfd| d	 | d	 |p2d | d | d	 | d	 tt|pXdd  }nBd| d	 | d	 |pd | d | d	 tt|d  d }n:d| d	 | d	 |pd | d tt|d  d }n|dkr|dkrDd| d	 | d	 |pd d | d	 | d	 tt|p6dd  }n>d| d	 | d	 |p^d d | d	 tt|d  d }n6d| d	 | d	 |pd d tt|d  d }td| |S )Nr   zcaret %s %s %s %s %s %sr   r   r   r
   r   0r@   r   r   zreplaceCaret pr %sr   r   zcaret return %sr   )r   Zm0r   r+   r   r   r   r   r   r   r   r   c  s6    
$2,

ND<

J@6zreplace_caret.<locals>.repl)r#   
CARETLOOSECARETr   r   r   r   r   r   ]  s
    
$r   c                    s2   t d|   d fddtd|  D S )NzreplaceXRanges %s %sr   c                    s   g | ]}t | qS r   )replace_xranger   rp   r   r   r?     s   z#replace_xranges.<locals>.<listcomp>r    )rC   rD   rQ   r   rM   rF   r   r   rp   r   r     s    r   c                    s6       |rtt }ntt } fdd}|| S )Nc              
      s  |  d}|  \}}}}}}td |||||| t|}|pHt|}	|	pTt|}
|
}|dkrj|rjd}td|| |r|dks|dkrd}nd	}n
|rF|rF|	rd}|
rd}|dkrd
}|	rt|d }d}d}n|
rt|d }d}n.|dkr d}|	rt|d }nt|d }|t| d t| d t| }n^|	rnd
| d tt|d  d }n6|
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   r@   r   r   r   r   zxRange return %s)rH   r   rC   rD   r   r;   rN   )r   r   Zgtltr   r+   r   r   r   ZxMZxmZxpZany_xr   r   r   r     sP    

&"0zreplace_xrange.<locals>.repl)rF   r#   XRANGELOOSEXRANGEr   r   r   r   r   r     s    
9r   c                 C   s"   t d| | tt d|  S )NzreplaceStars %s %sr   )rC   rD   r#   STARr   rF   r   r   r   r   r     s    r   c                 C   s  |   \}}}}}}}}}	}
}}t|r.d}n<t|rDd| d }n&t|rbd| d | d }nd| }t|rxd}nzt|	rdtt|d  d }nXt|
rd| d tt|	d  d }n.|rd| d |	 d |
 d	 | }nd| }|d
 |  S )Nr   r   r   r@   r   r   r
   r   r   r   )r   r   rN   r;   rF   )r   Zfrom_ZfMZfmfpZfprZfbtoZtMZtmtpZtprtbr   r   r   r     s$     ""r   c                 C   s   | D ]}| |s dS qt|jdkr| D ]P}|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   rL   r'   r   rI   rJ   rK   )r   r(   re   allowedr   r   r   r     s    

$r   Fc              
   C   s@   zt ||}W n& ty4 } zW Y d }~dS d }~0 0 || S )NF)r   rd   r   )r(   r   r)   re   r   r   r   	satisfies  s
    r   c                 C   sf   zt ||d}W n   Y d S 0 d }d }| D ]4}||r,|d u sP||dkr,|}t||d}q,|S )Nrp   r\   )r   r   rZ   rU   )Zversionsr   r)   Zrange_obZmax_Zmax_svr   r   r   r   max_satisfying  s    
r   c                 C   s&   zt | |jpdW S    Y d S 0 d S )Nr   )r   r   r   r   r   r   valid_range%  s    r   c                 C   s   t | |d|S )Nr   outsider(   r   r)   r   r   r   ltr/  s    r   c                 C   s   t | |d|S )Nr   r   r   r   r   r   rtr4  s    r   c                 C   s  t | |} t||}|dkr2t}t}t}d}d}n&|dkrPt}t}t}d}d}ntdt| ||rhdS |jD ]P}	d }
d }|	D ]>}|
p|}
|p|}||j	|
j	|r|}
q~||j	|j	|r~|}q~qn|
j
|ks|
j
|krdS |j
r|j
|kr|| |j	rdS |j
|kr|| |j	rdS dS )Nr   r   r   r   z%Must provide a hilo val of '<' or '>'FT)rU   r   r{   r   r|   r   r5   r   r   r'   r   )r(   r   Zhilor)   ZgtfnZltefnZltfnr   ZecompcomparatorsZhighZlowr   r   r   r   r   8  sD    


r   )N)F)F)rloggingr   Z	getLoggerr   rC   ZSEMVER_SPEC_VERSIONZ
basestringr4   	NameErrorrN   objectr   r   r   r   Rsrcr#   ZNUMERICIDENTIFIERZNUMERICIDENTIFIERLOOSEZNONNUMERICIDENTIFIERZMAINVERSIONZMAINVERSIONLOOSEZPRERELEASEIDENTIFIERZPRERELEASEIDENTIFIERLOOSEZ
PRERELEASEZPRERELEASELOOSEZBUILDIDENTIFIERZ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   rG   r6   r   r   r   rD   r,   r.   r0   r:   r'   rU   r3   ra   r[   rg   rZ   rj   rk   rr   rt   ru   rv   ry   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   r   r   r   r   r   r   r   r   r   r   <module>   s:  






$
  


 7
-	L	$-E


