Skip to content

gh-127073: Clear completion list when KeyboardInterrupt occurs in REPL #128467

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

Natural-selection1
Copy link

Resolve #127073

New behavior:
The completion list is properly cleared on KeyboardInterrupt just consistent with the behavior of other errors

int.<TAB><TAB>

int.as_integer_ratio(  int.bit_length(        int.denominator        int.imag               int.mro()              int.real
int.bit_count(         int.conjugate(         int.from_bytes(        int.is_integer(        int.numerator          int.to_bytes(
>>> int.

<Ctrl+C>

>>> int.
KeyboardInterrupt
>>> 

@bedevere-app
Copy link

bedevere-app bot commented Jan 4, 2025

Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool.

If this change has little impact on Python users, wait for a maintainer to apply the skip news label instead.

Natural-selection1 and others added 2 commits January 5, 2025 12:12
Previously, the completion list would persist after a KeyboardInterrupt
was triggered. This change ensures the completion state is properly reset.
@ZeroIntensity ZeroIntensity added the topic-repl Related to the interactive shell label Jan 6, 2025
Copy link
Member

@ZeroIntensity ZeroIntensity left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A test in test_repl would be nice :)

See the devguide for writing tests.

@@ -0,0 +1,4 @@
Previously in the REPL, when a completion list was displayed and KeyboardInterrupt
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Love the effort, but this is too long. Can we shorten this to a single sentence? (We don't need technical details, just what was fixed.)

@ZeroIntensity ZeroIntensity added the needs backport to 3.13 bugs and security fixes label Jan 6, 2025
@picnixz
Copy link
Member

picnixz commented Jan 7, 2025

@Natural-selection1 Please, do not merge main into your branch if there is no conflict to solve or if nothing has changed since the last commit. In addition, please consider addressing comments by ZeroIntensity first.

@Natural-selection1
Copy link
Author

@Natural-selection1 Please, do not merge main into your branch if there is no conflict to solve or if nothing has changed since the last commit. In addition, please consider addressing comments by ZeroIntensity first.

Sorry for any inconvenience caused. As a newcomer contributing to a large project like CPython, I sincerely regret the issues. Regarding the previously mentioned problems, I am actively working on resolving them. As for the test cases that need to be written, I am making efforts, though it may take some time to complete. I will treat this experience as a valuable learning opportunity.

@picnixz
Copy link
Member

picnixz commented Jan 7, 2025

No worries. For now, I'll mark your PR as a draft. Once you've added the tests and rewritten the NEWS entry, just convert it back to a "ready-for-review" PR.

@python-cla-bot
Copy link

The following commit authors need to sign the Contributor License Agreement:

CLA signed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs backport to 3.13 bugs and security fixes topic-repl Related to the interactive shell
Projects
None yet
Development

Successfully merging this pull request may close these issues.

New Python REPL double-prints completion suggestions
3 participants