async def create_python_function_async(
        self,
        *,
        func: Callable[..., Any],
        catalog: str,
        schema: str,
        replace: bool = False,
        properties: Optional[str] = "null",
        timeout: Optional[float] = None,
    ) -> FunctionInfo:
        """
        Create a Python function in Unity Catalog asynchronously.

        Args:
            func: The Python function to create in Unity Catalog.
            catalog: The catalog name.
            schema: The schema name.
            replace: Whether to replace the function if it already exists. Defaults to False.
            properties: JSON-serialized key-value pair map encoded as a string. Currently serves
                as a reserved field for future functionality. Required in the client API, but defaulted
                to "null" in this API.
            timeout: The timeout in seconds.

        Returns:
            The created FunctionInfo object.
        """

        if not callable(func):
            raise ValueError("The provided function is not callable.")

        callable_info = generate_function_info(func=func)

        function_name = f"{catalog}.{schema}.{callable_info.callable_name}"

        return await self.create_function_async(
            function_name=function_name,
            routine_definition=callable_info.routine_definition,
            data_type=callable_info.data_type,
            full_data_type=callable_info.full_data_type,
            comment=callable_info.comment,
            parameters=callable_info.parameters,
            properties=properties,
            timeout=timeout,
            replace=replace,
        )

        Create a Python function in Unity Catalog asynchronously.

        Args:
            func: The Python function to create in Unity Catalog.
            catalog: The catalog name.
            schema: The schema name.
            replace: Whether to replace the function if it already exists. Defaults to False.
            properties: JSON-serialized key-value pair map encoded as a string. Currently serves
                as a reserved field for future functionality. Required in the client API, but defaulted
                to "null" in this API.
            timeout: The timeout in seconds.

        Returns:
            The created FunctionInfo object.
        
ai/core/src/unitycatalog/ai/core/client.py