Observation
With pyright's default exclude list restored (chore/pyright-exclude, PR #94), running pyright 1.1.414 against the repo reports 23 errors, 0 warnings in project code:
campus_python/ sources: __init__.py ×6, assignments.py ×2, oauth.py ×1 (reportArgumentType / reportAttributeAccessIssue / reportOptionalMemberAccess / reportCallIssue / reportReturnType)
- tests:
test_unauthorized_refresh.py ×6, test_campus_request.py ×2, test_audit.py ×1, plus 1 reportMissingImports (a test-side sys.path import, presumably)
Ask
Resolve the 23 diagnostics (or scope the config with per-file ignores where deliberate), then add a pyright job to .github/workflows/python-tests.yml following the nyxchange-timetable-v2 pattern (poetry run pyright with pyright as a dev dependency). This repo is the client every student app pins, so it should be the first place the gate lands.
Context
Found 2026-10-04 while applying the same exclude fix as nyxchange-timetable-v2#64 (PR #94). This repo currently gates on pytest only; the nyxchange fix (PR there: #66) is the reference for config + gate.
Observation
With pyright's default exclude list restored (chore/pyright-exclude, PR #94), running pyright 1.1.414 against the repo reports 23 errors, 0 warnings in project code:
campus_python/sources:__init__.py×6,assignments.py×2,oauth.py×1 (reportArgumentType / reportAttributeAccessIssue / reportOptionalMemberAccess / reportCallIssue / reportReturnType)test_unauthorized_refresh.py×6,test_campus_request.py×2,test_audit.py×1, plus 1 reportMissingImports (a test-side sys.path import, presumably)Ask
Resolve the 23 diagnostics (or scope the config with per-file ignores where deliberate), then add a pyright job to
.github/workflows/python-tests.ymlfollowing the nyxchange-timetable-v2 pattern (poetry run pyrightwith pyright as a dev dependency). This repo is the client every student app pins, so it should be the first place the gate lands.Context
Found 2026-10-04 while applying the same exclude fix as nyxchange-timetable-v2#64 (PR #94). This repo currently gates on pytest only; the nyxchange fix (PR there: #66) is the reference for config + gate.