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
TraversalItemobjects. 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