Post

GSoC 2026 - Week 10

Here is week 10 update for my project:

This week, I completed the support for custom code widget started last week and merged it as part of PR #43

Here are some of the changes made as part of this PR:

  • Add a generic custom code widget
    • Support for setup code that runs once
    • Support for execution code that runs as per run frequency
  • Add a re-usable NotebookCell UI component
    • Supports code complete and inspect
  • Support for using a NotebookCell as an input type
  • Support for accessing universe as variable ‘u’ in all custom code
  • Support for multiple outputs from widget runs
    • Array of outputs that can include text, error or images
  • Tests for all new functionality
  • Disable jedi for code completions on macos python 3.12

This widget allows users to add their custom code without having to write a full custom widget class (which requires a lot more boiler plate code) for quick use cases. The generic NotebookCell component provides code autocomplete and inspect support to make it easier to write code. I also added detailed instructions in the docs based on review comments.

Notebook cell code autocomplete Notebook cell code autocomplete

I then refactored some code between kernel core and widget manager as part of PR #45 to keep the code within core a bit simpler and clean.

I then added generic Notebooks support as part of PR #46. This allows users to create multiple Notebooks from within the dasboard GUI. Most of the standard Notebook functionality is available. Ability to run them on launch (to load any classes / functions / custom widgets defined) is also supported.

I then added support for custom Universe configuration using the same NotebookCell component as part of PR #47. This allows users to add built-in MDA or user-defined transformations / transformation workflows to the Universe.

Custom Universe setup Custom Universe setup

I then make some fixes to support custom widgets as part of PR #48.

Here are some of the changes made as part of this PR:

  • Use passed log level for kernel logger as well
  • Support repeated run of custom widget class by allowing name override
  • Support custom widgets with no inputs
  • Support auto refresh of widget instances when class is updated
  • Fix minor padding issue in add widgets menu

With this PR, any custom widget class changes get instantly refelected on the dashboard.

I finally added support for cloning built-in widget code into Notebooks so that users can customize them further if needed. as part of PR #49

Cloned widget Notebook Cloned widget Notebook

With this week, we have all the core functionality along with customization support through Notebooks and related features.

Release v0.0.7 has all changes upto Week 10.

Next week, I will get started on adding a few more analysis widgets and then follow it up with adding more documentation and tutorials in preparation for the mini workshop scheduled for August 20.

This post is licensed under CC BY 4.0 by the author.