etree.backend.Backend#
- class etils.etree.backend.Backend[source]
Bases:
abc.ABCTree API backend.
Note: The backend lazy-import the module on first call. This allow to use
etreewith Jax even if TF isn’t installed (and vice-versa).- property module: types.ModuleType
Module used by the backend.
- abstractmethod import_module() types.ModuleType[source]
Import and return the module.
- abstractmethod map(
- map_fn: Callable[[...], Any],
- *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]],
- is_leaf: collections.abc.Callable[[Any], bool] | None = None,
Like tf.nest.map_structure.
- abstractmethod flatten(
- tree: etils.etree.backend._T | 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]],
- *,
- is_leaf: collections.abc.Callable[[Any], bool] | None = None,
Like tf.nest.flatten.
- abstractmethod unflatten(
- structure: Any,
- flat_sequence: list[etils.etree.backend._T],
- abstractmethod assert_same_structure(
- tree0: 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]],
- tree1: 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]],