docs: def done(self, warn=True):
          """Is the subprocess done?"""
          if not self.process:
              raise Exception("Not implemented yet or process not started yet, make sure to overload the done() method in your Experiment class")
          self.process.poll()
          if self.process.returncode == None:
              return False
          elif self.process.returncode > 0:
              raise ProcessFailed()
          else:
              self.endtime = datetime.datetime.now()
              return True