a
    %0_w                     @   sh   d Z ddlmZ ddlmZ ddlmZmZmZm	Z	m
Z
 dZdd Zdd	 Zd
d Zdd Zdd ZdS )zbeautify log -G output by using Unicode characters (EXPERIMENTAL)

   A terminal with UTF-8 support and monospace narrow text are required.
    )absolute_import)_)encoding
extensionsgraphmodpycompat
templatekws   ships-with-hg-corec                 C   s   |dkrdS |dkrdS |dkr$dS |dkr0dS |d	kr<d
S |dkrHdS |dkr|| dkrd|dksddS |dkrx| dksxdS dS |S )N   ~s   ╧   /s   ╱   -s   ─   |s   │   :s   ┆   \s   ╲   +    s   ├s   ┤s   ┼ )ZbeforeZedgeZafterr   r   5/usr/lib/python3/dist-packages/hgext/beautifygraph.py
prettyedge    s&    r   c              
   C   sl   d|  } g }t t| d D ]B}|t| ||d  | |d |d  | |d |d   qd|S )Ns    %s              )r   Zxrangelenappendr   join)lineZprettyidxr   r   r   convertedges6   s    r   c                 O   sZ   | |i |}|dkrdS |dkr&dS |dkr2dS |dkr>dS |dkrJd	S |d
krVdS |S )N   os   ○   @s   ◍   %   *s   ∗   xs   ◌   _s   ╤r   )origargskwargsZnoder   r   r   getprettygraphnodeD   s    r'   c                 O   s8   t | \}}t dd |D |}| ||g|R i |S )Nc                 S   s   g | ]}t |qS r   )r   ).0er   r   r   
<listcomp>W   r   z%outputprettygraph.<locals>.<listcomp>)zip)r$   uiZgraphr%   r&   Zedgestextr   r   r   outputprettygraphU   s    r.   c                 C   sf   |  drd S tjdkr*| td d S dtjv rF| td d S ttdt tt	dt
 d S )Ns   graphs   UTF-8s4   beautifygraph: unsupported encoding, UTF-8 required
AsM   beautifygraph: unsupported terminal settings, monospace narrow text required
s   outputgraphs   getgraphnode)Zplainr   warnr   Z_wider   Zwrapfunctionr   r.   r   r'   )r,   r   r   r   extsetup[   s    


r1   N)__doc__Z
__future__r   Zmercurial.i18nr   Z	mercurialr   r   r   r   r   Z
testedwithr   r   r'   r.   r1   r   r   r   r   <module>	   s   