o
    MEg                     @   sJ   d dl mZ d dlZedZdd ZG dd deZG dd	 d	eZdS )
    )unicode_literalsNzd(document|block_quote|list|item|paragraph|heading|emph|strong|link|image|custom_inline|custom_block)c                 C   s   t t| jd uS N)researchreContainert)node r	   i/var/www/eduai.edurigo.com/doc_train/edurigo_ai/Puru/venv/lib/python3.10/site-packages/commonmark/node.pyis_container   s   r   c                   @   s8   e Zd Zdd Zdd ZeZdd Zdd Zd	d
 ZdS )
NodeWalkerc                 C   s   || _ || _d| _d S NT)currentrootentering)selfr   r	   r	   r
   __init__   s   
zNodeWalker.__init__c                 C   s   | j }| j}|d u rtt|}|r)|r)|jr"|j| _ d| _||fS d| _||fS || jkr5d | _ ||fS |jd u rE|j| _ d| _||fS |j| _ d| _||fS )NTF)r   r   StopIterationr   first_childr   nxtparent)r   curr   	containerr	   r	   r
   __next__   s,   


zNodeWalker.__next__c                 C   s   | S r   r	   r   r	   r	   r
   __iter__4   s   zNodeWalker.__iter__c                 C   s.   zt | \}}||dW S  ty   Y dS w )z for backwards compatibility )r   r   N)nextr   )r   r   r   r	   r	   r
   r   7   s   zNodeWalker.nxtc                 C   s   || _ |du | _d S r   )r   r   )r   r   r   r	   r	   r
   	resume_atB   s   zNodeWalker.resume_atN)	__name__
__module____qualname__r   r   r   r   r   r   r	   r	   r	   r
   r      s    r   c                   @   sd   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd ZdS )Nodec                 C   s   || _ d | _d | _d | _d | _d | _|| _d| _d| _d| _	d| _
d | _i | _d | _d | _d | _d| _d | _d| _d | _d | _d | _d | _d S )NFT r   )r   r   r   
last_childprvr   	sourceposlast_line_blanklast_line_checkedis_openstring_contentliteral	list_datainfodestinationtitle	is_fenced
fence_charfence_lengthfence_offsetlevelon_enteron_exit)r   	node_typer%   r	   r	   r
   r   H   s.   
zNode.__init__c                 C   s   d | j| jS )NzNode {} [{}])formatr   r*   r   r	   r	   r
   __repr__a   s   zNode.__repr__c                 C   s   ddl m } || j d S )Nr   )pprint)r9   __dict__)r   r9   r	   r	   r
   prettyd   s   zNode.prettyc                 C   sZ   d }|   D ]$\}}|d u r|}q|jdkr(|jdkr(| j|j7  _|  q|}qd S )Ntext)walkerr   r*   unlink)r   prevcurr_r	   r	   r
   	normalizeh   s   
zNode.normalizec                 C      t | S r   )r   r   r	   r	   r
   r   t      zNode.is_containerc                 C   s>   |   | |_| jr|| j_| j|_|| _d S || _|| _d S r   )r>   r   r#   r   r$   r   r   childr	   r	   r
   append_childw      

zNode.append_childc                 C   s>   |   | |_| jr|| j_| j|_|| _d S || _|| _d S r   )r>   r   r   r$   r   r#   rE   r	   r	   r
   prepend_child   rH   zNode.prepend_childc                 C   sZ   | j r	| j| j _n| jr| j| j_| jr| j | j_ n| jr"| j | j_d | _d | _d | _ d S r   )r$   r   r   r   r#   r   r	   r	   r
   r>      s   


zNode.unlinkc                 C   H   |   | j|_|jr||j_| |_|| _| j|_|js"||j_d S d S r   )r>   r   r$   r   r#   r   siblingr	   r	   r
   insert_after      zNode.insert_afterc                 C   rJ   r   )r>   r$   r   r   r   rK   r	   r	   r
   insert_before   rN   zNode.insert_beforec                 C   rC   r   )r   r   r	   r	   r
   r=      rD   zNode.walkerN)r   r   r    r   r8   r;   rB   r   rG   rI   r>   rM   rO   r=   r	   r	   r	   r
   r!   G   s    r!   )	
__future__r   r   compiler   r   objectr   r!   r	   r	   r	   r
   <module>   s    7