PyNN is a simulator-independent language for building neuronal network models, implemented as a Python API. Type hinting is a way to indicate the type of a value within Python code, introduced in Python 3.5. By applying type hinting to the PyNN code base, we will make the code more self-describing, make it easier for simulator developers to implement the API for their own simulator, and make it possible to develop automated checks for PyNN-compatibility.
Mentor: Andrew Davison @apdavison, co-mentor Chitaranjan Mahapatra.
Effort: 175 hours.
Tech keywords: Python, API
Hi @apdavison, I’m Neelay Shah, a final year undergraduate student from India. I’m interested in open-source development and have previously worked on developing libraries / tools for machine learning problems: EzFlow, KD-Lib, and VFormer.
I’m interested in this project and was wondering how I could start working towards a proposal. I think a tool like MonkeyType could be of use for this task. Do you think a good first step could be to add type annotations for maybe one file in PyNN’s code repository and open a pull request for it? Please let me know.
Yes, I think that sounds like a good first step. I used a similar approach (using MonkeyType) to start adding annotations for lazyarray, which is one of PyNN’s dependencies (see https://github.com/apdavison/lazyarray/tree/type-annotations - still a work-in-progress), and then mypy to check the types.
Thanks. Any suggestions for which file / module in PyNN’s GitHub repo I should try it out on for a first PR?
Hi @apdavison, I was just wondering whether you had any suggestions for which file / module in PyNN’s GitHub repo would be good for a first PR. Please let me know if you have any thoughts.