
    %j                     z   d dl mZ d dlZd dlZddlmZmZmZ ddlm	Z	 ddl
mZmZ ddlmZmZ dd	lmZmZ dd
lmZmZ ddlmZmZ ddlmZ ddlmZ ddlmZmZ ddlmZ  ej         g           Z!ddZ"ej#         G d de$                      Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0 e$            Z1dS )     )partialN   )resultslistszips   )read_document_xml_element)empty_content_typesread_content_types_xml_element)read_relationships_xml_elementRelationships)read_numbering_xml_element	Numbering)read_styles_xml_elementStyles)read_endnotes_xml_elementread_footnotes_xml_elementread_comments_xml_element)Files)body_xml
office_xml)open_zipFc                    t          | d          t                    t          t          | dd           |          t	          j        t                    t                    g                              fd          S )Nrname)
part_pathsexternal_file_accessc                 D    t          | d         | d                   S )Nr   r   )notescommentsr   )_read_document)	referentsr   read_part_with_bodyzip_files    ]/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/mammoth/docx/__init__.py<lambda>zread.<locals>.<lambda>#   s+    x!4IaLS\]^S_lvwww     )	r   _find_part_paths_part_with_body_readergetattrr   combine_read_notes_read_commentsbind)fileobjr   r   r$   r%   s     @@@r&   readr1      s    %%H!(++J0&&1	   ?'44*J77   t x x x x x x  r(   c                       e Zd Z ej                    Z ej                    Z ej                    Z ej                    Z ej                    Z	 ej                    Z
dS )
_PartPathsN)__name__
__module____qualname__cobblefieldmain_documentr!   endnotes	footnotes	numberingstyles r(   r&   r3   r3   (   s\         FLNNMv|~~Hv|~~HIIV\^^FFFr(   r3   c           
          t           d          }t           |          t           t                               fd}t           |d           |d           |d           |d           |d                    S )	Nz_rels/.relsc           	          t          d| z   d                    |           t          j                  d                   S )NzDhttp://schemas.openxmlformats.org/officeDocument/2006/relationships/zword/{0}.xmlr   )r%   relationshipsrelationship_typefallback_path	base_path)_find_part_pathformatr   
split_path)r   document_filenamedocument_relationshipsr%   s    r&   findz_find_part_paths.<locals>.find;   sM    0dgkk(//55o&788;
 
 
 	
r(   r!   r:   r;   r<   r=   )r9   r!   r:   r;   r<   r=   )_read_relationships_find_document_filename_find_relationships_path_forr3   )r%   package_relationshipsrJ   rH   rI   s   `  @@r&   r)   r)   2   s    /-HH/:OPP0$%677 

 
 
 
 
 
 
 'j!!j!!${##${##tH~~   r(   c                 v    t          | |ddd          }|                     |          r|S t          d          )NzRhttp://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument zword/document.xml)rB   rD   rC   zKCould not find main document part. Are you sure this is a valid .docx file?)rE   existsIOError)r%   rA   paths      r&   rL   rL   N   sP    n)  D t ecdddr(   c                      fd|                     |          D             }t          t           fd|                    }t          |          dk    r|S |d         S )Nc                 `    g | ]*}t          j        |                              d           +S )/)r   	join_pathlstrip).0targetrD   s     r&   
<listcomp>z#_find_part_path.<locals>.<listcomp>]   sC        	y&))0055  r(   c                 .                         |           S N)rQ   )rZ   r%   s    r&   r'   z!_find_part_path.<locals>.<lambda>a   s    xv/F/F r(   r   )find_targets_by_typelistfilterlen)r%   rA   rB   rD   rC   targetsvalid_targetss   `  `   r&   rE   rE   \   s       #889JKK  G  F F F FPPQQM
=QQr(   c                      | |j         d t                    } | |j        d t                    }t          j        ||g                              t          j                  S )Nc                 $    t          | |          S Nbody_reader)r   rootrh   s     r&   r'   z_read_notes.<locals>.<lambda>k   s    "<T{"["["[ r(   defaultc                 $    t          | |          S rf   )r   ri   s     r&   r'   z_read_notes.<locals>.<lambda>p       ";Dk"Z"Z"Z r(   )r;   _empty_resultr:   r   r,   mapr   flatten)r$   r   r;   r:   s       r&   r-   r-   h   sw    ##[[  I
 #"ZZ  H ?Ix01155emDDDr(   c                 4     | |j         d t                    S )Nc                 $    t          | |          S rf   r   ri   s     r&   r'   z _read_comments.<locals>.<lambda>z   rn   r(   rk   )r!   ro   )r$   r   s     r&   r.   r.   w   s+    ZZ   r(   c                 N     ||j         t          t          ||                    S )N)r    r!   )r9   r   r	   )r%   r$   r    r!   r   s        r&   r"   r"      s8     %	
 	
 	
  r(   c                 b   t          dt          t                    t          |j        t          t
          j                  t          |j        fdt          j                  t          | d nt          j                            |           |          t          ffd	}|S )Nz[Content_Types].xmlc                 &    t          |           S )N)r=   )r   )elementr=   s    r&   r'   z(_part_with_body_reader.<locals>.<lambda>   s    276JJJ r(   rk   )r   c                    t          	t          |                     }t          j        |	          }|t          u r t          	| t          ||                    S t          	| t          ||          |          S )N)r<   content_typesrA   r=   	docx_filefilesrg   rk   )rK   rM   r   reader
_undefined_read_entryr   _try_read_entry_or_default)
r   r|   rl   rA   rh   ry   r{   r<   r=   r%   s
        r&   	read_partz)_part_with_body_reader.<locals>.read_part   s    +H6RSW6X6XYYo''
 
 
 j  xwv;/W/W/WXXX-hgfZe>f>f>fpwxxxxr(   )r   r   r
   r=   r   r   EMPTYr<   r   r   osrS   dirnamer}   )	document_pathr%   r   r   r   ry   r{   r<   r=   s	    `   @@@@r&   r*   r*      s    .&	 M (	 F +JJJJ	  I %27??=+I+I1  E
 )3 y y y y y y y y y y" r(   c                 b    t          j        |           \  }}t          j        |d|dz             S )N_relsz.rels)r   rG   rW   )r   r   basenames      r&   rM   rM      s/    --GX>'7Hw,>???r(   c                 F    t          | |t          t          j                  S )Nrk   )r   r   r   r   )r%   r   s     r&   rK   rK      s(    %&#	   r(   c                 R    |                      |          rt          | ||          S |S r]   )rQ   r~   )r%   r   r|   rl   s       r&   r   r      s-    t 8T6222r(   c                     |                      |          5 } |t          j        |                    cd d d            S # 1 swxY w Y   d S r]   )openr   r1   )r%   r   r|   r0   s       r&   r~   r~      s    	t		 0vjog..//0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   A  AA)F)2	functoolsr   r   r7   rP   r   r   r   document_xmlr	   content_types_xmlr
   r   relationships_xmlr   r   numbering_xmlr   r   
styles_xmlr   r   	notes_xmlr   r   comments_xmlr   r{   r   r   r   r   successro   r1   dataobjectr3   r)   rL   rE   r-   r.   r"   r*   rM   rK   r   r~   r}   r>   r(   r&   <module>r      s>         				  # # # # # # # # # # 3 3 3 3 3 3 R R R R R R R R L L L L L L L L @ @ @ @ @ @ @ @ 7 7 7 7 7 7 7 7 L L L L L L L L 3 3 3 3 3 3       " " " " " " " "        ##   $          8e e e	  	  	 E E E    , , ,`@ @ @
    0 0 0
 VXX


r(   