ASE 2024
Sun 27 October - Fri 1 November 2024 Sacramento, California, United States

In this experience paper, we design, implement, and evaluate a new static type-error detection tool for Python. To build a practical tool, we first collected and analyzed 68 real-world type errors gathered from 20 open-source projects. This empirical investigation revealed four key static-analysis features that are crucial for the effective detection of Python type errors in practice. Utilizing these insights, we present a tool called {\ours}, which can successfully detect 34 out of the 68 bugs, compared to existing type analysis tools that collectively detect only 16 bugs. We also discuss the remaining 34 bugs that {\ours} failed to detect, offering insights into future directions for Python type analysis tools. Lastly, we show that {\ours} can uncover previously unknown bugs in recent Python projects.