Home / Function/ __init_subclass__() — langchain Function Reference

__init_subclass__() — langchain Function Reference

Architecture documentation for the __init_subclass__() function in retrievers.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  cc5f21f9_7fa7_8d35_7919_cc9c6b2ac15a["__init_subclass__()"]
  3a20478a_3692_141f_433b_a32429b00020["BaseRetriever"]
  cc5f21f9_7fa7_8d35_7919_cc9c6b2ac15a -->|defined in| 3a20478a_3692_141f_433b_a32429b00020
  97c862c5_9741_2754_a072_e4d2142e6354["_aget_relevant_documents()"]
  cc5f21f9_7fa7_8d35_7919_cc9c6b2ac15a -->|calls| 97c862c5_9741_2754_a072_e4d2142e6354
  style cc5f21f9_7fa7_8d35_7919_cc9c6b2ac15a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/core/langchain_core/retrievers.py lines 146–165

    def __init_subclass__(cls, **kwargs: Any) -> None:
        super().__init_subclass__(**kwargs)
        parameters = signature(cls._get_relevant_documents).parameters
        cls._new_arg_supported = parameters.get("run_manager") is not None
        if (
            not cls._new_arg_supported
            and cls._aget_relevant_documents == BaseRetriever._aget_relevant_documents
        ):
            # we need to tolerate no run_manager in _aget_relevant_documents signature
            async def _aget_relevant_documents(
                self: Self, query: str
            ) -> list[Document]:
                return await run_in_executor(None, self._get_relevant_documents, query)  # type: ignore[call-arg]

            cls._aget_relevant_documents = _aget_relevant_documents  # type: ignore[assignment]

        # If a V1 retriever broke the interface and expects additional arguments
        cls._expects_other_args = (
            len(set(parameters.keys()) - {"self", "query", "run_manager"}) > 0
        )

Domain

Subdomains

Frequently Asked Questions

What does __init_subclass__() do?
__init_subclass__() is a function in the langchain codebase, defined in libs/core/langchain_core/retrievers.py.
Where is __init_subclass__() defined?
__init_subclass__() is defined in libs/core/langchain_core/retrievers.py at line 146.
What does __init_subclass__() call?
__init_subclass__() calls 1 function(s): _aget_relevant_documents.

Analyze Your Own Codebase

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

Try Supermodel Free