File: //lib64/python3.9/site-packages/borg/__pycache__/nanorst.cpython-39.pyc
a
HZ�h: � @ 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
�2/usr/lib64/python3.9/site-packages/borg/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 �peek s zTextPecker.peekc C sB d}| j }|t| j�k r>| j| dkr>|| j| 7 }|d7 }q
|S )N� �
r )r �lenr )r �outr r
r
r �peekline s
zTextPecker.peeklinec C s | � � }| jt|�7 _|S r
)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|� |� d� |dd|� nH|dd|� |� | �� � |� d� |dd|� |r||� |� |� d� d S )N� containerZexperimental�text�**z++ Experimental ++�:
r )�write�title)� directive� argumentsr �
state_hookr
r
r �process_directive$ s
r$ c
C s� |p
dd� }|pi }d}d}t | �} t�� }d}| �d�}|sB�q�| �d�}|dk�r�|dkrn| �d�|v rnq0| �d�dk�r||v r�||kr�||||� |}q0|| kr�d kr�n n||d
|� d
}| �d� q0|| kr�dk�r
n n||d|� d}| �d� q0| �d��� �r�|d
k�r�| �d�dk�r�| �d� d} | �d�}|dk�rd| �d� �q�|dk�r|| �d� �qB| | �d�7 } �qBz|�|| � W q0 t�y� td| ��Y q00 q0|d
k�r| �d�dk�r| �d� ||d|� d}|�d� q0| �d�dv �r�|| k�r,dk�r�n n`| �d� | � � �
d�\}
}}| �d� |�s||
dk�rnd}q0|
dkr0d}q0t|
|�� ||� q0||v �r�||k�r�||d|� d}|dkr0|�d� q0|dk�r|| k�r�dk�rn n.||d|� d}| �d� |dkr0|�d� q0|d
k�r^|| k�r>d k�r^n n||d|� d}| �d� q0|dk�r�|| k�r�dk�r�n n(| �d�dd� dk�r�||d|� d}|�|� q0|dk�s�J d | ��|�
� 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 r
r
�Z old_stateZ new_stater r
r
r �<lambda>; � zrst_to_text.<locals>.<lambda>r �replace)�*�`r �\���r) r r* �``�:� zref:`r r um Undefined reference in Archiver help: %r — please add reference substitution to 'rst_plain_text_references'� r z
code-block���)z
r �.z::znanorst: inline-fill�fillznanorst: inline-replacez z Nz>Invalid final state %r (This usually indicates unmatched */**))r �io�StringIOr r �isspacer �KeyError�
ValueErrorr � partitionr$ �strip�getvalue)
r r# �
references�stateZinline_moder Z
inline_single�char�next�refr! Zis_directiver"