Skip to content
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

Merged
merged 3 commits into from
Nov 2, 2023
Merged

Update pylint to version 3.0 #1310

merged 3 commits into from
Nov 2, 2023

Conversation

wshanks
Copy link
Collaborator

@wshanks wshanks commented Nov 1, 2023

  • 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

* 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.
@wshanks wshanks added the Changelog: None Do not include in changelog label Nov 1, 2023
@wshanks wshanks requested a review from coruscating November 1, 2023 20:54
@wshanks
Copy link
Collaborator Author

wshanks commented Nov 1, 2023

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 QiskitTestCase.

Copy link
Collaborator

@coruscating coruscating left a 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,
Copy link
Collaborator

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?

Copy link
Collaborator Author

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?

Copy link
Collaborator Author

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?

Copy link
Collaborator

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.

Copy link
Collaborator Author

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.

Copy link
Collaborator Author

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.
@wshanks
Copy link
Collaborator Author

wshanks commented Nov 2, 2023

By the way, I ended up not needing this for #1285. I was going to replace some of the checking that QiskitTestCase did with a custom pylint checker, but I decided that it was not necessary.

@wshanks wshanks added this pull request to the merge queue Nov 2, 2023
Merged via the queue into qiskit-community:main with commit 0666228 Nov 2, 2023
10 checks passed
nkanazawa1989 pushed a commit to nkanazawa1989/qiskit-experiments that referenced this pull request Jan 17, 2024
* 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: None Do not include in changelog
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants