Different linting rules are applied across core and calc (see pyproject.toml). We should be consistent but core has ~200 small errors. calc is in pretty good shape.
Ruff
Enable extended rulesets
Mypy
Check and remove any lines with:
# mypy: ignore-errors
@no_type_check
And fix the errors.