import six


def is_number(input):
    """Returns True if the value is a number"""
    try:
        if type(input) is int or type(input) is float:
            return True
        elif isinstance(input, six.string_types) and float(input):
            return True
    except ValueError:
        pass
    return False