def multi_stage_getattr(root_object, *keys):
    """
    Convenience method to allow a caller to do a nested getattr check on an object.  Instead of having
    to call hasattr() one level at a time, a caller may pass in a list of keys to be vetted sequentially.
    :param root_object:
    :param keys:
    :return:
    """
    test_object = root_object
    for key in keys:
        if key not in test_object:
            return None
        test_object = test_object[key]
    return test_object