o
    MEþg<  ã                   @   sP   d dl mZmZ d dlmZ d dlZd dlmZ ddd„Zdd	„ Z	dd
d„Z
dS )é    )Úabsolute_importÚunicode_literals)ÚstrN)Úis_containerFc                 C   sÞ   g }|   ¡ D ]f\}}d|ji}|jr|j|d< |jr|j|d< |jr'|j|d< |jr/|j|d< |jr7|j|d< |jr?|j|d< t|ƒrGg |d< |rgt	|ƒd	krg|d
 d r_|d
 d  
|¡ q|g|d
 d< q| 
|¡ q|S )zWalk the complete AST, only returning needed data.

    This removes circular references and allows us to output
    JSON.
    ÚtypeÚliteralÚstring_contentÚtitleÚinfoÚdestinationÚ	list_dataÚchildrenr   éÿÿÿÿ)ÚwalkerÚtr   r   r	   r
   r   r   r   ÚlenÚappend)ÚobjÚtopnodeÚaÚsubnodeÚenteredÚrep© r   úi/var/www/eduai.edurigo.com/doc_train/edurigo_ai/Puru/venv/lib/python3.10/site-packages/commonmark/dump.pyÚprepare   s0   ÿ





r   c                 C   s   t | ƒ}tj|dddS )z6Output AST in JSON form, this is destructive of block.é   T)ÚindentÚ	sort_keys)r   ÚjsonÚdumps)r   Úpreparedr   r   r   ÚdumpJSON2   s   r"   c                 C   sö  |rd| d nd}t |d | j d ƒ | jdks't d| d | jp$d ƒ | jdks9t d| d | jp6d ƒ | jdksKt d| d | jpHd ƒ | jr[t d| d	 t| jƒ ƒ | jrkt d| d
 t| jƒ ƒ | jr{t d| d t| jƒ ƒ | j	dkst d| d | j	pŠd ƒ | jdksŸt d| d | jpœd ƒ | j
dks±t d| d | j
p®d ƒ | j d¡r:t d| d ƒ t d| d | j d¡ ƒ | j d¡rát d| d | jd  ƒ | j d¡r÷t d| d t| j d¡ƒ ƒ | j d¡rt d| d | j d¡ ƒ | j d¡r#t d| d t| j d¡ƒ ƒ | j d¡r:t d| d t| j d¡ƒ ƒ | jrst d| d ƒ |  ¡ }| ¡ }|duru|du ryt|d |d  d!d" | ¡ }|durw|du sXdS dS dS dS dS )#zPrint out a block/entire AST.ú	z-> Ú ú[ú]zTitle: zInfo: zDestination: zOpen: zLast line blank: zSourcepos: zString content: z	Literal: r   zList Data: z		z	[type] = Úbullet_charz[bullet_char] = Ústartz
[start] = Ú	delimiterz[delimiter] = Úpaddingz[padding] = Úmarker_offsetz[marker_offset] = z	Children:NFÚnodeé   T)r   )Úprintr   r	   r
   r   Úis_openr   Úlast_line_blankÚ	sourceposr   r   r   Úgetr   ÚnxtÚdumpAST)r   Úindr   ÚindCharr   r3   r   r   r   r4   8   s‚   


ÿ



ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿþür4   )F)r   F)Ú
__future__r   r   Úbuiltinsr   r   Úcommonmark.noder   r   r"   r4   r   r   r   r   Ú<module>   s    
*