prospector icon indicating copy to clipboard operation
prospector copied to clipboard

Support for PyCharm's "noinspection" error suppression markers.

Open techdragon opened this issue 7 years ago • 2 comments

In the absence of a standard for error suppression marks/comments, since Prospector supports the use of #noqa from pep8 and pyflakes, as well as #pylint comments, support PyCharm's suppression comments, which are similar to the new style symbolic name pylint ones.

This gist contains a script that shows how we can extract the current ones for the purposes having a way to check when new ones have been added without trial and error, as well as providing a reference list of the current error suppression markers that will need to be supported.

I'm raising this here, since I'm not sure the best way to get the support across all of the tools supported by prospector. Since there are going to be various tool inspection priorities that affects which tools will need to support which annotations.

Edit 1

It might even be possible to support the PyCharm syntax for ignoring certain things in an entire file inside prospector itself, as this is normally at the top of files and might be easy enough for Prospector to inspect itself.

techdragon avatar Aug 11 '18 15:08 techdragon

This kind of logic is handled here https://github.com/PyCQA/prospector/blob/master/prospector/suppression.py - so adding some extra directives might be enough.

This is also a little bit related to the logic in the postfilter here - https://github.com/PyCQA/prospector/blob/master/prospector/postfilter.py

I won't have time to look into this for a while, just adding this comment for anyone who wants to make a PR (hint hint ;-) )

carlio avatar Aug 11 '18 23:08 carlio

@carlio Thanks for the very helpful links to the appropriate sections of the code. From the look of things, it should be possible to get what I want just by adding some more code to suppression.py and even the feature I was worried would be a large effort might actually just be a simple matter of extending get_suppressions with another section of code similar to https://github.com/PyCQA/prospector/blob/master/prospector/suppression.py#L107-L116 but for PyCharm's suppressions. I should have some time to cook up a PR in the next couple of weeks.

techdragon avatar Aug 15 '18 08:08 techdragon