3
׾(^J                 @   sx   d dl Z ddlmZ ddlmZmZmZmZ ddlm	Z	m
Z
 dd Zddd	Zd
d ZdddZdddZdddZdS )    N   )Configuration)dotracedata_from_mimehas_command)metatags_to_versionsc             C   s   |j d}d|jd }dj|d}|dkrFtddd|d	d
g| j}nd}tdt  |s^|rrt|||||| dS t|| dS d S )N+hza(branch(.) and tag({tag!r})::. and (merge() or file('re:^(?!\.hgtags).*$')) and not tag({tag!r})))tagz0.0hglogz-rz
--templatez{node|short}T	normalize)distancenodedirtybranchconfig)r   )endswithstripformatr   absolute_rootr   localsr   )r   r   distr   r   r   ZrevsetZcommits r   C/home/birch/.local/lib/python3.6/site-packages/setuptools_scm/hg.py_hg_tagdist_normalize_tagcommit   s    

r   c       	      C   s  |st | d}tdsd S td|jj }|s2d S |jd}|jd}d|krX|jd t|}|d dk}|rt|d |||dS |j	ddkrt
d|j td|||dS y>t|j}t|j|}|dkrd}t|d }t|||||S  tk
r   Y nX d S )N)rootr   zhg id -i -b -tr   Ztipr   r
   )r   r   r   0   zinitial nodez0.0)r   r   r   nullZ000000000000)r   r   r   r   splitpopremover	   r   r   r   get_latest_normalizable_tagget_graph_distanceintr   
ValueError)	r   r   Zidentity_datar   r   tagsr   r   r   r   r   r   parse#   s6    




r+   c             C   s:   ddddddg}t || j }|s&dS |d	 j d
 }|S )Nr   r   z-rzancestors(.) and tag('re:\.')z
--templatez{tags}
r!   r   r"   r"   )r   r#   )r   cmdZoutlinesr   r   r   r   r&   E   s    r&   .c             C   s4   dddddj ||g}t|| }t|j j d S )Nr   r   z-qz-rz{}::{}r   )r   r   lenr   
splitlines)r   Zrev1Zrev2r,   outr   r   r   r'   V   s    
r'   c             C   st   t d|  | jddd d }|r*d| }d| krBt| d |dS d| krbt| d | d	 ||d
S td||dS d S )Ndatar    r    r   r   )r   Z	latesttagZlatesttagdistance)r   r   r   z0.0)r   r   )r   getr   )r1   r   r   r   r   r   archival_to_version\   s    
r4   c             C   s"   t jj| d}t|}t||dS )Nz.hg_archival.txt)r   )ospathjoinr   r4   )r   r   Zarchivalr1   r   r   r   parse_archivaln   s    r8   )N)r-   )N)N)r5   r   r   utilsr   r   r   r   versionr   r	   r   r+   r&   r'   r4   r8   r   r   r   r   <module>   s   
"

