Sweep follow-up to 93e43fc. Display labels now consistent across docs,
landing pages, CLI output, code comments, docstrings, and test prose.
Five parallel surfaces touched:
- docs (EN + ES): README, USER-GUIDE, CLI-REFERENCE, and 11 internal
design/planning docs
- landing pages: index + bookkeeper/revops/shopify-pet
- src: CLI module docstrings, _TOOL_DISPLAY dicts in cli_analyze.py
and gui/components/_legacy.py, core module headers, every tool
page's module docstring
- tests: class/method/module docstrings and section-header comments
- test-cases READMEs
Page slugs (1_Deduplicator etc.), tool_id strings (01_deduplicator
etc.), Python class names (TestDeduplicatorWorkflow, FeatureFlag.*),
URL paths, anchor IDs, CSS classes, and asset filenames were left
intact since they're code identifiers / structural references.
All 2033 tests pass.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
94 lines
5.0 KiB
Markdown
94 lines
5.0 KiB
Markdown
> 🌐 **Idioma:** Español · [English](README.md)
|
||
|
||
# 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 |
|
||
|
||
## Descarga (usuarios no técnicos)
|
||
|
||
Instaladores precompilados — no se requiere Python:
|
||
|
||
| Plataforma | Descarga | Nota de primer arranque |
|
||
|---|---|---|
|
||
| **macOS** | `DataTools-X.Y.Z-mac.dmg` | Arrastra DataTools.app a /Applications y haz doble clic. |
|
||
| **Windows** | `DataTools-X.Y.Z-win-setup.exe` | Ejecuta el instalador; se inicia desde el menú Inicio. |
|
||
| **Linux** | `DataTools-X.Y.Z-linux-x86_64.AppImage` | `chmod +x` al archivo y luego doble clic. |
|
||
|
||
Última versión: consulta [GitHub Releases](https://git.invixiom.com/giteadmin/datatools-dev/releases) (o el listado de Gumroad). Los instaladores ocupan ~150–200 MB; el lanzador arranca un servidor local en http://127.0.0.1:8501 y abre tu navegador. Nada se envía a la nube.
|
||
|
||
## Instalar desde el código (desarrolladores)
|
||
|
||
```bash
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
Requiere Python 3.10+.
|
||
|
||
## Ejecutar
|
||
|
||
**GUI** (recomendado):
|
||
```bash
|
||
streamlit run src/gui/app.py
|
||
```
|
||
|
||
**CLI** — siete puntos de entrada:
|
||
```bash
|
||
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](docs/DEVELOPER.md#i18n--language-packs) (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ía
|
||
- `logs/<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](docs/USER-GUIDE.es.md) — instalación, flujo de la GUI, verificación
|
||
- [Referencia de la CLI](docs/CLI-REFERENCE.es.md) — cada bandera con recetas
|
||
- [Requisitos](docs/REQUIREMENTS.md) — tamaños de archivo, codificaciones, detectores, objetivos de rendimiento (solo en inglés)
|
||
- [Técnico](docs/TECHNICAL.md) — arquitectura, internos de la verificación, registro de correcciones (solo en inglés)
|
||
- [Guía del desarrollador](docs/DEVELOPER.md) — 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.
|