code: def set_value(self, items, complete=False, on_projects=False,
                    on_globals=False, projectname=None, base='', dtype=None,
                    **kwargs):
          
          def identity(val):
              return val
          config = self.info(complete=complete, on_projects=on_projects,
                             on_globals=on_globals, projectname=projectname,
                             return_dict=True, insert_id=False, **kwargs)
          if isinstance(dtype, six.string_types):
              dtype = getattr(builtins, dtype)
          elif dtype is None:
              dtype = identity
          for key, value in six.iteritems(dict(items)):
              if base:
                  key = base + key
              key, sub_config = utils.go_through_dict(key, config,
                                                      setdefault=OrderedDict)
              if key in self.paths:
                  if isinstance(value, six.string_types):
                      value = osp.abspath(value)
                  else:
                      value = list(map(osp.abspath, value))
              sub_config[key] = dtype(value)
docs: Set a value in the configuration
  
          Parameters
          ----------
          items: dict
              A dictionary whose keys correspond to the item in the configuration
              and whose values are what shall be inserted. %(get_value_note)s
          %(ModelOrganizer.info.common_params)s
          base: str
              A base string that shall be put in front of each key in `values` to
              avoid typing it all the time
          dtype: str
              The name of the data type or a data type to cast the value to