From 73d093a6377fc13ef8cfc011f733e59e601f10f5 Mon Sep 17 00:00:00 2001 From: Ulises Date: Fri, 27 May 2022 09:00:02 +0200 Subject: [PATCH 1/4] Allowing sys.stind.readline receive size parameter --- bpython/curtsiesfrontend/repl.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/bpython/curtsiesfrontend/repl.py b/bpython/curtsiesfrontend/repl.py index a29b350a..bf723742 100644 --- a/bpython/curtsiesfrontend/repl.py +++ b/bpython/curtsiesfrontend/repl.py @@ -179,12 +179,17 @@ def add_input_character(self, e: str) -> None: ) self.cursor_offset += 1 - def readline(self): - self.has_focus = True - self.repl.send_to_stdin(self.current_line) - value = self.coderunner.request_from_main_context() - self.readline_results.append(value) - return value + def readline(self, size=-1): + if not isinstance(size, int): + raise TypeError(f"'{type(size).__name__}' object cannot be interpreted as an integer") + elif size == 0: + return '' + else: + self.has_focus = True + self.repl.send_to_stdin(self.current_line) + value = self.coderunner.request_from_main_context() + self.readline_results.append(value) + return value if size <= -1 else value[:size] def readlines(self, size=-1): return list(iter(self.readline, "")) From 829ef76c322336928bd351b5ab7f417723b9d219 Mon Sep 17 00:00:00 2001 From: Ulises Date: Fri, 27 May 2022 09:07:36 +0200 Subject: [PATCH 2/4] Applying black --- bpython/curtsiesfrontend/repl.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/bpython/curtsiesfrontend/repl.py b/bpython/curtsiesfrontend/repl.py index bf723742..5b052435 100644 --- a/bpython/curtsiesfrontend/repl.py +++ b/bpython/curtsiesfrontend/repl.py @@ -181,9 +181,11 @@ def add_input_character(self, e: str) -> None: def readline(self, size=-1): if not isinstance(size, int): - raise TypeError(f"'{type(size).__name__}' object cannot be interpreted as an integer") + raise TypeError( + f"'{type(size).__name__}' object cannot be interpreted as an integer" + ) elif size == 0: - return '' + return "" else: self.has_focus = True self.repl.send_to_stdin(self.current_line) From bb236599599d74e702aa711d02a69fb24b24002c Mon Sep 17 00:00:00 2001 From: Ulises Date: Sat, 28 May 2022 09:33:39 +0200 Subject: [PATCH 3/4] adding annotations and removing else statement --- bpython/curtsiesfrontend/repl.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/bpython/curtsiesfrontend/repl.py b/bpython/curtsiesfrontend/repl.py index 5b052435..16d8a8c8 100644 --- a/bpython/curtsiesfrontend/repl.py +++ b/bpython/curtsiesfrontend/repl.py @@ -179,19 +179,18 @@ def add_input_character(self, e: str) -> None: ) self.cursor_offset += 1 - def readline(self, size=-1): + def readline(self, size: int = -1) -> str: if not isinstance(size, int): raise TypeError( f"'{type(size).__name__}' object cannot be interpreted as an integer" ) elif size == 0: return "" - else: - self.has_focus = True - self.repl.send_to_stdin(self.current_line) - value = self.coderunner.request_from_main_context() - self.readline_results.append(value) - return value if size <= -1 else value[:size] + self.has_focus = True + self.repl.send_to_stdin(self.current_line) + value = self.coderunner.request_from_main_context() + self.readline_results.append(value) + return value if size <= -1 else value[:size] def readlines(self, size=-1): return list(iter(self.readline, "")) From 9ff1e8615a08714c5e3c9b67592ca6690783309d Mon Sep 17 00:00:00 2001 From: Ulises Date: Sat, 28 May 2022 09:43:41 +0200 Subject: [PATCH 4/4] adjusting annotations --- bpython/curtsiesfrontend/repl.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bpython/curtsiesfrontend/repl.py b/bpython/curtsiesfrontend/repl.py index 16d8a8c8..20188f50 100644 --- a/bpython/curtsiesfrontend/repl.py +++ b/bpython/curtsiesfrontend/repl.py @@ -179,7 +179,7 @@ def add_input_character(self, e: str) -> None: ) self.cursor_offset += 1 - def readline(self, size: int = -1) -> str: + def readline(self, size: int = -1) -> Union[str, Any]: if not isinstance(size, int): raise TypeError( f"'{type(size).__name__}' object cannot be interpreted as an integer"