Cauldron
The Unnotebook
Interactive computing for complex data processing, modeling and analysis in Python 3
Learn More
notifications_active
New Major Release
Version 1.0 has just been releasedreplacing the old desktop-based user interfacewith a new web-based one. See thelaunch stepin the quick start below to start using the new interface.
Cauldron is completely free and open source. And all it takes to get started is...
Install Package
Cauldron is distributed as a Python package that can be installed with pip:
$ pip install cauldron-notebook
or with conda:
$ conda install -c sernst cauldron
Cauldron requires Python 3.5.3+ and recommends Python 3.7.5+ for the best experience.
Launch Cauldron
Start the Cauldron user interface from the command line with:
$ cauldron ui
Cauldron can also be run as an interactive command-line shell without the user interface. More information about that can be found in the Cauldron Github README.
So Why Use Cauldron?
It's a fair question. There are a number of interactive computing environments (notebooks) to choose from these days. To be completely honest Cauldron isn't for everyone. It's proudly not a multi-language environment. It is built to be fantastic as a Python notebook and that's it. It's also built for data scientists, engineers and analysts that:
fiber_manual_record
Take their code seriously
check_box
Practice good style and consistency
check_box
Find IDEs to be useful and import for productivity
check_box
Utilize modularity with functions and library development
fiber_manual_record
Follow good software practices
check_box
Write tests for continuous validation and integration
check_box
Use version control for more than archiving
check_box
Engage in code reviews and collaborative development
fiber_manual_record
Do more than data exploration
check_box
Utilize flexible, continuous deployment and automation
check_box
Deliver work into production (especially via containerization)
check_box
Require reproducible, extensible results
If many of these characteristics resonate with you, then Cauldron could be a good choice. If not, that's okay too. Cauldron isn't trying to be the biggest, most popular choice. It's trying to be the best choice for those that need something different than a lightweight data exploration tool.
Choose Your Workflow
Cauldron supports many different workflows so you can pick the one or many that work best for you. It works great run in a locally installed Python environment, but Cauldron has also been developed to be even better when run in containers for both the kernel and the UI.
1.
Local Environment
Develop on a locally installed python environment by launching the UI from your local terminal.
$ cauldron ui
2.
Local Containerized Environment
Developing within a locally running docker container by launching a Cauldron-configured UI container on your local machine. Make sure to mount the directory containing the notebook folder(s) and the UI port as well.
Cauldron also has a CLI command to help make the invocation easier. It will automatically map the current directory into the container for you.
After that, open the UI in your browser at: http://localhost:8899 (or at whatever port you map to the container)
$ docker run --rm -it \ -v /my/notebooks/are/in/here:/notebooks \ -p 8899:8899 \ swernst/cauldron:current-ui-standard
Or using the Cauldron CLI to launch the container:
$ cd /my/notebooks/are/in/here $ cauldron uidocker --port=8899
3.
Remote Containerized Environment
Develop within a container running on a remote system by creating an SSH tunnel between the remote location and your local computer on the default Cauldron kernel port of 5010.
It's even possible to use a containerized local UI container in conjunction with a remote kernel. In this case the SSH tunnel to the remote location is created inside the UI container based on the specified arguments.
After that launch the Cauldron UI on your local system with a connection argument to connect to the remote Cauldron kernel environment.
$ cauldron ui --connect=127.0.0.1:5010
Or using a containerized version of the UI:
$ cd /my/notebooks/are/in/here $ cauldron uidocker \ --remote=user@remote-host-name:5010 \ --ssh-key=my-access-key
You can find out more about how to use the containerized versions of Cauldron in the "containers" section of the Cauldron documentation.
Saving & Sharing Results
Cauldron notebooks can be saved as *.cauldron viewer files that can be easily shared and viewed by others. They preserve the notebook display just as it was when it was created. These files can be opened from the UI or directly from a command line:
$ cauldron view /path/to/file.cauldron
These viewer files can also be served as static web pages if desired. That's what we did for the examples in the Cauldron Gallery.
Make It
Create your Cauldron notebook.
Save It
Save results as a Cauldron viewer (*.cauldron) file.
Send It
Send it to others to view themselves. They see exactly what you created with no display corruption or loss in interactivity.
Got Questions, Ideas or Issues?
We're an open community that is happy to help. Just reach out via one of these channels and we'll do what we can to assist or respond.