def nested_get(dic, keys):
    """
    Address a nested dict with a list of keys to fetch a value.
    This is functionaly similar to the standard functools.reduce()
    method employing dict.get, but this returns 'bad_path' if the path
    does not exist. This is because we need to differentiate between
    an existing value that is actually None vs. the dict.get()
    failover. Would have preferred to return False, but who knows
    if we'll end up with data containing Boolean values.

    ::

        sample_dict = dict()
        nested_set(sample_dict, ['bar', 'baz'], 23)
        nested_get(sample_dict, ['bar', 'quux'])
        False

    Unlike nested_set(), this will not create a new path branch if
    it does not already exist.

    Parameters
    ----------
    dic : dict
        The dict we are working with
    keys : list
        A lsit of nested keys

    Returns
    -------
    obj
        Whatever value was at the terminus of the keys.
    """
    for key in keys[:-1]:
        if key in dic:
            dic = dic.setdefault(key, {})
        else:
            return 'bad_path'
    try:
        return dic[keys[-1]]
    except KeyError:
        return 'bad_path'
