
    =pj
                         S SK r S SKrS rg)    Nc                      SSK n [        U S5      (       d  / U l        S nU" SU S5      nU" SUS5      n[        US	5      (       d   SS
KJn  XCl        U" SU S5      n[        US5      (       d   SSKJn  Xvl        gg! [         a     gf = f! [         a     " S S5      nXSl         NVf = f! [         a     " S S5      nXl         gf = f)z
A compatibility shim for LangChain to handle breaking changes in newer versions.
Specifically addresses the removal of 'langchain.docstore' and relocation of
'RecursiveCharacterTextSplitter'.
r   N__path__c                     [        X5      (       dM  [        R                  " U 5      n[        US5      (       d  / Ul        U[        R
                  U '   [        XU5        [        X5      $ )Nr   )hasattrtypes
ModuleTyper   sysmodulessetattrgetattr)nameparentattrmods       X/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/paddlex/utils/langchain_shim.pycreate_shim)apply_langchain_shim.<locals>.create_shim$   sT    v$$""4(C3
++! #CKKF#&v$$    zlangchain.docstoredocstorezlangchain.docstore.documentdocumentDocument)r   c                       \ rS rSrSS jrSrg)*apply_langchain_shim.<locals>.MockDocument7   Nc                 0    Xl         U=(       d    0 U l        g N)page_contentmetadata)selfr   r   s      r   __init__3apply_langchain_shim.<locals>.MockDocument.__init__9   s    (4%$,NDMr   )r   r   r   __name__
__module____qualname____firstlineno__r    __static_attributes__ r   r   MockDocumentr   7   s    3r   r)   zlangchain.text_splittertext_splitterRecursiveCharacterTextSplitter)r+   c                       \ rS rSrS rSrg)*apply_langchain_shim.<locals>.MockSplitterJ   c                     g r   r(   )r   argskwargss      r   r    3apply_langchain_shim.<locals>.MockSplitter.__init__L   s    r   r(   Nr"   r(   r   r   MockSplitterr-   J   s    r   r3   )	langchainImportErrorr   r   langchain_core.documentsr   langchain_text_splittersr+   )	r4   r   r   r   RealDocumentr)   r*   RealSplitterr3   s	            r   apply_langchain_shimr:      s    
 9j))	% /JGH8(JOH8Z((	-I ,   99oVM="BCC	H <H8 DK  2  	-3 3 !-	-&  	H 
 <H8	Hs5   A= B /B- =
B
	B
B*)B*-C
	C
)r	   r   r:   r(   r   r   <module>r;      s     <Hr   