code: def _pipe(self):
          
          if self._evdev:
              return None
  
          if not self.__pipe:
              target_function = self._get_target_function()
              if not target_function:
                  return None
  
              self.__pipe, child_conn = Pipe(duplex=False)
              self._listener = Process(target=target_function,
                                       args=(child_conn,), daemon=True)
              self._listener.start()
          return self.__pipe
docs: On Windows we use a pipe to emulate a Linux style character
          buffer.