spekk.trees.core.leaves

Contents

spekk.trees.core.leaves#

spekk.trees.core.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], path: tuple = ()) Generator[TraversalItem, None, None][source]#

Traverse a tree and yield all leaves as TraversalItem objects. The traversal is depth-first, left-to-right.

>>> tree = {"a": [1, {"b": 2}, 3], "c": 4}
>>> for item in leaves(tree, is_leaf=lambda x: isinstance(x, int)):
...     print(item.value)
1
2
3
4