B
    l^\                 @   s(   d Z dZdZdddZee eedZdS ))          Nc                s.  d}|dk	rt |d }nd}dtt | }dddg}dkrdtfd	d
|D sdt|d n}|dkrv| nH|ds|drdd|g n$|dr| n|dkrt|d |dkrt fdd
tdD sd dg d||| g}	ddlfdd}
|
|	r"|	S t|dS )a'  
    Creates a pep440 valid version of version number given a tuple integers
    and optional epoch, prerelease and developmental info.

    Parameters
    ----------
    release_info : Tuple(Int)
    epoch : Int, default None
    pre_input : Str, default ''
    dev_input : Str, default ''
    z<The version number is not a pep 440 compliant version numberN!r   .abZrcc                s   g | ]}  |qS  )
startswith).0prefix)	pre_inputr	   1lib/python3.7/site-packages/nbconvert/_version.py
<listcomp>   s    z(create_valid_version.<locals>.<listcomp>z%
 please fix your prerelease segment.Zdevz.devz&
 please fix your development segment.c                s   g | ]}  t|qS r	   )endswithstr)r   n)dev_segr	   r   r   +   s    
   0    c                s     d| d k	S )Nzk^([1-9]\d*!)?(0|[1-9]\d*)(\.(0|[1-9]\d*))*((a|b|rc)(0|[1-9]\d*))?(\.post(0|[1-9]\d*))?(\.dev(0|[1-9]\d*))?$)match)version)rer	   r   is_canonical2   s    z*create_valid_version.<locals>.is_canonical)r   joinmapany
ValueErrorr
   ranger   )Zrelease_infoZepochr   	dev_inputZ
pep440_errZ	epoch_segZrelease_segZ
_magic_preZpre_segZout_versionr   r	   )r   r   r   r   create_valid_version   s2    

"
r!   )r   r    )Nr   r   )version_infoZpre_infoZdev_infor!   __version__r	   r	   r	   r   <module>   s   
: