Skip to content

Commit ebc9206

Browse files
ulises-blacklanesebastinas
authored andcommitted
Allowing sys.stind.readline receive size parameter
1 parent df32e68 commit ebc9206

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

bpython/curtsiesfrontend/repl.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -179,12 +179,17 @@ def add_input_character(self, e: str) -> None:
179179
)
180180
self.cursor_offset += 1
181181

182-
def readline(self):
183-
self.has_focus = True
184-
self.repl.send_to_stdin(self.current_line)
185-
value = self.coderunner.request_from_main_context()
186-
self.readline_results.append(value)
187-
return value
182+
def readline(self, size=-1):
183+
if not isinstance(size, int):
184+
raise TypeError(f"'{type(size).__name__}' object cannot be interpreted as an integer")
185+
elif size == 0:
186+
return ''
187+
else:
188+
self.has_focus = True
189+
self.repl.send_to_stdin(self.current_line)
190+
value = self.coderunner.request_from_main_context()
191+
self.readline_results.append(value)
192+
return value if size <= -1 else value[:size]
188193

189194
def readlines(self, size=-1):
190195
return list(iter(self.readline, ""))

0 commit comments

Comments
 (0)