@staticmethod
def add_preceding_dict(config_entry, query_path, preceding_depth):
    """ Adds the preceeding config keys to the config_entry to simulate the original full path to the config entry

        :param config_entry: object, the entry that was requested and returned from the config
        :param query_path: (str, list(str)), the original path to the config_entry
        :param preceding_depth: int, the depth to which we are recreating the preceding config keys
        :return: dict, simulated config to n * preceding_depth
        """
    if preceding_depth is None:
        return config_entry
    preceding_dict = {query_path[-1]: config_entry}
    path_length_minus_query_pos = len(query_path) - 1
    preceding_depth = (path_length_minus_query_pos - preceding_depth if 
        preceding_depth != -1 else 0)
    for index in reversed(range(preceding_depth, path_length_minus_query_pos)):
        preceding_dict = {query_path[index]: preceding_dict}
    return preceding_dict
