
    gi%                     ,    d dl mZ  G d d          ZdS )   )camel_to_snake_casec                   L    e Zd ZU dZeed<   ed	dedefd            Zdef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                     | j         r4| j        r-| j        t                                          vr| j        j        }n| j        }|rt          |          n|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   names      e/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/marko/element.pyget_typezElement.get_type   s_     L	 	  G$:$:$<$<<<<(DD<D,6@"4(((D@    c                     	 ddl m}  || ddg          S # t          $ rA ddlm} t          | d          rd || j                   }nd}d	| j        j         | d
cY S w xY w)N    )objstrFchildren)honor_existinginclude)pformatz
 children= <>)	objprintr   ImportErrorpprintr   hasattrr   	__class__r   )selfr   r   r   s       r   __repr__zElement.__repr__   s    	L'''''' 6$uzlKKKK  	< 	< 	<&&&&&&tZ(( @(>(>@@;t~.;;;;;;;	<s    AA"!A"N)F)
r   
__module____qualname____doc__bool__annotations__classmethodstrr   r"    r   r   r   r      s          
 NNNA A$ A3 A A A [A$L# L L L L L Lr   r   N)helpersr   r   r*   r   r   <module>r,      sS    ( ( ( ( ( ((L (L (L (L (L (L (L (L (L (Lr   