Metadata-Version: 2.4
Name: dle-cli
Version: 0.1.1
Summary: Fast, lightweight CLI tool for searching Spanish words on the RAE (DLE) dictionary.
Author: rsomonte
License: MIT
Keywords: rae,dle,spanish,dictionary,cli,rae-api
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Text Processing :: Linguistic
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# `dle-cli` 📖⚡

Un cliente de línea de comandos (CLI) ultra rápido, ligero y eficiente en recursos para buscar definiciones y conjugaciones en el **Diccionario de la Lengua Española (RAE)**.

Written in standard Python with **zero external package dependencies** and persistent **SQLite caching**, providing sub-millisecond offline lookup speed after initial query.

---

## ✨ Características

- 🚀 **Velocidad Extrema & Bajo Consumo**: Inicio instantáneo (<0.02 s) y consumo de memoria mínimo (<15 MB RAM).
- 💾 **Caché SQLite Local**: Guarda las búsquedas en `~/.cache/dle-cli/cache.db`. Las consultas repetidas tardan **<1 ms** sin hacer peticiones a la red.
- 🎨 **Salida Formateada**: Colores ANSI enriquecidos para etiquetas gramaticales (`m.`, `f.`, `tr.`, etc.), acepciones numeradas, sinónimos y antónimos.
- 📊 **Conjugación Verbal Completa**: Extrae tablas completas de verbos (Indicativo, Subjuntivo, Imperativo, Formas no personales) con el flag `-c` / `--conjugate`.
- 🔍 **Sugerencias Ortográficas**: Si la palabra no existe, muestra el listado de sugerencias de la RAE ("*Quizás quiso decir...*").
- 📄 **Salida JSON & Texto Plano**: Flag `--json` para scripts e integración con otras herramientas (`jq`), y `--plain` para redirigir a pipes.
- 🎲 **Palabra Aleatoria y del Día**: Acceso con `-r` (`--random`) y `-w` (`--wotd`).

---

## 🛠️ Instalación

### Opción 1: Instalar desde PyPI con `pip` o `pipx` (Recomendado)

```bash
pip install dle-cli
# O usando pipx:
pipx install dle-cli
```

### Opción 2: Instalar desde el código fuente

```bash
git clone https://github.com/rsomonte/dle-cli.git
cd dle-cli
pip install .
```

### Opción 3: Ejecutar directamente sin instalación (stand-alone)

```bash
git clone https://github.com/rsomonte/dle-cli.git
cd dle-cli
./bin/dle zapato
```

Una vez instalado, puedes invocar la herramienta directamente usando `dle`:

```bash
dle zapato
```

---

## 📖 Modo de Uso

### 1. Búsqueda básica de una palabra

```bash
dle zapato
```

### 2. Ver conjugación de un verbo (`-c` / `--conjugate`)

```bash
dle comer -c
```

### 3. Formato JSON para scripts (`--json`)

```bash
dle zapato --json
```

### 4. Modo resumido / conciso (`-s` / `--short`)

```bash
dle zapato --short
```

### 5. Palabra aleatoria (`-r` / `--random`) o del Día (`-w` / `--wotd`)

```bash
dle -r
dle -w
```

### 6. Gestión de la Caché Local

```bash
# Ver estadísticas de la caché (entradas guardadas y tamaño en disco)
dle --cache-stats

# Forzar consulta directa ignorando la caché local
dle zapato --no-cache

# Vaciar la caché local
dle --clear-cache
```

---

## ⚙️ Opciones del CLI (`dle --help`)

```text
Uso: dle [OPCIONES] [PALABRA]

Buscador ultra rápido del Diccionario de la Lengua Española (RAE)

Posicionales:
  PALABRA                Palabra a consultar en el Diccionario RAE

Opciones:
  -c, --conjugate        Mostrar tabla de conjugación verbal (si está disponible)
  -r, --random           Obtener una palabra aleatoria del diccionario
  -w, --wotd             Obtener la 'Palabra del día' de la RAE
  -j, --json             Imprimir resultado en formato JSON estructurado
  -s, --short            Mostrar resumen conciso en una línea por definición
  --plain, --no-color    Desactivar colores ANSI (modo texto plano)
  --no-cache             Omitir caché local y consultar directamente a la RAE
  --cache-stats          Mostrar estadísticas de la caché local
  --clear-cache          Limpiar todas las entradas guardadas en la caché local
  -v, --version          Mostrar la versión instalada
```

---

## 🧪 Pruebas Unitarias

Para ejecutar el conjunto de pruebas unitarias incluidas en el proyecto:

```bash
python3 -m unittest discover -s tests
```

---

## 📜 Licencia

Este proyecto está bajo la Licencia MIT. Consulta el archivo [LICENSE](LICENSE) para más detalles.
