docs: def set_path(ctx, path_str, value, data):
      """
      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.
      """
      ctx.gbc.say('set_path:value:' + str(value) + ' at:' + path_str + ' in:',
                  stuff=data, verbosity=1001)
  
      path = path_str.split('.')
      ctx.gbc.say('path:', stuff=path, verbosity=100)
      if len(path) > 1:
          destk = '.'.join(path[0:-1])
          lp = path[-1]
          ctx.gbc.say('destk:%s' % destk, verbosity=100)
          ctx.gbc.say('last:%s' % lp, verbosity=100)
          ctx.gbc.say('current keys:', stuff=data.keys(), verbosity=1001)
          if len(path) > 2:
              destk = unescape(ctx, destk)
          if destk not in data.keys():
              ctx.gbc.say('destk not in current keys:',
                          stuff=data.keys(), verbosity=1001)
              data[destk] = {}
              ctx.gbc.say('destk not added:', stuff=data, verbosity=1001)
  
          lp = unescape(ctx, lp)
          data[destk][lp] = value
          ctx.gbc.say('destk and val added:', stuff=data, verbosity=1001)
      else:
          path_str = unescape(ctx, path_str)
          data[path_str] = value
      ctx.gbc.say('set_path:res:', stuff=data, verbosity=1001)
      return data