def _safe_assigns(dest, source, attrs):
    """
    Shallow-copies all requested attributes from `source` to `dest` if they
    are present. If not present, nothing is done
    """
    for attr in attrs:
        if not hasattr(source, attr):
            continue
        myattr = getattr(source, attr)
        setattr(dest, attr, myattr)
