- Add benchmarks (using [Benchman](https://github.com/mar10/benchman)). - Drop support for Python 3.8
0.11.1
- `t0.diff(t1, ...)` adds nodes from t1 when possible, so the new status is used for modified nodes. - `t0.diff(t1, ...)` marks both, source and target nodes, as modified if applicable.
0.11.0
- Implement check for node modifications in `tree.diff(..., compare=True)`. - `DictWrapper` supports comparision with `==`.
0.10.0
- BREAKING: - `kind` parameter is now mandatory for `add()` and related methods. `kind=None` is still allowed to use the default (inherit or 'child'). - Rename `shadow_attrs` argument to `forward_attrs`. - Enforce that the same object instance is not added multiple times to one parent. - Rename `GenericNodeData` to `DictWrapper` and remove support for attribut access. - Drop support for Python 3.8 - mermaid: change mapper signatures and defaults - tree.to_rdf() is now available for Tree (not only TypedTree). - New method `node.up()` allows method chaining when adding nodes. - Pass pyright 'typeCheckingMode = "standard"'. - Use generic typing for improved type checking, e.g. use `tree = Tree[Animals]()` to create a type-aware container.
0.9.0
- Add `Tree.build_random_tree()` (experimental). - Add `GenericNodeData` as wrapper for `dict` data. - Fixed 7 Tree.from_dict failing to recreate an arbitrary object tree with a mapper.