Tenty Parser es una herramienta CLI moderna para parsear, transformar y convertir entre diferentes formatos de datos estructurados: JSON, YAML y TOON (Token-Oriented Object Notation).
- 🔍 Parse múltiples formatos: JSON, YAML, TOON
- 🌳 Visualización en árbol de estructuras de datos
- 📊 Generación de schemas: JSON Schema y OpenAPI
- 🔄 Conversión entre formatos con un solo comando
- 🎨 Salida colorida con Rich
- ⚡ Optimizado para LLMs con formato TOON (30-60% reducción de tokens)
- Python 3.12+
pip install tenty-parserEsto deja disponible el comando tenty directamente en tu shell — no hace falta clonar el repositorio ni usar python -m para nada:
tenty --helpSi estás desarrollando el proyecto en sí (no solo usándolo), ve a Desarrollo más abajo para instalar desde el código fuente con uv.
Si instalas con
uven vez depip, lee esto.tenty-parserdepende detoon-format(la librería que maneja el formato TOON), y a día de hoy esa librería no tiene ninguna versión estable publicada — solo existe como pre-release (0.9.0b1). Unpip install tenty-parsernormal instala bien porquepipsí resuelve pre-releases cuando es la única opción disponible. Perouv add tenty-parser/uv syncno lo hace por defecto: en vez de fallar con un error, se queda calladamente instalado en una versión vieja detenty-parserque sí puede resolver sin pre-releases — nunca vas a enterarte de que te perdiste una actualización a menos que lo busques a propósito. Si usasuv, instala así:uv add tenty-parser --prerelease=allowo agrega esto a tu
pyproject.toml:[tool.uv] prerelease = "allow"Este es un problema del lado de
toon-format, no algo que podamos arreglar desdetenty-parsermientras esa librería no publique una versión estable. Detalle completo en docs/dependency-research.md.
# Visualizar estructura en árbol
tenty parse data.json
# Mostrar como JSON estructurado
tenty parse data.json --format json
# Generar schema
tenty parse data.json --format schema
# Convertir a TOON
tenty parse data.json --format toon
# Guardar resultado
tenty parse data.json --format toon -o output.toon# JSON a TOON
tenty convert input.json output.toon --to toon
# YAML a JSON
tenty convert config.yaml config.json --to json
# JSON a YAML
tenty convert data.json data.yaml --to yaml
# TOON a JSON
tenty convert data.toon data.json --to json# Generar JSON Schema
tenty schema data.json -o schema.json
# Generar OpenAPI Schema
tenty schema data.json --format openapi -o openapi.json
# Con título personalizado
tenty schema data.json --title "User API Schema"tenty versionTOON (Token-Oriented Object Notation) es un formato optimizado para modelos de lenguaje que reduce el uso de tokens en 30-60%.
- ✅ Arrays con tamaño explícito:
users[2]: - ✅ Formato tabular para objetos:
users[2]{id,name,role}: - ✅ Indentación en lugar de llaves
- ✅ Sin comillas innecesarias
JSON original:
{
"user": {
"name": "John Doe",
"age": 30,
"tags": ["developer", "python", "rust"]
},
"posts": [
{
"id": 1,
"title": "Hello World",
"published": true
}
]
}TOON equivalente:
user:
name: "John Doe"
age: 30
tags[3]: developer, python, rust
posts[1]{id,title,published}:
1,"Hello World",true
Reducción de tokens: ~45% menos tokens que JSON
tenty-parser/
├── tenty_parser/
│ ├── models/
│ │ └── structure.py # Modelos Pydantic
│ ├── parsers/
│ │ ├── json_parser.py # Parser JSON
│ │ ├── yaml_parser.py # Parser YAML
│ │ └── toon_parser.py # Parser TOON
│ ├── transformers/
│ │ ├── to_structure.py # Transformador a estructura
│ │ ├── to_toon.py # Transformador a TOON
│ │ └── to_schema.py # Generador de schemas
│ └── cli.py # Interfaz CLI
├── tests/ # Suite de tests (pytest, cobertura mínima 90%)
├── docs/
│ ├── functionality.md # Arquitectura y comandos del CLI
│ ├── deployment.md # Flujo de release y publicación a PyPI
│ ├── dependency-research.md # Hand-written vs. librerías mantenidas
│ └── testing.md # Ejemplos reales de entrada/salida por comando
├── pyproject.toml # Configuración del proyecto
├── README.md # Este archivo
├── LICENSE # Licencia personalizada
└── .gitignore # Archivos ignorados
Documentación detallada: docs/functionality.md y docs/deployment.md.
Si vas a modificar el código del proyecto (no solo usarlo), instala desde el código fuente con uv:
# Clonar repositorio
git clone https://github.com/Keniding/tenty-parser.git
cd tenty-parser
# Instalar en modo desarrollo (crea el venv e instala el comando `tenty` en él)
uv sync
# Ejecutar el CLI desde el código fuente
uv run tenty --help
# Ejecutar tests con cobertura
uv run pytest --cov=tenty_parser --cov-report=term-missing- Fork el proyecto
- Crea una rama:
git checkout -b feature/nueva-caracteristica - Commit cambios:
git commit -am 'Agregar nueva característica' - Push a la rama:
git push origin feature/nueva-caracteristica - Crea un Pull Request
# Descargar respuesta de API
curl https://api.example.com/users > users.json
# Visualizar estructura
tenty parse users.json
# Generar schema para documentación
tenty schema users.json -o users-schema.json
# Convertir a TOON para usar con LLMs
tenty convert users.json users.toon --to toon# Convertir YAML a JSON
tenty convert config.yaml config.json --to json
# Ver estructura
tenty parse config.json --format tree# 1. Parse archivo original
tenty parse data.json --format tree
# 2. Generar schema
tenty schema data.json -o schema.json
# 3. Convertir a TOON para LLM
tenty convert data.json data.toon --to toon
# 4. Convertir de vuelta a JSON
tenty convert data.toon data-restored.json --to json- 📝 Generar schemas automáticamente desde ejemplos
- 🔄 Convertir entre formatos de configuración
- 🔍 Explorar estructuras de datos complejas
- 📊 Documentar APIs
- ⚡ Reducir tokens en prompts (formato TOON)
- 📦 Estructurar datos de forma eficiente
- 🎯 Mejorar comprensión de estructuras por LLMs
- 🌳 Visualizar jerarquías de datos
- 📋 Validar estructuras
- 🔄 Normalizar formatos
¡Las contribuciones son bienvenidas! Por favor:
- Lee las guías de contribución
- Abre un issue para discutir cambios grandes
- Escribe tests para nuevas características
- Mantén el estilo de código consistente
Nota: Al contribuir, aceptas que tus contribuciones se licencien bajo los mismos términos que este proyecto.
Este proyecto está bajo una Licencia Personalizada con los siguientes términos:
- LIBRE: Puedes usar, modificar y distribuir el software gratuitamente
- Requisito: Debes dar crédito al autor original (Keniding)
- REQUIERE AUTORIZACIÓN: Contacta para obtener una licencia comercial
- Incluye: Compensación acordada y/o reconocimiento
En cualquier uso del software, debes incluir:
Powered by Tenty Parser - Created by Keniding
https://github.com/Keniding/tenty-parser
Para más detalles, consulta el archivo LICENSE.
Para licencias comerciales, contacta a través de:
- GitHub: @Keniding
- Issues: tenty-parser/issues
- Rich - Beautiful terminal output
- Typer - CLI framework
- Pydantic - Data validation
- TOON Format - Inspiration
- Autor: Keniding
- GitHub: @Keniding
- Repositorio: tenty-parser
- Tests unitarios completos
- Parser TOON más robusto
- Soporte para más formatos (XML, TOML)
- Validación de schemas
- API Python para uso programático
- Plugins para editores (VSCode)
- Documentación interactiva
⭐ Si te gusta este proyecto, dale una estrella en GitHub!
Powered by Tenty Parser - Created by Keniding