Metadata-Version: 2.4
Name: clistack
Version: 0.1.1
Summary: CLI utilities with ANSI colors, Rich support and a flexible logger
Author: Juan M. Romano Siriani
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Provides-Extra: rich
Requires-Dist: rich>=13.0.0; extra == "rich"

# clistack

Librería ligera para herramientas CLI en Python con:

* Colores ANSI (sin dependencias)
* Soporte opcional para Rich
* Logger con:

  * niveles (INFO, OK, WARN, ERROR, DEBUG)
  * logs a archivo
  * rotación diaria
  * spinner
  * barra de progreso

---

## 📦 Instalación

### Básico (sin Rich)

```bash
pip install clistack
```

### Con Rich (recomendado)

```bash
pip install clistack[rich]
```

---

## 🚀 Uso rápido

```python
from clistack.logger import Logger
from clistack.ansi import success, error
from clistack.rich_utils import print_color
from clistack.rich_colors import RichColor

# ANSI
success("Todo OK")
error("Algo falló")

# Rich (si está instalado)
print_color("Texto con estilo", RichColor.BRIGHT_CYAN, bold=True)

# Logger
log = Logger(
    log_to_file=True,
    log_path="logs/",   # carpeta → logs por día
    debug=True
)

log.info("Iniciando proceso")
log.debug("Debug activado")
log.success("Operación exitosa")
log.warning("Advertencia")
log.error("Error detectado")

# Spinner
log.spinner("Cargando...", duration=2)

# Progress bar
import time
for _ in log.progress(range(5), desc="Procesando"):
    time.sleep(0.3)

log.success("Finalizado")
```

---

## 📁 Logs

Si usás:

```python
Logger(log_to_file=True, log_path="logs/")
```

Se generan archivos automáticamente:

```
logs/
├── 2026-04-20.log
├── 2026-04-21.log
```

También podés usar un archivo fijo:

```python
Logger(log_to_file=True, log_path="logs/app.log")
```

---

## ⚙️ Características

* Funciona sin dependencias externas
* Usa Rich automáticamente si está disponible
* Fallback a ANSI si no está instalado
* Ideal para scripts, tools CLI y automatización

---

## 🧠 Notas

* Rich es opcional, no rompe si no está instalado
* Compatible con PyInstaller
* Pensado para tools / scripting / pentesting / automatización

---

