Metadata-Version: 2.4
Name: flora-fauna-anon
Version: 0.1.2
Summary: Anonimización y sustitución inteligente de menciones con @ en textos y pandas DataFrames usando Flora y Fauna.
Author-email: Agustín Nielsen <agustinnielsen31@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/agustinnielsen/flora-fauna-anon
Keywords: anonymizer,nlp,pandas,data-privacy,handles,flora,fauna
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Text Processing
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas>=1.5.0
Dynamic: license-file

# flora-fauna-anon

**Anonimización y sustitución inteligente de menciones con `@`** en textos individuales, `pandas.Series` y `pandas.DataFrame`, utilizando combinaciones naturales de **flora y fauna argentina**.

Reemplaza automáticamente cada mención `@usuario` por una combinación natural de términos (ej. `@puma_abeto_azul`, `@jaguar_acacia`).

---

## Instalación

```bash
pip install flora-fauna-anon
```

---

## Uso Rápido

```python
import flora_fauna_anon as ffa
import pandas as pd

# 1. Reemplazar en un texto simple
texto = "El @puma y la @vizcacha cerca de @anita.devesa"
resultado = ffa.reemplazar(texto)
print(resultado)
# Salida: "El @jaguar_acacia y la @zorro_abedul cerca de @comadrejita_alhelí"

# 2. Reemplazar directamente en un DataFrame de pandas
df = pd.DataFrame({
    "id": [1, 2],
    "text": ["Hola @juanzosuarez!", "Respuesta para @juanzosuarez y @romi81457"]
})

df_anon = ffa.reemplazar(df=df, columna="text")
print(df_anon)
```

---

## Opciones de Configuración

| Parámetro | Tipo | Por Defecto | Descripción |
| :--- | :--- | :--- | :--- |
| `separador` | `str` | `"_"` | Carácter para unir Flora y Fauna (`"_"`, `"-"`, `"."`). |
| `permitir_repetidos` | `bool` | `True` | Permite que tokens distintos reciban o no la misma sustitución aleatoria. |
| `recordar_mapeo` | `bool` | `True` | Reutiliza el mismo nombre falso si una mención (ej. `@puma`) se repite en el texto/DataFrame. |
| `permitidos` | `list` | `None` | Lista de tokens `@` a ignorar (no reemplazar, ej. `permitidos=["@admin"]`). |
| `min_len` / `max_len` | `int` | `None` | Filtro por cantidad de caracteres del token (sin contar la `@`). |
| `rotar_listas` | `bool` | `False` | Si se agotan las combinaciones únicas, reinicia el ciclo sin lanzar error. |

---

## Licencia

[MIT License](LICENSE)
