import logging


def convert(value, as_type, source):
    """Convert the value as a given type where the value comes from the given source"""
    try:
        return as_type.convert(value)
    except Exception as exception:
        logging.warning("%s failed to convert %r as %r because %r", source, value, as_type, exception)
        raise