[Python-ideas] Possible enhancement to typing

Stéfane Fermigier sf at fermigier.com
Tue Nov 7 01:36:35 EST 2017

On Tue, Nov 7, 2017 at 2:58 AM, Guido van Rossum <guido at python.org> wrote:

> On Mon, Nov 6, 2017 at 2:34 AM, Stéfane Fermigier <sf at fermigier.com>
> wrote:
>> 4) 10 years ago, when I was working on the EDOS project (
>> http://cordis.europa.eu/pub/ist/docs/directorate_d/st-ds/edo
>> s-project-story_en.pdf ), I ran a small experiment where I used, IIRC,
>> the profile hook to intercept all function / method calls, and log
>> information about arguments and return value types to a gigantic log file.
>> Then the log file could be parsed and these information used to suggest
>> type annotations. Except there were no type annotations at the time in
>> Python.
>> I know PyCharm can do a similar thing now: you run your program or your
>> tests under the debugger, it logs runtime type information somewhere, and
>> then can use it to suggest autocompletion or maybe type annotations.
> I didn't know this. Do you know where there are docs for this feature?

This was described in this blog post when first introduced:


And more tersely, in the documentation:

a) record runtime type information from test or regular runs
>> b) massage these information and use them to annotate Python code with
>> additional type information (up to the developer to then accept or not the
>> proposed changes)
> We have an early version of a tool that does this at Dropbox; I am
> planning to open-source it by the end of this year. So far the experience
> is that the annotations require a fair amount of manual cleanup though.

That would be great !


Stefane Fermigier - http://fermigier.com/ - http://twitter.com/sfermigier -
Founder & CEO, Abilian - Enterprise Social Software -
Chairman, Free&OSS Group / Systematic Cluster -
Co-Chairman, National Council for Free & Open Source Software (CNLL) -
Founder & Organiser, PyData Paris - http://pydata.fr/
“You never change things by fighting the existing reality. To change
something, build a new model that makes the existing model obsolete.” — R.
Buckminster Fuller
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20171107/f65c6b46/attachment-0001.html>

More information about the Python-ideas mailing list