Introducing Type Annotations for Python

Guido Van Rossum, Jukka Lehtosalo, Greg Price, and David Fisher


Dropbox has several million lines of production code written in Python 2.7. As a first step towards migrating to Python 3, as well as to generally make our code more navigable, we are annotating our code with type annotations using the PEP 484 standard and type-checking the annotated code with mypy. In this talk we will discuss lessons learned and show how you too can start type-checking your legacy Python 2.7 code, one file at a time. We will also describe some of the many improvements we’ve made to mypy in the process, as well as some other tools that come in handy.

Mypy is an open-source type-checker for Python. It was originally created by one of the speakers, Jukka Lehtosalo, in support of his PhD thesis, before he joined Dropbox. Mypy supports the PEP 484 standard for gradual typing in Python. It supports Python 3.2 and higher, as well as Python 2.7 (using function signatures in type comments, per a recent update to PEP 484).

Speaker Bios

Guido van Rossum

Guido van Rossum is the author of the Python programming language. He continues to serve as the "Benevolent Dictator For Life" (BDFL), meaning that he continues to oversee the Python development process, making decisions where necessary. He is currently employed by Dropbox.

Jukka Lehtosalo

Jukka Lehtosalo created mypy, an optional static type checker for Python, while working on his PhD at the University of Cambridge. He currently works at Dropbox and continues to lead the development of mypy.

Greg Price

Greg Price is an engineer at Dropbox. Previously he worked at Quora and helped Ksplice make rebooting obsolete.

David Fisher

David Fisher works full time on mypy (the PEP 484 static type checker) at Dropbox. He enjoys learning esoteric languages in his spare time.

Video of Presentation
From YouTube

Meeting Details

Meeting Schedule:

  • 7:00 pm Networking
  • 7:15 pm Announcements and presentation
  • 8:45 pm Random access
  • 9:00 pm Event ends


605 W. Maude Ave, Sunnyvale, CA. 94085

Meeting Room:
Yosemite Room