Skip to content

adityak74/tron-python

Repository files navigation

tron-format-py

A Python library for the TRON data serialization format — a compact JSON superset designed for LLM token efficiency.

PyPI Python Versions Tests Coverage License PyPI Downloads


TRON (Token Reduced Object Notation) extends JSON with schema-based class definitions, dramatically reducing token count when serializing structured data for LLM APIs. tron-format-py provides a complete Python implementation of the TRON specification.

Installation

pip install tron-format-py

Requirements: Python 3.10+

Quick Start

from tron_format_py import TRON

# Serialize to TRON
value = [{"name": "Alice", "role": "admin"}, {"name": "Bob", "role": "user"}]
tron = TRON.stringify(value)
print(tron)
# class A: name,role
#
# [A("Alice","admin"),A("Bob","user")]

# Parse back to Python
parsed = TRON.parse(tron)
assert parsed == value

Features

Feature Description
Schema-based encoding Repeated object structures become class instantiations, eliminating key repetition
Named arguments Assign values by property name for improved readability
Class inheritance Extend existing classes to model hierarchical data
Pretty printing Optional indented output with configurable indentation
Full spec compliance 100% test coverage across all TRON format features
Round-trip safe parse(stringify(data)) == data for all supported types

API Reference

TRON.stringify(value, indent=None)

Convert a Python object to a TRON format string.

Parameter Type Default Description
value Any The Python object to serialize
indent int | None None Number of spaces for indentation. None or 0 produces compact output

Returns: str — A TRON format string

Example:

# Compact output (default)
TRON.stringify({"x": 1, "y": 2})
# '{"x":1,"y":2}'

# Pretty output
TRON.stringify([{"x": 1}, {"x": 2}], indent=2)
# """class A: x
#
# [
#   A(1),
#   A(2)
# ]"""

TRON.parse(text)

Parse a TRON format string into a Python object.

Parameter Type Default Description
text str A TRON format string

Returns: Any — The parsed Python object

Example:

TRON.parse('class Point: x, y\nPoint(10, 20)')
# {"x": 10, "y": 20}

Examples

Class Instantiation

Objects can be instantiated using defined classes, mapping positional arguments to class properties:

tron = '''
class Order: index, items, total
class Product: index, name, price, quantity

Order("ord-123", [
    Product(1, "Widget", 19.99, 2),
    Product(2, "Gadget", 29.99, 1)
], 109.96)
'''

TRON.parse(tron)
# {
#   "index": "ord-123",
#   "items": [
#     {"index": 1, "name": "Widget", "price": 19.99, "quantity": 2},
#     {"index": 2, "name": "Gadget", "price": 29.99, "quantity": 1}
#   ],
#   "total": 109.96
# }

Named Arguments

TRON.parse('class User: name, email\nUser(name="alice", email="alice@example.com")')
# {"name": "alice", "email": "alice@example.com"}

Class Inheritance

TRON.parse('''
class Base: id
class Extended(Base): name, value

Extended(1, "test", 42)
''')
# {"id": 1, "name": "test", "value": 42}

Supported Types

TRON Type Python Type
null None
true / false True / False
123 / 12.34 int / float
"string" str
[a, b, c] list
{a: 1, b: 2} dict
Class(a, b) dict (keys from class definition)

Links

License

MIT License. Copyright (c) 2025-2026 Tim Huang. See LICENSE for details.

About

A Python library for the TRON data serialization format

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors