Improve message if user forgot to call a function
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
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:
- Only say
Callable object has no attribute "foo"(omit the full callable type). - Add a note such as
Did you mean ".foo()" (with parentheses)?(needs wordsmithing). - 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
- 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
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