from typing import Any


def is_num(num: Any) -> bool:
    """Function that tests if object can be converted to number

    A function that takes any input and detects if it is a number by
    attempting to convert the input to a float. This function catches
    convertable digit string cases.

    Source:
    https://stackoverflow.com/questions/354038

    :param num: object data to determine if it is conceivably an number
    :type num: Any
    :return: a boolean determination if the input is a number
    :rtype: bool
    """
    if isinstance(num, complex):
        if num.imag == 0:
            num = num.real
        else:
            return False
    elif isinstance(num, bool):
        return False
    try:
        float(num)
        return True
    except ValueError:
        return False