Código fuente para dane_data.geih

"""Gran Encuesta Integrada de Hogares (GEIH) — mercado laboral, microdatos de personas."""

from __future__ import annotations

from typing import Iterable

from .. import config
from .downloader import (DEFAULT_MODULES, EMPALME_CATALOGS, KNOWN_CATALOGS, MODULE_PATTERNS,
                         GEIHDownloader)
from .agregados import (POBLACIONES, POR_PRECALCULADOS, VARIABLES_INDICADORES, exportar, filtrar, serie_frecuencias,
                        serie_indicadores, serie_tabla, tabla_de_frecuencias)
from .indicadores import GLOSARIO, indicadores
from .loader import (CATEGORIAS, CONDICIONES, CORE_RAW, GRUPOS_EDAD, MARCOS, MODULOS, NIVELES_EDUC, available,
                     clear_cache, find_months, harmonize, load, load_month, marco_muestral)

ANIOS_DISPONIBLES = sorted(int(y) for y in KNOWN_CATALOGS)
ANIOS_EMPALME = sorted(int(y) for y in EMPALME_CATALOGS)


[documentos] def download( years: Iterable[int] | int | None = None, modules: Iterable[str] | None = None, empalme: bool = False, root=None, delete_zips: bool = False, limit_files: int | None = None, progress=None, should_stop=None, ) -> None: """ Descarga los microdatos de la GEIH del ANDA del DANE. Baja los ZIP mensuales de cada año y extrae los módulos en ``<carpeta>/datos_csv/<año>/<mes>/``. Es incremental: los meses que ya están completos se saltan, así que se puede interrumpir y volver a correr. Parámetros ---------- years Año o lista de años. ``None`` descarga todos los de la serie (``ANIOS_DISPONIBLES``, o ``ANIOS_EMPALME`` con ``empalme=True``); una lista vacía, ninguno. Los años que no están en el ANDA se ignoran con un aviso. modules Módulo o lista de módulos a extraer, con los nombres de ``DEFAULT_MODULES``: ``vivienda``, ``caracteristicas``, ``fuerza_trabajo``, ``ocupados``, ``desocupados``, ``inactivos``, ``otras_formas_trabajo``. Por defecto, todos. empalme Descargar la serie de empalme (2010–2020, con proyecciones del CNPV 2018) en vez de la principal. root Carpeta de destino. Por defecto, la de ``dd.get_path("geih")`` o ``dd.get_path("geih_empalme")``. delete_zips Borrar cada ZIP después de extraerlo. Por defecto se conservan. limit_files Máximo de meses por año; útil para probar con uno solo. progress Función ``progress(fraccion, mensaje)`` que recibe el avance (``fraccion`` entre 0 y 1, o None). should_stop Función sin argumentos; si devuelve True, la descarga se detiene con ``DownloadCancelled``. Lanza ----- DownloadCancelled Si ``should_stop()`` devolvió True. ValueError Si ``modules`` está vacío o tiene un nombre que no es de ``DEFAULT_MODULES``. Véase también ------------- available : Qué meses hay en disco y si están completos. load : Cargar lo descargado. dane_data.eam.download : Descargar la EAM. Notas ----- En algunos meses los CSV que publica el ANDA están dañados (2008 y 2011: el factor de expansión sin punto decimal; septiembre de 2021: separado por espacios). Para esos meses se baja otro formato del mismo catálogo (TXT o Stata). Un año extraído ocupa unos 500 MB en disco, más los ZIP si se conservan. Ejemplos -------- >>> import dane_data as dd >>> dd.geih.download([2024, 2025]) # doctest: +SKIP >>> dd.geih.download(2016, empalme=True) # doctest: +SKIP >>> dd.geih.download(2025, limit_files=1) # solo enero, para probar # doctest: +SKIP """ if isinstance(years, (int, str)): years = [years] root = root or config.get_path("geih_empalme" if empalme else "geih") dl = GEIHDownloader( base_dir=root, keep_zips=not delete_zips, extract_csv=True, is_empalme=empalme, modules=modules, progress=progress, should_stop=should_stop, ) dl.run_pipeline(target_years=years, limit_files=limit_files)
__all__ = [ "download", "load", "load_month", "available", "find_months", "harmonize", "indicadores", "serie_indicadores", "serie_tabla", "serie_frecuencias", "tabla_de_frecuencias", "exportar", "filtrar", "POBLACIONES", "marco_muestral", "MARCOS", "clear_cache", "GLOSARIO", "MODULOS", "CORE_RAW", "CONDICIONES", "NIVELES_EDUC", "GRUPOS_EDAD", "CATEGORIAS", "VARIABLES_INDICADORES", "POR_PRECALCULADOS", "ANIOS_DISPONIBLES", "ANIOS_EMPALME", "MODULE_PATTERNS", "DEFAULT_MODULES", ]