Get an event from the console event queue. Parameters: - block (bool): Whether to block until an event is available. Returns: - Event: Event object from the event queue.
(self, block: bool = True)
| 407 | self.event_queue.push(char) |
| 408 | |
| 409 | def get_event(self, block: bool = True) -> Event | None: |
| 410 | """ |
| 411 | Get an event from the console event queue. |
| 412 | |
| 413 | Parameters: |
| 414 | - block (bool): Whether to block until an event is available. |
| 415 | |
| 416 | Returns: |
| 417 | - Event: Event object from the event queue. |
| 418 | """ |
| 419 | if not block and not self.wait(timeout=0): |
| 420 | return None |
| 421 | |
| 422 | while self.event_queue.empty(): |
| 423 | while True: |
| 424 | try: |
| 425 | self.push_char(self.__read(1)) |
| 426 | except OSError as err: |
| 427 | if err.errno == errno.EINTR: |
| 428 | if not self.event_queue.empty(): |
| 429 | return self.event_queue.get() |
| 430 | else: |
| 431 | continue |
| 432 | elif err.errno == errno.EIO: |
| 433 | raise SystemExit(errno.EIO) |
| 434 | else: |
| 435 | raise |
| 436 | else: |
| 437 | break |
| 438 | return self.event_queue.get() |
| 439 | |
| 440 | def wait(self, timeout: float | None = None) -> bool: |
| 441 | """ |