Proyecto de ejemplo: aplicación CLI en Python que solicita una ciudad, obtiene coordenadas (Nominatim) y consulta el clima (Open-Meteo).
Instrucciones rápidas
- Crear entorno virtual:
python -m venv .venv
.venv\Scripts\Activate.ps1- Instalar dependencias:
pip install -r requirements.txt- Ejecutar la app:
python -m weatherBadges
Tests
Nota: en Windows puede ser necesario exportar
PYTHONPATHpara quepytestencuentre el paquete local.
- PowerShell:
$env:PYTHONPATH = "."
pytest -q- Bash/macOS/Linux:
export PYTHONPATH=.
pytest -qCache (uso y API)
Se ha añadido una función de caché en weather/api.py:
get_weather_cached(lat, lon, location_name=None, ttl=3600)— devuelve resultados en caché si tienen menos dettlsegundos (por defecto 3600 = 1 hora). La caché se guarda en el directorio temporal del sistema (multiplataforma).
Ejemplo rápido en Python:
python - <<'PY'
from weather.api import get_weather_cached
w = get_weather_cached(40.4168, -3.7038, location_name="Madrid")
print(w)
PYDesarrollo y pruebas
- Añadí tests para la API y la caché en
tests/test_api.pyademás del test existente de formato entests/test_formatter.py. - Ejecuta
pytestcomo se indica arriba para validar cambios.
Commit sugerido
Si quieres agrupar los cambios (código, tests y README) en un solo commit, usa:
git add weather/api.py tests/test_api.py Readme.md
git commit -m "feat(api): add 1-hour disk cache; docs: update README with usage and security notes; add tests"Seguridad, licencia y ética
- No incluyas credenciales ni claves en el repositorio.
- Usa un
User-Agentapropiado y respeta las políticas y límites de las APIs públicas (rate limits). - Revisa y documenta la licencia del proyecto (p. ej.
MIT) añadiendo un archivoLICENSEsi procede. - Si parte del código fue generado por IA, documenta esa contribución y revísalo manualmente antes de usar en producción.
¿Quieres que añada una sección LICENSE con MIT por defecto o que haga el commit por ti?