- Support EIP-7495: StableContainer and Profile, by @etan-status
- Fix Container: add __hash__ to match the __eq__ that was added in v0.1.26.
- Add __eq__ support with fields-length check to Container, to handle 0-padding difference between containers with additional fields.
- Fix bug in subtree-filling in default-constructor of non-power-of-2 length vector types, by @etan-status
- Move hash-function to remerkleable.settings module to enable overrides
- Function to initialize zero-hashes
- Make endianness of uint types configurable in remerkleable.settings
- Improve memory usage, reduce tree memory overhead by denying unused class-dicts (dynamic attributes) in node classes, and similarly for view classes
- Improve performance of list/vector/subtree setters/getters: convert potentially slow typed input to int before repeated internal math.
- Fix single-type-param Union
- Union type support
- Bitfield access lookup-index type coercion fix
- Container extensions / inheritance
- Use r-op overloads to cover all uint operations better (Thanks @ericsson49 for help)
- Use MyPy for type checking, fix type inconsistencies (Thanks @hwwhww for help)
- Refactor TypeDef into part of View class
- Bare object handling: cls.from_obj and value.to_obj, to encode and decode json/yaml into remerkleable types.
- Fix release branch
- Update readthedocs for py 3.8 support
- Containers now check for unrecognized attribute inputs
- mul and floordiv type checks
- bitfield, packed-vector/list, complex-vector/list, container stack-based iterators
- Minor style fixes and optimizations
- Bugfixes for medium/big sized bitvectors
- Node.root is now a read-propery on every type of node.
- Generalized previous RootNode checking, any node type can be recognized as no-child-nodes now, or lazy-load them.
- Split RebindableNode from PairNode for rebinding behavior as mix-in.
- New VirtualNode to lazy-load the child nodes based on the root, instead of lazy-computing the root.
- is_root() was misleading; root nodes are not the only node classes without child nodes, and root is used for too many other things already. Renamed to is_leaf().
- Added leaf_iter(node), to iterate over the leafs of a tree
- Added tree_diff(a, b), to iterate over the differences between a and b.
- Made repr and type_repr more sensible, and prettify nested repr of complex views.
- List/vector init improvements
- ByteList support, with new tests
- Fix empty bitfield tree initialization
- Check lengths of vector and container type declarations
- Fix bug in ByteVector chunkify padding. And add tests for this case.
- Fix bug in readonly_iter (and thus list/vector serialization) not being able to handle raw byte-vector element type.
- Check-dist command
- PyPi does not like SVG, change logo link to PNG
- Fix PyPi upload
- Fix README rst quirk
- Be explicit about RST description format
- Include logo SVG in description through github link
- Faster
getter
andsetter
for tree traversal. - Add is_root() for quick tree content checks
- More direct rebinding of length tree nodes
- Early support for paths
- Launch of Sphinx-based documentation.
- History traversal, get subtree changelog.
Speed improvements and minor bugfixes.
Initial release.