
    |-j
                         d dl Z d dlZd ZdS )    Nc                     	 ddl } n# t          $ r Y dS w xY wt          | d          sg | _        d } |d| d          } |d|d          }t          |d	          s3	 dd
lm} ||_        n$# t          $ r  G d d          }||_        Y nw xY w |d| d          }t          |d          s5	 ddlm} ||_        dS # t          $ r  G d d          }||_        Y dS w xY wdS )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                     t          ||          sKt          j        |           }t          |d          sg |_        |t          j        | <   t          |||           t          ||          S )Nr   )hasattrtypes
ModuleTyper   sysmodulessetattrgetattr)nameparentattrmods       \/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddlex/utils/langchain_shim.pycreate_shimz)apply_langchain_shim.<locals>.create_shim$   sk    vt$$ 	'"4((C3
++ "! #CKFD#&&&vt$$$    zlangchain.docstoredocstorezlangchain.docstore.documentdocumentDocument)r   c                       e Zd ZddZdS )*apply_langchain_shim.<locals>.MockDocumentNc                 &    || _         |pi | _        d S N)page_contentmetadata)selfr   r   s      r   __init__z3apply_langchain_shim.<locals>.MockDocument.__init__9   s    (4D%$,NDMMMr   r   __name__
__module____qualname__r    r   r   MockDocumentr   7   s(        3 3 3 3 3 3r   r$   zlangchain.text_splittertext_splitterRecursiveCharacterTextSplitter)r&   c                       e Zd Zd ZdS )*apply_langchain_shim.<locals>.MockSplitterc                     d S r   r#   )r   argskwargss      r   r   z3apply_langchain_shim.<locals>.MockSplitter.__init__L   s    Dr   Nr   r#   r   r   MockSplitterr(   J   s#            r   r,   )	langchainImportErrorr   r   langchain_core.documentsr   langchain_text_splittersr&   )	r-   r   r   r   RealDocumentr$   r%   RealSplitterr,   s	            r   apply_langchain_shimr3      s       9j))  	% % % {/JGGH{8(JOOH8Z(( -	-IIIIII ,H 	- 	- 	-3 3 3 3 3 3 3 3 !-H	-  K 99oVVM="BCC H	H      <HM888 	H 	H 	H       
 <HM8888	HH Hs0    
A+ +BB-B< <CC)r	   r   r3   r#   r   r   <module>r4      s7    


 <H <H <H <H <Hr   