J’ai un cas bizarre aujourd’hui avec mypy :
pip install mypy==2.3.1 django-pgtrigger==4.17.0
import pgtrigger
pgtrigger.Q(foo_bar=42)
lancer mypy sur le fichier me donne :
foo.py:4: error: Unexpected keyword argument "foo_bar" for "Q" [call-arg]
foo.py:4: note: "Q" defined in "pgtrigger.core"
Found 1 error in 1 file (checked 1 source file)
Mais je ne vois pas du tout pourquoi… et je n’arrive pas à reproduire l’erreur en dehors de Django (copier-coller la class Q de Django en entier dans un autre fichier corrige le bug, ça n’a pas de sens à mes yeux).
Je n’ai aucun stub d’installé et j’ai triplement vérifié (find, strace, …), mypy n’a pas l’air de se faire piéger par un sub. D’ailleurs installer django-stubs corrige l’erreur (mais pourquoi !?).
Le seul truc qui me fait tiquer c’est que le __init__ de class Condition ne coopère pas (pas de super().__init__(**kwargs)), et que l’ajouter cache l’erreur (mais je ne comprends pas pourquoi, un effet de bord dans mypy ?)
Quelqu’un y voit plus clair ? Je fatigue ou quelque chose ?