docs: def remove(self, projectname=None, complete=False,
                 yes=False, all_projects=False, **kwargs):
          """
          Delete an existing experiment and/or projectname
  
          Parameters
          ----------
          projectname: str
              The name for which the data shall be removed. If True, the
              project will be determined by the experiment. If not None, all
              experiments for the given project will be removed.
          complete: bool
              If set, delete not only the experiments and config files, but also
              all the project files
          yes: bool
              If True/set, do not ask for confirmation
          all_projects: bool
              If True/set, all projects are removed
  
          Warnings
          --------
          This will remove the entire folder and all the related informations in
          the configurations!
          """
          self.app_main(**kwargs)
          if projectname in self.config.projects:
              self.projectname = projectname
          all_experiments = self.config.experiments
          projects_info = self.config.projects
          if all_projects:
              experiments = list(all_experiments.keys())
              projects = list(projects_info.keys())
          elif projectname is not None:
              experiments = all_experiments.project_map[projectname]
              projects = [self.projectname]
          else:
              experiments = [self.experiment]
              projects = [self.projectname]
          if not yes:
              if complete:
                  msg = ('Are you sure to remove all experiments (%s) and '
                         'directories for the project instances %s?' % (
                             ', '.join(experiments), ', '.join(projects)))
              else:
                  msg = ('Are you sure to remove the experiments %s' % (
                      ', '.join(experiments)))
              answer = ''
              while answer.lower() not in ['n', 'no', 'y', 'yes']:
                  answer = input(msg + '[y/n] ')
              if answer.lower() in ['n', 'no']:
                  return
          for exp in experiments:
              if not self.is_archived(exp):
                  self.logger.debug("Removing experiment %s", exp)
                  try:
                      exp_dict = self.fix_paths(all_experiments[exp])
                  except KeyError:  # experiment has been removed already
                      pass
                  else:
                      if osp.exists(exp_dict['expdir']):
                          shutil.rmtree(exp_dict['expdir'])
                      self.config.remove_experiment(exp)
  
          if complete:
              for project in projects:
                  self.logger.debug("Removing project %s", project)
                  projectdir = projects_info.pop(project)['root']
                  if osp.exists(projectdir):
                      shutil.rmtree(projectdir)