I just did a lecture on debugging in Python, and in one example, I override the sum() built-in. Students were shocked that Python let me override a built-in without any warning at all. Are there linters that check for that? Or modes to warn about it?
Installing flake8 and flake8-builtins extension would solve the immediate issue, provided students are using an IDE that supports flake8. Maintaining a set of student virtual environments with a bunch of flake-8 plugins may get unwieldy.
I link to Ruff's doc since ruff bundles hundreds of these rules, and can be configured by TOML to selectively enable rules to reduce overwhelm and target outcomes. Higher startup cost, but easier to juggle rules.
Using cyclomatic complexity in code reviews. That would be an interesting experiment - I had no idea that CC was measurable in C++ code! Metrix++ is the relevant tool.
Configuring a max length for comments in #flake8 that's different than the normal max length would be fantastic. It's ugly to write a comment and on the same line need to use # noqa: E501...