transform.py — langchain Source File
Architecture documentation for transform.py, a python file in the langchain codebase. 8 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR dcf159fe_fdc1_5b2b_59c7_0ec7ab145dd8["transform.py"] 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3["typing"] dcf159fe_fdc1_5b2b_59c7_0ec7ab145dd8 --> 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3 91721f45_4909_e489_8c1f_084f8bd87145["typing_extensions"] dcf159fe_fdc1_5b2b_59c7_0ec7ab145dd8 --> 91721f45_4909_e489_8c1f_084f8bd87145 d758344f_537f_649e_f467_b9d7442e86df["langchain_core.messages"] dcf159fe_fdc1_5b2b_59c7_0ec7ab145dd8 --> d758344f_537f_649e_f467_b9d7442e86df fc383c03_4b29_7c03_c489_626a968d8d03["langchain_core.output_parsers.base"] dcf159fe_fdc1_5b2b_59c7_0ec7ab145dd8 --> fc383c03_4b29_7c03_c489_626a968d8d03 ac2a9b92_4484_491e_1b48_ec85e71e1d58["langchain_core.outputs"] dcf159fe_fdc1_5b2b_59c7_0ec7ab145dd8 --> ac2a9b92_4484_491e_1b48_ec85e71e1d58 2971f9da_6393_a3e3_610e_ace3d35ee978["langchain_core.runnables.config"] dcf159fe_fdc1_5b2b_59c7_0ec7ab145dd8 --> 2971f9da_6393_a3e3_610e_ace3d35ee978 cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7["collections.abc"] dcf159fe_fdc1_5b2b_59c7_0ec7ab145dd8 --> cfe2bde5_180e_e3b0_df2b_55b3ebaca8e7 2ceb1686_0f8c_8ae0_36d1_7c0b702fda1c["langchain_core.runnables"] dcf159fe_fdc1_5b2b_59c7_0ec7ab145dd8 --> 2ceb1686_0f8c_8ae0_36d1_7c0b702fda1c style dcf159fe_fdc1_5b2b_59c7_0ec7ab145dd8 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
"""Base classes for output parsers that can handle streaming input."""
from __future__ import annotations
from typing import (
TYPE_CHECKING,
Any,
)
from typing_extensions import override
from langchain_core.messages import BaseMessage, BaseMessageChunk
from langchain_core.output_parsers.base import BaseOutputParser, T
from langchain_core.outputs import (
ChatGeneration,
ChatGenerationChunk,
Generation,
GenerationChunk,
)
from langchain_core.runnables.config import run_in_executor
if TYPE_CHECKING:
from collections.abc import AsyncIterator, Iterator
from langchain_core.runnables import RunnableConfig
class BaseTransformOutputParser(BaseOutputParser[T]):
"""Base class for an output parser that can handle streaming input."""
def _transform(
self,
input: Iterator[str | BaseMessage],
) -> Iterator[T]:
for chunk in input:
if isinstance(chunk, BaseMessage):
yield self.parse_result([ChatGeneration(message=chunk)])
else:
yield self.parse_result([Generation(text=chunk)])
async def _atransform(
self,
input: AsyncIterator[str | BaseMessage],
) -> AsyncIterator[T]:
async for chunk in input:
if isinstance(chunk, BaseMessage):
yield await run_in_executor(
None, self.parse_result, [ChatGeneration(message=chunk)]
)
else:
yield await run_in_executor(
None, self.parse_result, [Generation(text=chunk)]
)
@override
def transform(
self,
input: Iterator[str | BaseMessage],
config: RunnableConfig | None = None,
**kwargs: Any,
// ... (116 more lines)
Domain
Subdomains
Functions
Dependencies
- collections.abc
- langchain_core.messages
- langchain_core.output_parsers.base
- langchain_core.outputs
- langchain_core.runnables
- langchain_core.runnables.config
- typing
- typing_extensions
Source
Frequently Asked Questions
What does transform.py do?
transform.py is a source file in the langchain codebase, written in python. It belongs to the OutputParsing domain, StreamingParsers subdomain.
What functions are defined in transform.py?
transform.py defines 1 function(s): collections.
What does transform.py depend on?
transform.py imports 8 module(s): collections.abc, langchain_core.messages, langchain_core.output_parsers.base, langchain_core.outputs, langchain_core.runnables, langchain_core.runnables.config, typing, typing_extensions.
Where is transform.py in the architecture?
transform.py is located at libs/core/langchain_core/output_parsers/transform.py (domain: OutputParsing, subdomain: StreamingParsers, directory: libs/core/langchain_core/output_parsers).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free