def set_startup_hook(self, function: Callback | None = None) -> None:
self.startup_hook = function
- def get_line_buffer(self) -> bytes:
- buf_str = self.get_reader().get_unicode()
- return buf_str.encode(ENCODING)
+ def get_line_buffer(self) -> str:
+ return self.get_reader().get_unicode()
def _get_idxs(self) -> tuple[int, int]:
start = cursor = self.get_reader().pos
buf = self.get_line_buffer()
for i in range(cursor - 1, -1, -1):
- if str(buf[i]) in self.get_completer_delims():
+ if buf[i] in self.get_completer_delims():
break
start = i
return start, cursor
make_clean_env,
)
from _pyrepl.console import Event
-from _pyrepl.readline import ReadlineAlikeReader, ReadlineConfig
+from _pyrepl.readline import (ReadlineAlikeReader, ReadlineConfig,
+ _ReadlineWrapper)
from _pyrepl.readline import multiline_input as readline_multiline_input
try:
self.assertEqual(output, "1+1")
self.assertEqual(clean_screen(reader.screen), "1+1")
+ def test_get_line_buffer_returns_str(self):
+ reader = self.prepare_reader(code_to_events("\n"))
+ wrapper = _ReadlineWrapper(reader=reader)
+ self.assertIs(type(wrapper.get_line_buffer()), str)
+
def test_multiline_edit(self):
events = itertools.chain(
code_to_events("def f():\n...\n\n"),