Home / File/ pandas_dataframe.py — langchain Source File

pandas_dataframe.py — langchain Source File

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

Entity Profile

Dependency Diagram

graph LR
  de401477_2c08_fd8e_e089_bc90d268b35b["pandas_dataframe.py"]
  67ec3255_645e_8b6e_1eff_1eb3c648ed95["re"]
  de401477_2c08_fd8e_e089_bc90d268b35b --> 67ec3255_645e_8b6e_1eff_1eb3c648ed95
  8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3["typing"]
  de401477_2c08_fd8e_e089_bc90d268b35b --> 8e2034b7_ceb8_963f_29fc_2ea6b50ef9b3
  75137834_4ba7_dc43_7ec5_182c05eceedf["langchain_core.exceptions"]
  de401477_2c08_fd8e_e089_bc90d268b35b --> 75137834_4ba7_dc43_7ec5_182c05eceedf
  fc383c03_4b29_7c03_c489_626a968d8d03["langchain_core.output_parsers.base"]
  de401477_2c08_fd8e_e089_bc90d268b35b --> fc383c03_4b29_7c03_c489_626a968d8d03
  1f6af6bc_5660_a369_0bfb_4b5c8ed28743["pydantic.py"]
  de401477_2c08_fd8e_e089_bc90d268b35b --> 1f6af6bc_5660_a369_0bfb_4b5c8ed28743
  91721f45_4909_e489_8c1f_084f8bd87145["typing_extensions"]
  de401477_2c08_fd8e_e089_bc90d268b35b --> 91721f45_4909_e489_8c1f_084f8bd87145
  8a49663d_c016_a6c1_e96e_621fdb612ef3["langchain_classic.output_parsers.format_instructions"]
  de401477_2c08_fd8e_e089_bc90d268b35b --> 8a49663d_c016_a6c1_e96e_621fdb612ef3
  a1760054_4f0c_b382_7fe4_82386f79d5f9["pandas"]
  de401477_2c08_fd8e_e089_bc90d268b35b --> a1760054_4f0c_b382_7fe4_82386f79d5f9
  style de401477_2c08_fd8e_e089_bc90d268b35b fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import re
from typing import Any

from langchain_core.exceptions import OutputParserException
from langchain_core.output_parsers.base import BaseOutputParser
from pydantic import field_validator
from typing_extensions import override

from langchain_classic.output_parsers.format_instructions import (
    PANDAS_DATAFRAME_FORMAT_INSTRUCTIONS,
)


class PandasDataFrameOutputParser(BaseOutputParser[dict[str, Any]]):
    """Parse an output using Pandas DataFrame format."""

    """The Pandas DataFrame to parse."""
    dataframe: Any

    @field_validator("dataframe")
    @classmethod
    def _validate_dataframe(cls, val: Any) -> Any:
        import pandas as pd

        if issubclass(type(val), pd.DataFrame):
            return val
        if pd.DataFrame(val).empty:
            msg = "DataFrame cannot be empty."
            raise ValueError(msg)

        msg = "Wrong type for 'dataframe', must be a subclass \
                of Pandas DataFrame (pd.DataFrame)"
        raise TypeError(msg)

    def parse_array(
        self,
        array: str,
        original_request_params: str,
    ) -> tuple[list[int | str], str]:
        """Parse the array from the request parameters.

        Args:
            array: The array string to parse.
            original_request_params: The original request parameters string.

        Returns:
            A tuple containing the parsed array and the stripped request parameters.

        Raises:
            OutputParserException: If the array format is invalid or cannot be parsed.
        """
        parsed_array: list[int | str] = []

        # Check if the format is [1,3,5]
        if re.match(r"\[\d+(,\s*\d+)*\]", array):
            parsed_array = [int(i) for i in re.findall(r"\d+", array)]
        # Check if the format is [1..5]
        elif re.match(r"\[(\d+)\.\.(\d+)\]", array):
            match = re.match(r"\[(\d+)\.\.(\d+)\]", array)
            if match:
// ... (112 more lines)

Domain

Subdomains

Dependencies

  • langchain_classic.output_parsers.format_instructions
  • langchain_core.exceptions
  • langchain_core.output_parsers.base
  • pandas
  • pydantic.py
  • re
  • typing
  • typing_extensions

Frequently Asked Questions

What does pandas_dataframe.py do?
pandas_dataframe.py is a source file in the langchain codebase, written in python. It belongs to the OutputParsing domain, StreamingParsers subdomain.
What does pandas_dataframe.py depend on?
pandas_dataframe.py imports 8 module(s): langchain_classic.output_parsers.format_instructions, langchain_core.exceptions, langchain_core.output_parsers.base, pandas, pydantic.py, re, typing, typing_extensions.
Where is pandas_dataframe.py in the architecture?
pandas_dataframe.py is located at libs/langchain/langchain_classic/output_parsers/pandas_dataframe.py (domain: OutputParsing, subdomain: StreamingParsers, directory: libs/langchain/langchain_classic/output_parsers).

Analyze Your Own Codebase

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

Try Supermodel Free