dotfiles/shells/jupyter-notebook.nix

31 lines
790 B
Nix

{ 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"
'';
}