When using`--disallow-any-expr`, silence complaints about Any where object would work
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
Problem
Using Any is not type safe, therefore Mypy provides options to disallow Any. However, there are many uses of Any from third-party and stdlib, so these options tend to result in a lot of errors even when they are not relevant.
I'm finding many situations where I get an error about Any, but the code would be deemed safe if it was object.
Examples
This produces errors about Any on both lines even though the value is not used:
type_hints = typing.get_type_hints(...) # Dict[str, Any]
if k in type_hints:
...
This produces errors as well, but object would not produce errors, as Mypy can infer everything necessary here to be type safe.
origin = typing.get_origin(...) # Any
if origin is Literal:
...
elif origin is list:
...
Solution
Add an option, or change the behaviour of the current disallow Any options, such that Any is treated like object. Then, rather than producing errors when Any is present, just show normal errors with Any (as if it was object) in them (e.g. 'Any has no attribute foo').
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 reproduire les deux exemples avec --disallow-any-expr et comparez leurs diagnostics avec des annotations object équivalentes. Examinez la gestion existante des options disallow-Any, puis définissez des tests pour traiter Any comme object tout en conservant les erreurs ordinaires, comme les attributs manquants.
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é
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100