Removes the single-command Python packaging method (build/make_release.py + build/build_portable_zip.py + build/macos/build_zip.sh) and the portable .zip artifacts it produced. Release builds go back to the original GitHub Actions process: the CI matrix builds one installer per platform (.dmg / .exe / .AppImage) on tag push and attaches them to a GitHub Release. Tesseract OCR bundling is preserved: the fetch helpers the workflow depends on (fetch_tessdata, fetch_tesseract_for_platform) are extracted into a standalone build/tesseract.py, which build.yml now imports. Docs (README, build/README, DEVELOPER, TECHNICAL, USER-GUIDE, vendor README, es translations) updated to drop the portable-zip flavor and point at the new module. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
6.2 KiB
🌐 Idioma: Español · English
DataTools
Limpieza local de CSV / Excel. CLI + GUI en el navegador, sin nube, sin ceremonias de instalación. La GUI incluye paquetes de idioma en inglés y español.
Herramientas
| # | Herramienta | Estado |
|---|---|---|
| 01 | Buscar duplicados — coincidencia exacta + difusa, 5 normalizadores, reglas de superviviente, auditoría | Listo |
| 02 | Limpiar texto — espacios, caracteres tipográficos, BOM, finales de línea, mayúsculas/minúsculas | Listo |
| 03 | Estandarizar formatos — fechas, teléfonos, correos, direcciones, nombres, monedas, booleanos | Listo |
| 04 | Corregir valores faltantes — detección de nulos disfrazados, perfil, media/mediana/moda/ffill/bfill/interpolación, estrategias de descarte | Listo |
| 05 | Mapear columnas — autodetección difusa de renombrados, esquema objetivo con coerción de tipos, campos requeridos con valores por defecto, descartar/reordenar | Listo |
| 06 | Detectar valores atípicos | Próximamente |
| 07 | Combinar archivos | Próximamente |
| 08 | Verificación de calidad | Próximamente |
| 09 | Flujos automatizados — encadena herramientas en un orden recomendado (no forzado), guarda/carga JSON, automatiza limpiezas semanales | Listo |
Cada página de herramienta incluye una ventana emergente de Help (a la derecha del título) con una guía compacta de Cuándo usarla / Pasos / Ejemplos / Consejo. El texto vive en los paquetes de idioma (tools.<id>.help_md).
Descarga (usuarios no técnicos)
Paquetes precompilados — sin instalar Python, sin permisos de administrador, sin internet en ejecución. Cada versión ofrece un instalador por sistema operativo que crea accesos directos en el escritorio + menú Inicio / Launchpad.
| Plataforma | Instalador |
|---|---|
| macOS | DataTools-X.Y.Z-mac.dmg — ábrelo, arrastra DataTools.app a /Applications, ejecútalo desde Launchpad. |
| Windows | DataTools-X.Y.Z-win-setup.exe — ejecuta el instalador (por usuario, sin admin). Crea acceso directo en el escritorio + entrada en el menú Inicio. |
| Linux | DataTools-X.Y.Z-linux-x86_64.AppImage — chmod +x y doble clic. El AppImage ya es portable. |
Última versión: consulta GitHub Releases (o el listado de Gumroad). Cada paquete ocupa ~300 MB descomprimido; al primer arranque la app levanta un servidor local en http://127.0.0.1:8501 y abre tu navegador predeterminado. Nada sale de tu equipo.
Tesseract OCR viene incluido. El soporte para PDFs escaneados del Extractor de PDF funciona sin configuración adicional en las tres plataformas — no hace falta instalar Tesseract por separado. Atribución de licencia: ver LICENSE_TESSERACT.txt.
Avisos del primer arranque (una sola vez):
- macOS sin firma: clic derecho → Abrir → confirma. (Las compilaciones firmadas se lo saltan.)
- Windows SmartScreen: pulsa Más información → Ejecutar de todas formas.
Guía detallada de instalación y resolución de problemas: Guía del usuario §1.
Instalar desde el código (desarrolladores)
pip install -r requirements.txt
Requiere Python 3.10+.
Ejecutar
GUI (recomendado):
streamlit run src/gui/app.py
CLI — siete puntos de entrada:
python -m src.cli customers.csv [--apply] # deduplicación
python -m src.cli_text_clean messy.csv [--apply] # limpieza de texto
python -m src.cli_format intl.csv [--apply] # estandarización de formatos (auto-stream si >100 MB)
python -m src.cli_missing holes.csv [--apply] # valores faltantes
python -m src.cli_column_map vendor.csv [--apply] # mapeador de columnas
python -m src.cli_pipeline any_file.csv [--apply] # encadena herramientas de extremo a extremo
python -m src.cli_analyze any_file.csv [--json] # solo escanea
Cada CLI ejecuta solo previsualización por defecto; añade --apply para escribir la salida.
Idioma
La barra lateral de la GUI tiene un selector de idioma. Se incluyen paquetes para English y Español (src/i18n/packs/); la elección persiste durante la sesión. Para añadir un idioma: coloca un <código>.json junto a en.json reproduciendo el árbol de claves, y luego añádelo a LANGUAGES. Ver Guía del desarrollador §i18n (solo en inglés).
Verificación de Revisar y Normalizar
Cada archivo subido pasa por una verificación de normalización CSV antes de que cualquier herramienta lo toque. El analizador detecta ~15 tipos de problemas (espacios, caracteres NBSP / de ancho cero, BOM, codificación, puntuación tipográfica, encabezados sucios, centinelas nulos, mojibake, …) etiquetados por confianza (alta / media / baja) y acción de corrección. La GUI muestra cada hallazgo con Corregir auto / Saltar / Personalizar, una previsualización antes/después en vivo, y un selector para anular la codificación. Las páginas de herramientas se niegan a cargar hasta que se pase la verificación.
Salida
Cada ejecución escribe:
{input}_<tool>.csv— los datos limpios{input}_changes.csv(limpiador de texto) o{input}_match_groups.csv(duplicados) — pista de auditoríalogs/<tool>_YYYYMMDD_HHMMSS.log— registro de depuración de la ejecución
El archivo de entrada original nunca se modifica.
Documentación
- Guía del usuario — instalación, flujo de la GUI, verificación
- Referencia de la CLI — cada bandera con recetas
- Requisitos — tamaños de archivo, codificaciones, detectores, objetivos de rendimiento (solo en inglés)
- Técnico — arquitectura, internos de la verificación, registro de correcciones (solo en inglés)
- Guía del desarrollador — añadir correcciones / detectores / estandarizadores (solo en inglés)
Dependencias
pandas, openpyxl, rapidfuzz, phonenumbers, typer, loguru, charset-normalizer, streamlit. Opcional: ftfy para reparación de mojibake.
Licencia
Propietaria.