- Add pydantic>=2.10.6 dependency
- Replace all TypedDict classes with Pydantic BaseModel in simulator.py
- Update ConfigParser to return list[ProfileConfig] instead of list[dict]
- Update views.py to mutate Pydantic model attributes
- Update all test files to use Pydantic models
- Fix StopIteration exception handling in _update_state
- Add type annotation for progress_by_day dict
- Disable ruff SIM108 rule (conflicts with explicit if/else requirement)
This provides runtime validation in addition to static type checking,
fixing all 21 MyPy type errors without using Any or type: ignore.
feat: implement TDD for Wall Construction API with full type safety
Complete test-driven development implementation:
- Profile model with full CRUD API (13 tests, django-filter integration)
- WallSection model with height calculations (11 tests, ice/crew validation)
- Django REST Framework serializers and viewsets with comprehensive test coverage
- Full type safety with django-stubs==5.2.6 and djangorestframework-stubs==3.16.4
- Fixed all 61 mypy errors: added type parameters to ModelSerializer[T] and ModelViewSet[T]
- Updated test fixtures with proper APIClient typing (was object)
- Upgraded factory-boy==3.3.3 for native type annotations
- Removed legacy mypy config from other projects
- 24 tests passing, 96% coverage, 0 mypy errors
chore: cleanup demo project - remove redundancies and fix configs