[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:
https://blog.jetbrains.com/pycharm/2013/02/dynamic-runtime-type-inference-in-pycharm-2-7/
And more tersely, in the documentation:
https://www.jetbrains.com/help/pycharm/python-debugger.html
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 !
S.
--
Stefane Fermigier - http://fermigier.com/ - http://twitter.com/sfermigier -
http://linkedin.com/in/sfermigier
Founder & CEO, Abilian - Enterprise Social Software -
http://www.abilian.com/
Chairman, Free&OSS Group / Systematic Cluster -
http://www.gt-logiciel-libre.org/
Co-Chairman, National Council for Free & Open Source Software (CNLL) -
http://cnll.fr/
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