Sets the given key in the given dict object to the given value. If the
        given path is nested, child dicts are created as appropriate.
        Accepts either a dot-delimited path or an array of path elements as the
        `path` variable.

def set_path(self, data, path, value):
        """
        Sets the given key in the given dict object to the given value. If the
        given path is nested, child dicts are created as appropriate.
        Accepts either a dot-delimited path or an array of path elements as the
        `path` variable.
        """
        self.say('set_path:value:' + str(value) +
                 ' at:' + str(path) + ' in:' + str(data))

        if isinstance(path, str):
            path = path.split('.')
        if len(path) > 1:
            self.set_path(data.setdefault(path[0], {}), path[1:], value)
        else:
            data[path[0]] = value
        return data