chile-hub
Datos públicos de Chile, curados y listos para análisis en una línea de código.
La última milla de los datos oficiales de Chile — parte del ecosistema Tooltician.
Instalación · Confianza · Capas · Recetas · API y CLI · Licencias
Instalar y usar en 30 segundos
pip install chile-hub
from chile_hub import ChileHub
hub = ChileHub()
comunas = hub.load_polars("comunas") # 346 comunas, códigos CUT como texto
censo = hub.load_polars("censo_comunal") # población censada por comuna
# Cruce territorial garantizado: la clave es el CUT, nunca un int
df = (
comunas.join(censo, on="codigo_comuna")
.select("codigo_comuna", "nombre_comuna", "nombre_region", "poblacion_censada")
.sort("poblacion_censada", descending=True)
.head(5)
)
print(df)
Resultado real (Censo 2024):
shape: (5, 4)
┌───────────────┬───────────────┬─────────────────────────────────┬───────────────────┐
│ codigo_comuna ┆ nombre_comuna ┆ nombre_region ┆ poblacion_censada │
│ --- ┆ --- ┆ --- ┆ --- │
│ str ┆ str ┆ str ┆ i64 │
╞═══════════════╪═══════════════╪═════════════════════════════════╪═══════════════════╡
│ 13201 ┆ Puente Alto ┆ Región Metropolitana de Santia… ┆ 568086 │
│ 13119 ┆ Maipú ┆ Región Metropolitana de Santia… ┆ 503635 │
│ 13101 ┆ Santiago ┆ Región Metropolitana de Santia… ┆ 438856 │
│ 02101 ┆ Antofagasta ┆ Región de Antofagasta ┆ 401096 │
│ 13110 ┆ La Florida ┆ Región Metropolitana de Santia… ┆ 374836 │
└───────────────┴───────────────┴─────────────────────────────────┴───────────────────┘
En el sitio puedes consultar los mismos Parquet con SQL en el navegador (motor DuckDB-WASM, sin instalar nada):
La primera ejecución descarga el bundle validado desde GitHub Releases, verifica su
integridad SHA256 y lo deja en cache local; a partir de ahí todo corre contra el cache.
La comprobación semanal de novedades no envía datos de uso y se desactiva con
CHILE_HUB_NO_UPDATE_CHECK=1 (CHILE_HUB_LANG=es|en elige el idioma del aviso).
chile-hub cache update # Forzar descarga del bundle más reciente
chile-hub cache status # Ubicación y estado del cache local
chile-hub cache clear # Liberar espacio
Variante pipeline:
pip install chile-hub[pipeline]agrega DuckDB, Pandas, XlsxWriter y curl_cffi para ejecutar el pipeline completo de extracción y build. La instalación mínima solo incluye Polars, PyArrow, requests y platformdirs — suficiente para consumir datos.
Versionado: Para entornos productivos, fija la versión exacta en
requirements.txt(revisa el badge de PyPI al inicio de este README para la versión más reciente):chile-hub==1.46.1El bundle de datos se publica con cada release. La API del módulo
ChileHubsigue versionado semántico: cambios de interfaz pública solo en major releases.
Por qué confiar
Cada decisión de ingeniería de este proyecto está diseñada para que no tengas que confiar ciegamente: los datos vienen con la evidencia que los respalda.
Trabajar con datos públicos chilenos suele implicar los mismos obstáculos:
| Sin chile-hub | Con chile-hub |
|---|---|
| Enlaces rotos y APIs inconsistentes | Pipeline automatizado con fallbacks y verificación de integridad |
| Planillas Excel deformes con celdas combinadas | Parquet, DuckDB y JSON listos para producción |
Códigos CUT que pierden ceros al leerse como int |
CUT garantizados como VARCHAR de largo fijo ("01101") |
| Nombres de comunas imposibles de cruzar (Ñuñoa vs Nunoa) | Columna nombre_comuna_clean normalizada para cruces exactos |
| Cero trazabilidad sobre origen y vigencia del dato | Metadatos con fuente, fecha de extracción, licencia y modo |
Seis pilares, auditables y verificables en cada build
| Pilar | Descripción | Artefacto auditable |
|---|---|---|
| Procedencia documentada | Cada dataset declara su fuente oficial exacta con URL directa al organismo público emisor (BCN, INE, MINEDUC, BCCh, MINSAL, datos.gob.cl). | provenance_report.md — fuente, modo y timestamp por capa |
| Auditoría legal explícita | Licencia, atribución requerida y permiso de redistribución verificados dataset por dataset. 22 de 22 capas pasan la auditoría (ready). |
redistribution_report.md + AGENTS.md §6 |
| Pipeline fail-loud | Si una validación falla, el pipeline aborta — no publica datos corruptos, no emite advertencias silenciosas. | ADR-001 — fail-loud como decisión de arquitectura |
| Contratos de esquema | 25 contratos JSON Schema (contracts/datasets/) definen columnas esperadas, tipos, claves primarias y cobertura. Se validan en cada build automáticamente. |
ADR-005 + contracts/datasets/*.json |
| Salud transparente | Dashboard público con severidad, frescura, cobertura, drift y degradación por dataset. 20 capas ok, 1 warn, 0 error. |
hub_health.md — estado completo actualizado en cada build |
| Calidad medida | Puntuación compuesta A-F por dataset: promedio 94.0/100 (19 A, 3 B). Dimensiones: validación, contrato, madurez de fuente, frescura, cobertura, política de reúso. | dataset_quality.md — scorecard completo |
Cada pilar se audita automáticamente en cada ejecución del pipeline. Los reportes se regeneran en cada build — no son documentos estáticos mantenidos a mano. Para auditar el estado exacto de cualquier capa:
chile-hub provenance # fuente, modo y timestamp por dataset
chile-hub health # severidad, frescura, drift y cobertura
El mismo estado se publica en el sitio, con historial de builds y detalle por capa:
Respaldo adicional
- 1241 tests (
pytest --collect-only) que validan extracción, contratos e integridad de datos.
- 23 ADRs (
docs/adr/) que documentan cada decisión de arquitectura con su contexto, consecuencias y tradeoffs — no solo el "qué", sino el "por qué".
- Drift monitoreado: todos los datasets bajo vigilancia de deriva de esquema; cualquier
cambio en la fuente se detecta y registra (
drift_report.md). - Trazabilidad completa: cada build registra timestamp, versión de extractor y
snapshot de entrada en
provenance_report.md.
Para una explicación más detallada de la arquitectura y las decisiones de diseño, lee el caso de estudio: cómo está construido chile-hub.
Qué incluye
Cómo leer los conteos: 22 capas construibles (
make buildlocal, incl. 1 en carrilcandidate) · 21 publicables (bundle ZIP) · 25 registradas en el catálogo (3 filas sin datos aún: geometría, delincuencia, autoridades locales). La convención completa vive junto al badge superior y endata/source_registry.json.
Mapa territorial interactivo: las 346 comunas con 7 métricas seleccionables (población, pobreza, permisos, equipamiento, MP2.5) y ficha por comuna.
| # | Capa | Registros | Modo | Fuente | Licencia | Actualización |
|---|---|---|---|---|---|---|
| 1 | Regiones | 16 | live | BCN ArcGIS | CC BY | — |
| 2 | Provincias | 56 | live | BCN ArcGIS | CC BY | — |
| 3 | Comunas | 346 | live | BCN ArcGIS | CC BY | — |
| 4 | Comunas Enriquecidas | 346 | live | BCN + INE | CC BY | — |
| 5 | Indicadores Económicos | Serie histórica | live | BCCh / mindicador.cl | Libre c/cita | Diaria |
| 6 | Censo Comunal 2024 | 346 | live | INE | CC BY 4.0 | Decenal |
| 7 | Censo Hogares y Viviendas | 346 | live | INE | CC BY 4.0 | Decenal |
| 8 | Establecimientos de Salud | 5743 | live | MINSAL / datos.gob.cl | CC0 | Mensual |
| 9 | Distritos Electorales | 346 | live | BCN / Ley 20.840 | CC0 | — |
| 10 | Establecimientos Educacionales | ~12 898 | live | MINEDUC | CC BY 3.0 CL | Anual |
| 11 | Finanzas Municipales | 345 (parcial) | parcial | SINIM / SUBDERE | Revisión términos | Anual |
| 12 | Resultados Educacionales | 345 | live | MINEDUC | CC BY 3.0 CL | Anual |
| 13 | Indicadores Urbanos SIEDU | 6 701 (parcial) | live | INE / SIEDU | Datos abiertos INE | Anual |
| 14 | Perfil Territorial Comunal | 346 | live | chile-hub derivado | Fuentes abiertas | Derivada |
| 15 | Empresas (RES) | ~1 628 433 | live | Min. Economía / datos.gob.cl | CC-BY 3.0 CL | Mensual |
| 16 | Pobreza Comunal (SAE) | 690 | live | MDS / Observatorio Social | Datos abiertos MDS | Bienal/trienal |
| 17 | Consumo Eléctrico Comunal | 3 | fallback | CNE / Energía Abierta | CC BY | Anual |
| 18 | Partidos Políticos | 37 | live | Cámara de Diputados | CC BY | Bajo_demanda |
| 19 | Autoridades Electas | 205 | live | Cámara de Diputados + Senado | CC BY | Bajo_demanda |
| 20 | Estadísticas Vitales | 13 840 | live | INE | CC BY 4.0 | Anual |
| 21 | Permisos de Edificación | 8 650 | monthly | MINVU / CEDOC | Uso c/cita | Mensual |
| 22 | Calidad del Aire | 3 020 | live | MMA / SINCA | Revisión términos | Diaria |
| 23 | geometria_comunal | — | candidato | — | — | — |
| 24 | Delincuencia Comunal | — | deprecated | CEAD / SPD | Revisión términos | — |
| 25 | Autoridades Locales | — | candidato | BCN SIIT + Wikipedia | CC BY / CC BY-SA | — |
live: datos extraídos directamente desde la fuente oficial en cada ejecución del pipeline. fallback: datos servidos desde un respaldo curado mientras se completa la extracción en vivo. parcial: cobertura inferior al 50% del universo esperado. Capa candidata, no completa. candidato: capa en carril candidate — extractor implementado, datos no incluidos en el bundle público. deprecated: capa degradada a rechazada — sin mantención ni bundle; su doc queda como referencia histórica. Para auditar el estado exacto de cada capa:
chile-hub provenanceychile-hub health.
El schema de columnas, tipos y PK de cada capa vive en
contracts/datasets/ y en docs/datasets/;
el volcado completo está en el apéndice.
Formatos de salida
Cada ejecución del pipeline genera en data/normalized/:
| Tipo | Archivo | Uso |
|---|---|---|
| Base de datos | chile_data.duckdb |
Analítica local de alto rendimiento |
| Base de datos | chile_data.db |
SQLite para aplicaciones embebidas |
| Intercambio | *.parquet por capa |
Polars / Pandas / DuckDB |
| Intercambio | *.json por capa |
Pipelines y automatización |
| Intercambio | chile_data_latest.xlsx |
Excel multipestaña (códigos CUT como texto) |
| Metadatos | artifact_manifest.json, hub_health.*, dataset_status.json, dataset_changelog.json, dataset_catalog.*, provenance_report.*, redistribution_report.* |
Catálogo físico, salud, changelog y auditoría |
| Bundle | chile-hub-publishable-bundle.zip |
Paquete público con verificación SHA256 |
Recetas de uso
¿Prefieres notebooks? Las cuatro recetas están en
examples/notebooks/ con botón de Colab, o ejecutables
en el explorador SQL del sitio.
1. Últimos indicadores económicos disponibles
from chile_hub import ChileHub
df = ChileHub().load_polars("indicadores")
ultimos = (
df.sort("fecha", descending=True)
.group_by("codigo_indicador")
.first()
.select("codigo_indicador", "fecha", "valor")
.sort("codigo_indicador")
)
print(ultimos)
2. Salud y educación por comuna
from chile_hub import ChileHub
hub = ChileHub()
salud = hub.load_polars("establecimientos_salud")
educacion = hub.load_polars("establecimientos_educacionales")
salud_por_comuna = salud.group_by("codigo_comuna").len("establecimientos_salud")
educacion_por_comuna = educacion.group_by("codigo_comuna").len("establecimientos_educacionales")
resumen = (
hub.load_polars("comunas")
.join(salud_por_comuna, on="codigo_comuna", how="left")
.join(educacion_por_comuna, on="codigo_comuna", how="left")
.fill_null(0)
.select(
"codigo_comuna", "nombre_comuna", "establecimientos_salud", "establecimientos_educacionales"
)
)
print(resumen.head())
3. SQL directo con DuckDB
-- Top 10 comunas por población censada
SELECT nombre_comuna, poblacion_censada, hombres, mujeres
FROM 'data/normalized/censo_comunal.parquet'
ORDER BY poblacion_censada DESC
LIMIT 10;
-- Cruce territorial: comunas × distritos electorales
SELECT c.nombre_comuna, c.nombre_region,
e.distrito_electoral, e.circunscripcion_senatorial
FROM 'data/normalized/comunas.parquet' c
JOIN 'data/normalized/distritos_electorales.parquet' e
ON c.codigo_comuna = e.codigo_comuna
WHERE c.nombre_region = 'Valparaíso';
API y CLI
API Python compacta
| API | Uso |
|---|---|
ChileHub() |
Inicializa el helper; descarga y verifica el bundle si no hay cache local. |
ChileHub(data_dir="data/normalized") |
Usa artefactos locales generados por el pipeline. |
hub.list_datasets() |
Lista los nombres canónicos disponibles para load_polars(). |
hub.load_polars("comunas") |
Carga una capa como polars.DataFrame desde Parquet. |
hub.summary() / hub.summary_table() |
Resume modo de fuente, filas, validación, frescura y warnings. |
hub.health() / hub.status() |
Reporta salud operativa para personas y CI/CD. |
hub.redistribution() |
Expone estado legal de reúso y atribución por dataset. |
hub.provenance() |
Muestra fuente, URL, modo de extracción y timestamps. |
chile-hub cache update/status/clear |
Administra el cache local del bundle publicado. |
¿Construyes agentes? El proyecto incluye un servidor MCP con catálogo, consultas y resolución de comunas para que tu agente consuma los datos sin integraciones propias:
docs/mcp.md.
CLI: los comandos más usados
| Comando | Para qué |
|---|---|
chile-hub list |
Lista todos los datasets registrados. |
chile-hub show <capa> |
Schema y metadatos detallados de una capa. |
chile-hub example <capa> --kind duckdb |
Receta de consumo lista para copiar y pegar. |
chile-hub cross <a> <b> |
Cruza dos datasets por clave territorial común. |
chile-hub export <capa> --output archivo |
Exporta un dataset a CSV, JSON o Parquet. |
chile-hub health |
Reporte consolidado de salud del hub. |
chile-hub status |
JSON ultraliviano para CI/CD. |
chile-hub provenance |
URLs de origen y métodos de extracción. |
chile-hub redistribution |
Reporte legal de reúso por capa. |
chile-hub dataset-quality |
Puntuación de calidad A-F por dataset. |
chile-hub --help |
Listado completo y siempre actualizado. |
Referencia completa de CLI
Inspección y consulta
| Comando | Descripción |
|---|---|
chile-hub list |
Lista todos los datasets registrados |
chile-hub version |
Muestra la versión instalada del paquete |
chile-hub cache status |
Muestra ubicación y estado del cache local |
chile-hub cache update |
Descarga y verifica el bundle publicado |
chile-hub cache clear |
Elimina el cache local |
chile-hub show <capa> |
Schema y metadatos detallados de una capa |
chile-hub path <capa> --output parquet |
Ruta física al archivo de una capa |
chile-hub example <capa> --kind duckdb |
Receta de consumo lista para copiar y pegar |
chile-hub overview |
Resumen general del build y estado actual |
chile-hub inventory |
Archivos en data/normalized/ con tamaños y hashes |
chile-hub snapshot |
Snapshot humano y compacto del hub |
chile-hub summary |
Resumen breve de datasets |
chile-hub search <keyword> |
Busca datasets por keyword, fuente o madurez |
chile-hub cross <a> <b> |
Cruza dos datasets por clave territorial común |
chile-hub export <capa> --output archivo |
Exporta un dataset a CSV, JSON o Parquet |
Calidad, salud y auditoría
| Comando | Descripción |
|---|---|
chile-hub health |
Reporte consolidado de salud del hub |
chile-hub freshness-audit |
Auditoría de frescura contra el reloj actual |
chile-hub runtime-status |
Salud registrada + vigencia en vivo |
chile-hub top-issue |
Capa con mayor degradación operativa |
chile-hub drift |
Desvíos, fallbacks activos y regresiones |
chile-hub status |
JSON ultraliviano para CI/CD |
chile-hub dataset-status |
Estado detallado machine-readable por dataset |
chile-hub dataset-changelog |
Cambios entre el build actual y el metadata anterior |
chile-hub source-readiness |
Madurez de fuente por dataset |
chile-hub dataset-quality |
Puntuación de calidad A-F por dataset |
chile-hub check-sources |
Verifica conectividad en vivo con las fuentes oficiales |
chile-hub validate <capa> |
Valida un dataset (o un CSV/Parquet propio) contra su schema |
Distribución e integridad
| Comando | Descripción |
|---|---|
chile-hub bundle |
Metadata consolidada en un solo JSON |
chile-hub redistribution |
Reporte legal de reúso por capa |
chile-hub provenance |
URLs de origen y métodos de extracción |
chile-hub verify-package |
Instrucción de verificación de integridad del ZIP |
chile-hub artifacts |
Artefactos publicables del hub |
chile-hub shared-artifacts |
Artefactos compartidos del hub (reportes, manifest) |
chile-hub reports |
Lista los reportes compartidos disponibles |
chile-hub report <nombre> |
Resuelve la metadata de un reporte compartido |
chile-hub packages |
Paquetes publicables del hub |
chile-hub package |
Metadata del package principal del hub |
En entorno de desarrollo, usa
python -m chile_hubopython -m src.chile_hubcomo alternativa al comandochile-hubsi el paquete no está instalado en modo editable.
Cómo funciona
El pipeline es lineal, determinista y estricto: si una validación falla, el build se cancela antes de publicar datos corruptos.
flowchart TB
classDef extract fill:#e0f2fe,stroke:#0284c7,stroke-width:2px,color:#0f172a;
classDef stage fill:#ecfeff,stroke:#0891b2,stroke-width:2px,color:#0f172a;
classDef build fill:#fef9c3,stroke:#ca8a04,stroke-width:2px,color:#0f172a;
classDef verify fill:#f0fdf4,stroke:#16a34a,stroke-width:2px,color:#0f172a;
classDef test fill:#fae8ff,stroke:#c084fc,stroke-width:2px,color:#0f172a;
classDef publish fill:#ffe4e6,stroke:#f43f5e,stroke-width:2px,color:#0f172a;
subgraph EXTRACT["1. EXTRACT - fuentes oficiales"]
direction TB
X1["Territorio<br/>BCN / SERVEL"]:::extract
X2["Demografía 2024<br/>INE"]:::extract
X3["Servicios públicos<br/>MINSAL / MINEDUC"]:::extract
X4["Economía<br/>BCCh / SINIM / RES"]:::extract
X5["Indicadores urbanos<br/>SIEDU"]:::extract
end
S["data/staging/<br/>CSV + metadata.json"]:::stage
B["2. BUILD<br/>build_dev_db.py"]:::build
N["data/normalized/<br/>artefactos publicables"]:::stage
V["3. VERIFY<br/>verify_pipeline.py"]:::verify
T["4. TEST<br/>pytest"]:::test
L["5. SMOKE + PUBLISH<br/>landing + bundle"]:::publish
X1 --> S
X2 --> S
X3 --> S
X4 --> S
X5 --> S
S --> B --> N --> V --> T --> L
Extractores incluidos en el paso 1
| Dominio | Extractores |
|---|---|
| Territorio | subdere_extractor.py, electoral_extractor.py, geometria_comunal_extractor.py |
| Demografía | censo_extractor.py, censo_hogares_viviendas_extractor.py, pobreza_extractor.py, estadisticas_vitales_extractor.py |
| Servicios públicos | salud_extractor.py, mineduc_establecimientos_extractor.py, mineduc_resultados_extractor.py |
| Economía | bcentral_extractor.py, sinim_finanzas_extractor.py, sinim_finanzas_live_extractor.py, res_extractor.py, consumo_electrico_extractor.py, permisos_edificacion_extractor.py |
| Indicadores urbanos | siedu_extractor.py |
| Medio ambiente | calidad_aire_extractor.py |
| Política | partidos_politicos_extractor.py, autoridades_electas_extractor.py, autoridades_locales_extractor.py |
Seguridad (carril candidate) |
cead_delincuencia_live_extractor.py |
Derivado en build_dev_db.py (sin extractor) |
perfil_territorial_comunal |
El mapeo autoritativo entre dataset y extractor vive en
data/dataset_catalog_config.json; esta tabla es solo orientativa. Detalle completo enAGENTS.md §2.
Modelo de datos: códigos CUT
El valor central de chile-hub es que todas las capas se vinculan jerárquicamente mediante los Códigos Únicos Territoriales (CUT) de SUBDERE/INE:
flowchart TB
R["Territorio base<br/><b>REGIONES</b><br/>codigo_region"]
P["<b>PROVINCIAS</b><br/>codigo_provincia + codigo_region"]
C["<b>COMUNAS</b><br/>codigo_comuna + codigo_provincia + codigo_region"]
L["Capas comunales<br/>codigo_comuna<br/>censo · hogares · salud<br/>educación · distritos · enriquecimiento"]
R --> P --> C --> L
| Grupo | Clave principal | Capas |
|---|---|---|
| Territorio base | codigo_region, codigo_provincia, codigo_comuna |
regiones, provincias, comunas |
| Capas comunales | codigo_comuna |
censo, hogares y viviendas, salud, educación, distritos electorales, pobreza, permisos de edificación, calidad del aire, estadísticas vitales, perfil territorial y más |
| Series temporales | fecha o anio + clave propia |
indicadores, calidad_aire, permisos_edificacion |
| Registros | clave propia | empresas (RUT), partidos_politicos, autoridades_electas |
El diagrama entidad-relación completo está en el apéndice.
Próximos pasos
El roadmap actual prioriza crecer en usabilidad y confianza antes que agregar más capas.
| Horizonte | Foco | Entregable | Estado |
|---|---|---|---|
| Now | Ejemplos, notebooks, errores claros, referencia API | Usuarios cargan y cruzan datos sin leer el pipeline completo | En progreso |
| Next | Contratos de schema, source readiness, criterios públicos | Contribuidores proponen datasets con reglas claras y verificables | Planeado |
| Later | Nuevas capas solo si pasan criterios de inclusión | El catálogo crece sin perder mantenibilidad ni claridad legal | Futuro |
Especificación completa:
docs/product-spec.mdCriterios de inclusión:docs/dataset-inclusion-criteria.mdEstado del último build:data/normalized/pipeline_status.md
Desarrollo y contribución
¿Quieres aportar o pedir un dataset?
No necesitas saber programar ni traer los datos limpios: basta con la fuente y para qué sirve (o la necesidad, si solo quieres pedirlo). La guía de 2 minutos y los dos formularios están en Aportar o solicitar un dataset (criterios completos).
Desarrollar el pipeline
Esta sección es para contribuidores que ejecutan el pipeline de extracción, build y
verificación en su máquina. Si solo necesitas consumir los datos, usa
pip install chile-hub (ver Instalación).
Requiere uv y Git.
Python lo gestiona uv (make bootstrap).
# Entorno
git clone https://github.com/cortega26/chile-hub.git
cd chile-hub
make bootstrap # Crea .venv, instala dependencias + Playwright
make doctor # Verifica versión de Python y dependencias críticas
# Pipeline completo
make refresh # extract → build → verify → test → landing
# Pasos individuales
make extract # Ejecuta los extractores → data/staging/
make build # Compila artefactos → data/normalized/
make verify # Verifica integridad (SHA256, conteos, schema)
make test # pytest (lee data/normalized/, no corre el pipeline)
make coverage # pytest + cobertura de src/ (term-missing + coverage.xml)
make verify-landing # Pruebas de humo de landing page con Playwright
autoridades_electasrequiere scrapling para no degradar a 155 registros (0 senadores); el comando local está en Carriles de extracción.
El ZIP publicable no se versiona:
make buildlo genera localmente y el sitio lo descarga desde el asset del último GitHub Release. Para clones más livianos:git clone --filter=blob:none https://github.com/cortega26/chile-hub.
Para entender la arquitectura, las reglas no negociables y el flujo de trabajo, revisa
AGENTS.md; el punto de partida rápido es
SOURCE_OF_TRUTH.md.
¿Encontraste un error o tienes un caso de uso? Abre un issue — ayuda a priorizar el roadmap.
Fuentes, licencias y reúso
Semáforo de redistribución
| Semáforo | Estado | Licencia típica | Acción |
|---|---|---|---|
| Verde | open-attribution |
CC BY, CC0 o equivalente | Se incluye en el bundle público |
| Amarillo | public-api-review-terms |
API pública sin licencia explícita | Se distribuye tras verificar el origen primario |
| Rojo | restricted |
Derechos de autor, Ley 19.628 | Nunca se integra al bundle público |
Licencia del proyecto
El código Python se distribuye bajo MIT. Los datasets conservan
las licencias, permisos y requisitos de atribución de sus fuentes oficiales.
Consulta DATA_LICENSES.md, chile-hub redistribution y
chile-hub provenance antes de redistribuir artefactos derivados.
Cómo citar
Si usas chile-hub en un paper, tesis, curso o informe, cita el software y
atribuye la fuente de cada capa. GitHub muestra el botón "Cite this
repository" a partir de CITATION.cff; las recetas BibTeX/APA
y la ruta para un DOI Zenodo están en docs/citation.md.
Apéndice: esquemas y modelo de datos
Schema completo de cada capa
1. regiones — Capa derivada de regiones para filtros, joins y referencias administrativas de alto nivel. (PK: codigo_region)
| Columna | Tipo | Ejemplo |
|---|---|---|
codigo_region |
VARCHAR(2) |
"01" |
nombre_region |
VARCHAR |
"Tarapacá" |
2. provincias — Capa derivada de provincias para cruces intermedios entre region y comuna. (PK: codigo_provincia)
| Columna | Tipo | Ejemplo |
|---|---|---|
codigo_region |
VARCHAR(2) |
"01" |
nombre_region |
VARCHAR |
"Tarapacá" |
codigo_provincia |
VARCHAR(3) |
"011" |
nombre_provincia |
VARCHAR |
"Iquique" |
3. comunas — Base territorial normalizada para cruces por region, provincia y comuna. (PK: codigo_comuna)
| Columna | Tipo | Ejemplo |
|---|---|---|
codigo_comuna |
VARCHAR(5) |
"01101" |
nombre_comuna |
VARCHAR |
"Iquique" |
nombre_comuna_clean |
VARCHAR |
"iquique" |
codigo_provincia |
VARCHAR(3) |
"011" |
codigo_region |
VARCHAR(2) |
"01" |
nombre_region |
VARCHAR |
"Tarapacá" |
latitud_cabecera |
DOUBLE |
-20.2138 |
longitud_cabecera |
DOUBLE |
-70.1508 |
poblacion_estimada |
INTEGER |
223400 |
4. comunas_enriquecidas — Comunas con coordenadas de cabecera y poblacion estimada INE, listas para analisis territorial sin joins adicionales. (PK: codigo_comuna)
| Columna | Tipo | Ejemplo |
|---|---|---|
codigo_comuna |
VARCHAR(5) |
"01101" |
nombre_comuna |
VARCHAR |
"Iquique" |
nombre_comuna_clean |
VARCHAR |
"iquique" |
codigo_provincia |
VARCHAR(3) |
"011" |
codigo_region |
VARCHAR(2) |
"01" |
latitud_cabecera |
DOUBLE |
-20.2138 |
longitud_cabecera |
DOUBLE |
-70.1508 |
poblacion_estimada |
INTEGER |
223400 |
5. indicadores — Serie de indicadores economicos diarios de referencia para analisis y software. (PK: fecha, codigo_indicador)
| Columna | Tipo | Ejemplo |
|---|---|---|
fecha |
DATE |
"2026-05-30" |
codigo_indicador |
VARCHAR |
"uf" |
valor |
DOUBLE |
39420.5 |
6. censo_comunal — Perfil demografico comunal del Censo 2024 con sexo y grandes grupos de edad. (PK: codigo_comuna)
| Columna | Tipo | Ejemplo |
|---|---|---|
codigo_region |
VARCHAR(2) |
"01" |
codigo_provincia |
VARCHAR(3) |
"011" |
codigo_comuna |
VARCHAR(5) |
"01101" |
nombre_comuna |
VARCHAR |
"Iquique" |
poblacion_censada |
INTEGER |
223400 |
hombres / mujeres |
INTEGER |
"111200 / 112200" |
razon_hombre_mujer |
DOUBLE |
99.11 |
poblacion_0_14 … poblacion_65_mas |
INTEGER |
"5 tramos etarios" |
7. censo_hogares_viviendas — Viviendas y hogares censados por comuna, ocupacion y tamano medio del hogar. (PK: codigo_comuna)
| Columna | Tipo | Ejemplo |
|---|---|---|
codigo_comuna |
VARCHAR(5) |
"01101" |
viviendas_censadas |
INTEGER |
85000 |
viviendas_particulares_ocupadas |
INTEGER |
75000 |
viviendas_colectivas |
INTEGER |
200 |
hogares_censados |
INTEGER |
73000 |
promedio_personas_hogar |
DOUBLE |
3.06 |
8. establecimientos_salud — Directorio vigente de establecimientos de salud con tipo, dependencia, urgencia y ubicacion. (PK: codigo_establecimiento)
| Columna | Tipo | Ejemplo |
|---|---|---|
codigo_establecimiento |
VARCHAR |
"101101" |
nombre_establecimiento |
VARCHAR |
"Hospital Dr. Ernesto Torres Galdames" |
tipo_establecimiento |
VARCHAR |
"Hospital" |
nivel_atencion |
VARCHAR |
"Alta Complejidad" |
codigo_comuna |
VARCHAR(5) |
"01101" |
tiene_servicio_urgencia |
VARCHAR |
"SI" / "NO" |
latitud / longitud |
DOUBLE |
"Coordenadas geográficas" |
estado_funcionamiento |
VARCHAR |
"Vigente" |
9. distritos_electorales — Asociación de comunas a distritos electorales (diputados) y circunscripciones senatoriales. (PK: codigo_comuna)
| Columna | Tipo | Ejemplo |
|---|---|---|
codigo_comuna |
VARCHAR(5) |
"01101" |
nombre_comuna |
VARCHAR |
"Las Condes" |
distrito_electoral |
VARCHAR |
"10" |
circunscripcion_senatorial |
VARCHAR |
"3" |
10. establecimientos_educacionales — Directorio oficial del Ministerio de Educación (MINEDUC) con Rol Base de Datos (RBD), ubicación y dependencia administrativa. (PK: rbd)
| Columna | Tipo | Ejemplo |
|---|---|---|
rbd |
VARCHAR |
"1234-5" |
dv_rbd |
VARCHAR |
"4" |
nombre_establecimiento |
VARCHAR |
"Liceo Abate Molina" |
codigo_comuna |
VARCHAR(5) |
"01101" |
dependencia_administrativa |
VARCHAR |
"Municipal" |
latitud / longitud |
DOUBLE |
"Coordenadas geográficas" |
estado_funcionamiento |
VARCHAR |
"Vigente" |
11. finanzas_municipales — Indicadores financieros municipales anuales desde SINIM/SUBDERE. CAPA PARCIAL/CANDIDATO: 3 de 346 comunas (0.9%). Usar con precaución; no representa cobertura nacional. (PK: anio, codigo_comuna)
| Columna | Tipo | Ejemplo |
|---|---|---|
anio |
INTEGER |
2024 |
codigo_comuna |
VARCHAR(5) |
"01101" |
ingresos_totales / gastos_totales |
DOUBLE |
245000000000.0 |
ingresos_propios_permanentes |
DOUBLE |
162000000000.0 |
fondo_comun_municipal |
DOUBLE |
39000000000.0 |
12. resultados_educacionales — Resultados educacionales agregados por comuna y año, sin registros personales. (PK: anio, codigo_comuna)
| Columna | Tipo | Ejemplo |
|---|---|---|
anio |
INTEGER |
2024 |
codigo_comuna |
VARCHAR(5) |
"01101" |
matricula_total |
INTEGER |
122000 |
asistencia_promedio |
DOUBLE |
86.2 |
tasa_aprobacion / tasa_retiro |
DOUBLE |
"91.4 / 4.5" |
13. indicadores_urbanos_siedu — Indicadores urbanos SIEDU en formato largo con cobertura comunal parcial esperada. (PK: anio, codigo_comuna, codigo_indicador)
| Columna | Tipo | Ejemplo |
|---|---|---|
anio |
INTEGER |
2024 |
codigo_comuna |
VARCHAR(5) |
"01101" |
codigo_indicador |
VARCHAR |
"siedu_acceso_areas_verdes" |
categoria |
VARCHAR |
"Espacio publico" |
valor / unidad |
DOUBLE |
"71.4 / "porcentaje" |
14. perfil_territorial_comunal — Perfil comunal curado que consolida DPA, censo, salud, educación, finanzas, SIEDU y distritos. (PK: codigo_comuna)
| Columna | Tipo | Ejemplo |
|---|---|---|
codigo_comuna |
VARCHAR(5) |
"01101" |
poblacion_censada |
INTEGER |
223400 |
establecimientos_salud_total |
INTEGER |
140 |
establecimientos_educacionales_total |
INTEGER |
410 |
distrito_electoral |
VARCHAR |
"10" |
crecimiento_natural_ultimo_anio |
INTEGER |
12 |
anio_estadisticas_vitales |
INTEGER |
2023 |
viviendas_autorizadas_ultimo_anio |
INTEGER |
2451 |
superficie_autorizada_m2_ultimo_anio |
INTEGER |
187320 |
anio_permisos_edificacion |
INTEGER |
2023 |
mp25_promedio_ultimo_anio |
DOUBLE |
18.4 |
anio_calidad_aire |
INTEGER |
2026 |
15. empresas — Registro de Empresas y Sociedades (RES) con RUT, razon social, tipo societario, capital, fecha de constitucion y comuna de domicilio. (PK: rut)
| Columna | Tipo | Ejemplo |
|---|---|---|
rut |
VARCHAR |
"76286049-K" |
razon_social |
VARCHAR |
"COMERCIALIZADORA EJEMPLO SPA" |
codigo_sociedad |
VARCHAR |
"SPA" |
capital |
INTEGER |
5000000 |
fecha_actuacion |
DATE |
"2020-06-15" |
anio |
INTEGER |
2020 |
comuna_tributaria |
VARCHAR |
"SANTIAGO" |
region_tributaria |
VARCHAR |
"13" |
16. pobreza_comunal — Estimaciones de pobreza comunal por ingresos y multidimensional derivadas de la encuesta CASEN mediante metodología SAE (Estimación de Áreas Pequeñas). Incluye tasa, límite inferior y superior del intervalo de confianza por comuna, año y dimensión. (PK: codigo_comuna, anio, dimension)
| Columna | Tipo | Ejemplo |
|---|---|---|
codigo_region |
VARCHAR(2) |
"01" |
codigo_comuna |
VARCHAR(5) |
"01101" |
nombre_comuna |
VARCHAR |
"Santiago" |
anio |
INTEGER |
2022 |
dimension |
VARCHAR |
"ingresos" / "multidimensional" |
tasa |
DOUBLE |
15.3 |
limite_inferior |
DOUBLE |
12.1 |
limite_superior |
DOUBLE |
18.9 |
metodologia |
VARCHAR |
"SAE" |
fuente |
VARCHAR |
"Observatorio Social — MDS" |
17. consumo_electrico_comunal — Consumo eléctrico anual por comuna y tipo de cliente (Residencial, Comercial, Industrial, Agrícola, Alumbrado Público, Otros), publicado por la Comisión Nacional de Energía (CNE) en el portal Energía Abierta. DEPRECATED: la fuente Junar de energiaabierta.cl fue decomisionada (investigado 2026-07-07); el dataset solo publica datos de muestra (FALLBACK_ROWS), no está en el bundle público. Ver data/source_registry.json. (PK: codigo_comuna, anio, tipo_cliente)
| Columna | Tipo | Ejemplo |
|---|---|---|
codigo_region |
VARCHAR(2) |
"01" |
codigo_comuna |
VARCHAR(5) |
"01101" |
nombre_comuna |
VARCHAR |
"Santiago" |
anio |
INTEGER |
2023 |
tipo_cliente |
VARCHAR |
"Residencial" |
consumo_kwh |
DOUBLE |
1523400.5 |
numero_clientes |
INTEGER |
45800 |
fuente |
VARCHAR |
"CNE — Energía Abierta" |
18. partidos_politicos — Roster de partidos políticos de Chile (Cámara de Diputadas y Diputados), con estado_legal y fecha_constitucion completados por join de nombre contra el registro público de SERVEL. (PK: id_partido)
| Columna | Tipo | Ejemplo |
|---|---|---|
id_partido |
VARCHAR |
"DC" |
nombre |
VARCHAR |
"Partido Demócrata Cristiano" |
sigla |
VARCHAR |
"DC" |
estado_legal |
VARCHAR |
"constituido" (nulo si no matchea con SERVEL)"` |
fecha_constitucion |
DATE |
"1988-05-02" |
ambito |
VARCHAR |
"null (sin fuente que lo provea)"` |
fuente |
VARCHAR |
"Cámara de Diputadas y Diputados" |
19. autoridades_electas — Autoridades electas en ejercicio de Chile (diputados y senadores): partido, distrito electoral/circunscripción senatorial, región y período de mandato. (PK: id_autoridad)
| Columna | Tipo | Ejemplo |
|---|---|---|
id_autoridad |
VARCHAR |
"diputado_1009" |
nombre |
VARCHAR |
"Jorge Alessandri Vergara" |
cargo |
VARCHAR |
"diputado" / "senador" |
institucion |
VARCHAR |
"Cámara de Diputadas y Diputados" / "Senado" |
partido |
VARCHAR |
"Unión Demócrata Independiente" |
distrito_electoral |
VARCHAR |
"10" (solo diputados)"` |
circunscripcion_senatorial |
VARCHAR |
"3" (solo senadores)"` |
codigo_region |
VARCHAR(2) |
"02" (solo senadores)"` |
periodo_inicio / periodo_fin |
DATE |
"2026-03-11 / 2030-03-10" |
estado_mandato |
VARCHAR |
"vigente" |
20. estadisticas_vitales — Nacimientos y defunciones por comuna de residencia y sexo, desde los Anuarios de Estadísticas Vitales del INE (definitivos, 2010 en adelante). (PK: anio, codigo_comuna, evento, sexo)
| Columna | Tipo | Ejemplo |
|---|---|---|
anio |
INTEGER |
2023 |
codigo_region |
VARCHAR(2) |
"13" |
codigo_comuna |
VARCHAR(5) |
"13101" |
nombre_comuna |
VARCHAR |
"Santiago" |
evento |
VARCHAR |
"nacimiento" |
sexo |
VARCHAR |
"hombre" |
cantidad |
INTEGER |
4521 |
estado_dato |
VARCHAR |
"definitivo" |
fuente |
VARCHAR |
"Instituto Nacional de Estadísticas (INE) — Estadísticas Vitales" |
url_fuente |
VARCHAR |
"https://www.ine.gob.cl/docs/default-source/.../2023/....xlsx" |
fecha_fuente |
VARCHAR |
"2026-09-14" |
21. permisos_edificacion — Viviendas en unidades y superficie (m2) por comuna y año —casas y departamentos— desde las estadísticas de permisos de edificación del CEDOC (MINVU), serie desde 2002. (PK: anio, codigo_comuna)
| Columna | Tipo | Ejemplo |
|---|---|---|
anio |
INTEGER |
2023 |
codigo_region |
VARCHAR(2) |
"13" |
codigo_comuna |
VARCHAR(5) |
"13101" |
nombre_comuna |
VARCHAR |
"Santiago" |
unidades_total |
INTEGER |
2451 |
superficie_m2_total |
INTEGER |
187320 |
unidades_casas |
INTEGER |
312 |
superficie_m2_casas |
INTEGER |
24810 |
unidades_departamentos |
INTEGER |
2139 |
superficie_m2_departamentos |
INTEGER |
162510 |
estado_dato |
VARCHAR |
"definitivo" |
fuente |
VARCHAR |
"MINVU — Centro de Estudios de Ciudad y Territorio (CEDOC)" |
url_fuente |
VARCHAR |
"https://catalogo.minvu.cl/cgi-bin/koha/opac-retrieve-file.pl?id=..." |
fecha_fuente |
VARCHAR |
"2026-09-15" |
22. calidad_aire — Promedios diarios de contaminantes atmosféricos (MP2.5, MP10, SO2, NO2, CO, O3) por estación de monitoreo, desde el SINCA (MMA). Cobertura parcial: ~65 comunas con estación. (PK: fecha, id_estacion, codigo_contaminante)
| Columna | Tipo | Ejemplo |
|---|---|---|
fecha |
VARCHAR |
"2026-09-14" |
id_estacion |
VARCHAR |
"271" |
nombre_estacion |
VARCHAR |
"Quilicura" |
codigo_region |
VARCHAR(2) |
"13" |
codigo_comuna |
VARCHAR(5) |
"13144" |
nombre_comuna |
VARCHAR |
"Quilicura" |
latitud |
DOUBLE |
-33.36 |
longitud |
DOUBLE |
-70.73 |
codigo_contaminante |
VARCHAR |
"mp25" |
nombre_contaminante |
VARCHAR |
"MP 2,5" |
unidad |
VARCHAR |
"ug/m3" |
valor_promedio_diario |
DOUBLE |
18.4 |
valor_max_horario |
DOUBLE |
42.0 |
horas_validas |
INTEGER |
24 |
estado_dato |
VARCHAR |
"definitivo" |
fuente |
VARCHAR |
"SINCA — Ministerio del Medio Ambiente" |
url_fuente |
VARCHAR |
"https://sinca.mma.gob.cl/index.php/json/listadomapa2k19/" |
fecha_fuente |
VARCHAR |
"2026-09-15" |
23. geometria_comunal — Límites poligonales de las 346 comunas de Chile (GeoParquet, geometría 'generalizada' — simplificada para cartografía a escala nacional, no apta para trabajo de precisión geodésica ni catastral). Fuente: BCN ArcGIS (tematico/Comunas_Generalizadas). Artefacto separado de comunas, unido por codigo_comuna. (en carril candidate — datos no incluidos en el bundle público) (PK: codigo_comuna)
| Columna | Tipo | Ejemplo |
|---|---|---|
codigo_region |
VARCHAR(2) |
"01" |
codigo_comuna |
VARCHAR(5) |
"01101" |
nombre_comuna |
VARCHAR |
"Iquique" |
nombre_comuna_clean |
VARCHAR |
"iquique" |
nombre_region |
VARCHAR |
"Región de Tarapacá" |
geometry |
BINARY |
"WKB — Polygon o MultiPolygon en EPSG:4326 (WGS84), geoparquet 1.0" |
24. delincuencia_comunal — DEPRECATED 2026-09-15: Casos policiales de Delitos de Mayor Connotación Social (DMCS) y otras categorías por comuna y mes. Sin fuente estructurada oficial (solo scraping frágil) y no redistribuible; extractor neutralizado y fuera del scrape mensual. Ver docs/datasets/delincuencia_comunal.md. (en carril candidate — datos no incluidos en el bundle público) (PK: anio, mes, codigo_comuna, familia_delito)
| Columna | Tipo | Ejemplo |
|---|---|---|
codigo_comuna |
VARCHAR(5) |
"01101" |
nombre_comuna |
VARCHAR |
"Santiago" |
anio |
INTEGER |
2024 |
mes |
INTEGER |
1 |
familia_delito |
VARCHAR |
"robos_violentos" |
casos |
INTEGER |
245 |
25. autoridades_locales — Autoridades locales/subnacionales de Chile: gobernadores regionales (Wikipedia, CC-BY-SA) y alcaldes (BCN SIIT, dato público gubernamental). Wikipedia se mantiene como fuente de gobernadores y enriquecimiento opcional de periodo_inicio para alcaldes. Dataset segregado de autoridades_electas por licencia mixta. (en carril candidate — datos no incluidos en el bundle público) (PK: id_autoridad)
| Columna | Tipo | Ejemplo |
|---|---|---|
id_autoridad |
VARCHAR |
"gobernador_01" |
nombre |
VARCHAR |
"null si no hay evidencia clara del titular"` |
cargo |
VARCHAR |
"gobernador_regional" / "alcalde" |
codigo_region |
VARCHAR(2) |
"01" |
codigo_comuna |
VARCHAR(5) |
"01101" (solo alcaldes)"` |
partido |
VARCHAR |
"nulo si no identificado" |
estado_mandato |
VARCHAR |
"vigente" / "sin_identificar" |
Diagrama entidad-relación (capas principales)
erDiagram
REGIONES {
VARCHAR codigo_region PK "Ej: '01' (Tarapacá)"
VARCHAR nombre_region
}
PROVINCIAS {
VARCHAR codigo_provincia PK "Ej: '011' (Iquique)"
VARCHAR codigo_region FK
VARCHAR nombre_provincia
}
COMUNAS {
VARCHAR codigo_comuna PK "Ej: '01101' (Iquique)"
VARCHAR codigo_provincia FK
VARCHAR codigo_region FK
VARCHAR nombre_comuna
VARCHAR nombre_comuna_clean "Ej: 'iquique' (sin tildes)"
}
COMUNAS_ENRIQUECIDAS {
VARCHAR codigo_comuna PK
VARCHAR nombre_comuna
DOUBLE latitud_cabecera
DOUBLE longitud_cabecera
INTEGER poblacion_estimada
}
CENSO_COMUNAL {
VARCHAR codigo_comuna PK
INTEGER poblacion_censada
INTEGER hombres
INTEGER mujeres
INTEGER poblacion_0_14
}
CENSO_HOGARES_VIVIENDAS {
VARCHAR codigo_comuna PK
INTEGER viviendas_censadas
INTEGER hogares_censados
DOUBLE promedio_personas_hogar
}
ESTABLECIMIENTOS_SALUD {
VARCHAR codigo_establecimiento PK
VARCHAR codigo_comuna FK
VARCHAR nombre_establecimiento
VARCHAR tipo_establecimiento
}
DISTRITOS_ELECTORALES {
VARCHAR codigo_comuna PK
VARCHAR distrito_electoral
VARCHAR circunscripcion_senatorial
}
ESTABLECIMIENTOS_EDUCACIONALES {
VARCHAR rbd PK "Rol Base de Datos"
VARCHAR codigo_comuna FK
VARCHAR nombre_establecimiento
}
INDICADORES {
DATE fecha PK
VARCHAR codigo_indicador PK "Ej: 'uf', 'dolar'"
DOUBLE valor
}
REGIONES ||--o{ PROVINCIAS : "contiene"
PROVINCIAS ||--o{ COMUNAS : "contiene"
COMUNAS ||--|| COMUNAS_ENRIQUECIDAS : "enriquece"
COMUNAS ||--o| CENSO_COMUNAL : "demografía"
COMUNAS ||--o| CENSO_HOGARES_VIVIENDAS : "hogares"
COMUNAS ||--o{ ESTABLECIMIENTOS_SALUD : "salud"
COMUNAS ||--o{ ESTABLECIMIENTOS_EDUCACIONALES : "educación"
COMUNAS ||--o| DISTRITOS_ELECTORALES : "electoral"
Hecho con datos públicos chilenos, para quienes construyen sobre Chile.
Parte del ecosistema Tooltician — datos públicos, interoperables y listos para IA.
Metadata
Release files for chile-hub 1.46.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| chile_hub-1.46.1.tar.gz | 130.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| chile_hub-1.46.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 222.6 kB
Release files / chile_hub-1.46.1.tar.gz
| Download URL | chile_hub-1.46.1.tar.gz |
|---|---|
| Size | 130.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2033a0baef76430f0e59f447c961c933e2a51aaaa6df6bb353a2e3447f23c1a7
|
|
BLAKE2b-256 checksum How to use checksums |
a9a8db33cba97d86a2c93923cb2f5b927731f526bb1afc09569bb3a9f8e8374d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency logRelease files / chile_hub-1.46.1-py3-none-any.whl
| Download URL | chile_hub-1.46.1-py3-none-any.whl |
|---|---|
| Size | 92.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9d5d53da1985c58d5376b10a2492d0b2de9338727f48b088ed7ed5b0a8232ba6
|
|
BLAKE2b-256 checksum How to use checksums |
45e7fad56034c1a5a6fdd4c53da1dfa7987f0c81880ebd5b545127146ad7bb59
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 30, 2026.
Transparency log