
    j0k                     :   d dl Z d dlZd dlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd	l	m	Z	 dd
l
mZmZmZ ddlmZ ddlmZmZ ej&                  dk\  reZ	 	 	 	 	 	 ddZ G d de      Zd Zd Z G d de      Zd Zd Zd Z eg g g       Zd Z d Z!d Z"y)    N   )	documentsresults)lists)
transforms   )complex_fields)dingbats)
node_types
XmlElementnull_xml_element)Styles)replace_fragmenturi_to_zip_entry_name)   c                 ^    |t         j                  }t        | |||||      }t        |      S )N)	numberingcontent_typesrelationshipsstyles	docx_filefiles)r   EMPTY_create_reader_BodyReader)r   r   r   r   r   r   read_alls          V/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/mammoth/docx/body_xml.pyreaderr      s;     ~##H x      c                       e Zd Zd Zd Zy)r   c                     || _         y N)	_read_all)selfr   s     r   __init__z_BodyReader.__init__,   s	    !r    c                 x    | j                  |      }t        j                  |j                  |j                        S r#   )r$   r   Resultelementsmessages)r%   r)   results      r   r   z_BodyReader.read_all/   s)    )~~foov??r    N)__name__
__module____qualname__r&   r    r    r   r   r   +   s    "@r    r   c                 6    !"#$%&'()*+,-./0123456789: g -g +g .t        g d      d }&(,468fd}'fd&3fd4d 3d 8d 6#$%(.fd	}'fd
%+fd,+-0fd}	-1fd04fd1-fd}
)fd'd ) fd#d $d }d }d }d }(*7fd}'fd7(fd}(9fd}d 9:fd*d :(fd55fd }(fd!}d" }d# }!fd$} fd%!"fd& fd'"fd(fd)fd*"fd+}d, }d- }5fd.}35fd/}i d0|d1|d2|d3|	d4|
d5|d6|d7|d8|d9|d:|d;|d<5d=5d>5d?5d@5i dA5dB5dC5dD5dE5dF|dG|dH|dI|dJ|dK|dL|dM |dN      dO |dP      dQ|dR|dS|//fdT22fdU((S )VN)zoffice-word:wrapzv:shadowzv:shapetypezw:annotationRefzw:bookmarkEndzw:sectPrz
w:proofErrzw:lastRenderedPageBreakzw:commentRangeStartzw:commentRangeEndw:delzw:footnoteRefzw:endnoteRefw:pPrw:rPrw:tblPrz	w:tblGridw:trPrw:tcPrc                 P    t        t        j                  t        |                   S r#   )_successr   Text_inner_textelements    r   textz_create_reader.<locals>.textS   s    	{7';<==r    c                 |  	
 | j                  d      }|j                  d      j                  j                  d      |j                  d      j                  j                  d      |j                  d      j                  j                  d      }t        |      rt	        |      dz  nd  |j                  d             |j                  d	            	 |j                  d
             |j                  d             |j                  d             |j                  d            
 |j                  d      j                  j                  d            fd}t        j                   |       | j                        j                  |      	
f
d      S )Nr3   zw:vertAlignw:valzw:rFontszw:asciizw:szr   zw:bzw:izw:uzw:strikezw:capszw:smallCapszw:highlightc                 J            }|| S t        j                  dd| i|gS )Nchildrenr/   r   	hyperlink)rA   hyperlink_kwargscurrent_hyperlink_kwargss     r   add_complex_field_hyperlinkz@_create_reader.<locals>.run.<locals>.add_complex_field_hyperlinkl   s4    79'!++RXRAQRSSr    c                 T   
 t        j                  || d   | d   
	      S )Nr   r	   )rA   style_id
style_nameis_bold	is_italicis_underlineis_strikethroughis_all_capsis_small_capsvertical_alignmentfont	font_size	highlight)r   run)stylerA   rQ   rR   rS   rN   rJ   rK   rO   rM   rL   rP   s     r   <lambda>z-_create_reader.<locals>.run.<locals>.<lambda>v   s?    IMM!q 8#)!1'+#5##% r    )
find_child_or_null
attributesget_is_intint
find_child_ReadResultmap_resultsrA   map)r<   
propertiesfont_size_stringrF   rQ   rR   rS   rN   rJ   rK   rO   rM   rL   rP   _read_run_style_read_xml_elementsrE   read_boolean_elementread_highlight_valueread_underline_elements       @@@@@@@@@@r   rT   z_create_reader.<locals>.runV   s   //8
'.ZG 	 ,,Z8CCGG	R%88@KKOOPWX#$,-1II&z'<'<U'CD()>)>u)EF	-j.C.CE.JK/
0E0Ej0QR*:+@+@+JK,Z-B-B=-QR()F)F})U)`)`)d)del)mn		T &&J'w//0445PQ  	r    c                 .     | ddj                         S )Nzw:rStyleRun)find_character_style_by_idr`   _read_styler   s    r   rb   z'_create_reader.<locals>._read_run_style   s    :z5&:[:[\\r    c                 L    | y | j                   j                  d            S )NFr?   rX   rY   )r<   read_boolean_attribute_values    r   rd   z,_create_reader.<locals>.read_boolean_element   s'    ?/0B0B0F0Fw0OPPr    c                 
    | dvS )N)false0r/   values    r   rn   z4_create_reader.<locals>.read_boolean_attribute_value   s    N**r    c                 D    | xr | j                   j                  d      dvS )Nr?   )Nrp   rq   nonerm   r;   s    r   rf   z._create_reader.<locals>.read_underline_element   s$    ^7--11':B^^^r    c                     | r| dk(  ry | S )Nru   r/   rr   s    r   re   z,_create_reader.<locals>.read_highlight_value   s    Lr    c                    | j                  d      j                  d      j                  d      }|(| j                  D ]  }j                  |        t        S j                  d      j
                  j                  d       j                  d            | j                  }r
|z   }d d = t        j                   	       
|      fd      j                         S )Nr2   r3   r1   zw:jcr?   zw:indc                 z    t        j                  || d   | d    | d   j                  d                  S )Nr   r	   zw:numPr)paragraph_style_idr<   )rA   rH   rI   r   	alignmentindent)r   	paragraphrW   )rU   rA   _read_numbering_propertiesrz   r{   r`   s     r   rV   z3_create_reader.<locals>.paragraph.<locals>.<lambda>   sH    	(;(;%"1X$Qx8+08 * = =i H (!
) r    )
rW   r\   rA   append_empty_resultrX   rY   r]   r^   append_extra)r<   
is_deletedchildchildren_xmlrz   r{   r`   r}   _read_paragraph_indent_read_paragraph_stylerc   deleted_paragraph_contentss       @@@r   r|   z!_create_reader.<locals>.paragraph   s    //8
227;FFwO
! )) 9*11%89   #55f=HHLLWUI+J,I,I',RSF"++L)9LH.q1**%j1"<0
  <>"r    c                 .     | ddj                         S )Nzw:pStyle	Paragraph)find_paragraph_style_by_idrj   s    r   r   z-_create_reader.<locals>._read_paragraph_style   s    :z;@a@abbr    c                  v    t              D ]*  } t        | t        j                        s| j                  c S  y r#   )reversed
isinstancer
   	Hyperlinkkwargs)complex_fieldcomplex_field_stacks    r   rE   z0_create_reader.<locals>.current_hyperlink_kwargs   s9    %&9: 	,M-)A)AB$+++	, r    c                    | j                   j                  d      }|dk(  r0j                  t        j                  |              d d = t        S |dk(  r{j                         }t        |t        j                        r |      }t        |t        j                        r)t        t        j                  |j                              S t        S |dk(  r)j                         } |      }j                  |       t        S )Nzw:fldCharTypebeginfld_charendcheckedseparate)rX   rY   r~   r
   r   popr   BeginCheckboxr8   r   checkboxr   r   )r<   fld_char_typer   complex_field_separater   current_instr_textparse_current_instr_texts       r   read_fld_charz%_create_reader.<locals>.read_fld_char   s    **..?G#&&~';';W'MN"1%  e#/335M-)=)=> 8 G-)@)@A	 2 2=;P;P QRR  j(%8%<%<%>"45KLM&&}5r    c                     dj                        }t        | t        j                        r| j                  }nt
        } ||      S )N r   )joinr   r
   r   r   r   )r   
instr_textr   r   parse_instr_texts      r   r   z0_create_reader.<locals>.parse_current_instr_text   s?    WW/0
m^%9%9:$--H'H
X>>r    c                    t        j                  d|       }|.t        j                  t	        |j                  d                  S t        j                  d|       }|.t        j                  t	        |j                  d                  S t        j                  d|       }|i|j                  d      j                  d      }|j                  d	      }| |j                  d
            }n |      }t        j                  |      S y )Nz\s*HYPERLINK "(.*)"r	   hrefz\s*HYPERLINK\s+\\l\s+"(.*)"anchorz\s*FORMCHECKBOX\s*zw:ffDataz
w:checkBoxz	w:checkedz	w:defaultr   )	rematchr
   rC   dictgrouprW   r\   r   )	r   r   external_link_resultinternal_link_resultcheckbox_resultcheckbox_elementchecked_elementr   rd   s	           r   r   z(_create_reader.<locals>.parse_instr_text   s    !xx(>
K+!++D6J6P6PQR6S,TUU!xx(F
S+!++D8L8R8RST8U,VWW((#8*E&'##J/##L1  /99+FO&./?/J/J;/WX.?!**7;;r    c                 D    j                  t        |              t        S r#   )r~   r:   r   )r<   r   s    r   read_instr_textz'_create_reader.<locals>.read_instr_text   s    !!+g"67r    c                     g }| j                  |      j                  j                  d      }|d }n1 ||      }|d }|j                   ||             n|j                  }t        ||gg |      S )Nr?   )rW   rX   rY   r~   namer]   )	r`   style_tag_name
style_typefind_style_by_idr*   rH   rI   rU   _undefined_style_warnings	           r   rk   z#_create_reader.<locals>._read_style  sz    /ZG 	 J$X.E}!
 8X NO"ZZ
Hj12x@@r    c                 L    t        j                  dj                  | |            S )NzD{0} style with ID {1} was referenced but not defined in the document)r   warningformat)r   rH   s     r   r   z0_create_reader.<locals>._undefined_style_warning  s.    ellmw  zB   C  D  	Dr    c                 0   |j                  d      j                  j                  d      }|j                  d      j                  j                  d      }||j                  ||      S | j	                  |       }||S |j                  |d      S y )Nzw:numIdr?   zw:ilvlrq   )rW   rX   rY   
find_level find_level_by_paragraph_style_id)ry   r<   num_idlevel_indexlevelr   s        r   r}   z2_create_reader.<locals>._read_numbering_properties  s    ++I6AAEEgN00:EEII'R+"9''<<)>>?QRE 
 ''44r    c                    | j                   }t        j                  |j                  d      xs |j                  d      |j                  d      xs |j                  d      |j                  d      |j                  d            S )Nzw:startzw:leftzw:endzw:rightzw:firstLinez	w:hanging)startr   
first_linehanging)rX   r   paragraph_indentrY   )r<   rX   s     r   r   z._create_reader.<locals>._read_paragraph_indent+  sl    ''
))..+Gz~~h/Gw'D:>>)+D!~~m4NN;/	
 	
r    c                 <    t        t        j                               S r#   )r8   r   tabr;   s    r   r   z_create_reader.<locals>.tab4  s    	((r    c                 P    t        t        j                  t        d                  S )Ni   )r8   r   r=   unichrr;   s    r   no_break_hyphenz'_create_reader.<locals>.no_break_hyphen8  s    	vf~677r    c                 >    t        t        j                  d            S )N   ­)r8   r   r=   r;   s    r   soft_hyphenz#_create_reader.<locals>.soft_hyphen<  s    	y122r    c                    | j                   j                  d      }| j                   j                  d      }t        j                  |t        |d      f      }|:t	        j
                  d|      r$t        j                  |t        |dd  d      f      }|0t        j                  dj                  ||            }t        |      S t        t        j                  t        |                  S )Nzw:fontzw:char   z^F0..r   zOA w:sym element with an unsupported character was ignored: char {0} in font {1})rX   rY   r   r[   r   r   r   r   r   _empty_result_with_messager8   r   r=   r   )r<   rQ   charunicode_code_pointr   s        r   symbolz_create_reader.<locals>.symbol?  s    !!%%h/!!%%h/%\\4T2*?@%"((7D*A!)tSab25F.G!H%oo&w&~&~' G .g66INN62D+EFGGr    c                     | j                  d      }t        j                   |       | j                        j	                        d       S )Nr4   c                 >    t        j                  || d   | d         S )Nr   r	   )rA   rH   rI   )r   table)rU   rA   s     r   rV   z/_create_reader.<locals>.table.<locals>.<lambda>Z  s     IOO!q 8% r    )rW   r]   r^   rA   flat_map)r<   r`   rc   calculate_row_spansread_table_styles     r   r   z_create_reader.<locals>.tableS  sL    //	:
&&Z(w//0-.

 
	
r    c                 .     | ddj                         S )Nz
w:tblStyleTable)find_table_style_by_idrj   s    r   r   z(_create_reader.<locals>.read_table_styleb  s    :|Wf>[>[\\r    c                     | j                  d      }t        |j                  d            }|rt        S t        |j                  d             | j                        j                  fd      S )Nr5   r1   zw:tblHeaderc                 2    t        j                  |       S )NrA   	is_header)r   	table_rowr   s    r   rV   z3_create_reader.<locals>.table_row.<locals>.<lambda>p  s    )"5"5!## r    )rW   boolr\   r   rA   r_   )r<   r`   r   r   rc   s      @r   r   z!_create_reader.<locals>.table_rowf  sj    //9
 *//89
  ..}=>	!'"2"23S  	r    c                     | j                  d      j                  d      j                  j                  d      }|dnt        |       | j                        j                  fd      S )Nr6   z
w:gridSpanr?   r	   c                 B    t        j                  | d             S )Nr	   )rA   colspanrowspanvmerge)r   table_cell_unmerged)rA   r   r`   read_vmerges    r   rV   z4_create_reader.<locals>.table_cell.<locals>.<lambda>  s#    )"?"?!":.	# r    )rW   rX   rY   r[   rA   r_   )r<   gridspanr   r`   rc   r   s     @@r   
table_cellz"_create_reader.<locals>.table_cellv  sk    //9
-ZG 	 G(mG!'"2"23S  	r    c                 t    | j                  d      }|y|j                  j                  d      }|dk(  xs | S )Nzw:vMergeFr?   continue)r\   rX   rY   )r`   vmerge_elementvals      r   r   z#_create_reader.<locals>.read_vmerge  sC    #..z:! ++//8C*$/C/r    c           	         t        d | D              }|r( |       } t        | t        j                  d      g      S t        d | D              }|r( |       } t        | t        j                  d      g      S i }| D ]Y  }d}|j                  D ]F  }|j
                  r||v r||   xj                  dz  c_        n|||<   d|_        ||j                  z  }H [ | D ]a  }|j                  D cg c]D  }|j
                  s6t        j                  |j                  |j                  |j                        F c}|_        c t        |       S c c}w )	Nc              3   R   K   | ]  }t        |t        j                          ! y wr#   )r   r   TableRow).0rows     r   	<genexpr>z>_create_reader.<locals>.calculate_row_spans.<locals>.<genexpr>  s(      "
 3	 2 233"
s   %'zBunexpected non-row element in table, cell merging may be incorrectc              3   t   K   | ]0  }|j                   D ]  }t        |t        j                          ! 2 y wr#   )rA   r   r   TableCellUnmerged)r   r   cells      r   r   z>_create_reader.<locals>.calculate_row_spans.<locals>.<genexpr>  sA      #
#
  4!<!<==#
=#
s   68zGunexpected non-cell element in table row, cell merging may be incorrectr   r	   FrA   r   r   )any_elements_result_with_messagesr   r   rA   r   r   r   r   r   r8   )rowsunexpected_non_rowsunexpected_non_cellscolumnsr   
cell_indexr   remove_unmerged_table_cellss          r   r   z+_create_reader.<locals>.calculate_row_spans  ss   ! "
"
 
 .t4D1$T: 9    # #
#
  

  .t4D1$Y: 9    	+CJ +;;:#8J'//14/*.GJ'"'DKdll*
+	+  		C  LL {{ $$!]] LL LLCL		 ~s   -A	Ec                 r    t        t        t        j                  t        j
                  d       |             S )Nc                 n    t        j                  | j                  | j                  | j                        S )Nr   )r   r   rA   r   r   )r   s    r   rV   zE_create_reader.<locals>.remove_unmerged_table_cells.<locals>.<lambda>  s&    Y11!]] LL LL r    )listr_   r   element_of_typer   r   )r  s    r   r  z3_create_reader.<locals>.remove_unmerged_table_cells  s7    C&&++ 

 
 
	r    c                 (     | j                         S r#   )rA   )r<   rc   s    r   read_child_elementsz+_create_reader.<locals>.read_child_elements  s    !'"2"233r    c                 0     |       j                         S r#   )to_extrar<   r  s    r   pictz_create_reader.<locals>.pict  s    "7+4466r    c                 P   | j                   j                  d      }| j                   j                  d      }| j                   j                  d      xs d  | j                        fd}|(j                  |      }|t	        ||      } ||      S |	 ||      S S )Nr:idzw:anchorz
w:tgtFramec                  0     j                   fd      S )Nc                 4    t        j                  d| dS )N)rA   target_framer/   rB   )rA   r   r  s    r   rV   zC_create_reader.<locals>.hyperlink.<locals>.create.<locals>.<lambda>  s'    	8K8K 9!)9 9 r    )r_   )r   children_resultr  s   `r   createz1_create_reader.<locals>.hyperlink.<locals>.create  s    "&& (  r    r   r   )rX   rY   rA   find_target_by_relationship_idr   )	r<   relationship_idr   r  r   r  r  rc   r   s	        @@r   rC   z!_create_reader.<locals>.hyperlink  s    !,,008##''
3))--l;Ct,W-=-=>	 & ??PD!'f5t$$((""r    c                     | j                   j                  d      }|dk(  rt        S t        t	        j
                  |            S )Nzw:name_GoBack)rX   rY   r   r8   r   bookmark)r<   r   s     r   bookmark_startz&_create_reader.<locals>.bookmark_start  s<    !!%%h/9  I..t455r    c                 N   | j                   j                  d      }|r|dk(  rt        t        j                        S |dk(  rt        t        j
                        S |dk(  rt        t        j                        S t        j                  dj                  |            }t        |      S )Nzw:typetextWrappingpagecolumnzUnsupported break type: {0})rX   rY   r8   r   
line_break
page_breakcolumn_breakr   r   r   r   )r<   
break_typer   s      r   break_z_create_reader.<locals>.break_  s    ''++H5
Z>9I00116!I00118#I2233oo&C&J&J:&VWG-g66r    c                 l   | j                  d      j                  }|j                  dd      j                         r|j                  d      }n|j                  d      }| j	                  d      j	                  d      j	                  d      j	                  d      j	                  d	      } ||      S )
Nzwp:docPrdescrr   titlez	a:graphicza:graphicDatazpic:piczpic:blipFillza:blip)rW   rX   rY   stripfind_children)r<   r`   alt_textblips_read_blipss       r   inlinez_create_reader.<locals>.inline  s    //
;FF
>>'2&,,.!~~g.H!~~g.H%%k2]?+]9%]>*]8$	 	
 5(++r    c                 `    t         j                  t        j                  fd|             S )Nc                      |       S r#   r/   )blip
_read_blipr,  s    r   rV   z5_create_reader.<locals>._read_blips.<locals>.<lambda>  s    D(9S r    )r]   concatr   r_   )r-  r,  r3  s    `r   r.  z#_create_reader.<locals>._read_blips  s!    !!%)),SUZ"[\\r    c                 j     |       }| t        j                  d      }t        |      S  ||      S )Nz,Could not find image file for a:blip element)r   r   r   )r<   r,  
blip_imager   _find_blip_image_read_images       r   r3  z"_create_reader.<locals>._read_blip  s:    %g.
oo&TUG-g66z844r    c                     | \  }}j                  |      }t        j                  |||      }|dv rg }n%t        j                  dj                  |            g}t        ||      S )N)r,  content_typeopen)z	image/pngz	image/gifz
image/jpegzimage/svg+xmlz
image/tiffz8Image of type {0} is unlikely to display in web browsers)find_content_typer   imager   r   r   _element_result_with_messages)
image_filer,  
image_path
open_imager:  r=  r*   r   s          r   r8  z#_create_reader.<locals>._read_image  si    !+
J$66zBS]^bbH(b(i(ijv(wxyH,UH==r    c                     | j                   j                  d      }| j                   j                  d      }| |      S | |      S y )Nzr:embedzr:linkrm   )r<   embed_relationship_idlink_relationship_id_find_embedded_image_find_linked_images      r   r7  z(_create_reader.<locals>._find_blip_image+  sX     ' 2 2 6 6y A&1155h? ,'(=>>!-%&:;;r    c                 T    j                  |       }t        d|      fd}|fS )Nwordc                  l    j                        } t        | d      r| S t        j                  |       S )N__exit__)r;  hasattr
contextlibclosing)r?  r   r@  s    r   rA  z@_create_reader.<locals>._find_embedded_image.<locals>.open_image9  s2    "
3Jz:.!!!))*55r    )r  r   )r  targetrA  r@  r   r   s      @r   rE  z,_create_reader.<locals>._find_embedded_image5  s1    ==oN*66:
	6 :%%r    c                 <    j                  |       fd}|fS )Nc                  &     j                        S r#   )r;  )r   r@  s   r   rA  z>_create_reader.<locals>._find_linked_image.<locals>.open_imageF  s    ::j))r    )r  )r  rA  r@  r   r   s     @r   rF  z*_create_reader.<locals>._find_linked_imageC  s%    "AA/R
	* :%%r    c                     | j                   j                  d      }| t        j                  d      }t	        |      S | j                   j                  d      }  |      |      S )Nr  z;A v:imagedata element without a relationship ID was ignoredzo:title)rX   rY   r   r   r   )r<   r  r   r)  rE  r8  s       r   read_imagedataz&_create_reader.<locals>.read_imagedataK  sb    !,,008"oo&cdG-g66&&**95E3ODeLLr    c                       fd}|S )Nc                 \    t        t        j                  | j                  d               S Nzw:id)r8   r   note_referencerX   )r<   	note_types    r   rV  zE_create_reader.<locals>.note_reference_reader.<locals>.note_referenceU  s'    I44Y@R@RSY@Z[\\r    r/   )rW  rV  s   ` r   note_reference_readerz-_create_reader.<locals>.note_reference_readerT  s    	] r    c                 X    t        t        j                  | j                  d               S rU  )r8   r   comment_referencerX   r;   s    r   read_comment_referencez._create_reader.<locals>.read_comment_referenceZ  s#    	33G4F4Fv4NOPPr    c                 2     | j                  d            S )Nzmc:Fallback)rW   r  s    r   alternate_contentz)_create_reader.<locals>.alternate_content]  s    "7#=#=m#LMMr    c                 b       j                  d            } fd}|j                  |      S )Nzw:sdtContentc                 v   j                  d      j                  d      }|| S |j                  d      }|d uxr!  	|j                  j                  d            }t	        j
                  |      dfd}t        t        t        j                  t        j                  |      |             }r|S S )Nzw:sdtPrzwordml:checkboxzwordml:checkedz
wordml:valr   Fc                 D    t        | j                        dkD  rsdS | S )Nr   T)lenrs   )r=   document_checkboxhas_checkboxs    r   transform_textzP_create_reader.<locals>.read_sdt.<locals>.handle_content.<locals>.transform_texty  s%    tzz?Q&|#'L,,Kr    )rW   r\   rX   rY   r   r   r	  r_   r   r
  r9   )
contentr   r   
is_checkedrd  replaced_contentrb  rc  r<   rn   s
         @@r   handle_contentz8_create_reader.<locals>.read_sdt.<locals>.handle_contentc  s     11)<GGHYZH&112BCOt+ [,_-G-G-K-KL-YZ  !* 2 2: F L   $C**9>>>J%  
 ''((r    )rW   r_   )r<   content_resultrh  rn   r  s   `  r   read_sdtz _create_reader.<locals>.read_sdt`  s1    ,W-G-G-WX&	)P !!.11r    zw:tzw:rzw:pz	w:fldCharzw:instrTextzw:tabzw:noBreakHyphenzw:softHyphenzw:symzw:tblzw:trzw:tczw:inszw:objectz
w:smartTagz	w:drawingzv:groupzv:rectzv:roundrectzv:shapez	v:textboxzw:txbxContentzw:pictzw:hyperlinkzw:bookmarkStartzw:brz	wp:inlinez	wp:anchorzv:imagedatazw:footnoteReferencefootnotezw:endnoteReferenceendnotezw:commentReferencezmc:AlternateContentzw:sdtc                     j                  | j                        }|M| j                  vr9t        j                  dj	                  | j                              }t        |      S t        S  ||       S )Nz(An unrecognised element was ignored: {0})rY   r   r   r   r   r   r   )r<   handlerr   _ignored_elementshandlerss      r   readz_create_reader.<locals>.read  sd    ,,w||,?||#44!//*T*[*[\c\h\h*ij1'::$$7##r    c                 p    t        d |       }t        j                  t        j                  |            S )Nc                 "    t        | t              S r#   )r   r   nodes    r   rV   z<_create_reader.<locals>._read_xml_elements.<locals>.<lambda>  s    z$
'C r    )filterr]   r4  r   r_   )nodesr)   rq  s     r   rc   z*_create_reader.<locals>._read_xml_elements  s,    CUK!!%))D(";<<r    )set);r   r   r   r   r   r   r=   rT   r|   r   r   r   r   r   r   r   r   r   r  rC   r  r&  r/  rR  rX  r[  r]  rj  r7  rE  rF  ro  r3  r.  r8  r}   r   r   rb   rk   rc   r   r   r   rE   r   r   rp  r   r   rq  rn   rd   r  re   r   rf   r   r  s;   ``````                      @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@r   r   r   4   s   
 "$  ,>. .`]Q+_ "  "Dc*?2A$D&
)83H(
] &0,^47#267,]5
>&&MQN+2Z#t#s# 	y# 	]	#
 	# 	# 	?# 	# 	# 	# 		# 	
# 	$# 	'# 	)#  	(!#" 	&##$ 	%%#& 	*'#( 	&)#* 	(+#, 	,-#. 	$/#0 	y1#2 	>3#4 	5#6 	V7#8 	V9#: 	~;#< 	4Z@=#> 	3I>?#@ 	4A#B 	0C#D 	E#HJ	$= r    c                     | j                   t        j                  k(  r| j                  S dj	                  d | j
                  D              S )Nr   c              3   2   K   | ]  }t        |        y wr#   )r:   )r   r   s     r   r   z_inner_text.<locals>.<genexpr>  s     Ee{5)Es   )	node_typer   r=   rs   r   rA   rt  s    r   r:   r:     s5    ~~(zzwwEt}}EEEr    c                   J    e Zd Zed        Zed        Zd Zd Zd Zd Z	d Z
y)	r]   c                     t        t        j                  d |       t        j                  d |       t        j                  d |             S )Nc                     | j                   S r#   r)   r+   s    r   rV   z$_ReadResult.concat.<locals>.<lambda>  
    &// r    c                     | j                   S r#   )extrar  s    r   rV   z$_ReadResult.concat.<locals>.<lambda>  s
    &,, r    c                     | j                   S r#   )r*   r  s    r   rV   z$_ReadResult.concat.<locals>.<lambda>  r  r    )r]   r   r   r   s    r   r4  z_ReadResult.concat  s>    NN97CNN6@NN97CE 	Er    c                     t         || j                  |j                        g| j                  |j                  z   | j                  |j                  z         S r#   )r]   r)   r  r*   )firstsecondfuncs      r   r^   z_ReadResult.map_results  sD    %..&//23KK&,,&NNV__,. 	.r    c                 .    || _         || _        || _        y r#   )r)   r  r*   )r%   r)   r  r*   s       r   r&   z_ReadResult.__init__  s     
 r    c                      || j                         }t        |t              s|g}t        || j                  | j
                        S r#   )r)   r   r	  r]   r  r*   )r%   r  r)   s      r   r_   z_ReadResult.map  s?    &(D) zHJJMM 	r    c                      || j                         }t        |j                   | j                  |j                  z   | j                  |j                  z         S r#   )r)   r]   r  r*   )r%   r  r+   s      r   r   z_ReadResult.flat_map  sD    dmm$OOJJ%MMFOO+- 	-r    c                 l    t        g t        | j                  | j                        | j                        S r#   )r]   _concatr  r)   r*   r%   s    r   r  z_ReadResult.to_extra  s$    2wtzz4==A4==QQr    c                 l    t        t        | j                  | j                        g | j                        S r#   )r]   r  r)   r  r*   r  s    r   r   z_ReadResult.append_extra  s$    74==$**=r4==QQr    N)r,   r-   r.   staticmethodr4  r^   r&   r_   r   r  r   r/   r    r   r]   r]     sE    E E . .!
-RRr    r]   c                 B    t        | t              s| g} t        | g g       S r#   )r   r	  r]   r  s    r   r8   r8     s"    h%:xR((r    c                     t        | g|      S r#   )r   )r<   r*   s     r   r>  r>    s    )7)X>>r    c                     t        | g |      S r#   r]   )r)   r*   s     r   r   r     s    xX..r    c                     t        g g | g      S r#   r  )messages    r   r   r     s    r2y))r    c                  H    g }| D ]  }|D ]  }|j                  |         |S r#   )r~   )valuesr+   rs   r<   s       r   r  r  	  s8    F # 	#GMM'"	## Mr    c                 @    | y	 t        |        y# t        $ r Y yw xY w)NFT)r[   
ValueErrorrr   s    r   rZ   rZ     s/    }E
   s    	)NNNNNN)#rL  r   sysr   r   r   r   r   r
   r   	xmlparserr   r   r   
styles_xmlr   urisr   r   version_infochrr   r   objectr   r   r:   r]   r8   r>  r   r   r   r  rZ   r/   r    r   <module>r     s     	 
       ? ?  9uF 
!0@& @N
bF*R& *RX)
?/ BB'*	r    