Summary
The codebase has 671 mypy type checking errors that are pre-existing in the main branch. These errors are blocking the CI Type Check job.
Current Status
- Lint: ✅ Passing
- Type Check: ❌ 671 errors
- E2E Tests: ✅ Passing
- Security Scan: ✅ Passing
Error Categories
The main categories of errors include:
- Invalid base class "Base" - Many SQLAlchemy models have issues with not being recognized as a valid type (valid-type, misc errors)
- Union attribute errors - Optional types having None checks but still accessed without proper handling (union-attr)
- Name redefinitions - Properties defined multiple times (no-redef)
- Missing type stubs - Third-party libraries without type stubs (import-untyped)
- Assignment type mismatches - Incompatible types in assignment (assignment)
Files with Most Errors
-
- Multiple Base class issues
-
- Multiple Base class issues
-
-
-
-
-
-
- Missing stubs and type issues
Recommendation
These errors have likely accumulated over time and should be addressed systematically. Options include:
- Fix incrementally - Address errors file by file
- Add to ignore list - Add pre-existing errors to mypy ignore list in pyproject.toml (like we did for lint)
- Enable strict mode gradually - Consider enabling stricter mypy settings incrementally
Verification
Run locally with:
mypy src/ --config-file=pyproject.toml
See CI run for current status: https://github.com/anchapin/ArbitrageAI/actions/runs/22770689934
Summary
The codebase has 671 mypy type checking errors that are pre-existing in the main branch. These errors are blocking the CI Type Check job.
Current Status
Error Categories
The main categories of errors include:
Files with Most Errors
Recommendation
These errors have likely accumulated over time and should be addressed systematically. Options include:
Verification
Run locally with:
See CI run for current status: https://github.com/anchapin/ArbitrageAI/actions/runs/22770689934