Ë
    ±q±i
  ã                   ó0   — d Z ddlmZmZmZ  G d„ d«      Zy)zñFunction schema utilities for AI tool definitions.

This module provides standardized function schema representation for defining
tools and functions used with AI models, ensuring consistent formatting
across different AI service providers.
é    )ÚAnyÚDictÚListc            
       óº   — e Zd ZdZdededeeef   dee   ddf
d„Zdeeef   fd	„Z	e
defd
„«       Ze
defd„«       Ze
deeef   fd„«       Ze
dee   fd„«       Zy)ÚFunctionSchemaaF  Standardized function schema representation for tool definition.

    Provides a structured way to define function tools used with AI models like OpenAI.
    This schema defines the function's name, description, parameter properties, and
    required parameters, following specifications required by AI service providers.
    ÚnameÚdescriptionÚ
propertiesÚrequiredÚreturnNc                 ó<   — || _         || _        || _        || _        y)aS  Initialize the function schema.

        Args:
            name: Name of the function to be called.
            description: Description of what the function does.
            properties: Dictionary defining parameter types, descriptions, and constraints.
            required: List of property names that are required parameters.
        N©Ú_nameÚ_descriptionÚ_propertiesÚ	_required)Úselfr   r	   r
   r   s        úZ/opt/pipecat/venv/lib/python3.12/site-packages/pipecat/adapters/schemas/function_schema.pyÚ__init__zFunctionSchema.__init__   s"   € ð ˆŒ
Ø'ˆÔØ%ˆÔØ!ˆó    c                 óf   — | j                   | j                  d| j                  | j                  dœdœS )z†Converts the function schema to a dictionary.

        Returns:
            Dictionary representation of the function schema.
        Úobject)Útyper
   r   )r   r	   Ú
parametersr   ©r   s    r   Úto_default_dictzFunctionSchema.to_default_dict)   s6   € ð —J‘JØ×,Ñ,à Ø"×.Ñ.Ø ŸN™Nññ
ð 	
r   c                 ó   — | j                   S )zPGet the function name.

        Returns:
            The function name.
        )r   r   s    r   r   zFunctionSchema.name9   s   € ð z‰zÐr   c                 ó   — | j                   S )z^Get the function description.

        Returns:
            The function description.
        )r   r   s    r   r	   zFunctionSchema.descriptionB   s   € ð × Ñ Ð r   c                 ó   — | j                   S )zkGet the function properties.

        Returns:
            Dictionary of parameter specifications.
        )r   r   s    r   r
   zFunctionSchema.propertiesK   s   € ð ×ÑÐr   c                 ó   — | j                   S )zeGet the required parameters.

        Returns:
            List of required parameter names.
        )r   r   s    r   r   zFunctionSchema.requiredT   s   € ð ~‰~Ðr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústrr   r   r   r   r   Úpropertyr   r	   r
   r   © r   r   r   r      sÎ   „ ñð"Øð"Ø&)ð"Ø7;¸CÀ¸H±~ð"ØQUÐVYÑQZð"à	ó"ð 
  c¨3 h¡ó 
ð  ðcò ó ðð ð!˜Sò !ó ð!ð ð ˜D  c ™Nò  ó ð ð ð˜$˜s™)ò ó ñr   r   N)r$   Útypingr   r   r   r   r'   r   r   ú<module>r)      s   ðñ÷ #Ñ "÷Jò Jr   