/
OS-Worldb968155
# Copyright (c) 2023 - 2025, AG2ai, Inc., AG2ai open-source projects maintainers and core contributors
#
# SPDX-License-Identifier: Apache-2.0
from typing import Optional
from pydantic import BaseModel
from .context_variables import ContextVariables
__all__ = ["ContextStr"]
class ContextStr(BaseModel):
"""A string that requires context variable substitution.
Use the format method to substitute context variables into the string.
"""
"""The string to be substituted with context variables. It is expected that the string will contain `{var}` placeholders and that string format will be able to replace all values."""
template: str
def format(self, context_variables: ContextVariables) -> Optional[str]:
"""Substitute context variables into the string.
Args:
context_variables (ContextVariables): The context variables to substitute into the string.
Returns:
Optional[str]: The formatted string with context variables substituted.
"""
context = context_variables.to_dict()
if not context:
return self.template
return self.template.format(**context)
def __str__(self) -> str:
return f"ContextStr, unformatted: {self.template}"