a
    %gh<  ã                   @   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 ]Ì\}}d|ji}|jr.|j|d< |jr>|j|d< |jrN|j|d< |jr^|j|d< |jrn|j|d< |jr~|j|d< t|ƒrŽg |d< |rÎt	|ƒd	krÎ|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ÚaZsubnodeZenteredÚrep© r   ú_/mounts/lovelace/software/anaconda3/envs/metaDMG/lib/python3.9/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sNt d| d | jpHd ƒ | jdksrt d| d | jpld ƒ | jdks–t d| d | jpd ƒ | jr¶t d| d	 t| jƒ ƒ | jrÖt d| d
 t| jƒ ƒ | jröt d| d t| jƒ ƒ | j	dkst d| d | j	pd ƒ | jdksFt d| d | jp@d ƒ | j
dksnt d| d | j
phd ƒ | 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¡rVt d| d t| j d¡ƒ ƒ | j d¡r„t d| d t| j d¡ƒ ƒ | jrât d| d ƒ |  ¡ }| ¡ }|durâ|du rât|d |d  d!d" | ¡ }q¬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] = Zbullet_charz[bullet_char] = Ústartz
[start] = Ú	delimiterz[delimiter] = Úpaddingz[padding] = Zmarker_offsetz[marker_offset] = z	Children:NFÚnodeé   T)r   )Úprintr   r	   r
   r   Zis_openr   Zlast_line_blankZ	sourceposr   r   r   Úgetr   ÚnxtÚdumpAST)r   Úindr   ZindCharr   r,   r   r   r   r-   8   s|    


ÿ
ÿÿ
ÿÿ

ÿÿ
ÿÿ
ÿÿr-   )F)r   F)Ú
__future__r   r   Úbuiltinsr   r   Zcommonmark.noder   r   r    r-   r   r   r   r   Ú<module>   s   
*