Skip to main content

A command-line based alternative to Jupyter notebooks

Project description

Codacy Badge made-with-python PyPI

GitHub license Open Source Love svg1

Maintenance PRs Welcome

GitHub issues GitHub issues-closed

Say Thanks!

Satyrn

Satyrn is a command-line-based alternative to Jupyter notebooks. The backend is completely based on node networks, because it supports branching, multithreaded cell paths.

This project is based on this JEP for the Jupyter ecosystem. I'm using this as a way to prepare for development of the features I've listed in the enhancement proposal. The Satyrn team is developing a web-based UI.

Setup

  • Run python -m pip install satyrn-python
  • Run satyrnCLI in your terminal to open the Satyrn CLI
  • Run satyrn in your terminal to open the Satyrn UI (unstable)

CLI Commands

  • quit - Quits out of interpreter
  • cell [cell_name] [content_type](python/markdown) [add_content](y/n)
    • Creates cell with given parameters
    • All cells require unique names
    • The first cell created will always be treated as the "root" cell, and will always be executed first in a complete execution call.
    • Set content_type to "python" for python cells
    • If add_content is "y", a text box will pop up. Input your python code here.
  • remove [cell_name]
    • Deletes cell and its links from graph.
  • edit [cell_name]
    • Reopens text input window so that users can edit cells
  • link [first_cell_name] [second_cell_name]
    • Links the two cells whose names are provided. You can technically still make branching graphs this way, but they will not work at all.
  • sever [first_cell_name] [second_cell_name]
    • Severs the link between the two cells whose names are provided
  • merge [first_cell_name] [second_cell_name]
    • Merges the two cells if they are adjacent.
  • swap [first_cell_name] [second_cell_name]
    • Swaps the contents and names of the named cells. e.g.
      • a -> b -> c
      • swap a b
      • b -> a -> c
  • execute [cell_name_1] [cell_name_2] ... >> (filename)
    • If no cell names are defined, the entire graph will execute sequentially
    • If cell names are defined, they will execute in the order they are named
    • >> (filename) is optional. If included, will save stdout cell output to whatever filename is provided.
  • display [cell_name]
    • If cell_name is defined, that cell's contents will be printed to the console
    • Otherwise, the entire graph will be displayed in matplotlib.
  • list
    • Prints a list of all cell names and edge pairs in graph
  • reset_runtime
    • Deletes all local variables created by cells.
  • reset_graph
    • Deletes all cells and variables. Equivalent of restarting Satyrn session.
  • save [filename].satx
    • Saves graph to .satx file.
  • [filename].satx
    • This will run a .satx file. It's just a reformatted version of the normal Satyrn input. This test file shows the basic syntax rules.

CLI Example

Here, code written in [ ] brackets was typed into the text box popup.

♄: create_cell root python y
[x = 10]
♄: create_cell mid python y
[x *= 22]
♄: create_cell bottom python y
[print(x)]
♄: link root mid
♄: link mid bottom
♄: execute
220
♄: quit

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

satyrn-python-0.6.9.tar.gz (12.8 kB view hashes)

Uploaded Source

Built Distributions

satyrn_python-0.6.9-py3.7.egg (55.1 kB view hashes)

Uploaded Source

satyrn_python-0.6.9-py3-none-any.whl (25.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page