Improve error message when variable-length tuple annotation is required
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 20.6k
- Forks
- 3.3k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Mypy currently does not give a particularly friendly error message for this snippet of code:
test = (1, 2)
test += (3,) # error: Incompatible types in assignment (expression has type "Tuple[int, int, int]", variable has type "Tuple[int, int]")
What the user probably needs to do is to add a variable-length tuple annotation, e.g.
test: tuple[int, ...] = (1, 2)
test += (3,)
However, the error message gives no indication of that (on mypy 0.941).
Refs #10384
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par le reproducer fourni pour un tuple de longueur variable et comparez le diagnostic actuel avec l’annotation suggérée tuple[int, ...]. Suivez le chemin de vérification des types qui signale l’affectation incompatible, puis ajoutez une formulation qui oriente les utilisateurs vers une annotation de tuple de longueur variable et vérifiez-la avec cet exemple.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- devtools
- Type d'issue
- Fonctionnalité
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 48/100