Linting
courseflow
is often run on sensitive student data; as such, we want
to perform as many checks on our code ahead of time as we can to have
confidence in its correctness. This includes running steps initially in
debug mode, but also having support for static-time analysis of our code,
which our linter performs. This includes:
Formatting with Black
Style checking with Flake8
Type checking with Mypy
Flake8 extensions, as well as the --strict
flag for Mypy, are used to
robustly check our code. These can all be run using the top-level lint
script.