https://github.com/python/cpython/commit/dcac498e501db3983ce22851c88f88561ae46351
commit: dcac498e501db3983ce22851c88f88561ae46351
branch: main
author: Stan Ulbrych <[email protected]>
committer: pablogsal <[email protected]>
date: 2025-12-05T19:36:28Z
summary:
gh-142318: Fix typing `'q'` at interactive help screen exiting Tachyon (#142319)
files:
A Misc/NEWS.d/next/Library/2025-12-05-18-25-29.gh-issue-142318.EzcQ3N.rst
M Lib/profiling/sampling/live_collector/collector.py
M
Lib/test/test_profiling/test_sampling_profiler/test_live_collector_interaction.py
diff --git a/Lib/profiling/sampling/live_collector/collector.py
b/Lib/profiling/sampling/live_collector/collector.py
index 4b69275a2f077f..7adbf1bbe7f625 100644
--- a/Lib/profiling/sampling/live_collector/collector.py
+++ b/Lib/profiling/sampling/live_collector/collector.py
@@ -861,10 +861,12 @@ def _handle_input(self):
# Handle help toggle keys
if ch == ord("h") or ch == ord("H") or ch == ord("?"):
self.show_help = not self.show_help
+ return
# If showing help, any other key closes it
- elif self.show_help and ch != -1:
+ if self.show_help and ch != -1:
self.show_help = False
+ return
# Handle regular commands
if ch == ord("q") or ch == ord("Q"):
diff --git
a/Lib/test/test_profiling/test_sampling_profiler/test_live_collector_interaction.py
b/Lib/test/test_profiling/test_sampling_profiler/test_live_collector_interaction.py
index 388f462cf21b3d..a5870366552854 100644
---
a/Lib/test/test_profiling/test_sampling_profiler/test_live_collector_interaction.py
+++
b/Lib/test/test_profiling/test_sampling_profiler/test_live_collector_interaction.py
@@ -173,6 +173,19 @@ def test_help_with_question_mark(self):
self.assertTrue(self.collector.show_help)
+ def test_help_dismiss_with_q_does_not_quit(self):
+ """Test that pressing 'q' while help is shown only closes help, not
quit"""
+ self.assertFalse(self.collector.show_help)
+ self.display.simulate_input(ord("h"))
+ self.collector._handle_input()
+ self.assertTrue(self.collector.show_help)
+
+ self.display.simulate_input(ord("q"))
+ self.collector._handle_input()
+
+ self.assertFalse(self.collector.show_help)
+ self.assertTrue(self.collector.running)
+
def test_filter_clear(self):
"""Test clearing filter."""
self.collector.filter_pattern = "test"
diff --git
a/Misc/NEWS.d/next/Library/2025-12-05-18-25-29.gh-issue-142318.EzcQ3N.rst
b/Misc/NEWS.d/next/Library/2025-12-05-18-25-29.gh-issue-142318.EzcQ3N.rst
new file mode 100644
index 00000000000000..8710ebfb1a1a0a
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2025-12-05-18-25-29.gh-issue-142318.EzcQ3N.rst
@@ -0,0 +1,2 @@
+Fix typing ``'q'`` at the help of the interactive tachyon profiler exiting
+the profiler.
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]