Home / File/ test_parent_document.py — langchain Source File

test_parent_document.py — langchain Source File

Architecture documentation for test_parent_document.py, a python file in the langchain codebase. 8 imports, 0 dependents.

File python CoreAbstractions MessageSchema 8 imports 1 functions 1 classes

Entity Profile

Dependency Diagram

graph LR
  878b82f2_ac86_dea5_88be_ec07a406d200["test_parent_document.py"]
  cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7["collections.abc"]
  878b82f2_ac86_dea5_88be_ec07a406d200 --> cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7
  8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3["typing"]
  878b82f2_ac86_dea5_88be_ec07a406d200 --> 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3
  c554676d_b731_47b2_a98f_c1c2d537c0aa["langchain_core.documents"]
  878b82f2_ac86_dea5_88be_ec07a406d200 --> c554676d_b731_47b2_a98f_c1c2d537c0aa
  26e26c06_c107_2778_a237_35607f5a6d20["langchain_text_splitters.character"]
  878b82f2_ac86_dea5_88be_ec07a406d200 --> 26e26c06_c107_2778_a237_35607f5a6d20
  91721f45_4909_e489_8c1f_084f8bd87145["typing_extensions"]
  878b82f2_ac86_dea5_88be_ec07a406d200 --> 91721f45_4909_e489_8c1f_084f8bd87145
  c0f56003_5236_544a_87a7_b51b1dd44e68["langchain_classic.retrievers"]
  878b82f2_ac86_dea5_88be_ec07a406d200 --> c0f56003_5236_544a_87a7_b51b1dd44e68
  8a2b4428_3ff3_c61e_4012_29d2cc2b8165["langchain_classic.storage"]
  878b82f2_ac86_dea5_88be_ec07a406d200 --> 8a2b4428_3ff3_c61e_4012_29d2cc2b8165
  74a1bb82_932f_5eb6_2729_8e5fde9663f3["tests.unit_tests.indexes.test_indexing"]
  878b82f2_ac86_dea5_88be_ec07a406d200 --> 74a1bb82_932f_5eb6_2729_8e5fde9663f3
  style 878b82f2_ac86_dea5_88be_ec07a406d200 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

from collections.abc import Sequence
from typing import Any

from langchain_core.documents import Document
from langchain_text_splitters.character import CharacterTextSplitter
from typing_extensions import override

from langchain_classic.retrievers import ParentDocumentRetriever
from langchain_classic.storage import InMemoryStore
from tests.unit_tests.indexes.test_indexing import InMemoryVectorStore


class InMemoryVectorstoreWithSearch(InMemoryVectorStore):
    @override
    def similarity_search(
        self,
        query: str,
        k: int = 4,
        **kwargs: Any,
    ) -> list[Document]:
        res = self.store.get(query)
        if res is None:
            return []
        return [res]

    @override
    def add_documents(self, documents: Sequence[Document], **kwargs: Any) -> list[str]:
        print(documents)  # noqa: T201
        return super().add_documents(
            documents,
            ids=[f"{i}" for i in range(len(documents))],
        )


def test_parent_document_retriever_initialization() -> None:
    vectorstore = InMemoryVectorstoreWithSearch()
    store = InMemoryStore()
    child_splitter = CharacterTextSplitter(chunk_size=400)
    documents = [Document(page_content="test document")]
    retriever = ParentDocumentRetriever(
        vectorstore=vectorstore,
        docstore=store,
        child_splitter=child_splitter,
    )
    retriever.add_documents(documents)
    results = retriever.invoke("0")
    assert len(results) > 0
    assert results[0].page_content == "test document"

Subdomains

Dependencies

  • collections.abc
  • langchain_classic.retrievers
  • langchain_classic.storage
  • langchain_core.documents
  • langchain_text_splitters.character
  • tests.unit_tests.indexes.test_indexing
  • typing
  • typing_extensions

Frequently Asked Questions

What does test_parent_document.py do?
test_parent_document.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, MessageSchema subdomain.
What functions are defined in test_parent_document.py?
test_parent_document.py defines 1 function(s): test_parent_document_retriever_initialization.
What does test_parent_document.py depend on?
test_parent_document.py imports 8 module(s): collections.abc, langchain_classic.retrievers, langchain_classic.storage, langchain_core.documents, langchain_text_splitters.character, tests.unit_tests.indexes.test_indexing, typing, typing_extensions.
Where is test_parent_document.py in the architecture?
test_parent_document.py is located at libs/langchain/tests/unit_tests/retrievers/test_parent_document.py (domain: CoreAbstractions, subdomain: MessageSchema, directory: libs/langchain/tests/unit_tests/retrievers).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free