All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
to_json()fills missing nodes in the list- Enhanced JSON serialization with better handling of:
- Complex nested structures
- None values
- Empty clusters
- Boolean values
- Improved JSON serialization to maintain correct structure with nested clusters
find()method now has an optional_raiseparameter to raise an IndexError if the index is not found
find()method now returnsNoneif the index is not found
- New Cluster methods:
find()- Find node or cluster at specific indexreplace()- Replace node at index with new valueat()- Get node at zero-based indexto_json()- Convert cluster to JSON-serializable format
- Improved tree visualization with optional string return value
- Added JSON serialization support for clusters
- Exposed additional classes in
__init__.py:Cluster,Node,DataTypeFactory
- Modified
print_tree()to optionally return string representation - Improved error handling in index-based operations
- Refactored
delete()method to usefind() - Updated
__getitem__,__setitem__, and__delitem__to use 1-based indexing consistently
- Consistent 1-based indexing across all methods
- More descriptive error messages for index operations
- Fixed broken logo image on PyPI by using absolute GitHub URLs
- Parent-child relationship tracking in nodes and clusters
- Automatic total calculation in nested structures
- Multiple ways to construct protobuf structures:
- Direct Node/Cluster construction
- Using add() with tuples
- Using add() with nodes
- Mixed approach with auto-type detection
- Comprehensive examples in examples/
- Enhanced test coverage
- Better type detection and handling
- New logo and badges
- Removed requirement for total in Cluster initialization
- Improved cluster construction methods
- Enhanced documentation with more examples
- Restructured project layout
- Updated README with clearer examples
- Total calculation in nested clusters
- Parent reference handling in node deletion
- Type detection for edge cases
- Documentation broken links
- Initial release
- Basic protobuf decoding/encoding
- Tree visualization
- Support for various data types:
- String, Int, Float, Bool
- Enum, Bytes, Base64
- Fixed32/64, SFixed32/64
- Basic documentation
- Simple examples
- String encoding for special characters
- Tree visualization formatting