mypy
mypy copied to clipboard
Give type annotation suggestion for incompatible **kwargs error
Fixes #8874 .
When raising an error involving passing **kwargs, this PR adds a note informing the user of a potential fix based on @JukkaL's suggestion. For example,
main:3: error: Argument 2 to "dumps" has incompatible type "**Dict[str, int]"; expected "bool"
main:3: note: Consider using a TypedDict type or "Dict[str, any]" for the ** argument
Modified testing suite for compatibility with added note. Also created two new test cases based on JSON and Python classes .
Diff from mypy_primer, showing the effect of this PR on open source code:
pyppeteer (https://github.com/pyppeteer/pyppeteer)
+ pyppeteer/launcher.py:149: note: Consider using a TypedDict type or "Dict[str, any]" for the ** argument
discord.py (https://github.com/Rapptz/discord.py)
+ discord/http.py:544: note: Consider using a TypedDict type or "Dict[str, any]" for the ** argument
+ discord/client.py:658: note: Consider using a TypedDict type or "Dict[str, any]" for the ** argument
ibis (https://github.com/ibis-project/ibis)
+ ibis/expr/types/temporal.py:659: note: Consider using a TypedDict type or "Dict[str, any]" for the ** argument
hydra-zen (https://github.com/mit-ll-responsible-ai/hydra-zen)
+ src/hydra_zen/structured_configs/_implementations.py:1129: note: Consider using a TypedDict type or "Dict[str, any]" for the ** argument
+ src/hydra_zen/wrapper/_implementations.py:454: note: Consider using a TypedDict type or "Dict[str, any]" for the ** argument