code: def _managePsets(configobj, section_name, task_name, iparsobj=None, input_dict=None):
      
      # Merge all configobj instances into a single object
      configobj[section_name] = {}
  
      # Load the default full set of configuration parameters for the PSET:
      iparsobj_cfg = teal.load(task_name)
  
      # Identify optional parameters in input_dicts that are from this
      # PSET and add it to iparsobj:
      if input_dict is not None:
          for key in list(input_dict.keys()):
              if key in iparsobj_cfg:
                  if iparsobj is not None and key in iparsobj:
                      raise DuplicateKeyError("Duplicate parameter '{:s}' "
                          "provided for task {:s}".format(key, task_name))
                  iparsobj_cfg[key] = input_dict[key]
                  del input_dict[key]
  
      if iparsobj is not None:
          iparsobj_cfg.update(iparsobj)
  
      del iparsobj_cfg['_task_name_']
  
      # merge these parameters into full set
      configobj[section_name].merge(iparsobj_cfg)
docs: Read in parameter values from PSET-like configobj tasks defined for
          source-finding algorithms, and any other PSET-like tasks under this task,
          and merge those values into the input configobj dictionary.