python / python/cpython

Difference in Ctrl+D Behavior Between REPL and `code.interact`

Offen
#139,875 0 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

stdlib type-bug
Vorherrschende Sprache
Python
Sterne
77.2k
Forks
35.9k
PR-Merge-Kennzahlen
PR-Kennzahlen ausstehend

Beschreibung

Bug report

Bug description:

With #133883 merged, hitting ctrl+d at the start of a blank line in a multi-line entry causes the existing code to be evaluated in both the new REPL and the basic REPL:

>>> def foo(x):
... 
  File "<python-input-0>", line 1
    def foo(x):
               ^
IndentationError: expected an indented block after function definition on line 1

But code.interact() exits immediately without executing the existing code:

>>> def foo(x):
... 

now exiting InteractiveConsole...

I doubt this is terribly impactful, but I think it would still be nice to have these behave the same way.

I have a patch ready that I think will resolve this, so I'll open a PR shortly.

CPython versions tested on:

CPython main branch

Operating systems tested on:

Linux

Linked PRs
  • gh-139876

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die Behandlung von Ctrl+D in der neuen und der grundlegenden REPL mit code.interact() zu vergleichen, und verwende dabei die Reproduktion der mehrzeiligen Funktionsdefinition mit Leerzeile aus dem Issue. Als abgeschlossen gilt die Aufgabe, wenn code.interact() den vorhandenen Code konsistent mit den anderen REPLs auswertet; der verknüpfte PR gh-139876 zeigt, dass die Arbeit bereits begonnen hat.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
cli
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
20/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.