Current File : //usr/lib64/python3.6/site-packages/borg/__pycache__/nanorst.cpython-36.pyc
3

y��b:�@sfddlZddlZddlmZGdd�d�Zdd�Zddd	�ZGd
d�d�Zdd
�Zdej	fdd�Z
dS)�N�)�is_terminalc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�
TextPeckercCs||_d|_dS)Nr)�str�i)�self�s�r	�/usr/lib64/python3.6/nanorst.py�__init__szTextPecker.__init__cCs$|j|7_|j|j||j�S)N)rr)r�nr	r	r
�readszTextPecker.readcCs@|dkr|j|j|j|�S|j|j|d|jd�SdS)Nrr)rr)rrr	r	r
�peekszTextPecker.peekcCsFd}|j}x6|t|j�kr@|j|dkr@||j|7}|d7}qW|S)N��
r)r�lenr)r�outrr	r	r
�peeklineszTextPecker.peeklinecCs|j�}|jt|�7_|S)N)rrr)rrr	r	r
�readlineszTextPecker.readlineN)�__name__�
__module__�__qualname__rr
rrrr	r	r	r
rs
rcCs�|dkr4|dkr4|dd|�|jd�|dd|�nH|dd|�|j|j��|jd�|dd|�|r||j|�|jd�dS)NZ	containerZexperimental�textz**z++ Experimental ++z:
r)�write�title)�	directive�	argumentsr�
state_hookr	r	r
�process_directive$s


rc
Cs�|p
dd�}|pi}d}d}t|�}tj�}d}�x�|jd�}|sDP|jd�}|dk�r�|dkrp|jd�|krpq4|jd �dk�r
||kr�||kr�||||�|}q4||ko�dknr�||d	|�d	}|jd�q4||ko�dkn�r||d
|�d
}|jd�q4|jd!�j��r�|dk�r�|jd�d
k�r�|jd�d}	xL|jd�}|dk�rf|jd�P|dk�r~|jd��qF|	|jd�7}	�qFWy|j||	�Wq4tk
�r�td|	��Yq4Xq4|dk�r
|jd�dk�r
|jd�||d|�d}|jd�q4|jd"�d#k�r�||k�o.dkn�r�|jd�|j	�j
d�\}
}}|jd�|�s�|
dk�rtd}q4|
dkr4d}q4t|
|j�||�q4||k�r�||k�r�||d|�d}|dkr4|jd$�q4|d
k�r"||k�o�dkn�r"||d|�d}|jd�|dkr4|jd%�q4|d	k�rd||k�o@dkn�rd||d|�d}|jd�q4|dk�r�||k�o�dkn�r�|jd�dd�dk�r�||d|�d}|j|�q4W|dk�s�t
d|��|j�S)&z�
    Convert rST to a more human text form.

    This is a very loose conversion. No advanced rST features are supported.
    The generated output directly depends on the input (e.g. indentation of
    admonitions).
    cSsdS)Nr	)�	old_state�	new_staterr	r	r
�<lambda>;szrst_to_text.<locals>.<lambda>r�replace�*�`r�\z**z``�:�zref:`rrumUndefined reference in Archiver help: %r — please add reference substitution to 'rst_plain_text_references'�z:
z
code-block�

�.z::znanorst: inline-fillZfillznanorst: inline-replace� �Nz    z>Invalid final state %r (This usually indicates unmatched */**))r#r$���r-���)r)rz  z    )r�io�StringIOr
r�isspacer�KeyError�
ValueErrorr�	partitionr�strip�AssertionError�getvalue)
rr�
references�stateZinline_moderZ
inline_single�char�next�refrZis_directiverr	r	r
�rst_to_text3s�




*







,



&

&
>r=c@sJeZdZddd�Zedd��Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�
RstToTextLazyNcCs||_||_||_d|_dS)N)rrr8�_rst)rrrr8r	r	r
r�szRstToTextLazy.__init__cCs$|jdkrt|j|j|j�|_|jS)N)r?r=rrr8)rr	r	r
�rst�s
zRstToTextLazy.rstcCst|j|�S)N)�getattrr@)r�itemr	r	r
�__getattr__�szRstToTextLazy.__getattr__cCs|jS)N)r@)rr	r	r
�__str__�szRstToTextLazy.__str__cCs
|j|S)N)r@)r�otherr	r	r
�__add__�szRstToTextLazy.__add__cCs
t|j�S)N)�iterr@)rr	r	r
�__iter__�szRstToTextLazy.__iter__cCs
||jkS)N)r@)rrBr	r	r
�__contains__�szRstToTextLazy.__contains__)NN)rrrr�propertyr@rCrDrFrHrIr	r	r	r
r>�s
r>cCsR|dkr|d	kr|jd�|dkr4|dkr4|jd�|d
krN|dkrN|jd�dS)Nrr#r$�``z�**zz)r#r$rK)r#r$rKrL)r)rr rr	r	r
�ansi_escapes�s

rMcCst|�rt}nd}t|||�S)z�
    Convert *rst* to a lazy string.

    If *destination* is a file-like object connected to a terminal,
    enrich text with suitable ANSI escapes. Otherwise return plain text.
    N)rrMr>)r@r8ZdestinationZrst_state_hookr	r	r
�rst_to_terminal�srN)NN)r/�sysZhelpersrrrr=r>rM�stdoutrNr	r	r	r
�<module>s
q