from typing import Iterable


def missing_message(missing: Iterable):
    """Gives a nice "missing ..." formatted string with the corresponding
    values in ``missing``.
    """
    missing = ["'{}'".format(value) for value in missing]
    len_missing = len(missing)
    joined_missing = ' and '.join(missing)
    if len_missing == 1:
        message_fmt = 'missing {} required item: {}'
    else:
        message_fmt = 'missing {} required items: {}'
    # NOTE: KeyError will display the message in quotes :|
    return message_fmt.format(len_missing, joined_missing)