Central Docs
Catálogo Inicio

Guía de Instalación

Gram es un framework desarrollado 100% en Python puro, sin librerías externas de C ni dependencias de terceros en tiempo de ejecución (requiere Python 3.10+).

Al no requerir metadatos de empaquetado PyPI (pyproject.toml / setup.py), Gram está diseñado para gestionarse y aislarse mediante VNMA (Vendor Manager) o consumirse directamente mediante Git y PYTHONPATH.


1. Instalación con VNMA (Recomendado)

VNMA descarga y aloja las dependencias directamente dentro de la carpeta local vendor/ de tu proyecto, proporcionando aislamiento hermético en sys.path, reproducibilidad estricta mediante archivo de bloqueo (vnma.lock) y configuración automática de rutas para editores como VS Code y PyCharm sin necesidad de duplicar entornos virtuales enteros (venv).

[!NOTE] Gram incluye en la raíz de su repositorio un archivo vnma_config.toml (name = "gram-framework2.0.0b2", packname = "gram", modules = ["gram"]). Al instalar o enlazar Gram con VNMA, puedes importar gram directamente (import gram o from gram import lexer, parser, combinators) desde cualquier módulo del proyecto.

Para cualquier consulta, comandos del CLI o especificaciones avanzadas sobre VNMA, consulta la documentación oficial y su repositorio: https://github.com/GrandKenzy/vnma.

A. Configuración en vnma.toml

En el archivo vnma.toml de la raíz de tu proyecto, declara Gram bajo la sección [dependencies]. Puedes instalar Gram desde una rama remota de GitHub, fijarlo a un tag inmutable (como v2.0.0b2), o vincular una copia local para desarrollo editable en tiempo real:

[project]
name = "mi-compilador"
version = "0.1.0"

[dependencies]

# Opción 1: Desde GitHub fijado al tag v2.0.0b2 (recomendado para builds reproducibles)
gram-framework = { git = "https://github.com/GrandKenzy/Gram.git", tag = "v2.0.0b2" }

# Opción 2: Desde GitHub siguiendo la rama principal
# gramv2.0.0b = { git = "https://github.com/GrandKenzy/Gram.git", branch = "main" }

# Opción 3: Desde una ruta local (refleja cambios en vivo al editar Gram)
# gram = { path = "~/Desktop/Gram", editable = true }

[dev-dependencies]

[tool.vnma]
vendor_dir = "vendor"
ide_integration = ["vscode", "pycharm"]

B. Comandos del CLI de VNMA

Una vez configurado vnma.toml, ejecuta:

# Descarga e instala las dependencias en ./vendor y genera vnma.lock:
vnma install

O instala directamente desde la línea de comandos de VNMA:

# Instala desde GitHub en una sola orden:
vnma install git+https://github.com/GrandKenzy/Gram.git@v2.0.0b2

# O crea un enlace editable de copia cero hacia tu clon local:
vnma link "~/Desktop/Gram"

Ejecuta tu código dentro del entorno gestionado por VNMA:

vnma run main.py

2. Instalación Manual con Git y Tags de Lanzamiento

Si prefieres no utilizar VNMA, puedes clonar el repositorio directamente desde GitHub y situarte en el tag deseado.

A. Clonar y cambiar al tag

# Clonar el repositorio:
git clone https://github.com/GrandKenzy/Gram.git
cd Gram

# Ver los tags disponibles:
git tag -l

# Cambiar al tag de la beta v2.0.0b2:
git checkout v2.0.0b2

O clonar directamente el tag en un solo comando:

git clone --branch v2.0.0b2 --depth 1 https://github.com/GrandKenzy/Gram.git

B. Añadir Gram a PYTHONPATH

Agrega el directorio raíz de Gram a tu variable de entorno PYTHONPATH:

PowerShell (Windows):

$env:PYTHONPATH = "C:\ruta\hacia\Gram"
python -m gram

Bash (Linux / macOS):

export PYTHONPATH="/ruta/hacia/Gram"
python3 -m gram

C. Verificar la Instalación

Ejecutar python -m gram (o consultar gram.version() desde Python) imprime la versión activa:

Gram Framework v2.0.0b2
import gram

print(gram.__version__)       # "2.0.0b2"
print(gram.__version_info__)  # (2, 0, 0, 'beta', 2)