Skip to main content

Modern CLI tool to parse, transform and convert between JSON, YAML and TOON formats

Project description

🎯 Tenty Parser

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).

Python License Version

✨ Características

  • 🔍 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)

📦 Instalación

Requisitos previos

  • Python 3.12+
  • uv (recomendado) o pip

Con uv (recomendado)

# Clonar el repositorio
git clone https://github.com/Keniding/tenty-parser.git
cd tenty-parser

# Instalar dependencias
uv sync

# Ejecutar
uv run python -m src.cli --help

Con pip

# Clonar el repositorio
git clone https://github.com/Keniding/tenty-parser.git
cd tenty-parser

# Crear entorno virtual
python -m venv .venv
source .venv/bin/activate  # En Windows: .venv\Scripts\activate

# Instalar dependencias
pip install -e .

# Ejecutar
python -m src.cli --help

🚀 Uso

Comandos principales

1. Parse - Analizar archivos

# Visualizar estructura en árbol
uv run python -m src.cli parse data.json

# Mostrar como JSON estructurado
uv run python -m src.cli parse data.json --format json

# Generar schema
uv run python -m src.cli parse data.json --format schema

# Convertir a TOON
uv run python -m src.cli parse data.json --format toon

# Guardar resultado
uv run python -m src.cli parse data.json --format toon -o output.toon

2. Convert - Convertir entre formatos

# JSON a TOON
uv run python -m src.cli convert input.json output.toon --to toon

# YAML a JSON
uv run python -m src.cli convert config.yaml config.json --to json

# JSON a YAML
uv run python -m src.cli convert data.json data.yaml --to yaml

# TOON a JSON
uv run python -m src.cli convert data.toon data.json --to json

3. Schema - Generar schemas

# Generar JSON Schema
uv run python -m src.cli schema data.json -o schema.json

# Generar OpenAPI Schema
uv run python -m src.cli schema data.json --format openapi -o openapi.json

# Con título personalizado
uv run python -m src.cli schema data.json --title "User API Schema"

4. Version - Ver versión

uv run python -m src.cli version

📖 Formato TOON

TOON (Token-Oriented Object Notation) es un formato optimizado para modelos de lenguaje que reduce el uso de tokens en 30-60%.

Características de TOON

  • 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

Ejemplo de conversión

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

🏗️ Estructura del proyecto

tenty-parser/
├── src/
│   ├── 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/                        # Tests (próximamente)
├── pyproject.toml               # Configuración del proyecto
├── README.md                    # Este archivo
├── LICENSE                      # Licencia personalizada
└── .gitignore                   # Archivos ignorados

🔧 Desarrollo

Configurar entorno de desarrollo

# Clonar repositorio
git clone https://github.com/Keniding/tenty-parser.git
cd tenty-parser

# Instalar en modo desarrollo
uv sync

# Ejecutar tests (próximamente)
uv run pytest

Agregar nuevas características

  1. Fork el proyecto
  2. Crea una rama: git checkout -b feature/nueva-caracteristica
  3. Commit cambios: git commit -am 'Agregar nueva característica'
  4. Push a la rama: git push origin feature/nueva-caracteristica
  5. Crea un Pull Request

📚 Ejemplos

Ejemplo 1: Analizar API Response

# Descargar respuesta de API
curl https://api.example.com/users > users.json

# Visualizar estructura
uv run python -m src.cli parse users.json

# Generar schema para documentación
uv run python -m src.cli schema users.json -o users-schema.json

# Convertir a TOON para usar con LLMs
uv run python -m src.cli convert users.json users.toon --to toon

Ejemplo 2: Convertir configuración

# Convertir YAML a JSON
uv run python -m src.cli convert config.yaml config.json --to json

# Ver estructura
uv run python -m src.cli parse config.json --format tree

Ejemplo 3: Workflow completo

# 1. Parse archivo original
uv run python -m src.cli parse data.json --format tree

# 2. Generar schema
uv run python -m src.cli schema data.json -o schema.json

# 3. Convertir a TOON para LLM
uv run python -m src.cli convert data.json data.toon --to toon

# 4. Convertir de vuelta a JSON
uv run python -m src.cli convert data.toon data-restored.json --to json

🎯 Casos de uso

Para desarrolladores

  • 📝 Generar schemas automáticamente desde ejemplos
  • 🔄 Convertir entre formatos de configuración
  • 🔍 Explorar estructuras de datos complejas
  • 📊 Documentar APIs

Para trabajar con LLMs

  • ⚡ Reducir tokens en prompts (formato TOON)
  • 📦 Estructurar datos de forma eficiente
  • 🎯 Mejorar comprensión de estructuras por LLMs

Para análisis de datos

  • 🌳 Visualizar jerarquías de datos
  • 📋 Validar estructuras
  • 🔄 Normalizar formatos

🤝 Contribuir

¡Las contribuciones son bienvenidas! Por favor:

  1. Lee las guías de contribución
  2. Abre un issue para discutir cambios grandes
  3. Escribe tests para nuevas características
  4. 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.

📄 Licencia

Este proyecto está bajo una Licencia Personalizada con los siguientes términos:

✅ Uso Personal y No Comercial

  • LIBRE: Puedes usar, modificar y distribuir el software gratuitamente
  • Requisito: Debes dar crédito al autor original (Keniding)

⚠️ Uso Comercial

  • REQUIERE AUTORIZACIÓN: Contacta para obtener una licencia comercial
  • Incluye: Compensación acordada y/o reconocimiento

📝 Reconocimiento Obligatorio

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:

🙏 Agradecimientos

📞 Contacto

🗺️ Roadmap

  • 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tenty_parser-0.1.1.tar.gz (30.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tenty_parser-0.1.1-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file tenty_parser-0.1.1.tar.gz.

File metadata

  • Download URL: tenty_parser-0.1.1.tar.gz
  • Upload date:
  • Size: 30.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for tenty_parser-0.1.1.tar.gz
Algorithm Hash digest
SHA256 273461dda0948943121ef158553f801de73aacf1303731d7dc832d6d4ea5c071
MD5 2a7a054978a9a4ac8db599668a85dfe5
BLAKE2b-256 7b27a0f6a84884ab52d4893791821358f5d237d8e2b0d103e84aed67b774c5d0

See more details on using hashes here.

File details

Details for the file tenty_parser-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: tenty_parser-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 17.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for tenty_parser-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f58a30d8f529b6448adf63e85d53b9aa80968b2ed39145b985bc7d834621dd02
MD5 2adbd2c607cfd2921282d309ef434b5b
BLAKE2b-256 703763a21681f1437b0cb3a8d1f3c73299e85b950a4afa0f09166d8f47e6744e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page