Skip to content

Commit 8a2d747

Browse files
committed
gh-145886: remove unused Event.raw field from _pyrepl
Event.raw was being accumulated in getpending() but never actually read anywhere -- the callers only ever use Event.data. On top of that, there was a copy-paste bug (e.raw += e.raw instead of e.raw += e2.raw) which went unnoticed precisely because nothing consumes the field. Rather than just fixing the typo, remove the dead field entirely.
1 parent e0f7c10 commit 8a2d747

File tree

10 files changed

+149
-156
lines changed

10 files changed

+149
-156
lines changed

Lib/_pyrepl/base_eventqueue.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,8 @@ def push(self, char: int | bytes) -> None:
8787
if isinstance(k, dict):
8888
self.keymap = k
8989
else:
90-
self.insert(Event('key', k, bytes(self.flush_buf())))
90+
self.flush_buf()
91+
self.insert(Event('key', k))
9192
self.keymap = self.compiled_keymap
9293

9394
elif self.buf and self.buf[0] == 27: # escape
@@ -96,7 +97,7 @@ def push(self, char: int | bytes) -> None:
9697
# the docstring in keymap.py
9798
trace('unrecognized escape sequence, propagating...')
9899
self.keymap = self.compiled_keymap
99-
self.insert(Event('key', '\033', b'\033'))
100+
self.insert(Event('key', '\033'))
100101
for _c in self.flush_buf()[1:]:
101102
self.push(_c)
102103

@@ -106,5 +107,6 @@ def push(self, char: int | bytes) -> None:
106107
except UnicodeError:
107108
return
108109
else:
109-
self.insert(Event('key', decoded, bytes(self.flush_buf())))
110+
self.flush_buf()
111+
self.insert(Event('key', decoded))
110112
self.keymap = self.compiled_keymap

Lib/_pyrepl/console.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
class Event:
4343
evt: str
4444
data: str
45-
raw: bytes = b""
4645

4746

4847
@dataclass

Lib/_pyrepl/unix_console.py

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -537,19 +537,16 @@ def getpending(self):
537537
Returns:
538538
- Event: Pending event from the event queue.
539539
"""
540-
e = Event("key", "", b"")
540+
e = Event("key", "")
541541

542542
while not self.event_queue.empty():
543543
e2 = self.event_queue.get()
544544
e.data += e2.data
545-
e.raw += e.raw
546545

547546
amount = struct.unpack("i", ioctl(self.input_fd, FIONREAD, b"\0\0\0\0"))[0]
548547
trace("getpending({a})", a=amount)
549548
raw = self.__read(amount)
550-
data = str(raw, self.encoding, "replace")
551-
e.data += data
552-
e.raw += raw
549+
e.data += str(raw, self.encoding, "replace")
553550
return e
554551

555552
else:
@@ -561,18 +558,15 @@ def getpending(self):
561558
Returns:
562559
- Event: Pending event from the event queue.
563560
"""
564-
e = Event("key", "", b"")
561+
e = Event("key", "")
565562

566563
while not self.event_queue.empty():
567564
e2 = self.event_queue.get()
568565
e.data += e2.data
569-
e.raw += e.raw
570566

571567
amount = 10000
572568
raw = self.__read(amount)
573-
data = str(raw, self.encoding, "replace")
574-
e.data += data
575-
e.raw += raw
569+
e.data += str(raw, self.encoding, "replace")
576570
return e
577571

578572
def clear(self):

Lib/_pyrepl/windows_console.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,7 @@ def forgetinput(self) -> None:
524524
def getpending(self) -> Event:
525525
"""Return the characters that have been typed but not yet
526526
processed."""
527-
e = Event("key", "", b"")
527+
e = Event("key", "")
528528

529529
while not self.event_queue.empty():
530530
e2 = self.event_queue.get()

Lib/test/test_pyrepl/support.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def more_lines(text: str, namespace: dict | None = None):
4545

4646
def code_to_events(code: str):
4747
for c in code:
48-
yield Event(evt="key", data=c, raw=bytearray(c.encode("utf-8")))
48+
yield Event(evt="key", data=c)
4949

5050

5151
def clean_screen(reader: ReadlineAlikeReader) -> list[str]:

Lib/test/test_pyrepl/test_eventqueue.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@ def make_eventqueue(self) -> base_eventqueue.BaseEventQueue:
2828

2929
def test_get(self):
3030
eq = self.make_eventqueue()
31-
event = Event("key", "a", b"a")
31+
event = Event("key", "a")
3232
eq.insert(event)
3333
self.assertEqual(eq.get(), event)
3434

3535
def test_empty(self):
3636
eq = self.make_eventqueue()
3737
self.assertTrue(eq.empty())
38-
eq.insert(Event("key", "a", b"a"))
38+
eq.insert(Event("key", "a"))
3939
self.assertFalse(eq.empty())
4040

4141
def test_flush_buf(self):
@@ -46,7 +46,7 @@ def test_flush_buf(self):
4646

4747
def test_insert(self):
4848
eq = self.make_eventqueue()
49-
event = Event("key", "a", b"a")
49+
event = Event("key", "a")
5050
eq.insert(event)
5151
self.assertEqual(eq.events[0], event)
5252

@@ -152,10 +152,8 @@ def test_push_single_chars_and_unicode_character_as_str(self):
152152
eq = self.make_eventqueue()
153153
eq.keymap = {}
154154

155-
def _event(evt, data, raw=None):
156-
r = raw if raw is not None else data.encode(eq.encoding)
157-
e = Event(evt, data, r)
158-
return e
155+
def _event(evt, data):
156+
return Event(evt, data)
159157

160158
def _push(keys):
161159
for k in keys:

0 commit comments

Comments
 (0)