B
    
E^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   | d}d|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   [/home/fristb/BIRCH/lib-linux-x86_64/python/lib/python3.7/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 }|s2d S |d}|d}d|krX|d t|}|d dk}|rt|d |||dS |	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   Z000000000000zinitial nodez0.0)r   r   r   nullr   )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 ||  }|s&dS |d  d }|S )	Nr   r   z-rzancestors(.) and tag('re:\.')z
--templatez{tags}
r    r   )r   r!   )r   cmdZoutlinesr   r   r   r   r$   E   s    r$   .c             C   s4   ddddd ||g}t|| }t|  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|  | 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   Z	latesttagZlatesttagdistance)r   r   r   z0.0)r   r   )r   getr   )r/   r   r   r   r   r   archival_to_version\   s    
r3   c             C   s"   t j| d}t|}t||dS )Nz.hg_archival.txt)r   )ospathjoinr   r3   )r   r   Zarchivalr/   r   r   r   parse_archivaln   s    r7   )N)r+   )N)N)r4   r   r   utilsr   r   r   r   versionr   r	   r   r)   r$   r%   r3   r7   r   r   r   r   <module>   s   
"

