
    %j                         d dl mZ ddlmZmZmZmZmZ d ZddZ	ddZ
ddZ e            Zd	 Zd
 Z G d de          Zd Z G d de          Z e            j        Zd Zd Zd Zd Z G d de          ZdS )   )flat_map   )TextNodeTagElement
ForceWriteNodeVisitorc                      t          |           S N)r   values    ]/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/mammoth/html/__init__.pytextr      s    E??    Nc                 z    t          | t                    s| g} |i }t          | |t          |          |          S N	tag_names
attributescollapsible	separator)
isinstancelistr   boolr   s       r   tagr   	   sF    i&&  K	
ztKGXGXdmnnnnr   c                 P    |g }t          | |||          }t          ||          S r   )r   r   )r   r   childrenr   r   element_tags         r   elementr      s4    	jkenoooK;)))r   c                 (    t          | ||d          S )NT)r   )r   )r   r   r   s      r   collapsible_elementr!      s    9j(EEEEr   c                 ,    t          t          |           S r   )r   _strip_empty_node)nodess    r   strip_emptyr%       s    %u---r   c                 D    t                                          |           S r   )
StripEmptyvisit)nodes    r   r#   r#   $   s    <<d###r   c                        e Zd Zd Zd Zd ZdS )r'   c                     |j         r|gS g S r   r   selfr)   s     r   visit_text_nodezStripEmpty.visit_text_node)   s    : 	6MIr   c                     t          |j                  }t          |          dk    r|                                sg S t	          |j        |          gS )N    )r%   r   lenis_voidr   r   )r-   r   r   s      r   visit_elementzStripEmpty.visit_element/   sL    w/00x==Agoo&7&7IGK2233r   c                     |gS r    r,   s     r   visit_force_writezStripEmpty.visit_force_write6   s	    vr   N__name__
__module____qualname__r.   r3   r6   r5   r   r   r'   r'   (   sA          4 4 4    r   r'   c                 4    g }| D ]}t          ||           |S r   )_collapsing_add)r$   	collapsedr)   s      r   collapser>   :   s/    I ) )	4((((r   c                        e Zd Zd Zd Zd ZdS )_CollapseNodec                     |S r   r5   r,   s     r   r.   z_CollapseNode.visit_text_nodeC       r   c                 P    t          |j        t          |j                            S r   )r   r   r>   r   r-   r   s     r   r3   z_CollapseNode.visit_elementF   s    w{HW-=$>$>???r   c                     |S r   r5   r,   s     r   r6   z_CollapseNode.visit_force_writeI   rB   r   Nr7   r5   r   r   r@   r@   B   sD          @ @ @    r   r@   c                 r    t          |          }t          | |          s|                     |           d S d S r   )_collapse_node_try_collapseappend)r=   r)   collapsed_nodes      r   r<   r<   O   sE    #D))NN33 )((((() )r   c                 P   | sdS | d         }t          |t                    rt          |t                    sdS |j        sdS t          ||          sdS |j        r,|j                            t          |j                             |j        D ]}t          |j        |           dS )NFT)	r   r   r   	_is_matchr   r   rI   r   r<   )r=   r)   lastchilds       r   rH   rH   T   s     uR=DdG$$ JtW,E,E u uT4   u~ 3T$.11222 . .u----4r   c                 >    | j         |j        v o| j        |j        k    S r   )tag_namer   r   )firstseconds     r   rM   rM   j   s"    >V--W%2BfFW2WWr   c                 N    t          |           }|                    |           d S r   )_NodeWriter	visit_all)writerr$   visitors      r   writerY   n   s)    &!!Ger   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )rU   c                     || _         d S r   )_writer)r-   rW   s     r   __init__z_NodeWriter.__init__t   s    r   c                 D    | j                             |j                   d S r   )r\   r   r   r,   s     r   r.   z_NodeWriter.visit_text_nodew   s     $*%%%%%r   c                 8   |                                 r'| j                            |j        |j                   d S | j                            |j        |j                   |                     |j                   | j                            |j                   d S r   )	r2   r\   self_closingrQ   r   startrV   r   endrD   s     r   r3   z_NodeWriter.visit_elementz   s    ?? 	/L%%g&68JKKKKKLw/1CDDDNN7+,,,LW-.....r   c                     d S r   r5   rD   s     r   r6   z_NodeWriter.visit_force_write   s    r   c                 :    |D ]}|                      |           d S r   )r(   )r-   r$   r)   s      r   rV   z_NodeWriter.visit_all   s0     	 	DJJt	 	r   N)r8   r9   r:   r]   r.   r3   r6   rV   r5   r   r   rU   rU   s   s_          & & &/ / /      r   rU   )NNN)NNNN)NN)listsr   r$   r   r   r   r   r	   r   r   r   r!   force_writer%   r#   r'   r>   r@   r(   rG   r<   rH   rM   rY   rU   r5   r   r   <module>rg      s         B B B B B B B B B B B B B B  o o o o* * * *F F F F jll. . .$ $ $       $      K    &) ) )
  ,X X X  
    +     r   