@staticmethod
def _build_dict(my_dict, keys, values):
    """Build a dictionary from a set of redis hashes.

            keys = ['a', 'b', 'c']
            values = {'value': 'foo'}
            my_dict = {'a': {'b': {'c': {'value': 'foo'}}}}

        Args:
            my_dict (dict): Dictionary to add to
            keys (list[str]): List of keys used to define hierarchy in my_dict
            values (dict): Values to add at to the dictionary at the key
               specified by keys

        Returns:
            dict, new dictionary with values added at keys

        """
    temp = my_dict
    for depth, key in enumerate(keys):
        if depth < len(keys) - 1:
            if key not in temp:
                temp[key] = dict()
            temp = temp[key]
        elif key not in temp:
            temp[key] = values
        else:
            temp[key] = {**temp[key], **values}
    return my_dict
