Files
fn_registry/bash/functions/pipelines/init_jupyter_analysis.md
T
egutierrez fee892f38e feat: init_jupyter_analysis v1.1.0 — soporte --project, --desc, --tags
Nueva funcion write_analysis_md_bash_infra genera analysis.md con frontmatter.
El pipeline ahora acepta --project para crear analisis directamente en
projects/{proyecto}/analysis/{nombre}/, valida que el proyecto exista,
genera analysis.md con dir_path correcto y ejecuta fn index al final.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 15:39:20 +02:00

3.5 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path
init_jupyter_analysis pipeline bash pipelines 1.1.0 impure init_jupyter_analysis([--project <p>] [--desc <d>] [--tags <t>], nombre: string, [...paquetes_extra: string]) -> void Inicializa un analisis Jupyter completo con venv, paquetes, launcher, MCP, reglas Claude, kernel startup y analysis.md. Por defecto crea en analysis/{nombre}/; con --project crea en projects/{proyecto}/analysis/{nombre}/ y ejecuta fn index al final.
jupyter
analysis
setup
pipeline
bash
launcher
assert_command_exists_bash_shell
find_free_port_bash_shell
init_uv_venv_bash_infra
uv_add_packages_bash_infra
write_jupyter_launcher_bash_infra
write_mcp_jupyter_config_bash_infra
write_claude_jupyter_rules_bash_infra
write_jupyter_registry_kernel_bash_infra
write_analysis_md_bash_infra
false error_go_core
name desc
nombre nombre del análisis a crear
name desc
paquetes_extra paquetes Python adicionales a instalar (variadic, opcional)
name desc
--project nombre del proyecto bajo projects/ donde crear el analisis (opcional); si se omite, se crea en analysis/ raiz
name desc
--desc descripcion breve del analisis (se escribe en analysis.md)
name desc
--tags tags CSV que se escriben en analysis.md (opcional)
sin salida directa; estructura completa + analysis.md en el destino. Con --project, ejecuta fn index para registrar. false
bash/functions/pipelines/init_jupyter_analysis.sh

Ejemplo

# Analisis suelto en analysis/
fn run init_jupyter_analysis finanzas
fn run init_jupyter_analysis ml scikit-learn torch

# Analisis dentro de un proyecto (un solo comando, todo resuelto)
fn run init_jupyter_analysis --project aurgi sale_prices --desc "Comprobacion precios"
fn run init_jupyter_analysis --project aurgi ventas polars --tags "aurgi,ventas"

Flujo

  1. assert_command_exists — verifica que uv o python3 estan disponibles
  2. Crea estructura {destino}/notebooks/ y {destino}/data/
  3. init_uv_venv — crea venv en {destino}/.venv/
  4. uv_add_packages — instala jupyter, jupyterlab, jupyter-collaboration, jupyter-mcp-server, pandas, numpy, matplotlib + extras
  5. write_jupyter_launcher — genera run-jupyter-lab.sh con modo colaborativo
  6. find_free_port + write_mcp_jupyter_config — detecta puerto libre y genera .mcp.json
  7. write_claude_jupyter_rules — genera .claude/CLAUDE.md con reglas de agente
  8. write_jupyter_registry_kernel — genera IPython startup con fn_query, fn_search, fn_code y acceso a python/functions/
  9. write_analysis_md — genera analysis.md con frontmatter y dir_path correcto

Si se paso --project, al final ejecuta fn index para registrar el analisis en registry.db con project_id correcto.

Con --project, el destino es projects/{proyecto}/analysis/{nombre}/ (requiere que projects/{proyecto}/project.md exista); sin el, es analysis/{nombre}/.

Notas

Cada analisis es independiente (propio venv, propio Jupyter, propio MCP). Mismo patron que apps/ pero para exploraciones no reutilizables.

El pipeline usa set -euo pipefail — cualquier fallo detiene la ejecucion.

Paquetes base siempre incluidos: jupyter, jupyterlab, jupyter-collaboration, jupyter-mcp-server, pandas, numpy, matplotlib. Los paquetes extra se añaden a estos.