def is_number(value):
    """
    Return true if string is a number.

    based on
    https://stackoverflow.com/questions/354038/how-do-i-check-if-a-string-is-a-number-float

    :param string value: input to check
    :return bool: True if value is a number, otherwise False.
    """
    try:
        float(value)
    except TypeError:
        # return NaN
        return False
    else:
        return True