
    :Qgɽ                    f   d dl mZ d dlZd dlZd dlZ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Zd dlmZ d dlmZ d dlmZmZmZmZ d d	lmZmZmZmZmZmZ d d
lm Z  d dl!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ d dl,m-Z- d dl.m/Z/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6m7Z7m8Z8 ejr                  ju                  d      Z;d Z<d Z=ej|                  j                  dg d      	 	 	 	 	 	 dd       Z@ej|                  j                  e;d      dd       ZBddZCddZDej|                  j                  dg d      ej|                  j                  de4j                  e4j                  e4j                  e4j                  g      	 	 	 	 	 	 dd               ZI e'd!"       e+d#"       e&d$"       e&d%"      gZJd& ZKd' ZLd( ZMd) ZNej|                  j                  dg d*      dd+       ZOej|                  j                  dg d*      dd,       ZPd- ZQej|                  j                  dg d.      dd/       ZRej|                  j                  dg d.      dd0       ZSdd1ZTej|                  j                  d2d3d4g      dd5       ZUd6 ZVej|                  j                  d7eXd48      d9        ZYdd:ZZd; Z[d< Z\dd=Z]dd>Z^d? Z_d@ Z`ej|                  j                  dg dA      ddB       Zaej|                  j                  dg dA      ddC       ZbddDZcdE Zdej|                  j                  d2d3d4g      ddF       ZedG ZfdH ZgdI Zhej|                  j                  ddJdKg      ej|                  j                  de4j                  e4j                  e4j                  e4j                  g      	 	 	 	 	 	 ddL              ZidM ZjdN ZkdO ZldP Zmej|                  j                  dQdR e'dS"       e"dT"       e+d#"       e&dU"       e&dV"       e&dW"      gfdXg fg      ddY       ZndZ Zod[ Zpd\ Zqd] Zrd^ Zsd_ Ztd` Zuda Zvdb ZwddcZxdd Zyde Zzdf Z{ddgZ|ddhZ}di Z~dj Zdk Zej|                  j                  dldmj                               ddn       Zdo Zdp ZddqZdr ZddsZej|                  j                  dtdugdvfdwgdvfg      	 	 	 	 ddx       ZddyZej|                  j                  dzd{gd|d3fg d|d4fd}gd~d3fg d~d4fg      	 	 	 	 	 	 dd       Zej|                  j                  dg d      	 	 	 	 	 	 	 	 dd       Zej|                  j                  dddg      	 	 	 	 dd       Zej|                  j                  dde-j                  fde-j                  fde-j                  fde-j                   fde-j"                  fde-j$                  fde-j&                  fde-j(                  fde-j*                  fde-j,                  fdKe-j.                  fdJe-j0                  fde-j2                  fde-j4                  fde-j6                  fdRe-j8                  fde-j:                  fd|e-j:                  fde-j<                  fg      	 	 	 	 dd       Zd Zd Zd Zd Zd Z	 	 ddZ ejL                         d        Zy)    )annotationsN)import_module)Iterator)patch)Image)assert_element_extraction)EXPECTED_TABLEEXPECTED_TABLE_XLSXEXPECTED_TEXTEXPECTED_XLS_TABLE)ANYFixtureRequestLogCaptureFixtureexample_doc_pathfunction_mockmethod_mock)clean_extra_whitespace)
AddressCompositeElementElementElementMetadataListItemNarrativeTextTable
TableChunkTextTitle)FileType)_PartitionerLoader	partition)UnsupportedFileFormatError)PartitionStrategy)elements_from_jsonelements_to_dictselements_to_jsonz/.dockerenvc                     t        t        d            } t        | d   j                        t        k(  sJ | d   j
                  j                  t        k(  sJ | d   j
                  j                  dk(  sJ y )Nstanley-cups.csvr   text/csv	r    r   r   textr   metadatatext_as_htmlr	   filetypeelementss    b/var/www/html/answerous/venv/lib/python3.12/site-packages/test_unstructured/partition/test_auto.py%test_auto_partition_csv_from_filenamer1   <   l    )*<=>H!(1+"2"23}DDDA;,,>>>A;((J666    c                 \   t        t        d      d      5 } t        |       }d d d        t        d   j                        t
        k(  sJ t        |d   t              sJ |d   j                  j                  t        k(  sJ |d   j                  j                  dk(  sJ y # 1 sw Y   xY w)Nr'   rbfiler   r(   )openr   r    r   r*   r   
isinstancer   r+   r,   r	   r-   fr/   s     r0   !test_auto_partition_csv_from_filer<   D   s    	12D	9 %Q!$% "(1+"2"23}DDDhqk5)))A;,,>>>A;((J666% %s   B""B+)pass_metadata_filenamecontent_type)FN)Fapplication/msword)Tr@   TNr>   c                :   t        d      }| r|nd }t        |||t        j                        }|D ]9  }t	        t        |      j                   dt        |j                         d       ; ||k(  sJ t        d |D              sJ t        d |D              sJ y )N
simple.docfilenamemetadata_filenamer>   strategy()c              3  N   K   | ]  }|j                   j                  d k(    yw)rC   Nr+   rE   .0es     r0   	<genexpr>z8test_auto_partition_doc_from_filename.<locals>.<genexpr>h   s     Eqqzz""l2E   #%c              3  `   K   | ]&  }|j                   j                  t        d       k(   ( yw Nr+   file_directoryr   rL   s     r0   rO   z8test_auto_partition_doc_from_filename.<locals>.<genexpr>i   %     SQqzz((,<R,@@S   ,.)
r   r    r"   HI_RESprinttype__name__reprr*   all)r=   r>   expected_docx_elements	file_pathrF   r/   rN   s          r0   %test_auto_partition_doc_from_filenamer`   S   s     !.I%;	+!"))	H  5a!!"!DL>345 ----EHEEEES(SSSSr3   z6Passes in CI but not Docker. Remove skip on #3364 fix.)reasonc                ~    t        t        d      d      5 }t        |      }d d d        | k(  sJ y # 1 sw Y   xY w)NrC   r5   r6   r8   r   r    r^   r;   r/   s      r0   !test_auto_partition_doc_from_filere   l   sD    	|,d	3 %q!$% ----% %s   3<c                    t        t        d      t        j                        }|| k(  sJ t	        d |D              sJ y )Nsimple.docxrG   c              3  N   K   | ]  }|j                   j                  d k(    yw)rg   NrK   rL   s     r0   rO   z9test_auto_partition_docx_from_filename.<locals>.<genexpr>}   s     Fqzz""m3FrP   )r    r   r"   rX   r]   r^   r/   s     r0   &test_auto_partition_docx_from_filenamerk   y   s>    )-8CTC[C[\H----FXFFFFr3   c                    t        t        d      d      5 }t        |t        j                        }d d d        | k(  sJ y # 1 sw Y   xY w)Nrg   r5   r7   rG   r8   r   r    r"   rX   rd   s      r0   "test_auto_partition_docx_from_filero      sO    	}-t	4 H!.?.F.FGH----H H   AA	file_name)rg   rC   
simple.odtrG   c                    ddl m} d	d}t        | |d|      }t        t	        |      |      \  }|j                  t               |j                  d| k(  sJ y)
a|  The `strategy` arg value received by `partition()` is received by `partition_docx().

    To do this in the brokering-partitioner cases (DOC, ODT) it must make its way to
    `partition_doc()` or `partition_odt()` which must then forward it to `partition_docx()`. This
    test makes sure it made it all the way.

    Note this is 3 file-types X 4 strategies = 12 test-cases.
    r   )_DocxPartitionerc              3  T   K   t        d| j                  j                          y wN
strategy==r   _optsrG   selfs    r0   fake_iter_document_elementszktest_partition_forwards_strategy_arg_to_partition_docx_and_its_brokers.<locals>.fake_iter_document_elements   #     Z

 3 34566   &(_iter_document_elementsside_effectrh   rw   N)r{   rt   returnIterator[Element])unstructured.partition.docxrt   r   r    r   assert_called_once_withr   r*   )requestrq   rG   rt   r|   _iter_elements_elements          r0   Ftest_partition_forwards_strategy_arg_to_partition_docx_and_its_brokersr      sa    * =7 "!/	O +I6JJW++C0<<Zz2222r3   +This is a test email to use for unit tests.r*   Important points:Roses are redViolets are bluec                 x   t        d      } t        | t        j                        }t	        |      dkD  sJ |t
        k(  sJ |d   j                  j                  t        j                  j                  |       k(  sJ |d   j                  j                  t        j                  j                  |       d   k(  sJ y )Neml/fake-email.emlrh   r   )r   r    r"   rX   lenEXPECTED_EMAIL_OUTPUTr+   rE   ospathbasenamerU   splitr_   r/   s     r0   'test_auto_partition_email_from_filenamer      s     !56I->-E-EFHx=1,,,,A;((BGG,<,<Y,GGGGA;.."''--	2J12MMMMr3   c                     t        t        d      d      5 } t        | t        j                        }d d d        t              dkD  sJ |t        k(  sJ y # 1 sw Y   %xY w)Nr   r5   rm   r   )r8   r   r    r"   rX   r   r   r:   s     r0   #test_auto_partition_email_from_filer      sd    	34d	; Hq!.?.F.FGH x=1,,,,	H Hs   AAc                     t        t        d      t        j                        } t	        |       dkD  sJ | d   j
                  j                  d      sJ y )Nwinter-sports.epubrh   r   ,The Project Gutenberg eBook of Winter Sports)r    r   r"   rX   r   r*   
startswithr.   s    r0   &test_auto_partition_epub_from_filenamer      sM    )*>?J[JbJbcHx=1A;&&'UVVVr3   c                     t        t        d      d      5 } t        | t        j                        }d d d        t              dkD  sJ |d   j                  j                  d      sJ y # 1 sw Y   :xY w)Nr   r5   rm   r   r   )r8   r   r    r"   rX   r   r*   r   r:   s     r0   "test_auto_partition_epub_from_filer      st    	34d	; Hq!.?.F.FGH x=1A;&&'UVVV	H Hs   A++A4)r?   )F	text/html)Tr   rA   c                H   t        d      }| r|nd }t        |||t        j                        }|sJ t        j
                  j                  |      t        j
                  j                  |      d   ct        fd|D              sJ t        fd|D              sJ y )Nexample-10k-1p.htmlrD   r   c              3  P   K   | ]  }|j                   j                  k(    y wNrK   )rM   rN   expected_filenames     r0   rO   z9test_auto_partition_html_from_filename.<locals>.<genexpr>   s!     JAqzz""&77J   #&c              3  P   K   | ]  }|j                   j                  k(    y wr   )r+   rU   )rM   rN   expected_directorys     r0   rO   z9test_auto_partition_html_from_filename.<locals>.<genexpr>   s!     Q1qzz((,>>Qr   )	r   r    r"   rX   r   r   r   r   r]   )r=   r>   r_   rF   r/   r   r   s        @@r0   &test_auto_partition_html_from_filenamer      s    
 !!67I%;	+!"))	H O8,.GG,<,<Y,GW`IabcId))JJJJJQQQQQr3   c                    t        d      }| r|nd }t        |d      5 }t        |||t        j                        }d d d        t              dkD  sJ y # 1 sw Y   xY w)Nr   r5   r7   rF   r>   rG   r   )r   r8   r    r"   rX   r   )r=   r>   r_   rF   r;   r/   s         r0   "test_auto_partition_html_from_filer      sj    
 !!67I%;		i	 
!/%&--	

 x=1
 
s   AAc                 ^   t        t        d            } t        |       dkD  sJ d| D cg c]  }|j                   c}vsJ t	        | d   j
                        j                  d      sJ t        | d   t              sJ t        d | D              sJ t        d | D              sJ y c c}w )Nfake-html-pre.htmr   	PageBreakz[107th Congress Public Law 56]c              3  N   K   | ]  }|j                   j                  d k(    yw)r   Nr+   r-   rL   s     r0   rO   z9test_auto_partition_html_pre_from_file.<locals>.<genexpr>  s     Daqzz""k1DrP   c              3  N   K   | ]  }|j                   j                  d k(    yw)r   NrK   rL   s     r0   rO   z9test_auto_partition_html_pre_from_file.<locals>.<genexpr>  s      Laqzz""&99LrP   )
r    r   r   categoryr   r*   r   r9   r   r]   r/   elems     r0   &test_auto_partition_html_pre_from_filer     s    )*=>?Hx=1Bt}}BBBB!(1+"2"23>>?_```hqk=111D8DDDDL8LLLL	 Cs   B*)r?   )F
image/jpeg)Tr   rA   c                    t        d      }| r|nd }t        |||t        j                        }|d   }|j                  dk(  sJ |j
                  j                  J y )N img/layout-parser-paper-fast.jpgrD      OLayoutParser: A Unified Toolkit for Deep Learning Based Document Image Analysis)r   r    r"   AUTOr*   r+   coordinatesr=   r>   r_   rF   r/   rN   s         r0   &test_auto_partition_jpeg_from_filenamer     sq    
 !!CDI%;	+!"''	H 	A66Y   ::!!---r3   c                    t        d      }| r|nd }t        |d      5 }t        |||t        j                        }d d d        d   }|j
                  dk(  sJ |j                  j                  J y # 1 sw Y   8xY w)Nr   r5   r   r   r   )r   r8   r    r"   r   r*   r+   r   r=   r>   r_   rF   r;   r/   rN   s          r0   "test_auto_partition_jpeg_from_filer   3  s    
 !!CDI%;		i	 
!/%&++	

 	A66Y   ::!!---
 
s   A33A<c                   t        | dz        }t        j                  t        d            5 }|j	                  |       d d d        t        |t        j                        }|D cg c]/  }|j                  j                  s|j                  j                  1 }}t        |      dk(  sJ d|d   v sJ d|d   v sJ y # 1 sw Y   xY wc c}w )Nzexample.bmpz&img/layout-parser-paper-with-table.jpgrE   rG      z<table><thead><tr>r   z</thead><tbody><tr>)strr   r8   r   saver    r"   rX   r+   r,   r   )tmp_pathbmp_filenameimgr/   rN   tables         r0   %test_auto_partition_bmp_from_filenamer   J  s    x-/0L	$%MN	O SV ,9J9Q9QRH.6R!**:Q:QQZZ$$RERu:??58+++ E!H,,, 
 Ss   B?&CC?Cextract_image_block_to_payloadFTc                    ddg}t        j                         5 }t        t        d      || |      }t	        ||| |       d d d        y # 1 sw Y   y xY w)Nr   r   zimg/embedded-images-tables.jpg)rE   extract_image_block_typesr   extract_image_block_output_dirtempfileTemporaryDirectoryr    r   r   r   r   tmpdirr/   s       r0   ,test_auto_partition_image_element_extractionr   W  sb    !(' 2		$	$	& 

&%&FG&?+I+1	
 	"/1OQW	


 

 

   'A		Ac            	     x   t        d      } d}t        |       5 }t        j                  |      }ddd       t        j                  t        t        t        |       |t        j                                    }|D ]  }|j                  d        D ]  }|j                  d        ||k(  sJ y# 1 sw Y   xY w)zBTest auto-processing an unstructured json output file by filename.zspring-weather.html.jsonzspring-weather.htmlN)rE   rF   rG   r+   )r   r8   jsonloadloadsr%   r    r   r"   rX   pop)json_file_pathoriginal_file_namejson_fexpected_resultpartitioning_resultr   s         r0   Mtest_auto_partitioned_json_output_maintains_consistency_with_fixture_elementsr   q  s    %&@AN.	n	 ,))F+, **^,"4*11		
	 $   1111%, ,s   B00B9z~https://github.com/Unstructured-IO/unstructured/issues/3365 partition_json() does not preserve original element-id or metadata)ra   raisesstrictc                     t        d      } t        |       }t        | d      5 }t        |      }d d d        t	              t	        |      k(  sJ y # 1 sw Y   #xY w)Nzsimple.jsonr5   r6   )r   r#   r8   r    r$   )r_   original_elementsr;   partitioned_elementss       r0   >test_auto_partition_json_from_file_preserves_original_elementsr     sb     !/I*95	i	 1!(a01 126GHY6ZZZZ1 1s   AAc                    d}t        | dz        }t        |d      5 }|j                  |       d d d        t        j                  t
        d      5  t        |       d d d        y # 1 sw Y   :xY w# 1 sw Y   y xY w)Nz{"hi": "there"}zunprocessable.jsonwz6Detected a JSON file that does not conform to the Unstmatch)rE   )r   r8   writepytestr   
ValueErrorr    )r   r*   r_   r;   s       r0   7test_auto_partition_json_raises_with_unprocessable_jsonr     sx     DH334I	i	 	 
z)a	b &9%& & & &s   A(A4(A14A=c                 f    d} t        | dt        j                        }d|d   j                  v sJ y )NzMhttps://raw.githubusercontent.com/Unstructured-IO/unstructured/main/README.mdztext/markdownurlr>   rG   unstructuredr   )r    r"   rX   r*   )r   r/   s     r0   3test_partition_md_from_url_works_with_embedded_htmlr     s4    
YCSIZIaIabHXa[-----r3   c                     t        t        d      t        j                        t	        d      t        d      t        d      t        d      gk(  sJ y )Nfake-email.msgrh   r   r   r   r   r   )r    r   r"   rX   r   r   r    r3   r0   %test_auto_partition_msg_from_filenamer     sR    %&67BSBZBZ[HI&'o&()	`   r3   c                Z    t        t        d      t        j                        }|| k(  sJ y )Nrr   rh   )r    r   r"   rX   rj   s     r0   %test_auto_partition_odt_from_filenamer     s*    ),7BSBZBZ[H----r3   c                    t        t        d      d      5 }t        |t        j                        }d d d        | k(  sJ y # 1 sw Y   xY w)Nrr   r5   rm   rn   rd   s      r0   !test_auto_partition_odt_from_filer     sQ    	|,d	3 Hq!.?.F.FGH ----H Hrp   c                     t        t        d            } | d   t        d      k(  sJ | d   j                  j                  dk(  sJ y )N
README.orgr   Example Docstext/orgr    r   r   r+   r-   r.   s    r0   %test_auto_partition_org_from_filenamer    sG    ),78HA;%////A;((J666r3   c                     t        t        d      d      5 } t        | d      }d d d        d   t        d      k(  sJ |d   j                  j
                  dk(  sJ y # 1 sw Y   ;xY w)Nr  r5   r  r7   r>   r   r  r8   r   r    r   r+   r-   r:   s     r0   !test_auto_partition_org_from_filer	    sl    	|,d	3 >q!*=> A;%////A;((J666	> >   AA')r?   )Fapplication/pdf)Tr  rA   c                   t        d      }| r|nd }t        |||t        j                        }|d   }t	        |t
              sJ |j                  j                  d      sJ |j                  j                  t        j                  j                  |      k(  sJ |j                  j                  t        j                  j                  |      d   k(  sJ |d   }t	        |t              sJ |j                  j                  d      sJ y )Npdf/chevron-page.pdfrD   r   eastern mediterraneanr      We’re investing)r   r    r"   rX   r9   r   r*   r   r+   rE   r   r   r   rU   r   r   r   s         r0   %test_auto_partition_pdf_from_filenamer    s    
 !!78I%;	+!"))	H 	Aa664555::"''"2"29"====::$$i(@(CCCCAa'''660111r3   c                r   t        d      }| r|nd }t        |d      5 }t        |||t        j                        }d d d        d   }t        |t              sJ |j                  j                  d      sJ |d   }t        |t              sJ |j                  j                  d      sJ y # 1 sw Y   rxY w)Nr  r5   r   r   r  r   r  )
r   r8   r    r"   rX   r9   r   r*   r   r   r   s          r0   !test_auto_partition_pdf_from_filer    s    
 !!78I%;		i	 
!/%&--	

 	Aa664555Aa'''660111
 
s   B--B6c                H   t        | dt        d      g      }t        | t        d|      }t	        d      }t        |t        j                         |j                  t        t        j                         |j                  |d d t        j                  d d dddd d dd d	       y )
N(unstructured.partition.pdf.partition_pdfzHello there!return_valueget pdf/layout-parser-paper-fast.pdfrh   Fr   )rE   r7   r   rG   	languagesrF   include_page_breaksinfer_table_structureextract_images_in_pdfr   r   r   hi_res_model_namestarting_page_number)r   r   r   r   r   r    r"   FASTr   r   r   PDF)r   partition_pdf_partitioner_loader_get_r_   s       r0   *test_auto_partition_pdf_with_fast_strategyr#    s    "2#N34N
 *#U !!CDIi"3"8"8933CF**"''!##"&'+', + r3   c                     t        d      5 } t        t        d      dt        j                         | j
                  d   d   sJ 	 d d d        y # 1 sw Y   y xY w)N:unstructured.partition.pdf_image.ocr.process_file_with_ocrr  T)pdf_infer_table_structurerG   r   r  )r   r    r   r"   rX   	call_args)mock_process_file_with_models    r0   ?test_auto_partition_pdf_uses_pdf_infer_table_structure_argumentr)  ?  sb    	D
 R	%?@&*&--	

 ,55a89PQQQR R Rs   :AAc                    ddg}t        j                         5 }t        t        d      || |      }t	        ||| |       d d d        y # 1 sw Y   y xY w)Nr   r   zpdf/embedded-images-tables.pdf)r   r   r   r   r   s       r0   *test_auto_partition_pdf_element_extractionr+  K  sb    !(' 2		$	$	& 

&=>&?+I+1	
 	"/1OQW	


 

 

r   c                     t        j                         5  t        j                  d       t        t	        d      t
        j                         d d d        y # 1 sw Y   y xY w)Nerrorr  rh   )warningscatch_warningssimplefilterr    r   r"   rX   r   r3   r0   )test_partition_pdf_does_not_raise_warningr1  \  sM    
 
	 	 	" 
g&?@K\KcKc	

 
 
s   :AA!c            	     2   t        d      } t        | t        j                        }|t	        d      t        d      t        d      t        d      t        d      t        d	      gk(  sJ t        d
 |D              sJ t        d |D              sJ y )Nfake-power-point.pptrh   Adding a Bullet Slider   Find the bullet slide layout$Use _TextFrame.text for first bullet5Use _TextFrame.add_paragraph() for subsequent bulletsHere is a lot of text! Here is some text in a text box!c              3  N   K   | ]  }|j                   j                  d k(    yw)r3  NrK   rL   s     r0   rO   z8test_auto_partition_ppt_from_filename.<locals>.<genexpr>z  s      Oqzz""&<<OrP   c              3  `   K   | ]&  }|j                   j                  t        d       k(   ( ywrR   rT   rL   s     r0   rO   z8test_auto_partition_ppt_from_filename.<locals>.<genexpr>{  rV   rW   r   r    r"   rX   r   r   r   r]   r   s     r0   %test_auto_partition_ppt_from_filenamer=  m  s     !78I->-E-EFH*+45<=MN34=>    OhOOOOS(SSSSr3   c            	     2   t        d      } t        | t        j                        }|t	        d      t        d      t        d      t        d      t        d      t        d	      gk(  sJ t        d
 |D              sJ t        d |D              sJ y )Nfake-power-point.pptxrh   r4  r   r5  r6  r7  r8  r9  c              3  N   K   | ]  }|j                   j                  d k(    yw)r?  NrK   rL   s     r0   rO   z9test_auto_partition_pptx_from_filename.<locals>.<genexpr>  s      P!qzz""&==PrP   c              3  `   K   | ]&  }|j                   j                  t        d       k(   ( ywrR   rT   rL   s     r0   rO   z9test_auto_partition_pptx_from_filename.<locals>.<genexpr>  rV   rW   r<  r   s     r0   &test_auto_partition_pptx_from_filenamerB    s     !89I->-E-EFH*+45<=MN34=>    PxPPPPS(SSSSr3   zsimple.pptxr3  c                    ddl m} d	d}t        | |d|      }t        t	        |      |      \  }|j                  t               |j                  d| k(  sJ y)
as  The `strategy` arg value received by `partition()` is received by `partition_pptx().

    To do this in the brokering-partitioner case (PPT) the strategy argument must make its way to
    `partition_ppt()` which must then forward it to `partition_pptx()`. This test makes sure it
    made it all the way.

    Note this is 2 file-types X 4 strategies = 8 test-cases.
    r   )_PptxPartitionerc              3  T   K   t        d| j                  j                          y wrv   rx   rz   s    r0   fake_iter_presentation_elementszotest_partition_forwards_strategy_arg_to_partition_pptx_and_its_brokers.<locals>.fake_iter_presentation_elements  r}   r~   _iter_presentation_elementsr   rh   rw   N)r{   rD  r   r   )unstructured.partition.pptxrD  r   r    r   r   r   r*   )r   rq   rG   rD  rF  r   r   s          r0   Ftest_partition_forwards_strategy_arg_to_partition_pptx_and_its_brokersrI    sa    * =7 "%3	O +I6JJW++C0<<Zz2222r3   c                     t        t        d            } | d   t        d      k(  sJ | d   j                  j                  dk(  sJ y )N
README.rstr   r  
text/x-rstr  r.   s    r0   %test_auto_partition_rst_from_filenamerM    sG    ),78HA;%////A;((L888r3   c                     t        t        d      d      5 } t        | d      }d d d        d   t        d      k(  sJ |d   j                  j
                  dk(  sJ y # 1 sw Y   ;xY w)NrK  r5   rL  r  r   r  r  r:   s     r0   !test_auto_partition_rst_from_filerO    sp    	|,d	3 @q!,?@ A;%////A;((L888	@ @r
  c                 r    t        t        d      t        j                        } | d   t	        d      k(  sJ y )Nfake-doc.rtfrh   r   zMy First Heading)r    r   r"   rX   r   r.   s    r0   %test_auto_partition_rtf_from_filenamerR    s3    ).9DUD\D\]HA;% 23333r3   c                     t        t        d            } t        | d   j                        t        k(  sJ | d   j
                  j                  t        k(  sJ | d   j
                  j                  dk(  sJ y )Nstanley-cups.tsvr   ztext/tsvr)   r.   s    r0   %test_auto_partition_tsv_from_filenamerU    r2   r3   )rE   expected_elementsfake-text.txt.This is a test document to use for unit tests.Doylestown, PA 18901Hamburgers are deliciousDogs are the bestI love fuzzy blanketszfake-text-all-whitespace.txtc                     t               }t        |t        j                        }||k(  sJ t	         fd|D              sJ t	        d |D              sJ y )Nr   c              3  P   K   | ]  }|j                   j                  k(    y wr   rK   )rM   rN   rE   s     r0   rO   z9test_auto_partition_text_from_filename.<locals>.<genexpr>   s      A1qzz""h.Ar   c              3  `   K   | ]&  }|j                   j                  t        d       k(   ( ywrR   rT   rL   s     r0   rO   z9test_auto_partition_text_from_filename.<locals>.<genexpr>  rV   rW   )r   r    r"   rX   r]   )rE   rV  r_   r/   s   `   r0   &test_auto_partition_text_from_filenamer`    sY    $ !*I)6G6N6NOH((((AAAAAS(SSSSr3   c            	     @   t        t        d      d      5 } t        | t        j                        }d d d        t              dkD  sJ |t        d      t        d      t        d      t        d	      t        d
      t        d      gk(  sJ y # 1 sw Y   cxY w)NrW  r5   rm   r   rX  r   rY  r   rZ  r[  r\  )
r8   r   r    r"   rX   r   r   r   r   r   r:   s     r0   "test_auto_partition_text_from_filerb    s    	/	6 H!!.?.F.FGH x=1KL+,&'01)*-.   	H Hs   BBc                     t        t        d      dg       } t        |       dk(  sJ t        d | D              dk(  sJ | d   j                  j
                  t        k(  sJ t        | d   j                        dk(  sJ y )	Ntests-example.xlsFinclude_headerskip_infer_table_types   c              3  <   K   | ]  }t        |t                y wr   r9   r   rL   s     r0   rO   z8test_auto_partition_xls_from_filename.<locals>.<genexpr>       6z!U#6   r   r   i  )r    r   r   sumr+   r,   r   r*   r.   s    r0   %test_auto_partition_xls_from_filenamern    s    ,-e\^H x=B6X66!;;;A;,,0BBBBx{ C'''r3   c                    t        t        d      dg       } t        |       dk(  sJ t        d | D              dk(  sJ t        d | D              dk(  sJ t	        | d   j
                        d	k(  sJ t	        | d
   j
                        dk(  sJ | d
   j                  j                  t        k(  sJ t        d | d d D              sJ t        d | dd  D              sJ t        d | D              sJ y )Nstanley-cups.xlsxFre     c              3  <   K   | ]  }t        |t                y wr   rj  rL   s     r0   rO   z9test_auto_partition_xlsx_from_filename.<locals>.<genexpr>.  rk  rl  r   c              3  <   K   | ]  }t        |t                y wr   r9   r   rL   s     r0   rO   z9test_auto_partition_xlsx_from_filename.<locals>.<genexpr>/  rk  rl  r   Stanley Cupsr   FTeam Location Stanley Cups Blues STL 1 Flyers PHI 2 Maple Leafs TOR 13c              3  N   K   | ]  }|j                   j                  d k(    ywr   Nr+   page_numberrL   s     r0   rO   z9test_auto_partition_xlsx_from_filename.<locals>.<genexpr>5       Aqqzz%%*ArP   c              3  N   K   | ]  }|j                   j                  d k(    ywr   Nry  rL   s     r0   rO   z9test_auto_partition_xlsx_from_filename.<locals>.<genexpr>6  r{  rP   c              3  N   K   | ]  }|j                   j                  d k(    ywzAapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetNr   rL   s     r0   rO   z9test_auto_partition_xlsx_from_filename.<locals>.<genexpr>7  (       	


bbrP   )
r    r   r   rm  r   r*   r+   r,   r
   r]   r.   s    r0   &test_auto_partition_xlsx_from_filenamer  (  s   ,-e\^H x=A6X66!;;;6X66!;;;!(1+"2"23~EEE!(1+"2"23P   A;,,0CCCCAHRaLAAAAAHQRLAAAA    r3   c                 ,   t        t        d      d      5 } t        | dg       }d d d        t              dk(  sJ t	        d |D              dk(  sJ t	        d |D              dk(  sJ t        |d	   j                        d
k(  sJ t        |d   j                        dk(  sJ |d   j                  j                  t        k(  sJ t        d |d d D              sJ t        d |dd  D              sJ t        d |D              sJ y # 1 sw Y   xY w)Nrp  r5   F)r7   rf  rg  rq  c              3  <   K   | ]  }t        |t                y wr   rj  rM   r   s     r0   rO   z5test_auto_partition_xlsx_from_file.<locals>.<genexpr>B       Bgz'5)Brl  r   c              3  <   K   | ]  }t        |t                y wr   rt  r  s     r0   rO   z5test_auto_partition_xlsx_from_file.<locals>.<genexpr>C  r  rl  r   ru  r   rv  c              3  N   K   | ]  }|j                   j                  d k(    ywrx  ry  rL   s     r0   rO   z5test_auto_partition_xlsx_from_file.<locals>.<genexpr>I  r{  rP   c              3  N   K   | ]  }|j                   j                  d k(    ywr}  ry  rL   s     r0   rO   z5test_auto_partition_xlsx_from_file.<locals>.<genexpr>J  r{  rP   c              3  N   K   | ]  }|j                   j                  d k(    ywr  r   rL   s     r0   rO   z5test_auto_partition_xlsx_from_file.<locals>.<genexpr>K  r  rP   )r8   r   r    r   rm  r   r*   r+   r,   r
   r]   r:   s     r0   "test_auto_partition_xlsx_from_filer  =  s8   	23T	: Va!ERTUV x=ABBBaGGGBBBaGGG!(1+"2"23~EEE!(1+"2"23P   A;,,0CCCCAHRaLAAAAAHQRLAAAA    V Vs   D

Dc                     t        t        d      d      } t        d | d d D              sJ t        d | dd  D              sJ y )Nrp     )r  c              3  N   K   | ]  }|j                   j                  d k(    yw)r  Nry  rL   s     r0   rO   zRtest_auto_partition_xlsx_respects_starting_page_number_argument.<locals>.<genexpr>S  r{  rP   r   c              3  N   K   | ]  }|j                   j                  d k(    yw)rq  Nry  rL   s     r0   rO   zRtest_auto_partition_xlsx_respects_starting_page_number_argument.<locals>.<genexpr>T  r{  rP   r    r   r]   r.   s    r0   ?test_auto_partition_xlsx_respects_starting_page_number_argumentr  Q  sJ    )*=>UVWHAHRaLAAAAAHQRLAAAAr3   c                     t        t        d      d      } | d   j                  dk(  sJ t        d | D              sJ y )Nfactbook.xmlFxml_keep_tagsr   United Statesc              3  N   K   | ]  }|j                   j                  d k(    yw)r  NrK   rL   s     r0   rO   z8test_auto_partition_xml_from_filename.<locals>.<genexpr>`  s     Gqzz""n4GrP   )r    r   r*   r]   r.   s    r0   %test_auto_partition_xml_from_filenamer  \  s@    ).9OHA;...GhGGGGr3   c                     t        t        d      d      5 } t        | d      }d d d        d   j                  dk(  sJ y # 1 sw Y   xY w)Nr  r5   Fr7   r  r   r  r8   r   r    r*   r:   s     r0   !test_auto_partition_xml_from_filer  c  sO    	~.	5 :!59: A;...: :   AA
c                     t        t        d      d      } d| d   j                  v sJ | d   j                  j                  dk(  sJ y )Nr  Tr  <leader>Joe Biden</leader>r   )r    r   r*   r+   rE   r.   s    r0   /test_auto_partition_xml_from_filename_with_tagsr  j  sJ    ).9NH'8A;+;+;;;;A;((N:::r3   c                     t        t        d      d      5 } t        | d      }d d d        dd   j                  v sJ y # 1 sw Y   xY w)Nr  r5   Tr  r  r   r  r:   s     r0   +test_auto_partition_xml_from_file_with_tagsr  q  sO    	~.	5 9!489 (8A;+;+;;;;9 9s   A  A	c                    t        | dt        j                        }t        j                  t
        d      5  t        dt        j                         d d d        |j                  dd d d d        y # 1 sw Y    xY w)Nz+unstructured.partition.auto.detect_filetyper  zQInvalid file made-up.fake. The FileType.UNK file type is not supported in partitir   zmade-up.faker   )r_   r7   encodingr>   metadata_file_path)
r   r   UNKr   r   r!   r    r"   rX   r   )r   detect_filetype_s     r0   (test_auto_partition_raises_with_bad_typer  }  s}    $>X\\ 
"a
 N 	>4E4L4LM	N ,,  - N Ns   A33A<c                     dt        dt        j                        } | d   t        d      k(  sJ t	        fd| D              sJ y )NNhttps://raw.githubusercontent.com/Unstructured-IO/unstructured/main/LICENSE.mdz
text/plainr   r   Apache Licensec              3  P   K   | ]  }|j                   j                  k(    y wr   r+   r   rM   rN   r   s     r0   rO   z/test_auto_partition_from_url.<locals>.<genexpr>       7qzz~~$7r   r    r"   rX   r   r]   r/   r   s    @r0   test_auto_partition_from_urlr    sI    
ZCS|FWF^F^_HA;% 011117h7777r3   c                     dt        dt        j                        } | d   t        d      k(  sJ t	        fd| D              sJ y )Nr  ztext/plain; charset=utf-8r   r   r  c              3  P   K   | ]  }|j                   j                  k(    y wr   r  r  s     r0   rO   zItest_auto_partition_from_url_with_rfc9110_content_type.<locals>.<genexpr>  r  r   r  r  s    @r0   6test_auto_partition_from_url_with_rfc9110_content_typer    sO    
ZC9DUD\D\H A;% 011117h7777r3   c                     dt        t        j                        } | d   t        d      k(  sJ t	        fd| D              sJ y )Nr  )r   rG   r   r  c              3  P   K   | ]  }|j                   j                  k(    y wr   r  r  s     r0   rO   zNtest_auto_partition_from_url_without_providing_content_type.<locals>.<genexpr>  r  r   r  r  s    @r0   ;test_auto_partition_from_url_without_providing_content_typer    sG    
ZCS+<+C+CDHA;% 011117h7777r3   c                    t        t        d      ddit        j                         | j                  d   j
                  dk(  sJ d| j                  v sJ y )Nr   Acceptr  )headersrG   r   WARNINGzGheaders kwarg is set but the url kwarg is not. The headers kwarg will br    r   r"   rX   records	levelnamer*   caplogs    r0   3test_auto_partition_warns_if_header_set_and_not_urlr    sY    -.,-")) >>!&&)333TX^XcXccccr3   c                    t        | dt        d            }t        j                  t        d      5  t	        dd       d d d        |j                  dd i dd	       y # 1 sw Y    xY w)
Nz2unstructured.partition.auto.file_and_type_from_urlzTrouble on the wire ...r   r   zhttp://eie.ioiF  )r   request_timeoutT)r   r>   r  
ssl_verifyr  )r   ConnectionErrorr   r   r    r   )r   file_and_type_from_url_s     r0   ;test_auto_partition_from_url_routes_timeout_to_HTTP_requestr    sm    +<#$=> 
.G	H <os;< 33$t]` 4 < <s   A  A)c                 X    t        t        d      d      } t        d | D              sJ y )Nr   by_title)chunking_strategyc              3  R   K   | ]  }t        |t        t        t        f       ! y wr   )r9   r   r   r   rM   chunks     r0   rO   zLtest_auto_partition_forwards_chunking_strategy_via_kwargs.<locals>.<genexpr>  s     \Ez%"2E:!FG\s   %'r  chunkss    r0   9test_auto_partition_forwards_chunking_strategy_via_kwargsr    s+    '(=>R\]F\U[\\\\r3   c                 Z    t        t        d      dd      } t        d | D              sJ y )Nr   r     )r  max_charactersc              3  L   K   | ]  }t        |j                        d k    yw)r  N)r   r*   r  s     r0   rO   zItest_auto_partition_forwards_max_characters_via_kwargs.<locals>.<genexpr>  s     :%s5::#%:s   "$r  r  s    r0   6test_auto_partition_forwards_max_characters_via_kwargsr    s1    ./$F
 :6::::r3   c                     t        t        d      d      } | D cg c]  }|j                  j                   }}|dgddgdgdgdggk(  sJ y c c}w )Nzlanguage-docs/eng_spa_mult.txtTdetect_language_per_elementengspa)r    r   r+   r  )r/   r   langss      r0   <test_auto_partition_respects_detect_language_per_element_argr    se    9:X\H 8@@GW''@E@eWuenugwHHHH As   Afile_extensionz:doc docx eml epub html md odt org ppt pptx rst rtf txt xmlc                `    t        t        d|        dg      }t        d |D              sJ y )Nzlanguage-docs/eng_spa_mult.deu)r  c              3  P   K   | ]  }|j                   j                  d gk(     yw)r  Nr+   r  r  s     r0   rO   z<test_auto_partition_respects_language_arg.<locals>.<genexpr>  s#     Mw))eW4M   $&r  )r  r/   s     r0   )test_auto_partition_respects_language_argr    s;     6~6FGHUZT[H MHMMMMr3   c                     t        t        d      dt        j                        } d| D cg c]  }|j                   c}v sJ y c c}w )Nr  T)r  rG   r   )r    r   r"   rX   r   r   s     r0   Atest_auto_partition_forwards_include_page_breaks_to_partition_pdfr    sC    ;< "))H
 X>T4==>>>>>s   Ac                     t        t        d      d      5 } t        | d      }d d d        t        d D              sJ y # 1 sw Y   xY w)NrW  r5   much-more-interesting-name.txt)r7   rF   c              3  N   K   | ]  }|j                   j                  d k(    yw)r  NrK   rL   s     r0   rO   zLtest_auto_partition_forwards_metadata_filename_via_kwargs.<locals>.<genexpr>  s      Y1qzz""&FFYrP   )r8   r   r    r]   r:   s     r0   9test_auto_partition_forwards_metadata_filename_via_kwargsr  	  sQ    	/	6 Y!!7WXY YPXYYYYY Yr  c                    t        d      }t        |d      5 }t        ||      }d d d        t        d D              sJ | j                  d   j
                  dk(  sJ d| j                  v sJ y # 1 sw Y   LxY w)NrW  r5   )r7   file_filenamec              3  N   K   | ]  }|j                   j                  d k(    yw)rW  NrK   rL   s     r0   rO   zLtest_auto_partition_warns_about_file_filename_deprecation.<locals>.<genexpr>  s     H!qzz""o5HrP   r   r  z*The file_filename kwarg will be deprecated)r   r8   r    r]   r  r  r*   )r  r_   r;   r/   s       r0   9test_auto_partition_warns_about_file_filename_deprecationr    s~     1I	i	 >!!9=> HxHHHH>>!&&)33376;;FFF> >s   A11A:c                    t        d      } t        | d      5 }t        j                  |j	                               }d d d        t        j                  t        d      5  t        | |        d d d        y # 1 sw Y   <xY w# 1 sw Y   y xY w)NrW  r5   z6Only one of metadata_filename and file_filename is sper   )r7   r  rF   )	r   r8   ioBytesIOreadr   r   r   r    )r_   r;   r7   s      r0   Vtest_auto_partition_raises_when_both_file_filename_and_metadata_filename_args_are_usedr    s}     1I	i	 $!zz!&&(#$ 
z)a	b St9	RS S$ $S Ss   $A7B7B Bc                    t        | d      }t        t        d      t        j                  dg       |j
                  d   d   }|d   dk(  sJ y )	Nr%  zimg/chi_sim_image.jpegzhrG   r  r   r   ocr_languagesz)chi_sim+chi_sim_vert+chi_tra+chi_tra_vert)r   r    r   r"   rX   call_args_list)r   process_file_with_ocr_call_kwargss      r0   9test_auto_partition_image_formats_languages_for_tesseractr  '  s_    *M 12"))& )77:1=K'+VVVVr3   )r  r  autorS   r  c                x    t        t        d      t        j                  ||       }t	        d |D              sJ y )Nzbook-war-and-peace-1p.txt)rG   r  r  c              3  P   K   | ]  }|j                   j                  d gk(     ywr  Nr  rL   s     r0   rO   zMtest_auto_partition_ignores_empty_string_for_ocr_languages.<locals>.<genexpr>@  !     A1qzz##w.Ar  r    r   r"   OCR_ONLYr]   )r  r  r/   s      r0   :test_auto_partition_ignores_empty_string_for_ocr_languagesr  6  s<     45"++#	H AAAAAr3   c                    t        t        d      t        j                  d       | j                  d   j
                  dk(  sJ d| j                  v sJ y )Nr  r  )rG   r  r   r  z*The ocr_languages kwarg will be deprecatedr  r  s    r0   ,test_auto_partition_warns_with_ocr_languagesr  C  sP    /0")) >>!&&)33376;;FFFr3   )rg  rE   has_text_as_htmlxlsxrp  odtzfake.odtc                   t        t        |      d      5 }t        ||       }d d d        D cg c]  }t        |t              s| }}|sJ |D ]  }|j
                  j                  d u|k(  rJ  y # 1 sw Y   RxY wc c}w )Nr5   )r7   rg  )r8   r   r    r9   r   r+   r,   )rg  rE   r  r;   r/   rN   table_elementss          r0   3test_auto_partition_respects_skip_infer_table_typesr
  Q  s     
x($	/ T1!<RST "*BAZ5-AaBNB> I

''t38HHHHIT T Cs   A5BB5A>)r>   	shortnameexpected_value))r(   csvr(   )r   htmlr   )jdsfjdfsjkdspdfNc                   t        | d| d| t        d      t        d      g      }t        | t        d|      }t	        t        d      |      }|j                          t        |      d	k(  sJ t        fd
|D              sJ y )Nzunstructured.partition.z.partition_text 1text 2r  r  r  r>   r   c              3  P   K   | ]  }|j                   j                  k(    y wr   r   )rM   rN   r  s     r0   rO   z@test_auto_partition_adds_filetype_to_metadata.<locals>.<genexpr>  s      Gqzz""n4Gr   )	r   r   r   r   r    r   assert_called_oncer   r]   )r   r>   r  r  partition_fn_r"  r/   s      `   r0   -test_auto_partition_adds_filetype_to_metadatar  m  s     "
!)K	{C8nd8n5M
 *#U ;<<H ..0x=AGhGGGGr3   r  c           	     J   t        d      }t        | dt        d|      t        d|      g      }t        | t        d|      }t        t        d	      |
      }|j                  t        t        j                         t        |      dk(  sJ t        d |D              sJ y )Nimapdf)r-   r  r  )r+   r  r  r  r  r  r   c              3  N   K   | ]  }|j                   j                  d k(    yw)r  Nr   rL   s     r0   rO   zctest_auto_partition_overwrites_any_filetype_applied_by_file_specific_partitioner.<locals>.<genexpr>  s      JAqzz""&77JrP   )r   r   r   r   r   r    r   r   r   r   r   r   r]   )r   r>   r+   r!  r"  r/   s         r0   Ptest_auto_partition_overwrites_any_filetype_applied_by_file_specific_partitionerr    s     1H"28h7hQY9Z[N
 *#U ;<<H 33CFx=AJJJJJr3   )rq   	file_typer'   rC   rg   zfake-email.emlzsimple.epubzfake-html.htmlz	README.mdr   rr   zpdf/DA-1p.pdfrK  rQ  rT  rd  r  c                    t        |       }j                  }t        j                        }t	        ||      } ||d      }|sJ t        fd|D              sJ y )NF)process_attachmentsc              3     K   | ]=  }|j                   j                  %|j                   j                  j                  k(   ? y wr   )r+   r-   	mime_type)rM   rN   r  s     r0   rO   zUtest_auto_partition_applies_the_correct_filetype_for_all_filetypes.<locals>.<genexpr>  s>      ::* 	


y222s   AA)r   partitioner_function_namer   partitioner_module_qnamegetattrr]   )rq   r  r_   partition_fn_namemodulepartition_fnr/   s    `     r0   Btest_auto_partition_applies_the_correct_filetype_for_all_filetypesr(    sl    6 !+I!;;9==>F6#45L I5AHO8    r3   c                 x    t        t        d      t        j                  dg      } t	        d | D              sJ y )Nr  r  r  c              3  P   K   | ]  }|j                   j                  d gk(     ywr  r  rL   s     r0   rO   zPtest_auto_partition_passes_user_provided_languages_arg_to_PDF.<locals>.<genexpr>  r  r  r   r.   s    r0   =test_auto_partition_passes_user_provided_languages_arg_to_PDFr+    s9    /0"++'H
 AAAAAr3   c                 X    t        t        d      d      } t        d | D              sJ y )Nzhandbook-1p.docxTr  c              3  h   K   | ]*  }|j                   j                  |j                  dk(   , y w)NrS   )r+   r  r*   rL   s     r0   rO   zVtest_auto_partition_languages_argument_default_to_None_when_omitted.<locals>.<genexpr>  s'     N1E1E1Mqvv|Ns   22r  r.   s    r0   Ctest_auto_partition_languages_argument_default_to_None_when_omittedr.    s*    )*<=[_`HNXNNNNr3   c                 2   ddl m}  t        d      } | |      }|d   j                  j                  dgk7  sJ t        |      }|d   j                  j                  dgk7  sJ |d   j                  j                  |d   j                  j                  k(  sJ y)zX`partition()` ["eng"] default does not overwrite ["auto"] default in other partitioners.r   )partition_textz(language-docs/UDHR_first_article_all.txtr  N)unstructured.partition.textr0  r   r+   r  r    )r0  r_   text_elementsauto_elementss       r0   =test_auto_partition_default_does_not_overwrite_other_defaultsr4    s     ; !!KLI"9-M$$..5'999i(M$$..5'999$$..-2B2K2K2U2UUUUr3   c                 6    t        t        d            g k(  sJ y )N	empty.txt)r    r   r   r3   r0   5test_auto_partition_from_filename_works_on_empty_filer7    s    %k23r999r3   c                 |    t        t        d      d      5 } t        |       g k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr6  r5   r6   rc   )r;   s    r0   1test_auto_partition_from_file_works_on_empty_filer9    s<    	{+T	2 'aa B&&&' ' 's   2;c                *   t         j                  j                  t        j                  d        t        | dd      }d}t        j                  t        |      5  t        t        d             d d d        |j                  d       y # 1 sw Y   xY w)Nz-unstructured.partition.auto.dependency_existsFr  zUpartition_pdf\(\) is not available because one or more dependencies are not installedr   r  	pdf2image)r   _partitionersr   r   r   r   r   r   ImportErrorr    r   r   )r   dependency_exists_r   s      r0   Stest_auto_partition_that_requires_extras_raises_when_dependencies_are_not_installedr?    s     $$((t<&@u eE	{%	0 H"#EFGH ..{;H Hs   B		Bc            
         t        d      t        d      t        d      t        d      t        d      t        d      t        d      t	        d      gS )	Nz&These are a few of my favorite things:ParrotsHockeyAnalysisz4This is my first thought. This is my second thought.zThis is my third thought.2023zDOYLESTOWN, PA 18901)r   r   r   r   r   r   r3   r0   r^   r^     sQ     	67jLM12V&'	 	r3   )r=   boolr>   
str | Noner^   list[Element])r^   rG  )r   r   rq   r   rG   r   )r=   rE  r>   rF  )r   zpathlib.Path)r   rE  )r   r   )rE   r   rV  rG  )r  r   )r  r   )r  	list[str]r  r   )rg  rH  rE   r   r  rE  )r   r   r>   r   r  r   r  rF  )r   r   r>   rF  )rq   r   r  r   )
__future__r   r  r   r   pathlibr   r.  	importlibr   typingr   unittest.mockr   r   PILr   .test_unstructured.partition.pdf_image.test_pdfr   *test_unstructured.partition.test_constantsr	   r
   r   r   test_unstructured.unit_utilsr   r   r   r   r   r   unstructured.cleaners.corer   unstructured.documents.elementsr   r   r   r   r   r   r   r   r   r   unstructured.file_utils.modelr   unstructured.partition.autor   r    unstructured.partition.commonr!   &unstructured.partition.utils.constantsr"   unstructured.staging.baser#   r$   r%   r   existsis_in_dockerr1   r<   markparametrizer`   skipifre   rk   ro   r   r  rX   r  r   r   r   r   r   r   r   r   r   r   r   r   r   r   xfailAssertionErrorr   r   r   r   r   r   r  r	  r  r  r#  r)  r+  r1  r=  rB  rI  rM  rO  rR  rU  r`  rb  rn  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r
  r  r  CSVDOCDOCXEMLEPUBHTMLMDMSGODTr   PPTPPTXRSTRTFTSVTXTXLSXXMLr(  r+  r.  r4  r7  r9  r?  fixturer^   r   r3   r0   <module>rr     s0   # 	  	    #     T   >   3 E D D ] ]ww~~m,77 .^T T0:TTaT	T* L)ab. c.G. &QR  ""	33(+37:3 S3D DE	"#/"$%	 N-WW .LR	R" .L	M  .N.	.$ .N.	.&
- 9E4=I
 J
222 	N   [[
&$..
.77 .X2	2, .X2	2*@	R 9E4=I
 J
 	
"T,T" }6L&MN  ""	33(+37:3 O3D9947 % #ST34./891256
	
 
(,"T#"T(( *(BH/;<2888d,]
;I RXXZNN?ZGSW 7F8R.E7TV-9XY	B	B),	B Z	BG >
&.	 $'
*e$	Z		I%	I14	IHL	I	I& 3HHH H 	HH0  		KK+5KK, 	X\\*	x||$	&	8<<(	&	8==)	hkk"	8<<(	x||$	(,,'	.	&	x||$	&	X\\*	(,,'	hmm,	hmm,	&'0'10,BOV(:'
<<& 
 
r3   