1a0f9b5f86
write_jupyter_launcher ahora exporta IPYTHONDIR al directorio local .ipython/ para que el kernel cargue el startup correcto cuando se ejecuta desde projects/. write_jupyter_registry_kernel usa descubrimiento inteligente de FN_REGISTRY_ROOT: prioriza env var, luego path hardcoded, luego sube desde CWD buscando registry.db. Esto permite que analyses dentro de projects/ encuentren el registry automaticamente.
70 lines
2.0 KiB
Bash
70 lines
2.0 KiB
Bash
# write_jupyter_launcher
|
|
# -----------------------
|
|
# Genera un script run-jupyter-lab.sh en el directorio dado.
|
|
# El script lanza Jupyter Lab en modo colaborativo con autodeteccion de puerto.
|
|
#
|
|
# USO (sourced):
|
|
# source write_jupyter_launcher.sh
|
|
# write_jupyter_launcher /path/to/project
|
|
|
|
write_jupyter_launcher() {
|
|
local project_dir="${1:-.}"
|
|
local launcher="${project_dir}/run-jupyter-lab.sh"
|
|
|
|
cat > "$launcher" << 'LAUNCHER'
|
|
#!/bin/bash
|
|
# Jupyter Lab — modo colaborativo con autodeteccion de puerto
|
|
# Generado por write_jupyter_launcher (fn_registry)
|
|
|
|
find_free_port() {
|
|
for port in 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899; do
|
|
if ! ss -tln 2>/dev/null | grep -q ":${port} " && \
|
|
! lsof -i:"$port" >/dev/null 2>&1; then
|
|
echo $port
|
|
return
|
|
fi
|
|
done
|
|
echo 8888
|
|
}
|
|
|
|
PORT=${1:-$(find_free_port)}
|
|
cd "$(dirname "$0")"
|
|
|
|
echo $PORT > .jupyter-port
|
|
|
|
source .venv/bin/activate 2>/dev/null || true
|
|
|
|
# IPython startup: cargar .ipython/ local (FN_REGISTRY_ROOT, helpers, sys.path)
|
|
if [ -d "$(pwd)/.ipython" ]; then
|
|
export IPYTHONDIR="$(pwd)/.ipython"
|
|
fi
|
|
|
|
if ! python -c "import jupyter_collaboration" 2>/dev/null; then
|
|
echo "ERROR: jupyter-collaboration no esta instalado"
|
|
echo "Instala con: uv add jupyter-collaboration"
|
|
exit 1
|
|
fi
|
|
|
|
echo "════════════════════════════════════════════════"
|
|
echo " Jupyter Lab + Colaboracion en puerto $PORT"
|
|
echo "════════════════════════════════════════════════"
|
|
echo ""
|
|
echo " Abre: http://localhost:$PORT"
|
|
echo " Ctrl+C para detener"
|
|
echo ""
|
|
|
|
jupyter lab \
|
|
--port=$PORT \
|
|
--no-browser \
|
|
--ServerApp.token='' \
|
|
--ServerApp.password='' \
|
|
--ServerApp.disable_check_xsrf=True \
|
|
--ServerApp.allow_origin='*' \
|
|
--ServerApp.root_dir="$(pwd)" \
|
|
--collaborative
|
|
LAUNCHER
|
|
|
|
chmod +x "$launcher"
|
|
echo "$launcher"
|
|
}
|