etree.parallel_map

etree.parallel_map#

etils.etree.parallel_map(
map_fn: Callable[[...], etils.etree.tree_utils._Tout],
*trees: Any | list[etils.etree.typing._T | list[Tree] | tuple[Tree, ...] | dict[str, Tree]] | tuple[etils.etree.typing._T | list[Tree] | tuple[Tree, ...] | dict[str, Tree], ...] | dict[str, etils.etree.typing._T | list[Tree] | tuple[Tree, ...] | dict[str, Tree]],
num_threads: int | None = None,
progress_bar: bool = False,
is_leaf: collections.abc.Callable[[Any], bool] | None = None,
) etils.etree.tree_utils._Tout | list[etils.etree.typing._T | list[Tree] | tuple[Tree, ...] | dict[str, Tree]] | tuple[etils.etree.typing._T | list[Tree] | tuple[Tree, ...] | dict[str, Tree], ...] | dict[str, etils.etree.typing._T | list[Tree] | tuple[Tree, ...] | dict[str, Tree]][source]

Same as tree.map_structure but apply map_fn in parallel.

Parameters:
  • map_fn – Worker function

  • *trees – Nested input to pass to the map_fn

  • num_threads – Number of workers (default to CPU count * 5)

  • progress_bar – If True, display a progression bar.

  • is_leaf – Don’t recurse into leaf if is_leaf(node) is True

Returns:

The nested structure after map_fn has been applied.