Introduction to Satyrn
Code in Satyrn is executed in "Cells", which are small blocks of code that should perform a few small functions, but share variables, functions, imports, etc. Splitting code into these Cells allows users to run lots of "setup" cells and then play around with a cell that depends on the setup to function. This prevents users from having to run lengthy code over and over again. A similar application is Jupyter's Notebook.
Most code is executed as a list of instructions,
print(1)
print(2)
print(3)
However, Satyrn's code execution is different. Code inside of cells still executes normally, but cells are not necessarily linked linearly.
In the graph above, cell root
is what's called a "parent cell", with a
and b
being its children, and c
being the child of b
. This is how Satyrn Graphs, or .SATX
files, are structured. Satyrn performs a breadth-first
traversal on its graph to execute the code within the cells. This means that while cell root
will execute before all
other cells, cells a
and b
will run their code simultaneously, and once both a
and b
are finished, c
will execute. This is particularly useful in situations like data analysis, where lots of data
must be preprocessed before they can be used. If you have multiple sets of data to preprocess, why not preprocess them
simultaneously instead of waiting for them to finish 1-by-1?
Satyrn is also a great tool for collaboration. While using the UI, the graph state is shared over your local network
via a CherryPy WSGI server. This allows machines on your local network to edit the same code you're working on by
navigating to your IP address in their browser, no Python/Satyrn installations required. If you desire more security,
the --hidden
command line argument will hide your Satyrn instance from the network. Use caution when working with
Satyrn on public networks.