
    Ngi                        d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZ d Zd	 Zd
 Zd Zd Zd Zd Zd ZddZd ZddZd Zd Zd Zd Zd Zd Z dS )    )annotations)MockFixture)assert_round_trips_through_JSONexample_doc_path)chunk_by_title)TableTextpartition_epub)#UNSTRUCTURED_INCLUDE_DEBUG_METADATAc                    t          t          d                    } t          |           dk    sJ t          | d         t                    sJ | d         j                            d          sJ t          rd | D             dhk    sJ d S d S )Nsimple.epubr   za shared culturec                &    h | ]}|j         j        S  )metadatadetection_origin.0elements     a/var/www/html/ai-engine/env/lib/python3.11/site-packages/test_unstructured/partition/test_epub.py	<setcomp>z4test_partition_epub_from_filename.<locals>.<setcomp>   s    JJJg 1JJJ    epub)r   r   len
isinstancer	   text
startswithr   elementss    r   !test_partition_epub_from_filenamer       s    .}==>>Hx==1hqk4(((((A;&&'9:::::* WJJJJJvhVVVVW WVVr   c                 t    t          t          d                    } | d         t          d          k    sJ d S )Nwinter-sports.epub
   zContents. List of Illustrations (In certain versions of this etext [in certain
browsers] clicking on the image will bring up a larger
version.) (etext transcriber's note))r   r   r   r   s    r   ;test_partition_epub_from_filename_returns_table_in_elementsr$      sP    ./CDDEEHB<5	^       r   c                     t          t          d          d          5 } t          |           }d d d            n# 1 swxY w Y   t          |          dk    sJ |d         j                            d          sJ d S )Nr"   rbfiler   z,The Project Gutenberg eBook of Winter Sports)openr   r   r   r   r   fr   s     r   test_partition_epub_from_filer,      s    	344d	;	; *q!q)))* * * * * * * * * * * * * * * x==1A;&&'UVVVVVVV   ;??c                     t          t          d                    } t          |           dk    sJ t          d | D                       sJ d S )Nr   r   c              3  6   K   | ]}|j         j        d k    V  dS )r   Nr   filenamer   es     r   	<genexpr>zTtest_partition_epub_from_filename_gets_filename_from_filename_arg.<locals>.<genexpr>-   s,      FFqz"m3FFFFFFr   r   r   r   allr   s    r   Atest_partition_epub_from_filename_gets_filename_from_filename_argr7   )   sX    .}==>>Hx==1FFXFFFFFFFFFFr   c                     t          t          d          d          5 } t          |           }d d d            n# 1 swxY w Y   t          |          dk    sJ t	          d |D                       sJ d S )Nr   r&   r'   r   c              3  2   K   | ]}|j         j        d u V  d S Nr0   r2   s     r   r4   zCtest_partition_epub_from_file_gets_filename_None.<locals>.<genexpr>5   s,      ==qqz"d*======r   )r)   r   r   r   r6   r*   s     r   0test_partition_epub_from_file_gets_filename_Noner;   0   s    	}--t	4	4 *!q)))* * * * * * * * * * * * * * * x==1==H==========r-   c                     t          t          d          d          } t          |           dk    sJ t          d | D                       sJ d S )Nr   orig-name.epub)metadata_filenamer   c              3  6   K   | ]}|j         j        d k    V  dS r=   Nr0   r   s     r   r4   zNtest_partition_epub_from_filename_prefers_metadata_filename.<locals>.<genexpr><   s.      UUw(,<<UUUUUUr   r5   r   s    r   ;test_partition_epub_from_filename_prefers_metadata_filenamerA   8   s^    .}==QabbbHx==1UUHUUUUUUUUUUr   c                     t          t          d          d          5 } t          | d          }d d d            n# 1 swxY w Y   t          d |D                       sJ d S )Nr   r&   r=   )r(   r>   c              3  6   K   | ]}|j         j        d k    V  dS r@   r0   r2   s     r   r4   zJtest_partition_epub_from_file_prefers_metadata_filename.<locals>.<genexpr>C   s-      II1qz"&66IIIIIIr   r)   r   r   r6   r*   s     r   7test_partition_epub_from_file_prefers_metadata_filenamerE   ?   s    	}--t	4	4 N!q<LMMMN N N N N N N N N N N N N N N IIIIIIIIIIIIs   <A A c                     dt          t          d                    } t          fd| D                       s-J d dt          | d         j        j                               d S )Nzapplication/epubr   c              3  8   K   | ]}|j         j        k    V  d S r:   )r   filetype)r   r3   EPUB_MIME_TYPEs     r   r4   zStest_partition_epub_gets_the_EPUB_MIME_type_in_metadata_filetype.<locals>.<genexpr>L   s-      GGqz"n4GGGGGGr   zExpected all elements to have 'z' as their filetype, but got: r   )r   r   r6   reprr   rH   )r   rI   s    @r   @test_partition_epub_gets_the_EPUB_MIME_type_in_metadata_filetyperK   I   s    'N.}==>>HGGGGhGGGGG  	2. 	2 	2!%.//	2 	2    r   mockerr   c                    d|                      d           t          t          d                    }t          fd|D                       sJ d S )N2024-06-14T16:01:292unstructured.partition.epub.get_last_modified_datereturn_valuer"   c              3  8   K   | ]}|j         j        k    V  d S r:   r   last_modified)r   r3   filesystem_last_modifieds     r   r4   zXtest_partition_epub_from_file_path_gets_last_modified_from_filesystem.<locals>.<genexpr>]   s.      VVqz'+CCVVVVVVr   patchr   r   r6   )rL   r   rU   s     @r   Etest_partition_epub_from_file_path_gets_last_modified_from_filesystemrX   U   sr    4
LL<Kc     ./CDDEEHVVVVXVVVVVVVVVVr   c                     t          t          d          d          5 } t          |           }d d d            n# 1 swxY w Y   t          d |D                       sJ d S )Nr   r&   r'   c              3  2   K   | ]}|j         j        d u V  d S r:   rS   r2   s     r   r4   zHtest_partition_epub_from_file_gets_last_modified_None.<locals>.<genexpr>d   s,      BBAqz'4/BBBBBBr   rD   r*   s     r   5test_partition_epub_from_file_gets_last_modified_Noner[   `   s    	}--t	4	4 *!q)))* * * * * * * * * * * * * * * BBBBBBBBBBBBr-   c                    d}d|                      d|           t          t          d                    }t          fd|D                       sJ d S )NrN   2020-03-08T06:10:23rO   rP   r"   )metadata_last_modifiedc              3  8   K   | ]}|j         j        k    V  d S r:   rS   r   r3   r^   s     r   r4   zTtest_partition_epub_from_file_path_prefers_metadata_last_modified.<locals>.<genexpr>r   s.      TTaqz'+AATTTTTTr   rV   )rL   rU   r   r^   s      @r   Atest_partition_epub_from_file_path_prefers_metadata_last_modifiedra   g   s    42
LL<Kc     -..G]  H TTTT8TTTTTTTTTTr   c                     dt          t          d          d          5 } t          |           }d d d            n# 1 swxY w Y   t          fd|D                       sJ d S )Nr]   r   r&   )r(   r^   c              3  4   K   | ]}|j         j        u V  d S r:   rS   r`   s     r   r4   zOtest_partition_epub_from_file_prefers_metadata_last_modified.<locals>.<genexpr>z   s.      TTaqz'+AATTTTTTr   rD   )r+   r   r^   s     @r   <test_partition_epub_from_file_prefers_metadata_last_modifiedrd   u   s    2	}--t	4	4 Y!qAWXXXY Y Y Y Y Y Y Y Y Y Y Y Y Y Y TTTT8TTTTTTTTTTs   ?AAc                 H    d} t          |           }t          |           d S )Nzexample-docs/winter-sports.epubr1   )r   r   r1   r   s     r   test_partition_epub_with_jsonrh      s+    0Hx000H#H-----r   c                     t          d          } t          |           }t          | d          }t          |          }||k    sJ ||k    sJ d S )Nr"   by_title)chunking_strategyr   r   r   	file_pathr   chunk_elementschunkss       r   ,test_add_chunking_strategy_on_partition_epubrq      sd     !566Ii((H#ILLLNH%%FX%%%%V######r   c                     t          d          } t          |           }t          | dddd          }t          |ddd          }||k    sJ ||k    sJ d S )Nr"   rf   rj      r   )rk   max_charactersnew_after_n_charscombine_text_under_n_chars)rt   ru   rv   rl   rm   s       r   8test_add_chunking_strategy_on_partition_epub_non_defaultrw      s     !566Iy111H#$#$  N #$	  F X%%%%V######r   c                 v    t          d          } t          |           }|d         j        j        dgk    sJ d S )Nr"   rf   r   eng)r   r   r   	languagesrg   s     r   2test_partition_epub_element_metadata_has_languagesr{      sC     455Hx000HA;)eW444444r   c                 j    d} t          | d          }d |D             }|dgddgdgdgdggk    sJ d S )Nz,example-docs/language-docs/eng_spa_mult.epubT)r1   detect_language_per_elementc                &    g | ]}|j         j        S r   )r   rz   r   s     r   
<listcomp>zLtest_partition_epub_respects_detect_language_per_element.<locals>.<listcomp>   s    @@@GW'@@@r   ry   spar
   )r1   r   langss      r   8test_partition_epub_respects_detect_language_per_elementr      sZ    =HxTRRRH@@x@@@EeWuenugwHHHHHHHr   N)rL   r   )!
__future__r   pytest_mockr   test_unstructured.unit_utilsr   r   unstructured.chunking.titler   unstructured.documents.elementsr   r	   unstructured.partition.epubr   &unstructured.partition.utils.constantsr   r    r$   r,   r7   r;   rA   rE   rK   rX   r[   ra   rd   rh   rq   rw   r{   r   r   r   r   <module>r      s   " " " " " " # # # # # # Z Z Z Z Z Z Z Z 6 6 6 6 6 6 7 7 7 7 7 7 7 7 6 6 6 6 6 6 V V V V V VW W W  W W WG G G> > >V V VJ J J  W W W WC C CU U U UU U U. . .$ $ $$ $ $(5 5 5I I I I Ir   