python / python/mypy

Improve message if user forgot to call a function

Ouverte
#7,687 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

priority-1-normal topic-error-reporting topic-usability
Langage dominant
Python
Étoiles
20.6k
Forks
3.3k
Métriques de merge des PR
Métriques de PR en attente

Description

Forgetting to call a method, i.e. missing (), is a somewhat common programming error. Mypy will typically catch this error, but often error messages includes something like "Callable[...]" has no attribute "foo". Since the callable type may be pretty complicated, this can look confusing.

Here are a few ideas that could make this better:

  1. Only say Callable object has no attribute "foo" (omit the full callable type).
  2. Add a note such as Did you mean ".foo()" (with parentheses)? (needs wordsmithing).
  3. In addition to (1), show the signature of the function in a separate note pretty-printed using function definition syntax such as def foo() -> List[X].

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

Aucun fichier ni test n'est nommé. Commencez par localiser le chemin de diagnostic de mypy pour un objet Callable signalé comme n'ayant pas d'attribut, puis comparez les options proposées pour la formulation et la note de signature. C'est terminé lorsque le type Callable déroutant est présenté plus clairement et que la couverture de régression vérifie l'indication concernant les parenthèses manquantes.

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é
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

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