
    D_iS
                        S r SSKJr  SSKJrJr  SSKJrJr  SSK	J
r
  SSKJr  \(       a  SSKJr  SSKJr   " S	 S
\
\5      rg)zMessage prompt templates.    )annotations)ABCabstractmethod)TYPE_CHECKINGAny)Serializable)is_interactive_env)BaseMessageChatPromptTemplatec                      \ rS rSrSr\SS j5       r\SS j5       r\SS j5       r	SS jr
\\SS j5       5       r S   SS jjrSS	 jrSS
 jrSrg)BaseMessagePromptTemplate   z(Base class for message prompt templates.c                    g)z,Return `True` as this class is serializable.T clss    X/home/james-whalen/.local/lib/python3.13/site-packages/langchain_core/prompts/message.pyis_lc_serializable,BaseMessagePromptTemplate.is_lc_serializable   s         c                
    / SQ$ )z\Get the namespace of the LangChain object.

Returns:
    `["langchain", "prompts", "chat"]`
)	langchainpromptschatr   r   s    r   get_lc_namespace*BaseMessagePromptTemplate.get_lc_namespace   s
     0/r   c                    g)zFormat messages from kwargs. Should return a list of `BaseMessage` objects.

Args:
    **kwargs: Keyword arguments to use for formatting.

Returns:
    List of `BaseMessage` objects.
Nr   selfkwargss     r   format_messages)BaseMessagePromptTemplate.format_messages!       r   c                .   #    U R                   " S0 UD6$ 7f)zAsync format messages from kwargs.

Args:
    **kwargs: Keyword arguments to use for formatting.

Returns:
    List of `BaseMessage` objects.
r   )r"   r   s     r   aformat_messages*BaseMessagePromptTemplate.aformat_messages,   s      ##-f--s   c                    g)zQInput variables for this prompt template.

Returns:
    List of input variables.
Nr   r    s    r   input_variables)BaseMessagePromptTemplate.input_variables7   r$   r   c                    [         e)zxHuman-readable representation.

Args:
    html: Whether to format as HTML.

Returns:
    Human-readable representation.
)NotImplementedError)r    htmls     r   pretty_repr%BaseMessagePromptTemplate.pretty_repr@   s
     "!r   c                D    [        U R                  [        5       S95        g)z&Print a human-readable representation.)r.   N)printr/   r	   r)   s    r   pretty_print&BaseMessagePromptTemplate.pretty_printN   s    d$6$89:r   c                >    SSK Jn  U" U /S9nUR                  U5      $ )zqCombine two prompt templates.

Args:
    other: Another prompt template.

Returns:
    Combined prompt template.
r   r   )messages)langchain_core.prompts.chatr   __add__)r    otherr   prompts       r   r8   !BaseMessagePromptTemplate.__add__R   s#     	C#dV4~~e$$r   r   N)returnbool)r<   z	list[str])r!   r   r<   zlist[BaseMessage])F)r.   r=   r<   str)r<   None)r9   r   r<   r   )__name__
__module____qualname____firstlineno____doc__classmethodr   r   r   r"   r&   propertyr*   r/   r3   r8   __static_attributes__r   r   r   r   r      s    2  0 0  	.    "" 
";%r   r   N)rD   
__future__r   abcr   r   typingr   r   langchain_core.loadr   $langchain_core.utils.interactive_envr	   langchain_core.messagesr
   r7   r   r   r   r   r   <module>rN      s0     " # % , C3>O%c O%r   