17 Proyecto: ejercicio-funciones
Objetivo
Construir un proyecto en Python con uv que incluya:
- Dos notebooks (
001_desarrollo_funciones.ipynby002_uso_funciones.ipynb). - Un paquete externo desde GitHub (iertools).
- Un pequeño módulo de utilidades con funciones tipadas para conteo de cadenas .
Estructura mínima
ejercicio-funciones/
├─ pyproject.toml
├─ data/
├─ notebooks/
│ ├─ 001_desarrollo_funciones.ipynb
│ ├─ 002_uso_funciones.ipynb
│ └─ herramientas/
│ ├─ cadenas.py
└─ pdfs/
Dependencias requeridas
- Paquete externo: iertools (desde GitHub).
pandas, matplotlib, windrose y calplot desde PyPi
Especificación de funciones
A) notebooks/herramientas/cadenas.py
Implementa funciones tipadas y con docstrings:
contar_letras_unicas(texto: str, *, ignorar_acentos: bool = True) -> int- Convierte a minúsculas, opcionalmente normaliza acentos, ignora puntuación y devuelve el número de letras distintas.
001_desarrollo_funciones.ipynb
002_uso_funciones.ipynb
- Importación desde
notebooks/herramientas/. - Demostración de uso con ejemplos reales.
Entregables
- Estructura de proyecto requerida.
requirements.txtcon windrose y calplot.notebooks/herramientas/cadenas.pyynotebooks/herramientas/numeros.pycon tipado y docstrings.001_desarrollo_funciones.ipynbcon pruebas.002_uso_funciones.ipynbcon ejemplos y verificación de dependencias.