python / python/cpython

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

Ouverte
#139,875 0 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

stdlib type-bug
Langage dominant
Python
Étoiles
77.2k
Forks
35.9k
Métriques de merge des PR
Métriques de PR en attente

Description

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

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par comparer la gestion de Ctrl+D dans la nouvelle REPL et la REPL de base avec code.interact(), en utilisant la reproduction de la définition de fonction multilignes avec une ligne vide présente dans l’issue. C’est terminé lorsque code.interact() évalue le code existant de manière cohérente avec les autres REPL ; le PR lié gh-139876 indique que le travail est déjà en cours.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
cli
Type d'issue
Bug
Difficulté
2/5
Temps estimé
1-3 heures
Activité
À l'abandon
Clarté
Clairement spécifiée
Accessibilité débutants
20/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.