Skip to content

refactor!: drop support for python 3.8, add some more ruff rules

Explanation of changes

  • Set the minimum Python version to 3.9 wherever it's checked
  • Modernise code by fixing pyupgrade warnings
    • Change all Dict, List etc. annotations to lowercase
    • Move imports used only for type checking under a TYPE_CHECKING block, with the exception of those used by Pydantic models
    • Change assert False in code to raise AssertionError()
    • raise ... from None for custom exceptions that are re-raised from others (please lmk if there are some for which you want a full/double stack trace instead)
    • Remove some unused loop variables (except some cases in which their end-of-loop value is [ab]used)
    • Other minor adjustments
  • Add the flake8-bugbear rules while I'm at it
    • Tackle some problematic "gotchas" reported by B rules

Motivation of changes

Because we want to drop Python 3.8 (https://endoflife.date/python).


Merge checklist

See also merge request guidelines

  • Merge request has been reviewed (in-depth by a knowledgeable contributor), and is approved by a project maintainer.
  • New code is covered by unit tests (or N/A).
  • New code is documented and docstrings use numpydoc format (or N/A).
  • New functionality: considered making private instead of extending public API (or N/A).
  • Public API changed: added @deprecated and entry in deprecated code suggestions (or N/A).
  • Newly added/adjusted documentation and docstrings render properly (or N/A).
  • Pipeline fix or dependency update: post in #software-for-developers channel to merge main back in or update local packages (or N/A).
  • Tested on hardware (or N/A).
  • CHANGELOG.md for breaking changes and AUTHORS.md have been updated (or N/A).
  • Update Hardware backends documentation if backend interface change or N/A
  • Check whether performance is significantly affected by looking at the Performance metrics results.
  • Windows tests in CI pipeline pass (manually triggered by maintainers before merging).
    • Maintainers do not hit Auto-merge, we need to actively check as manual tests do not block pipeline

For reference, the issues workflow is described in the contribution guidelines.

Edited by Fabio Grigolo

Merge request reports

Loading