import re
import string


def invalid_ingredient_name(name):
    """
    A ingredient name is invalid if it is empty,
    less than two characters, is only numeric, characters,
    or is only punctuation.

    :param str name: The ingredient name to check.
    :rtype bool:
    """
    name = name.strip()
    # Just whitespace
    if not name:
        return True
    # Must be at least two characters
    if len(name) < 2:
        return True
    # Cannot be just a (decimal) number
    if re.match(r'^[.,]*[0-9]+[.,]*[0-9]+$', name):
        return True
    # Cannot be only punctuation
    if all([c in string.punctuation for c in name]):
        return True