File: //lib64/python3.6/site-packages/borg/__pycache__/nanorst.cpython-36.opt-1.pyc
3
y��b: � @ sf d dl Z d dlZddlmZ G dd� d�Zdd� Zddd �ZG d
d� d�Zdd
� Zdej fdd�Z
dS )� N� )�is_terminalc @ s4 e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� ZdS )�
TextPeckerc C s || _ d| _d S )Nr )�str�i)�self�s� r �/usr/lib64/python3.6/nanorst.py�__init__ s zTextPecker.__init__c C s$ | j |7 _ | j| j | | j � S )N)r r )r �nr r r
�read s zTextPecker.readc C s@ |dkr| j | j| j| � S | j | j| d | jd � S d S )Nr r )r r )r r r r r
�peek s zTextPecker.peekc C sF d}| j }x6|t| j�k r@| j| dkr@|| j| 7 }|d7 }qW |S )N� �
r )r �lenr )r �outr r r r
�peekline s zTextPecker.peeklinec C s | j � }| jt|�7 _|S )N)r r r )r r r r r
�readline s zTextPecker.readlineN)�__name__�
__module__�__qualname__r r
r r r r r r r
r s
r c C s� | dkr4|dkr4|dd|� |j d� |dd|� nH|dd|� |j | j� � |j d� |dd|� |r||j |� |j d� d S )NZ containerZexperimental�textz**z++ Experimental ++z:
r )�write�title)� directive� argumentsr �
state_hookr r r
�process_directive$ s
r c
C s� |p
dd� }|pi }d}d}t | �} tj� }d}�x�| jd�}|sDP | jd�}|dk�r�|dkrp| jd�|krpq4| jd�dk�r
||kr�||kr�||||� |}q4|| ko�dkn r�||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 } �qFW y|j|| � W q4 tk
�r� td| ��Y q4X q4|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 |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).
c S s d S )Nr )� old_state� new_stater r r r
�<lambda>; s zrst_to_text.<locals>.<lambda>r �replace�*�`r �\z**z``�:� zref:`r r um Undefined 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 )r# r$ ���r- ���)r) r z z )r �io�StringIOr
r �isspacer �KeyError�
ValueErrorr � partitionr �strip�getvalue)
r r �
references�stateZinline_moder Z
inline_single�char�next�refr Zis_directiver r r r
�rst_to_text3 s�
*
,
&
&
>r<