code: def raise_sigint():
      
      if hasattr(signal, 'CTRL_C_EVENT'):
          # windows. Need CTRL_C_EVENT to raise the signal in the whole process group
          os.kill(os.getpid(), signal.CTRL_C_EVENT)
      else:
          # unix.
          pgid = os.getpgid(os.getpid())
          if pgid == 1:
              os.kill(os.getpid(), signal.SIGINT)
          else:
              os.killpg(os.getpgid(os.getpid()), signal.SIGINT)
docs: Raising the SIGINT signal in the current process and all sub-processes.
  
      os.kill() only issues a signal in the current process (without subprocesses).
      CTRL+C on the console sends the signal to the process group (which we need).