
    %jT                     .   d dl Zd dlZej         G d de                      Z G d de          Z G d de          Z e            Zej         G d d	e                      Z	dd
Z
e	Z G d de          Zej
        e_        ej        e	_        ddZdS )    Nc                   z    e Zd Z ej                    Z ej                    Z ej                    Zd Zd Z	d Z
dS )
XmlElementc                 :    |                      |          pt          S N)
find_childnull_xml_elementselfnames     ^/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/mammoth/docx/xmlparser.pyfind_child_or_nullzXmlElement.find_child_or_null   s    t$$8(88    c                 b    | j         D ]&}t          |t                    r|j        |k    r|c S 'd S r   )children
isinstancer   r   )r
   r   childs      r   r   zXmlElement.find_child   sE    ] 	 	E%,, t1C1C	 	r   c                 N    t          t          fd| j                            S )Nc                 D    | j         t          j        k    o
| j        k    S r   )	node_type
node_typeselementr   )r   r   s    r   <lambda>z*XmlElement.find_children.<locals>.<lambda>   s    %/Z-??VEJRVDV r   )XmlElementListfilterr   r	   s    `r   find_childrenzXmlElement.find_children   s2    fVVVVM
 
   	r   N)__name__
__module____qualname__cobblefieldr   
attributesr   r   r   r    r   r   r   r      sh        6<>>DJv|~~H9 9 9      r   r   c                        e Zd Zd Zd Zd ZdS )r   c                     || _         d S r   )	_elements)r
   elementss     r   __init__zXmlElementList.__init__   s    !r   c                 *    t          | j                  S r   )iterr%   )r
   s    r   __iter__zXmlElementList.__iter__    s    DN###r   c                     g }| j         D ]/}|                    |          D ]}|                    |           0t          |          S r   )r%   r   appendr   )r
   r   r   r   r   s        r   r   zXmlElementList.find_children#   s]    ~ 	' 	'G ..t44 ' '&&&&'h'''r   N)r   r   r   r'   r*   r   r"   r   r   r   r      sA        " " "$ $ $( ( ( ( (r   r   c                   "    e Zd Zi Zg Zd Zd ZdS )NullXmlElementc                     | S r   r"   r	   s     r   r   z!NullXmlElement.find_child_or_null/   s    r   c                     d S r   r"   r	   s     r   r   zNullXmlElement.find_child2   s    tr   N)r   r   r   r!   r   r   r   r"   r   r   r.   r.   +   s<        JH      r   r.   c                   ,    e Zd Z ej                    ZdS )XmlTextN)r   r   r   r   r    valuer"   r   r   r2   r2   9   s        FLNNEEEr   r2   c                 ,    t          | |pi |pg           S r   )r   )r   r!   r   s      r   r   r   >   s    dJ,"hn"===r   c                       e Zd ZdZdZdS )r         N)r   r   r   r   textr"   r   r   r   r   D   s        GDDDr   r   c                     |i nt          d |D                       t          j        j                            |           }fdfdfd |j                  S )Nc              3   $   K   | ]\  }}||fV  d S r   r"   ).0prefixuris      r   	<genexpr>zparse_xml.<locals>.<genexpr>R   s*      !U!UKFC3-!U!U!U!U!U!Ur   c                     | j         t          j        j        j        k    r |           S | j         t          j        j        j        k    rt          | j                  S d S r   )nodeTypexmldomNodeELEMENT_NODE	TEXT_NODEr2   	nodeValue)nodeconvert_elements    r   convert_nodezparse_xml.<locals>.convert_nodeV   sP    =CGL555"?4(((]cgl4444>***4r   c                      |           }t          fd| j                                        D                       }g }| j        D ]$} |          }||                    |           %t          |||          S )Nc              3   R   K   | ]!}|j         d k     |          |j        fV  "dS )zhttp://www.w3.org/2000/xmlns/N)namespaceURIr3   )r;   	attributeconvert_names     r   r>   z5parse_xml.<locals>.convert_element.<locals>.<genexpr>a   sO       $
 $
%)HHH \)$$io6HHHH$
 $
r   )dictr!   values
childNodesr,   r   )r   converted_nameconverted_attributesconverted_children
child_nodeconverted_child_noderN   rI   s         r   rH   z"parse_xml.<locals>.convert_element^   s    %g..# $
 $
 $
 $
$/6688$
 $
 $
  
  
  !, 	@ 	@J#/<
#;#; #/"))*>???.*>@RSSSr   c                     | j         | j        S                     | j                   }|d| j         d| j        S |d| j        S )N{}:)rL   	localNameget)rG   r<   namespace_prefixess     r   rN   zparse_xml.<locals>.convert_nameo   s\    $>!'++D,=>>F~~#'#4#4#4dnnEE"(&&$..99r   )rO   rA   rB   minidomparsedocumentElement)fileobjnamespace_mappingdocumentrH   rN   rI   r]   s      @@@@r   	parse_xmlrd   N   s     !!U!UCT!U!U!UUUw$$W--H    T T T T T T": : : : : <0111r   )NNr   )xml.dom.minidomrA   r   dataobjectr   r   r.   r   r2   r   r8   r   r   rd   r"   r   r   <module>rh      sh               *( ( ( ( (V ( ( (    V    ">##      f   > > > >        
 ")
 O +2 +2 +2 +2 +2 +2r   