MCPcopy Index your code
hub / github.com/bpython/bpython / FullCurtsiesRepl

Class FullCurtsiesRepl

bpython/curtsies.py:48–176  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

46
47
48class FullCurtsiesRepl(BaseRepl):
49 def __init__(
50 self,
51 config: Config,
52 locals_: dict[str, Any] | None = None,
53 banner: str | None = None,
54 interp: Interp | None = None,
55 ) -> None:
56 self.input_generator = curtsies.input.Input(
57 keynames="curtsies", sigint_event=True, paste_threshold=None
58 )
59 window = curtsies.window.CursorAwareWindow(
60 sys.stdout,
61 sys.stdin,
62 keep_last_line=True,
63 hide_cursor=False,
64 extra_bytes_callback=self.input_generator.unget_bytes,
65 )
66
67 self._request_refresh_callback: Callable[[], None] = (
68 self.input_generator.event_trigger(events.RefreshRequestEvent)
69 )
70 self._schedule_refresh_callback = (
71 self.input_generator.scheduled_event_trigger(
72 events.ScheduledRefreshRequestEvent
73 )
74 )
75 self._request_reload_callback = (
76 self.input_generator.threadsafe_event_trigger(events.ReloadEvent)
77 )
78 self._interrupting_refresh_callback = (
79 self.input_generator.threadsafe_event_trigger(lambda: None)
80 )
81 self._request_undo_callback = self.input_generator.event_trigger(
82 events.UndoEvent
83 )
84
85 with self.input_generator:
86 pass # temp hack to get .original_stty
87
88 super().__init__(
89 config,
90 window,
91 locals_=locals_,
92 banner=banner,
93 interp=interp,
94 orig_tcattrs=self.input_generator.original_stty,
95 )
96
97 def _request_refresh(self) -> None:
98 return self._request_refresh_callback()
99
100 def _schedule_refresh(self, when: float) -> None:
101 return self._schedule_refresh_callback(when)
102
103 def _request_reload(self, files_modified: Sequence[str]) -> None:
104 return self._request_reload_callback(files_modified=files_modified)
105

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected