mypy-PyCharm-plugin
mypy-PyCharm-plugin copied to clipboard
Right-click on function to apply annotation suggestions
Would be great to make use of dmypy suggest to add annotations to existing code.
Actually you can already do this in some sense. There is a hidden (or rather just not advertised as official) hot key Ctrl+Shift+Y that will launch a script at ./mypy/mypy-suggest (hardcoded) and pass it current file name and current line number and then reloads the doc. You can write a short script that essentially pipes dmypy suggest to pyannontate -w that will apply the suggestion in-place.
But yeah, making it on right click and more automated would be great.
Actually you can already do this in some sense. There is a hidden (or rather just not advertised as official) hot key Ctrl+Shift+Y that will launch a script at ./mypy/mypy-suggest (hardcoded) and pass it current file name and current line number and then reloads the doc.
I see. I tried this out and it failed with this error:
/bin/bash ./mypy/mypy-suggest: no such file or directory
I started pycharm from a shell where dmypy suggest -h works, and the mypy console in pycharm works correctly as well. Perhaps what's hardwired is not dmypy suggest?
On a related note, I've been playing around with dmypy suggest and it doesn't seem to take the current scope into consideration when generating annotations.
I get something like this:
dmypy suggest mymodule.myfunc
() -> mymodule:Dict[str, mymodule.Dict[str, module.MyClass]]
When I expect something like this:
dmypy suggest mymodule.myfunc
() -> Dict[str, Dict[str, MyClass]]
The annotations produced by dmypy suggest won't work without being fixed up. Is this by design, or a bug, or user error?
Perhaps what's hardwired is not
dmypy suggest?
Of course it isn't, please read carefully the sentence you quoted.
Is this by design, or a bug, or user error?
I think this is by design. We have been using this extensively internally for long time, and it worked well for pyannotate.