Litcius/Paper detail

Python 3 types in the wild: a tale of two type systems

Ingkarat Rak‐amnouykit, Daniel McCrevan, Ana Milanova, Martin Hirzel, Julian Dolby

202028 citationsDOI

Abstract

Python 3 is a highly dynamic language, but it has introduced a syntax for expressing types with PEP484. This paper explores how developers use these type annotations, the type system semantics provided by type checking and inference tools, and the performance of these tools. We evaluate the types and tools on a corpus of public GitHub repositories. We review MyPy and PyType, two canonical static type checking and inference tools, and their distinct approaches to type analysis. We then address three research questions: (i) How often and in what ways do developers use Python 3 types? (ii) Which type errors do developers make? (iii) How do type errors from different tools compare?

Topics & Concepts

Python (programming language)Computer scienceProgramming languageType inferenceInferenceSyntaxType (biology)Software engineeringArtificial intelligenceEcologyBiologySoftware Engineering ResearchLogic, programming, and type systemsAdvanced Malware Detection Techniques
Python 3 types in the wild: a tale of two type systems | Litcius