Skip to content

Instantly share code, notes, and snippets.

@User-DK
Last active August 30, 2024 17:55
Show Gist options
  • Save User-DK/c712e9b8aad5b7a920845d35e1fd2a38 to your computer and use it in GitHub Desktop.
Save User-DK/c712e9b8aad5b7a920845d35e1fd2a38 to your computer and use it in GitHub Desktop.
Google Summer of Code 2024: Final Work Report

Daivik GSoC'24 Final Report

Seldon-Code: Python Bindings for Seldon

Final Report


  • Organisation: Python Software Foundation, Seldon-Code
  • Mentors: Amrita Goswami, Rohit Goswami, Moritz Sallermann
  • Project length: 350 hours
  • Difficulty level: Hard

Hello I am Daivik Karbhari, I contributed to Python Software Organisation during this year's (2024) Summer of Code. Under the Python Software Foundation (PSF) Organisation umbrella, I contributed to the Seldon-Code: Opinion Dynamics Simulation Framework project. In particular, I created Python bindings using the Pybind11 library for the Seldon framework which is written in C++20. To facilitate wider use and easy identification, we have named this bindings project PySeldonlib as it provides easy access to the Seldon framework from Python.

This initiative will bridge the gap between the engine's high-performance computational capabilities and the flexibility of Python for scripting and data analysis.

The Goals of the project were as Follows:

  • ☑ Create Python Bindings using Pybind11 for Seldon.
  • ☑ Create a Python Package for the same, named as PySeldonlib.
  • ☑ Create Documentation for the Python Package using Sphinx Documentation.
  • ☑ Test the package and publish the package to PyPi (Python Packaging Index)

I am happy to report that I believe I have completed all the goals of my project.

As I worked and reworked building the entire repository from top to bottom so I have a single pull request (PR) from my fork to the PySeldonlib repository which was a blank repo created by the organization mentors.

This PR allowed me to solicit reviewer feedback weekly, without worrying about merging in until the end.

Here's the link: GSoC_final_PR

PyPi Package landing page: pyseldonlib

Documentation: pyseldonlib-doc

Repository: pyseldonlib-repo

During this Summer also wrote both blog-post updates on my progress throughout the coding period, along with shorter updates mandated by the PSF.

Here's a link to my blogs on Python-GSoC mastadon server: Mastadon

Here's a link to the blogs on my personal website: Blogs

The above blogs were complimentary to the weekly mandatory updates posted each week to Mastodon server administered by the Python Software Foundation.

Apart from these outlets, during this coding period I also raised many minor issues and some pull requests which are listed below,

Pull Requests:

Issues

Key learnings

  • Python Bindings creation using Pybind11
  • Python Packaging concepts (wheels and cibuildwheel)
  • Github and Version control system
  • Technical writing and Python documentation with Sphinx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment