Back to projects
2 min read

GoNotebookRunner

A Go-powered tool for running Python scripts and Jupyter notebooks with execution tracking, visualization support, and dataset path handling.

I built GoNotebookRunner to make running and analyzing Python scripts and Jupyter notebooks a little easier from the command line.

The idea was pretty simple: give the tool a Python file or a notebook, let it handle the execution, and get useful information about what happened instead of just a success or failure message.

For Python scripts, it runs the code and keeps track of things like execution time, output, errors, and whether the execution was successful. For Jupyter notebooks, it goes a step further by parsing the notebook, processing its code cells, and executing them in a controlled Python environment.

One problem I wanted to solve was dealing with datasets. Notebooks often contain dataset paths that only work on the machine where they were created. GoNotebookRunner can normalize these paths so datasets can be loaded from a configured directory without having to manually change paths every time.

I also added support for capturing visualizations generated during execution, such as Matplotlib figures. So instead of only seeing terminal output, the tool can also keep the graphs produced by the code.

The project uses Go for the main execution and tooling layer, while Python handles the actual Python code execution. Building it gave me a chance to explore how Go and Python can work together, especially when dealing with notebooks, data processing, and command-line tooling.

At its core, GoNotebookRunner is about making Python execution a little more organized: run the code, track what happened, handle the annoying paths, save useful outputs, and make it easier to understand the result.