GSoC 2022 Project Idea 11.2: Type hints for the PyNN model description API (175 h)

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.

Thank you.

Hi @NeelayS,

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.
Thanks.

I suggest https://github.com/NeuralEnsemble/PyNN/blob/master/pyNN/random.py since it is fairly self-contained.

1 Like