Repositorio de actividades de estadística con herramientas profesionales para conversión de Jupyter Notebooks a PDF.
- Python 3.13+
- uv (gestor de paquetes)
- LaTeX (para conversión a PDF)
# 1. Clonar el repositorio
git clone https://github.com/william-monroy/mem-estadistics.git
cd mem-estadistics
# 2. Ejecutar instalación automática (Linux/macOS)
./scripts/setup.sh
# O manualmente:
uv sync # Instalar dependencias
chmod +x scripts/*.sh # Hacer scripts ejecutablesmacOS:
brew install --cask mactex-no-gui
eval "$(/usr/libexec/path_helper)"Linux (Ubuntu/Debian):
sudo apt-get update
sudo apt-get install texlive-xetex texlive-fonts-recommended texlive-plain-genericWindows: Descargar MiKTeX
📖 Guía detallada de instalación
# Convertir un notebook específico
uv run nb2pdf notebooks/actividades/actividad_3/activity3.ipynb
# Convertir con nombre personalizado
uv run nb2pdf notebooks/actividades/actividad_3/activity3.ipynb -o Mi_Reporte.pdf
# Convertir todos los notebooks en un directorio
uv run nb2pdf --all --directory notebooks/actividades/actividad_3/
# Modo verbose (para debugging)
uv run nb2pdf activity3.ipynb --verbose
# Ver ayuda
uv run nb2pdf --help# Convertir todas las actividades
./scripts/convert_all.sh
# Limpiar archivos generados
./scripts/clean_outputs.sh
# Ver qué se eliminaría sin hacer cambios
./scripts/clean_outputs.sh --dry-runmem-estadistics/
├── 📦 src/nb2pdf/ # Paquete del convertidor
│ ├── cli.py # CLI principal
│ ├── converter.py # Lógica de conversión
│ ├── utils.py # Utilidades
│ └── config.py # Configuración
│
├── 📓 notebooks/ # Notebooks organizados
│ ├── actividades/ # Actividades entregables
│ │ ├── actividad_2/ # Análisis de datos
│ │ └── actividad_3/ # Predicción de precios
│ ├── ejemplos/ # Notebooks de referencia
│ └── exploracion/ # Trabajo exploratorio
│
├── 📚 docs/ # Documentación
│ ├── material_teorico/ # PDFs del curso
│ └── guias/ # Guías de uso
│
├── 🧪 tests/ # Tests unitarios
├── 🔧 scripts/ # Scripts auxiliares
└── ⚙️ config/ # Configuración avanzada
📖 Estructura completa del proyecto
- 📥 Instalación - Setup completo del proyecto
- 🔄 Conversión a PDF - Uso del convertidor
- 📁 Estructura - Organización del código
- ⚡ Quick Start - Referencia rápida
- Clustering Methods (11 MB)
- Principal Component Analysis (3 MB)
# Todos los tests
uv run pytest
# Con cobertura
uv run pytest --cov=src/nb2pdf --cov-report=html
# Tests específicos
uv run pytest tests/test_config.py -v# Dependencia de producción
uv add nombre-paquete
# Dependencia de desarrollo
uv add --dev pytest ruff# Ejecutar linter
uv run ruff check .
# Auto-formatear código
uv run ruff format .# tests/test_converter.py
from nb2pdf import convert_notebook
def test_convert_notebook(tmp_path):
notebook = tmp_path / "test.ipynb"
notebook.write_text("{}")
assert convert_notebook(notebook)Configuración inicial automática
./scripts/setup.sh- ✅ Verifica uv instalado
- 📦 Instala dependencias
- 🔍 Verifica LaTeX
- 🔧 Hace scripts ejecutables
Conversión batch de todas las actividades
./scripts/convert_all.sh- 🔄 Convierte todos los notebooks en
actividades/ - 📊 Reporta éxito/fallo por archivo
- ✨ Salida formateada con emojis
Limpieza de archivos generados
./scripts/clean_outputs.sh # Con confirmación
./scripts/clean_outputs.sh -f # Sin confirmación
./scripts/clean_outputs.sh --dry-run # Solo mostrar- 🗑️ Elimina PDFs en
outputs/ - 🧹 Limpia archivos temporales de LaTeX
- 📋 Remueve checkpoints de Jupyter
Este es un proyecto educativo, pero las sugerencias son bienvenidas:
- Fork el proyecto
- Crea una rama (
git checkout -b feature/AmazingFeature) - Commit cambios (
git commit -m 'Add AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Si encuentras un bug o tienes una sugerencia:
- Revisa issues existentes
- Abre un nuevo issue con descripción detallada
- Incluye logs de error si aplica
Este proyecto está bajo la Licencia MIT. Ver LICENSE para más detalles.
William Frank Monroy Mamani
- ID: A00829796
- GitHub: @william-monroy
- Email: A00829796@tec.mx
- Tecnológico de Monterrey - Statistics and Data Science with Applications in Engineering
- Alan R. Vazquez - Instructor del curso
- Comunidad de Jupyter y nbconvert
- Astral-sh por uv
⭐ ¿Te resultó útil este proyecto? ¡Dale una estrella en GitHub!