Código fuente para dane_data.eam

"""Encuesta Anual Manufacturera (EAM) — industria, microdatos de establecimientos."""

from __future__ import annotations

from typing import Iterable

from .. import config
from .downloader import EAM_KNOWN_CATALOGS, EAM_TIC_CATALOGS, EAMDownloader
from .indicadores import GLOSARIO, crecimiento, deflactar, panel, participacion, resumen, supervivencia
from .loader import (CORE, ETIQUETAS, SECTORES, VARIABLES_COMUNES, available, find_files, harmonize,
                     load)

ANIOS_DISPONIBLES = sorted(int(y) for y in EAM_KNOWN_CATALOGS)


[documentos] def download( years: Iterable[int] | int | None = None, root=None, include_tic: bool = False, delete_zips: bool = False, progress=None, should_stop=None, ) -> None: """ Descarga los microdatos de la EAM del ANDA del DANE. Un archivo por año en ``<carpeta>/datos/<año>/``. Es incremental: los años ya extraídos se saltan. Parámetros ---------- years Año o lista de años entre 1992 y 2024. ``None`` descarga toda la serie (unos 330 MB); una lista vacía, ninguno. Los años que no están en el ANDA se ignoran con un aviso. root Carpeta de destino. Por defecto, la de ``dd.get_path("eam")``. include_tic Bajar también el módulo de tecnologías de la información (TIC), 2008–2018. delete_zips Borrar cada ZIP después de extraerlo. progress Función ``progress(fraccion, mensaje)`` que recibe el avance. should_stop Función sin argumentos; si devuelve True, la descarga se detiene con ``DownloadCancelled``. Lanza ----- DownloadCancelled Si ``should_stop()`` devolvió True. Véase también ------------- available : Qué años hay en disco. load : Cargar lo descargado. Notas ----- Cuando el ANDA no publica un CSV para un año, se usa el TXT (2023) o el archivo de Stata (2024). Ejemplos -------- >>> import dane_data as dd >>> dd.eam.download([2022, 2023, 2024]) # doctest: +SKIP >>> dd.eam.download() # toda la serie, 1992–2024 # doctest: +SKIP """ if isinstance(years, (int, str)): years = [years] dl = EAMDownloader( base_dir=root or config.get_path("eam"), keep_zips=not delete_zips, extract_data=True, include_tic=include_tic, progress=progress, should_stop=should_stop, ) dl.run_pipeline(target_years=years)
__all__ = [ "download", "load", "available", "find_files", "harmonize", "resumen", "participacion", "crecimiento", "deflactar", "panel", "supervivencia", "GLOSARIO", "ETIQUETAS", "SECTORES", "CORE", "VARIABLES_COMUNES", "ANIOS_DISPONIBLES", ]