Source code for langchain_core.utils.formatting
"""用于格式化字符串的工具。"""
from string import Formatter
from typing import Any, List, Mapping, Sequence
[docs]class StrictFormatter(Formatter):
"""检查额外键的格式化程序。"""
[docs] def vformat(
self, format_string: str, args: Sequence, kwargs: Mapping[str, Any]
) -> str:
"""检查是否未提供任何参数。"""
if len(args) > 0:
raise ValueError(
"No arguments should be provided, "
"everything should be passed as keyword arguments."
)
return super().vformat(format_string, args, kwargs)
[docs] def validate_input_variables(
self, format_string: str, input_variables: List[str]
) -> None:
dummy_inputs = {input_variable: "foo" for input_variable in input_variables}
super().format(format_string, **dummy_inputs)
formatter = StrictFormatter()