spekk.trees.core.update

Contents

spekk.trees.core.update#

spekk.trees.core.update(tree: Mapping[Any, Mapping[Any, Tree] | Sequence[Tree] | Any] | Sequence[Mapping[Any, Tree] | Sequence[Tree] | Any] | Any, f: Callable[[Mapping[Any, Mapping[Any, Tree] | Sequence[Tree] | Any] | Sequence[Mapping[Any, Tree] | Sequence[Tree] | Any] | Any], Mapping[Any, Mapping[Any, Tree] | Sequence[Tree] | Any] | Sequence[Mapping[Any, Tree] | Sequence[Tree] | Any] | Any], path: tuple)[source]#

Update the subtree at the given path.

>>> tree = {"a": [1, {"b": 2}, 3], "c": 4}
>>> update(tree, lambda x: x + 10, ("a", 1, "b"))
{'a': [1, {'b': 12}, 3], 'c': 4}