async def get_function_async(
        self, function_name: str, timeout: Optional[float] = None, **kwargs: Any
    ) -> Optional[FunctionInfo]:
        """
        Retrieve a function by its full name asynchronously.

        Args:
            function_name: The full name of the function to retrieve.
                It should be in the format of "catalog.schema.function_name".
            timeout: The timeout in seconds.

        Returns:
            The FunctionInfo object representing the function.
        """

        try:
            return await self.uc.functions_client.get_function(
                function_name, _request_timeout=timeout
            )
        except NotFoundException as e:
            _logger.warning(
                f"Failed to retrieve function {function_name} from Unity Catalog, the function may not exist. "
                f"Exception: {e}"
            )

        Retrieve a function by its full name asynchronously.

        Args:
            function_name: The full name of the function to retrieve.
                It should be in the format of "catalog.schema.function_name".
            timeout: The timeout in seconds.

        Returns:
            The FunctionInfo object representing the function.
        
ai/core/src/unitycatalog/ai/core/client.py