
    khT                     $   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y)    Nc                       e Zd Z ej                         Z ej                         Z ej                         Zd Zd Z	d Z
y)
XmlElementc                 4    | j                  |      xs t        S N)
find_childnull_xml_elementselfnames     R/var/www/teggl/fontify/venv/lib/python3.12/site-packages/mammoth/docx/xmlparser.pyfind_child_or_nullzXmlElement.find_child_or_null   s    t$8(88    c                 n    | j                   D ]&  }t        |t              s|j                  |k(  s$|c S  y r   )children
isinstancer   r   )r
   r   childs      r   r   zXmlElement.find_child   s/    ]] 	E%,t1C	r   c                 H    t        t        fd| j                              S )Nc                 `    | j                   t        j                  k(  xr | j                  k(  S r   )	node_type
node_typeselementr   )r   r   s    r   <lambda>z*XmlElement.find_children.<locals>.<lambda>   s%    %//Z-?-??VEJJRVDV r   )XmlElementListfilterr   r	   s    `r   find_childrenzXmlElement.find_children   s!    fVMM
  	r   N)__name__
__module____qualname__cobblefieldr   
attributesr   r   r   r    r   r   r   r      s8    6<<>DJv||~H9r   r   c                       e Zd Zd Zd Zd Zy)r   c                     || _         y 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    DNN##r   c                     g }| j                   D ])  }|j                  |      D ]  }|j                  |        + t        |      S r   )r%   r   appendr   )r
   r   r   r   r   s        r   r   zXmlElementList.find_children#   sM    ~~ 	'G ..t4 '&'	' h''r   N)r   r   r   r'   r*   r   r"   r   r   r   r      s    "$(r   r   c                        e Zd Zi Zg Zd Zd Zy)NullXmlElementc                     | S r   r"   r	   s     r   r   z!NullXmlElement.find_child_or_null/   s    r   c                      y r   r"   r	   s     r   r   zNullXmlElement.find_child2   s    r   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y)XmlTextN)r   r   r   r   r    valuer"   r   r   r2   r2   9   s    FLLNEr   r2   c                 ,    t        | |xs i |xs g       S r   )r   )r   r!   r   s      r   r   r   >   s    dJ,"hn"==r   c                       e Zd ZdZdZy)r         N)r   r   r   r   textr"   r   r   r   r   D   s    GDr   r   c                     |i nt        d |D              t        j                  j                  j	                  |       }fdfdfd |j
                        S )Nc              3   *   K   | ]  \  }}||f  y wr   r"   ).0prefixuris      r   	<genexpr>zparse_xml.<locals>.<genexpr>R   s     !UKFC3-!Us   c                    | j                   t        j                  j                  j                  k(  r |       S | j                   t        j                  j                  j
                  k(  rt        | j                        S y r   )nodeTypexmldomNodeELEMENT_NODE	TEXT_NODEr2   	nodeValue)nodeconvert_elements    r   convert_nodezparse_xml.<locals>.convert_nodeV   sT    ==CGGLL555"4((]]cggll4444>>**r   c                      |       }t        fd| j                  j                         D              }g }| j                  D ]  } |      }||j	                  |         t        |||      S )Nc              3   d   K   | ]'  }|j                   d k7  r |      |j                  f ) yw)zhttp://www.w3.org/2000/xmlns/N)namespaceURIr3   )r;   	attributeconvert_names     r   r>   z5parse_xml.<locals>.convert_element.<locals>.<genexpr>a   s6      $
%%)HH )$ioo6$
s   -0)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$
  
  !,, 	@J#/
#; #/"))*>?	@
 .*>@RSSr   c                     | j                   | j                  S j                  | 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   sX    $>>!'++D,=,=>F~#'#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\     !!UCT!UUww$$W-HT": 0011r   )NNr   )xml.dom.minidomrA   r   dataobjectr   r   r.   r   r2   r   r8   r   r   rd   r"   r   r   <module>rh      s        *(V (V  "#  f  >  
 "))
 OO +2r   