docs: def drain(self, cycles=None):
          """Execute _drain while trapping KeyboardInterrupt"""
          if not self._check_service_requirements():
              self.init_timer.stop()
              return self.finish()
  
          if self.anybar: self.anybar.change("orange")
          self.init_timer.stop()
          log.info("Trapping CTRL+C and starting to drain.")
          signal.signal(signal.SIGINT, self._handle_ctrl_c)
          with ignored(KeyboardInterrupt):
              return self._drain(cycles)