{ pkgs, python ? pkgs.python312, ... }: let # Python environment with notebook tooling and core data-science libs pythonWithNotebook = python.withPackages ( ps: with ps; [ altair ipykernel jupyterlab matplotlib numpy pandas polars plotly scipy scikit-learn seaborn ] ); in pkgs.mkShell { name = "jupyter-notebook"; packages = [ pythonWithNotebook pkgs.ruff pkgs.pyright pkgs.git ]; shellHook = '' export PYTHONNOUSERSITE=1 export JUPYTER_CONFIG_DIR="''${XDG_CONFIG_HOME:-$HOME/.config}/jupyter" mkdir -p "$JUPYTER_CONFIG_DIR" echo "Jupyter notebook shell ready" echo "Python: ${python.version}" echo "Launch notebook: jupyter lab" echo "Launch classic: jupyter notebook" ''; }