File: //usr/local/lib/python3.10/dist-packages/langchain/storage/__pycache__/_lc_store.cpython-310.pyc
o
���g� � @ s d Z ddlmZmZ ddlmZ ddlmZmZm Z ddl
mZmZ ddl
mZ dedefd d
�Zdedefdd�Zd
edefdd�Zd
edefdd�Zdedefdd�Zdd�dedeeegef deeef fdd�Zdd�dedeeegef deeef fdd�ZdS )z?Create a key-value store for any langchain serializable object.� )�Callable�Optional)�Document)�Serializable�dumps�loads)� BaseStore� ByteStore)�EncoderBackedStore�obj�returnc C s t | ��d�S )�,Return a bytes representation of a document.�utf-8)r �encode�r � r �F/usr/local/lib/python3.10/dist-packages/langchain/storage/_lc_store.py�_dump_as_bytes � r c C s t | t�s td��t| ��d�S )r
zExpected a Document instancer )�
isinstancer � TypeErrorr r r r r r �_dump_document_as_bytes s
r �
serializedc C s. t | �d��}t|t�stdt|�� ���|S )�.Return a document from a bytes representation.r z"Expected a Document instance. Got )r �decoder r r �type)r r r r r �_load_document_from_bytes s
r c C s t | �d��S )r r )r r )r r r r �_load_from_bytes r r �xc C s | S )zReturn the same object.r )r r r r � _identity% s r N)�key_encoder�storer c C � t | |pttt�S )a Create a store for langchain serializable objects from a bytes store.
Args:
store: A bytes store to use as the underlying store.
key_encoder: A function to encode keys; if None uses identity function.
Returns:
A key-value store for documents.
)r
r r r �r! r r r r �create_lc_store- s �r$ c C r"