Skip to content

Update pylint to version 3.0#1310

Merged
wshanks merged 3 commits into
qiskit-community:mainfrom
wshanks:pylint
Nov 2, 2023
Merged

Update pylint to version 3.0#1310
wshanks merged 3 commits into
qiskit-community:mainfrom
wshanks:pylint

Conversation

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

Comment thread .pylintrc
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
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