Alternative approach via stubfiles
- Dominant language
- Python
- Stars
- 1.4k
- Forks
- 60
- PR merge metrics
- No merged PRs in 30d
Description
This is not an issue. I just wanted to crosslink an approach with the same goal that might be of help for some use cases (and eventually save us all from doing work twice).
``TypeLogger`` from [pytypes](https://github.com/Stewori/pytypes) can observe types at runtime and then write a PEP-484 stubfile from that information.
All versions of ``typing`` are supported and it runs on Python 2.7, 3.3, 3.4, 3.5, 3.6, PyPy and Jython.
See https://github.com/Stewori/pytypes#usage-example-with-profiler.
The approach differs from pyannotate in that it does not write into existing code, but always creates an external PEP-484 conform stubfile that should be suitable for use with mypy (pytypes itself can use it for runtime typechecking).
A nice goodie is that it can take existing type annotations into account and extend them by information acquired from runtime observations.
The tool supports OOP -- classes, inner classes, static methods, class methods and properties -- and automatically writes a proper import section for the types in use.
Disclaimer: It is not perfect yet and still in beta. Please file issues as they come up. Help is welcome!
Contributor guide
Assessment
This issue has not been assessed yet.