docs: def set_analysis_config(self, group_name, config):
          """ Set Configuration data for analysis group.  The ``config`` can
              be passed as a dict of dicts e.g. ``{'section': {'key': 'value'}}``
              or can be passed directly as a ConfigParser object.
  
          :param group_name: The name of the analysis group e.g. Example_000
          :param config: Representation of configuration as ConfigParser or
              dict of dicts.
          :raises KeyError: if group_name does not exist in fast5 or
              fast5 is not open for writing
          :raises TypeError: if ``config`` is not ConfigParser or dict obj.
          """
          self.assert_writeable()
          if 'Analyses/{}'.format(group_name) not in self.handle:
              msg = 'Dataset cannot be added to non-existent group: Analyses/{} in {}'
              raise KeyError(msg.format(group_name, self.filename))
          if isinstance(config, ConfigParser):
              config_dict = {}
              for section in config.sections():
                  config_dict[section] = {k: v for k, v in config.items(section)}
          elif isinstance(config, dict):
              config_dict = config
          else:
              raise TypeError('config must be a ConfigParser or dict not {}'.format(type(config)))
  
          config_path = 'Analyses/{}/Configuration'.format(group_name)
          self._add_attribute_tree(config_path, config_dict)