Metadata-Version: 2.4
Name: prolin
Version: 1.0.0
Summary: Code Constellations — convierte cualquier codebase en una huella visual única
Author: Prolin
License: MIT
Keywords: visualization,generative-art,ast,portfolio,code-analysis
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: rich>=13.7.0
Requires-Dist: pillow>=10.2.0
Requires-Dist: fastapi>=0.110.0
Requires-Dist: uvicorn[standard]>=0.27.0
Requires-Dist: typer>=0.12.0
Provides-Extra: django
Requires-Dist: django>=4.2; extra == "django"
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: django>=4.2; extra == "dev"
Dynamic: license-file

# Prolin — Code Constellations

> **Every codebase has a sky. Prolin draws it.**

Prolin convierte cualquier repositorio en una **constelación visual única**: una huella genética del código basada en estructura, complejidad, lenguajes y acoplamiento.

No es otro dashboard. Es arte generativo determinista + análisis AST. Ideal para **portafolio** y demos técnicas.

![Prolin concept](assets/constellation.png)

---

## Por qué destaca en tu portafolio

| Problema típico | Lo que hace Prolin |
|---|---|
| Apps CRUD genéricas | Concepto original y memorable |
| Demos difíciles de explicar | Una imagen = una historia |
| Solo backend o solo frontend | CLI + motor generativo + UI interactiva |
| Resultados poco visuales | Export PNG de la constelación |

**Pitch de 10 segundos:**  
*“Analizo el ADN estructural de un codebase y lo transformo en una constelación única e interactiva.”*

---

## Qué hace

1. **Escanea** el proyecto (Python con AST real; otros lenguajes con heurísticas)
2. **Construye un genoma**: seed SHA-256, personalidad, paleta, estrellas y aristas
3. **Renderiza** una constelación PNG (Pillow)
4. **Sirve** un explorador web animado donde cada estrella es un archivo

Misma entrada → misma constelación. Determinista. Reproducible.

---

## Instalación

```bash
cd prolin
python -m venv .venv

# Windows
.venv\Scripts\activate

# macOS / Linux
source .venv/bin/activate

pip install -r requirements.txt
pip install -e .
```

---

## Uso con Django Admin (sin terminal)

Puedes instalar Prolin en un proyecto Django y **activarlo o desactivarlo desde el admin**, sin ejecutar la CLI.

```bash
pip install "prolin[django]"
# o, en desarrollo:
pip install -e ".[django]"
```

En `settings.py`:

```python
INSTALLED_APPS = [
    # ...
    "django.contrib.admin",
    "prolin.django",  # después de admin está bien
]
```

En `urls.py` del proyecto:

```python
from django.urls import include, path

urlpatterns = [
    path("admin/", admin.site.urls),
    path("prolin/", include("prolin.django.urls")),
]
```

Luego:

```bash
python manage.py migrate
python manage.py runserver
```

1. Entra a **/admin/** → **Configuración de Prolin**
2. Marca **Activar Prolin** (o déjalo apagado si no quieres usarlo)
3. Define la **ruta del proyecto** a escanear y guarda
4. Abre el panel **/prolin/** → Generar constelación / Ver cielo / Descargar PNG

Si **Activar Prolin** está desmarcado, el cielo y el escaneo quedan bloqueados. No hace falta la terminal.

**Pulso en vivo (opcional):** en la config del admin marca **Pulso en vivo** y añade a `MIDDLEWARE`:

```python
"prolin.django.middleware.ProlinLiveActivityMiddleware",
```

En la UI web (`prolin serve`) activa el interruptor **Pulso en vivo** en el cielo: las estrellas parpadean y se conectan cuando hay peticiones o interacciones.

También en Django: marca **Pulso en vivo** en la config y añade el middleware (ver arriba).

---

## Uso rápido (CLI)

### Experiencia web (recomendado)

```bash
prolin serve .
```

La app está dividida por **vistas**:

| Vista | Qué muestra |
|---|---|
| **Cielo vivo** | Constelación animada en tiempo real (canvas, no imagen fija) |
| **Para qué sirve** | Casos de uso y ejemplos (portafolio, demos, enseñanza…) |
| **Genoma** | Métricas del análisis |
| **Archivos** | Catálogo; clic → salta al cielo y resalta la estrella |
| **Docs** | Documentación técnica |
| **Exportar** | PNG + formatos para redes sociales + captions |

### Exportar imagen / JSON

```bash
prolin scan . --out output/constellation.png
prolin scan . --json output/genome.json
```

---

## Documentación

- **Video guía (en la app):** después de `prolin serve .`, abre la vista **Video guía** y pulsa Reproducir.  
  Explica con narración *por qué usarlo* y *cómo usarlo*.
- **Documento del video:** [GUIA_VIDEO.md](GUIA_VIDEO.md)
- **GIF exportable:** `python scripts/make_guide_video.py` → `prolin/web/static/prolin_guia.gif`
- **Docs técnicas:** [DOCS.md](DOCS.md) y sección Docs en la UI

---

## Arquitectura

```
prolin/
├── analyzer.py    # descubrimiento + AST / heurísticas
├── genetics.py    # métricas → genoma (seed, stars, edges, personalidad)
├── renderer.py    # arte generativo PNG
├── cli.py         # Typer + Rich
└── web/           # FastAPI + canvas interactivo
```

**Pipeline:** `archivos → FileMetrics → CodeGenome → PNG / Web`

---

## Stack

- Python 3.10+
- Typer + Rich (CLI)
- Pillow (render)
- FastAPI + Uvicorn (UI)
- Canvas 2D (explorador)

Sin API keys. Sin cuenta. 100% local.

---

## Licencia

MIT — úsalo, modifícalo, compartilo.
