o
    >Di%                     @   s   d dl mZ G dd dZdS )   )camel_to_snake_casec                   @   s@   e Zd ZU dZeed< eddedefddZdefdd	Z	d
S )ElementzThis class holds attributes common to both the BlockElement and
    InlineElement classes.
    This class should not be subclassed by any other classes beside these.
    overrideF
snake_casereturnc                 C   s:   | j r| jr| jt vr| jj}n| j}|rt|S |S )z
        Return the Markdown element type that the object represents.

        :param snake_case: Return the element type name in snake case if True
        )r   __base__r   __subclasses____name__r   )clsr   name r   F/var/www/Datamplify/venv/lib/python3.10/site-packages/marko/element.pyget_type   s   

zElement.get_typec                 C   st   zddl m} W n) ty1   ddlm} t| dr#d|| j }nd}d| jj | d Y S w || d	dgd
S )N    )objstr)pformatchildrenz
 children= <>F)honor_existinginclude)	objprintr   ImportErrorpprintr   hasattrr   	__class__r	   )selfr   r   r   r   r   r   __repr__   s   

zElement.__repr__N)F)
r	   
__module____qualname____doc__bool__annotations__classmethodstrr   r   r   r   r   r   r      s   
 r   N)helpersr   r   r   r   r   r   <module>   s    