
    dh8                     B    S SK JrJr  S SKJr  S SKJr   " S S\5      rg)    )CallableUnion)Document)Docstorec                   N    \ rS rSrSrS\\/\\\4   4   4S jr	S\S\4S jr
Srg	)

DocstoreFn   zDocstore via arbitrary lookup function.

This is useful when:
 * it's expensive to construct an InMemoryDocstore/dict
 * you retrieve documents from remote sources
 * you just want to reuse existing objects
	lookup_fnc                     Xl         g )N
_lookup_fn)selfr
   s     a/var/www/html/shao/venv/lib/python3.13/site-packages/langchain_community/docstore/arbitrary_fn.py__init__DocstoreFn.__init__   s	     $    searchreturnc                     U R                  U5      n[        U[        5      (       a  [        USU0S9$ [        U[        5      (       a  U$ [	        S[        U5       35      e)zmSearch for a document.

Args:
    search: search string

Returns:
    Document if found, else error message.
source)page_contentmetadatazUnexpected type of document )r   
isinstancestrr   
ValueErrortype)r   r   rs      r   r   DocstoreFn.search   sZ     OOF#ah5GHH8$$H7QyABBr   r   N)__name__
__module____qualname____firstlineno____doc__r   r   r   r   r   r   __static_attributes__ r   r   r   r      s?    $SE53#778$CS CX Cr   r   N)typingr   r   langchain_core.documentsr   !langchain_community.docstore.baser   r   r%   r   r   <module>r)      s    " - 6C Cr   