Bringing NumPy's type-completeness score to nearly 90% – Pyrefly
10 days ago
- #Type Annotations
- #NumPy
- #Python Development
- NumPy's type-completeness score improved from 33% to nearly 90% with contributions from Quansight Labs and Meta's Pyrefly team.
- A one-line fix corrected a typo in a type annotation, doubling coverage to over 80%.
- Typing efforts focused on the MaskedArray class, increasing its type-completeness from 20% to 100%.
- Remaining tasks include typing top-level numpy.ma functions, refining overloads, and integrating a type-checker into NumPy's CI.
- Type-completeness measures the percentage of a library's public API covered by type annotations, enhancing IDE suggestions and developer experience.
- Pyright was used to measure type-completeness, with adjustments made to exclude external and test modules for accuracy.
- The project highlights the importance of precise type annotations and the challenges of handling overloads in scientific Python code.