parse_array() — langchain Function Reference
Architecture documentation for the parse_array() function in pandas_dataframe.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 92fee6b5_5c28_2655_cdf7_86370f3fb843["parse_array()"] 3637e9ea_cbb7_422b_bcb3_aa36c4e8aea5["PandasDataFrameOutputParser"] 92fee6b5_5c28_2655_cdf7_86370f3fb843 -->|defined in| 3637e9ea_cbb7_422b_bcb3_aa36c4e8aea5 43f74c43_859a_4aa3_8865_6d9513a2174a["parse()"] 43f74c43_859a_4aa3_8865_6d9513a2174a -->|calls| 92fee6b5_5c28_2655_cdf7_86370f3fb843 style 92fee6b5_5c28_2655_cdf7_86370f3fb843 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/langchain/langchain_classic/output_parsers/pandas_dataframe.py lines 35–90
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:
start, end = map(int, match.groups())
parsed_array = list(range(start, end + 1))
else:
msg = f"Unable to parse the array provided in {array}. \
Please check the format instructions."
raise OutputParserException(msg)
# Check if the format is ["column_name"]
elif re.match(r"\[[a-zA-Z0-9_]+(?:,[a-zA-Z0-9_]+)*\]", array):
match = re.match(r"\[[a-zA-Z0-9_]+(?:,[a-zA-Z0-9_]+)*\]", array)
if match:
parsed_array = list(map(str, match.group().strip("[]").split(",")))
else:
msg = f"Unable to parse the array provided in {array}. \
Please check the format instructions."
raise OutputParserException(msg)
# Validate the array
if not parsed_array:
msg = f"Invalid array format in '{original_request_params}'. \
Please check the format instructions."
raise OutputParserException(msg)
if (
isinstance(parsed_array[0], int)
and parsed_array[-1] > self.dataframe.index.max()
):
msg = f"The maximum index {parsed_array[-1]} exceeds the maximum index of \
the Pandas DataFrame {self.dataframe.index.max()}."
raise OutputParserException(msg)
return parsed_array, original_request_params.split("[", maxsplit=1)[0]
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does parse_array() do?
parse_array() is a function in the langchain codebase, defined in libs/langchain/langchain_classic/output_parsers/pandas_dataframe.py.
Where is parse_array() defined?
parse_array() is defined in libs/langchain/langchain_classic/output_parsers/pandas_dataframe.py at line 35.
What calls parse_array()?
parse_array() is called by 1 function(s): parse.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free