4) 10 years ago, when I was working on the EDOS project ( http://cordis.europa.eu/pub/
ist/docs/directorate_d/st-ds/), 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. edos-project-story_en.pdfI 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.
Now I believe something could be done along the lines:a) record runtime type information from test or regular runsb) 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)