-
Notifications
You must be signed in to change notification settings - Fork 127
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update pylint to version 3.0 #1310
Conversation
* Remove leading `_` from type alias (since it is type annotations it is effectively a public name) * Disable the cyclic import checker. By its definition, we do have cyclic imports. pylint seems not to find them when using multiple processes but it does find them when using a single process.
I want a newer version of pylint for #1285 where I want to use it to replace some of the benefits we were getting from |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM overall, just a minor question.
@@ -70,6 +70,9 @@ disable=fixme, # disabled as TODOs would show up as warnings | |||
no-else-return, # relax "elif" after a clause with a return | |||
docstring-first-line-empty, # relax docstring style | |||
import-outside-toplevel, | |||
cyclic-import, # This checker raises on all module pairs that import each other, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we also turn off parallelism when running pylint to catch more errors potentially now that this check has been disabled?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not sure what else there is that can get caught with parallelism disabled. Our tests are slower so there is not much downside to removing parallelism for the CI runs (I see around 10 mins for test and under 3 for pylint with parallelism). Maybe it should be left on for a run someone would call locally, or at least easy to opt into. Or maybe people don't generally run it on all files locally any way (versus just on the file being edited). What do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added a commit to remove the parallelism but make it possible to enable it optionally with tox by moving the posargs
location. I don't think it's common to want extra arguments to black?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, that looks good! I haven't heard of people passing arguments to black. And I don't know specifically what removing parallelism might catch, but it seems fine since linting isn't that slow.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I actually ran into a reason to pass an argument to black. tox runs with --check
without --diff
. You might want to run with --diff
to see what the changes would be. It's simple enough just to run -eblack --diff
in that case though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
By the way, the time only changed from 2:46 to 2:54 for the two runs here with and without parallelism. There could be more difference locally on a system with more cores. The GitHub runners seem to have only two.
Move `posargs` from black to pylint for the tox lint commands so that pylint parallelism can be opted into.
By the way, I ended up not needing this for #1285. I was going to replace some of the checking that |
* Remove leading `_` from type alias (since it is type annotations it is effectively a public name) * Disable the cyclic import checker. By its definition, we do have cyclic imports. pylint seems not to find them when using multiple processes but it does find them when using a single process. * Remove default parallelism from tox pylint runs and from the CI run * Move `posargs` from black to pylint in the tox lint commands so that parallelism can be used optionally
_
from type alias (since it is type annotations it is effectively a public name)posargs
from black to pylint in the tox lint commands so that parallelism can be used optionally