Current File : //usr/lib64/python3.6/site-packages/borg/__pycache__/nanorst.cpython-36.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 |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).
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 z>Invalid final state %r (This usually indicates unmatched */**))r# r$ ���r- ���)r) r z z )r �io�StringIOr
r �isspacer �KeyError�
ValueErrorr � partitionr �strip�AssertionError�getvalue)
r r �
references�stateZinline_moder Z
inline_single�char�next�refr Zis_directiver r r r
�rst_to_text3 s�
*
,
&
&
>r= c @ sJ e Zd Zddd�Zedd� �Zdd� Zdd � Zd
d� Zdd
� Z dd� Z
dS )�
RstToTextLazyNc C s || _ || _|| _d | _d S )N)r r r8 �_rst)r r r r8 r r r
r � s zRstToTextLazy.__init__c C s$ | j d krt| j| j| j�| _ | j S )N)r? r= r r r8 )r r r r
�rst� s
zRstToTextLazy.rstc C s t | j|�S )N)�getattrr@ )r �itemr r r
�__getattr__� s zRstToTextLazy.__getattr__c C s | j S )N)r@ )r r r r
�__str__� s zRstToTextLazy.__str__c C s
| j | S )N)r@ )r �otherr r r
�__add__� s zRstToTextLazy.__add__c C s
t | j�S )N)�iterr@ )r r r r
�__iter__� s zRstToTextLazy.__iter__c C s
|| j kS )N)r@ )r rB r r r
�__contains__� s zRstToTextLazy.__contains__)NN)r r r r �propertyr@ rC rD rF rH rI r r r r
r>