from typing import Any
from typing import Optional


async def stringify(
        user_input: Any,
        none_string: Optional[str] = None,
        **_
) -> Optional[str]:
    """
    Async wrapper for str.

    :param user_input: Input to be converted into a string
    :param none_string: String to be converted to empty string, case-
        insensitive
    :return: Converted string, or None if conversion failed
    """
    try:
        stringed = str(user_input)
        if stringed.strip().lower() == none_string:
            return ""

        return stringed
    except ValueError:
        return None