Skip to main content

ANDES — Open Data Platform

ANDES — Open Data Platform

Archivo Nacional de Datos Estadísticos y Sociales
Andean Network for Data, Evidence and Statistics

ANDES es una plataforma de acceso, integración, exploración y consulta de estadísticas y datos abiertos. Reduce las barreras de acceso a la información pública y favorece su uso en investigación, análisis, planificación, docencia y toma de decisiones.

Integra el catálogo del Banco Central de Reserva del Perú (BCRP), el Portal de Transparencia del MEF, la población proyectada y el índice temático del INEI, y portales estadísticos de entidades públicas del Perú. Incluye interfaz de escritorio y web (Flet), CLI (Typer) y servidor MCP para agentes de IA.

CI Python Flet License Platform Brand

Identidad

  • Nombre: ANDES.
  • Descriptor: Open Data Platform.
  • ES: Archivo Nacional de Datos Estadísticos y Sociales.
  • EN: Andean Network for Data, Evidence and Statistics.
  • Isotipo: colibrí de Nasca con flecha de descarga, inspirado en los geoglifos y la geometría andina.
  • Icono: assets/icon/ (16–1024 px, .ico, .icns, .svg); favicon y iconos PWA en assets/favicon.png y assets/icons/. El icono sustituye a la animación de carga de Flet mediante assets/icons/loading-animation.png.
  • Temas: oscuro #1b293d / #d8b56d; claro #f1eadc / #2a3f48.
  • Marca: el uso de la identidad se rige por TRADEMARKS.md.
  • Sitios: desde «Acerca de ANDES» → «Sitios» se listan los 57 portales de datos con su nombre completo y enlace, con filtro de búsqueda.

Los datos pertenecen a sus instituciones productoras. ANDES reconoce la fuente, la metodología, la cobertura y las condiciones de reutilización de cada serie.

Características

  • Núcleo desacoplado: andes.core maneja metadatos, HTTP y exportación sin depender de Flet.
  • GUI con identidad ANDES, temas claro y oscuro exactos, búsqueda, filtro por institución, filtros colapsables, selección múltiple, navegación por teclado y tema automático según la hora local con interruptor manual persistente.
  • CLI con andes search, andes download, andes download-many, andes gui y andes mcp.
  • Catálogo local SQLite + FTS5: búsquedas en milisegundos sin cargar el CSV completo de 6,9 MB en cada arranque.
  • Parámetros y detalles por institución: formatos de periodo propios (BCRP 2024-1; MEF 2026-01), etiquetas MEF (Rubro, Nivel de gobierno, Programa) y descarga vía el adaptador de cada portal.
  • Filtros plegables por institución: un botón junto al selector de institución despliega sus filtros; por defecto quedan en «Todos» y la lista usa todo el espacio.
  • Filtro por institución de origen: selector fuera de los filtros avanzados. BCRP muestra frecuencia y filtros propios; MEF (Portal de Transparencia) muestra Año, Nivel de gobierno, Rubro, Fuente de financiamiento y Programa, con opciones iniciales. La búsqueda MEF indexa bajo demanda los conceptos del portal (p. ej. «canon») y luego consulta el catálogo local. La descarga histórica recorre cada año disponible (2010–2026) con caché local. En «Todas» solo se consulta por palabra clave.
  • Descarga por lotes: hasta 10 series por petición, una sola sesión HTTP, rate-limit y reintentos con backoff para no activar el WAF del portal.
  • Servidor MCP (stdio) con herramientas search_series, get_metadata y download_series.
  • Exportación a CSV, JSON, XLS, XML, TXT y HTML (XLS binario real).
  • Estadísticas MEF: 61 cuadros .xls convertidos a series anuales y trimestrales, además de las transferencias mensuales.
  • INEI Población Proyectada: 1 892 distritos con proyección 2018–2026, una serie por distrito (INEI-POP-<ubigeo>), búsqueda por nombre o ubigeo. Archivo único: fechas bloqueadas y salida fija en XLS.
  • INEI Temático: índice temático con 8 categorías y ~826 archivos de datos descubiertos en vivo (INEI-TEM-<hash>). Archivo único: fechas bloqueadas y salida fija en CSV.
  • Portales por institución: cada portal o servicio estadístico descubierto en Gob.pe (1 854 páginas) se atribuye a su institución real (INEI, INPE, OSITRAN, etc.) y aparece con ese nombre en el selector. Sin agrupador «Gob.pe». Deduplicado por URL y clasificado por plataforma (CSV, Excel, API, Tableau, Power BI, PDF, web). Los destinos tabulares se descargan; los tableros se abren como enlace externo. Los prefijos repetidos se agrupan (Municipalidades, Regiones, UGEL, Redes de Salud) para no inflar el menú. Al pasar el puntero por una sigla se muestra un globo con el nombre completo.
  • Detección de documentación PDF en las descripciones de las series.
  • Caché local de metadatos y suites de pruebas con mocks.

Operadores de búsqueda avanzada

El buscador admite operadores booleanos y campos. Las tildes se ignoran.

Operador Ejemplo Resultado
AND (implícito) canon AND minero ambos términos
OR canon OR forestal cualquiera
NOT / - canon NOT forestal · canon -forestal excluye
"frase" "tipo de cambio" frase exacta
( ) (canon OR regalías) AND minero agrupa
campo: codigo:PN00001MM · nombre:población campo específico

Campos: codigo:, nombre:, grupo:, categoria:, unidad:. Una expresión inválida se reintenta como búsqueda simple por prefijos.

Requisitos

  • Python 3.10 o superior
  • Conexión a Internet para la primera descarga de metadatos y para descargar series

Ejecutables compilados

Descarga los archivos de la versión v2.0.0:

Plataforma Descarga
Linux andes-linux-2.0.0.tar.gz
Windows andes-windows-2.0.0.zip
macOS andes-macos-2.0.0.zip
Android (APK) andes-apk-2.0.0.zip
Web andes-web-2.0.0.zip

Consulta la página de releases para descargar otras versiones.

Esta sección se actualiza automáticamente en cada release (build_release.yml).

Instalación

Para usuarios (entorno aislado, recomienda pipx):

pipx install andes-open-data

Para desarrollo:

git clone https://github.com/EnriqueCastagneda/ANDES.git
cd ANDES
python -m venv .venv
source .venv/bin/activate           # Windows: .venv\Scripts\activate
pip install -e ".[mcp,dev]"

Uso

GUI

andes gui
# o en el navegador:
andes gui --web --port 8550

También funciona python app.py.

CLI

andes search "tipo de cambio" --frequency Mensual --limit 10
andes download PN00001MM --start 2024-1 --end 2024-12 --out datos/pn00001mm.csv
andes download PN00001MM -s 2024-1 -e 2024-12 --format json
andes download-many PN00001MM PN00002MM PN00003MM -s 2024-1 -e 2024-12 -o lote.csv
andes --help

Integración de portales

Cada institución declara su jerarquía y su adaptador nativo. El descubrimiento usa Chromium local, sin servicios externos. Guía completa: docs/portales.md.

python scripts/discover_portal.py URL --out fixtures/<portal>/discovered.json
python scripts/export_specs.py

Evaluación de la GUI web

Con la app en marcha en otra terminal:

andes gui --web --port 8550
python scripts/eval_web_gui.py

Requiere Chromium y el extra de desarrollo (websocket-client). El script recorre catálogo, búsqueda, filtros, selección y descarga real, guarda capturas y report.json en /tmp/opencode/eval-web, y sale con código 1 si algo falla.

MCP (Claude Desktop / Cursor)

Instala el extra mcp y registra el servidor.

pipx install "andes-open-data[mcp]"

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "andes": {
      "command": "andes",
      "args": ["mcp"]
    }
  }
}

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "andes": {
      "command": "andes",
      "args": ["mcp"]
    }
  }
}

Herramientas expuestas:

Herramienta Descripción
search_series(query, frequency, category) Busca códigos de series
get_metadata(series_code) Metadatos y enlace PDF de una serie
download_series(series_code, start_date, end_date, format) Descarga y guarda una serie

Uso como biblioteca

from andes.core import filter_metadata, load_metadata, download_series_file

df = filter_metadata(load_metadata(), {"frecuencia": "Mensual"})
path = download_series_file("PN00001MM", "2024-1", "2024-12", "csv")

Estructura

ANDES/
├── andes/
│   ├── core/          # api, catalog, fetcher, metadata, portals, adapters, branding
│   ├── gui/           # views.py, theme.py
│   ├── cli/           # main.py (Typer)
│   └── mcp/           # server.py
├── assets/            # logotipo, isotipo, iconos
├── docs/              # identidad, portales, publicación
├── fixtures/          # contratos de portales
├── scripts/           # descubrimiento, eval web, pruebas
├── tests/
├── app.py             # entrypoint Flet
├── pyproject.toml
├── TRADEMARKS.md
├── CITATION.cff
├── SECURITY.md
├── CODE_OF_CONDUCT.md
├── CHANGELOG.md
├── LICENSE
└── README.md

Pruebas y lint

pytest -q
ruff check .

Las pruebas de red usan mocks; no dependen de la disponibilidad de las fuentes externas.

CI/CD

  • Test and lint (.github/workflows/test_and_lint.yml): ruff y pytest en Ubuntu, Windows y macOS (Python 3.10 y 3.12) en cada push/PR.
  • Build and release (.github/workflows/build_release.yml): al crear un tag v*, construye sdist/wheel, compila binarios con flet-build-action (Linux, Windows, macOS, APK y Web), publica en PyPI con Trusted Publishing y crea el GitHub Release. Configuración: docs/PUBLISHING.md.

Publicar una versión:

git tag -a v2.0.0 -m "ANDES v2.0.0"
git push origin v2.0.0

Fuentes de datos

Fuente Contenido Enlace
BCRP Catálogo y series monetarias, cambiarias y macroeconómicas https://estadisticas.bcrp.gob.pe
MEF Transferencias y cuadros estadísticos https://datosabiertos.mef.gob.pe
INEI Población proyectada por distrito e índice temático https://www.inei.gob.pe/estadisticas-indice-tematico/
Gob.pe 125 portales y servicios estadísticos de 53 entidades https://www.gob.pe/busquedas?term=estadisticas

Los datos pertenecen a sus instituciones productoras. ANDES reconoce fuente, metodología, cobertura, periodo y condiciones de reutilización. No se atribuye su propiedad intelectual.

Identidad y marca

La identidad visual vive en andes/core/branding.py y los recursos en assets/. El tema se aplica desde andes/gui/theme.py con los colores institucionales. El código se distribuye bajo GPLv3; la marca se rige por TRADEMARKS.md.

Citación

Si usas ANDES en investigación o docencia, cita el proyecto. Los metadatos están en CITATION.cff:

@software{andes2026,
  title  = {ANDES — Open Data Platform},
  author = {Castañeda, Enrique},
  year   = {2026},
  url    = {https://github.com/EnriqueCastagneda/ANDES},
  license = {GPL-3.0-or-later}
}

Seguridad

Reporta vulnerabilidades de forma privada según SECURITY.md. No abras issues públicos con detalles explotables.

Contribuir

Lee CONTRIBUTING.md y el CODE_OF_CONDUCT.md. Los cambios se registran en CHANGELOG.md.

Licencia

GNU General Public License v3.0. Ver LICENSE.

Copyright (C) 2026 ANDES contributors

This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later
version.

Metadata

Release files for andes-open-data 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for andes-open-data 2.0.0
File Size Uploaded Provenance Actions
andes_open_data-2.0.0.tar.gz 186.4 kB Without provenance Details for andes_open_data-2.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for andes-open-data 2.0.0
File Interpreter ABI Platform Actions
andes_open_data-2.0.0-py3-none-any.whl Python 3 none any Details for andes_open_data-2.0.0-py3-none-any.whl

Total release size: 360.6 kB

Release files / andes_open_data-2.0.0.tar.gz

Download URL andes_open_data-2.0.0.tar.gz
Size 186.4 kB
Tags Source
SHA-256 checksum
How to use checksums
a65c27173bed21cf94a533504c0875f1681d8286da41f9f7286c20fa1a8d0c1e
BLAKE2b-256 checksum
How to use checksums
72c2773683d0633ba5f481897c55a7033f4d4d6b72f9d777524c41cef32865f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / andes_open_data-2.0.0-py3-none-any.whl

Download URL andes_open_data-2.0.0-py3-none-any.whl
Size 174.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
aa23d50ea23c4c855a4cf10a1cd86a04df276ac2d7426e849728a5830daf3dad
BLAKE2b-256 checksum
How to use checksums
1a8611f269c4e43ffc5fdd7a9c6dc730d0a60cbe61a839f3b7d56be15a425677
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for andes-open-data 2.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page