spekk.trees.core.update_leaves#
- spekk.trees.core.update_leaves(tree: Mapping[Any, Mapping[Any, Tree] | Sequence[Tree] | Any] | Sequence[Mapping[Any, Tree] | Sequence[Tree] | Any] | Any, is_leaf: Callable[[Mapping[Any, Mapping[Any, Tree] | Sequence[Tree] | Any] | Sequence[Mapping[Any, Tree] | Sequence[Tree] | Any] | Any], bool], f: Callable[[Sequence[str]], Sequence[str]], path: tuple = ()) Mapping[Any, Mapping[Any, Tree] | Sequence[Tree] | Any] | Sequence[Mapping[Any, Tree] | Sequence[Tree] | Any] | Any[source]#
Apply
fto all leaves in the tree.>>> tree = {"foo": ["a", "b"], "bar": ["c"]} >>> update_leaves( ... tree, ... lambda t: isinstance(t, list), ... lambda dims: dims + ["new_dim"]) {'foo': ['a', 'b', 'new_dim'], 'bar': ['c', 'new_dim']}