- use flake8 as the main linting tool with the following plug-ins:
+ flake8-annotations
+ flake8-bandit
+ flake8-black
+ flake8-broken-line
+ flake8-bugbear
+ flake8-commas
+ flake8-comprehensions
+ flake8-debugger
+ flake8-docstrings
+ flake8-eradicate
+ flake8-isort
+ flake8-quotes
+ flake8-string-format
+ flake8-pyproject
+ pep8-naming
+ pydoclint
- use mypy for static type checking
- use ruff for linting for future compatibility
- add nox session "lint" to run these tools
- add `ruff check --fix ...` in nox session "format"
- lint all source files => no errors found