From 1c45c36c0c494aa305ab7bf46a35670b65a238e9 Mon Sep 17 00:00:00 2001 From: donBarbos Date: Sun, 30 Mar 2025 17:49:28 +0400 Subject: [PATCH 1/2] Add check to console.refresh in _pyrepl --- Lib/_pyrepl/unix_console.py | 7 ++++--- Lib/_pyrepl/windows_console.py | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Lib/_pyrepl/unix_console.py b/Lib/_pyrepl/unix_console.py index 96379bc20f3357..6f9d5dd231b4be 100644 --- a/Lib/_pyrepl/unix_console.py +++ b/Lib/_pyrepl/unix_console.py @@ -226,7 +226,7 @@ def change_encoding(self, encoding: str) -> None: """ self.encoding = encoding - def refresh(self, screen, c_xy): + def refresh(self, screen: list[str], c_xy: tuple[int, int]) -> None: """ Refresh the console screen. @@ -238,8 +238,9 @@ def refresh(self, screen, c_xy): if not self.__gone_tall: while len(self.screen) < min(len(screen), self.height): self.__hide_cursor() - self.__move(0, len(self.screen) - 1) - self.__write("\n") + if len(self.screen): + self.__move(0, len(self.screen) - 1) + self.__write("\n") self.posxy = 0, len(self.screen) self.screen.append("") else: diff --git a/Lib/_pyrepl/windows_console.py b/Lib/_pyrepl/windows_console.py index 47fd3fd8f8909b..0ac9b5c9fe2bdd 100644 --- a/Lib/_pyrepl/windows_console.py +++ b/Lib/_pyrepl/windows_console.py @@ -170,8 +170,9 @@ def refresh(self, screen: list[str], c_xy: tuple[int, int]) -> None: while len(self.screen) < min(len(screen), self.height): self._hide_cursor() - self._move_relative(0, len(self.screen) - 1) - self.__write("\n") + if len(self.screen): + self._move_relative(0, len(self.screen) - 1) + self.__write("\n") self.posxy = 0, len(self.screen) self.screen.append("") From bca129892c75d3552f1a72d749980c2d528b9b68 Mon Sep 17 00:00:00 2001 From: donBarbos Date: Sun, 30 Mar 2025 18:40:27 +0400 Subject: [PATCH 2/2] remove type hints --- Lib/_pyrepl/unix_console.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Lib/_pyrepl/unix_console.py b/Lib/_pyrepl/unix_console.py index 6f9d5dd231b4be..684cb0378ab780 100644 --- a/Lib/_pyrepl/unix_console.py +++ b/Lib/_pyrepl/unix_console.py @@ -226,7 +226,7 @@ def change_encoding(self, encoding: str) -> None: """ self.encoding = encoding - def refresh(self, screen: list[str], c_xy: tuple[int, int]) -> None: + def refresh(self, screen, c_xy): """ Refresh the console screen.