- Notifications
You must be signed in to change notification settings - Fork18
Multi-language Jupyter Notebook
License
vatlab/sos-notebook
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
SoS Notebook is aJupyter kernel that allows the use of multiple kernels in one Jupyter notebook. Using language modules that understand datatypes of underlying languages (modulessos-bash,sos-r,sos-matlab, etc), SoS Notebook allows data exchange among live kernels of supported languages.
SoS Notebook also extends the Jupyter frontend and adds a console panel for the execution of scratch commands and display of intermediate results and progress information, and a number of shortcuts and magics to facilitate interactive data analysis. All these features have been ported to JupyterLab, either in the sos extensionjupyterlab-sos or contributed to JupyterLab as core features.
SoS Notebook also serves as the IDE for theSoS Workflow that allows the development and execution of workflows from Jupyter notebooks. This not only allows easy translation of scripts developed for interactive data analysis to workflows running in containers and remote systems, but also allows the creation of scientific workflows in a format with narratives, sample input and output.
SoS Notebook is part of the SoS suite of tools. Please refer to theSoS Homepage for details about SoS, andthis page for documentations and examples on SoS Notebook. If a language that you are using is not yet supported by SoS, pleasesubmit a ticket, or consider adding a language module by yourself following the guidelinehere.
Install from PyPI:
pip install sos-notebook
Install from conda-forge:
conda install -c conda-forge sos-notebook
SoS Notebook uses modern Python packaging and development tools. SeeCONTRIBUTING.md for detailed development setup instructions.
Quick development setup:
# Prerequisites: Python 3.8+ and uv (https://github.com/astral-sh/uv)git clone https://github.com/vatlab/sos-notebook.gitcd sos-notebookinvoke dev-setup# Sets up virtual environment and dependenciessource .venv/bin/activate
This project uses modern Python development tools:
- uv for fast dependency management and virtual environments
- ruff for linting and code formatting
- invoke for task automation
- pytest for testing
- Modern build system with
pyproject.toml(PEP 517/518)
# Set up development environmentinvoke dev-setup# Run quality checksinvoke check# Run all checks (format, lint, test)invoke format# Format code with ruffinvoke lint --fix# Lint and auto-fix issuesinvoketest# Run tests# Build and releaseinvoke build# Build distributionsinvoke release-check# Comprehensive pre-release checks
For detailed contribution guidelines, seeCONTRIBUTING.md.
The project includes comprehensive tests that run in Docker containers to simulate real Jupyter environments:
invoketest# Quick tests (skip Docker/selenium)invoke test-docker# Full test suite in Docker (as in CI)
This project is licensed under the 3-clause BSD License.
About
Multi-language Jupyter Notebook
Topics
Resources
License
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors8
Uh oh!
There was an error while loading.Please reload this page.