Skip to content

Commit b7957a8

Browse files
authored
Merge pull request #83 from igerber/chore/tech-debt-todo-updates
Update TODO.md with tech debt assessment findings
2 parents 287bd7a + 972ce75 commit b7957a8

1 file changed

Lines changed: 49 additions & 4 deletions

File tree

TODO.md

Lines changed: 49 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,16 @@ Target: < 1000 lines per module for maintainability.
2525

2626
| File | Lines | Action |
2727
|------|-------|--------|
28+
| `staggered.py` | 2301 | Consider splitting to `staggered_bootstrap.py` |
2829
| `prep.py` | 1993 | Grew with DGP functions; consider splitting |
29-
| `staggered.py` | 1822 | Consider splitting to `staggered_bootstrap.py` |
30-
| `honest_did.py` | 1491 | Acceptable |
31-
| `visualization.py` | 1388 | Acceptable |
32-
| `utils.py` | 1350 | Acceptable |
30+
| `trop.py` | 1703 | Monitor size |
31+
| `visualization.py` | 1627 | Acceptable but growing |
32+
| `honest_did.py` | 1493 | Acceptable |
33+
| `utils.py` | 1481 | Acceptable |
3334
| `power.py` | 1350 | Acceptable |
35+
| `triple_diff.py` | 1291 | Acceptable |
36+
| `sun_abraham.py` | 1176 | Acceptable |
37+
| `pretrends.py` | 1160 | Acceptable |
3438
| `bacon.py` | 1027 | OK |
3539

3640
### Standard Error Consistency
@@ -46,6 +50,47 @@ Different estimators compute SEs differently. Consider unified interface.
4650

4751
**Action**: Consider adding `se_type` parameter for consistency across estimators.
4852

53+
### Type Annotations
54+
55+
Pyright reports 282 type errors. Most are false positives from numpy/pandas type stubs.
56+
57+
| Category | Count | Notes |
58+
|----------|-------|-------|
59+
| reportArgumentType | 94 | numpy/pandas stub mismatches |
60+
| reportAttributeAccessIssue | 89 | Union types (results classes) |
61+
| reportReturnType | 21 | Return type mismatches |
62+
| reportOperatorIssue | 16 | Operators on incompatible types |
63+
| Others | 62 | Various minor issues |
64+
65+
**Genuine issues to fix (low priority):**
66+
- [ ] Optional handling in `estimators.py:291,297,308` - None checks needed
67+
- [ ] Union type narrowing in `visualization.py:325-345` - results classes
68+
- [ ] numpy floating conversion in `diagnostics.py:669-673`
69+
70+
**Note:** Most errors are false positives from imprecise type stubs. Mypy config in pyproject.toml already handles these via `disable_error_code`.
71+
72+
### Rust Code Quality
73+
74+
Clippy reports 6 warnings (no errors):
75+
76+
- [ ] `rust/src/linalg.rs:32` - Define type alias for complex return type
77+
- [ ] `rust/src/trop.rs` - Refactor 3 functions with >7 arguments to use param structs
78+
- `loocv_score_for_params` (12 args)
79+
- `compute_weight_matrix` (9 args)
80+
- `estimate_model` (9 args)
81+
82+
---
83+
84+
## Deprecated Code
85+
86+
Deprecated parameters still present for backward compatibility:
87+
88+
- [ ] `bootstrap_weight_type` in `CallawaySantAnna` (`staggered.py:746,763-771`)
89+
- Deprecated in favor of `bootstrap_weights` parameter
90+
- Warning text says "removed in v2.0" - update to "v3.0" when ready
91+
- Also used in: README.md (2x), tutorial 02, test_staggered.py
92+
- Remove in next major version (v3.0)
93+
4994
---
5095

5196
## Test Coverage

0 commit comments

Comments
 (0)