Files
mlx/docs/build/doctrees/python/_autosummary/mlx.utils.tree_map.doctree

44 lines
15 KiB
Plaintext
Raw Normal View History

2024-01-17 17:15:29 -08:00
<EFBFBD><05><><<00>sphinx.addnodes<65><73>document<6E><74><EFBFBD>)<29><>}<7D>(<28> rawsource<63><65><00><>children<65>]<5D><>docutils.nodes<65><73>section<6F><6E><EFBFBD>)<29><>}<7D>(hhh]<5D>(h <09>title<6C><65><EFBFBD>)<29><>}<7D>(h<05>mlx.utils.tree\_map<61>h]<5D>h <09>Text<78><74><EFBFBD><EFBFBD>mlx.utils.tree_map<61><70><EFBFBD><EFBFBD><EFBFBD>}<7D>(<28>parent<6E>h<11> _document<6E>h<03>source<63>N<EFBFBD>line<6E>Nuba<62>
attributes<EFBFBD>}<7D>(<28>ids<64>]<5D><>classes<65>]<5D><>names<65>]<5D><>dupnames<65>]<5D><>backrefs<66>]<5D>u<EFBFBD>tagname<6D>hhh hhh<1D>O/Users/awnihannun/repos/mlx/docs/src/python/_autosummary/mlx.utils.tree_map.rst<73>hKubh<00>index<65><78><EFBFBD>)<29><>}<7D>(hhh]<5D>h}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><>entries<65>]<5D>(<28>single<6C><65> tree_map() (in module mlx.utils)<29><>mlx.utils.tree_map<61>hNt<4E>auh+h-hh hhhNhNubh<00>desc<73><63><EFBFBD>)<29><>}<7D>(hhh]<5D>(h<00>desc_signature<72><65><EFBFBD>)<29><>}<7D>(h<05>'tree_map(fn, tree, *rest, is_leaf=None)<29>h]<5D>(h<00> desc_addname<6D><65><EFBFBD>)<29><>}<7D>(h<05>
mlx.utils.<2E>h]<5D>h<16>
mlx.utils.<2E><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hhKhhhNhNubah}<7D>(h!]<5D>h#]<5D>(<28> sig-prename<6D><65> descclassname<6D>eh%]<5D>h']<5D>h)]<5D><> xml:space<63><65>preserve<76>uh+hIhhEhhh<1D>O/Users/awnihannun/repos/mlx/python/mlx/utils.py:docstring of mlx.utils.tree_map<61>hNubh<00> desc_name<6D><65><EFBFBD>)<29><>}<7D>(h<05>tree_map<61>h]<5D>h<16>tree_map<61><70><EFBFBD><EFBFBD><EFBFBD>}<7D>(hh`hhhNhNubah}<7D>(h!]<5D>h#]<5D>(<28>sig-name<6D><65>descname<6D>eh%]<5D>h']<5D>h)]<5D>h[h\uh+h^hhEhhhh]hNubh<00>desc_parameterlist<73><74><EFBFBD>)<29><>}<7D>(h<05>fn, tree, *rest, is_leaf=None<6E>h]<5D>(h<00>desc_parameter<65><72><EFBFBD>)<29><>}<7D>(h<05>fn<66>h]<5D>h<00> desc_sig_name<6D><65><EFBFBD>)<29><>}<7D>(h<05>fn<66>h]<5D>h<16>fn<66><6E><EFBFBD><EFBFBD><EFBFBD>}<7D>(hh~hhhNhNubah}<7D>(h!]<5D>h#]<5D><>n<>ah%]<5D>h']<5D>h)]<5D>uh+h|hhxubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>h[h\uh+hvhhrubhw)<29><>}<7D>(h<05>tree<65>h]<5D>h})<29><>}<7D>(h<05>tree<65>h]<5D>h<16>tree<65><65><EFBFBD><EFBFBD><EFBFBD>}<7D>(hh<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>h<EFBFBD>ah%]<5D>h']<5D>h)]<5D>uh+h|hh<>ubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>h[h\uh+hvhhrubhw)<29><>}<7D>(h<05>*rest<73>h]<5D>(h<00>desc_sig_operator<6F><72><EFBFBD>)<29><>}<7D>(h<05>*<2A>h]<5D>h<16>*<2A><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hh<>hhhNhNubah}<7D>(h!]<5D>h#]<5D><>o<>ah%]<5D>h']<5D>h)]<5D>uh+h<>hh<>ubh})<29><>}<7D>(h<05>rest<73>h]<5D>h<16>rest<73><74><EFBFBD><EFBFBD><EFBFBD>}<7D>(hh<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>h<EFBFBD>ah%]<5D>h']<5D>h)]<5D>uh+h|hh<>ubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>h[h\uh+hvhhrubhw)<29><>}<7D>(h<05> is_leaf=None<6E>h]<5D>(h})<29><>}<7D>(h<05>is_leaf<61>h]<5D>h<16>is_leaf<61><66><EFBFBD><EFBFBD><EFBFBD>}<7D>(hh<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>h<EFBFBD>ah%]<5D>h']<5D>h)]<5D>uh+h|hh<>ubh<62>)<29><>}<7D>(h<05>=<3D>h]<5D>h<16>=<3D><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hh<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>h<EFBFBD>ah%]<5D>h']<5D>h)]<5D>uh+h<>hh<>ubh <09>inline<6E><65><EFBFBD>)<29><>}<7D>(h<05>None<6E>h]<5D>h<16>None<6E><65><EFBFBD><EFBFBD><EFBFBD>}<7D>(hh<>hhhNhNubah}<7D>(h!]<5D>h#]<5D><> default_value<75>ah%]<5D>h']<5D>h)]<5D><>support_smartquotes<65><73>uh+h<>hh<>ubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>h[h\uh+hvhhrubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>h[h\uh+hphhEhhhh]hNubeh}<7D>(h!]<5D>h<ah#]<5D>(<28>sig<69><67>
sig-object<63>eh%]<5D>h']<5D>h)]<5D><>module<6C><65> mlx.utils<6C><73>class<73>h<06>fullname<6D>hbuh+hChh]hKhh@hhubh<00> desc_content<6E><74><EFBFBD>)<29><>}<7D>(hhh]<5D>(h <09> paragraph<70><68><EFBFBD>)<29><>}<7D>(h<05>gApplies ``fn`` to the leaves of the python tree ``tree`` and
returns a new collection with the results.<2E>h]<5D>(h<16>Applies <20><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj%hhhNhNubh <09>literal<61><6C><EFBFBD>)<29><>}<7D>(h<05>``fn``<60>h]<5D>h<16>fn<66><6E><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj/hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j-hj%ubh<16>" to the leaves of the python tree <20><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj%hhhNhNubj.)<29><>}<7D>(h<05>``tree``<60>h]<5D>h<16>tree<65><65><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjAhhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j-hj%ubh<16>/ and
returns a new collection with the results.<2E><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj%hhhNhNubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j#h<1D>O/Users/awnihannun/repos/mlx/python/mlx/utils.py:docstring of mlx.utils.tree_map<61>hKhj hhubj$)<29><>}<7D>(h<05><>If ``rest`` is provided, every item is assumed to be a superset of ``tree``
and the corresponding leaves are provided as extra positional arguments to
``fn``. In that respect, :meth:`tree_map` is closer to :func:`itertools.starmap`
than to :func:`map`.<2E>h]<5D>(h<16>If <20><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjZhhhNhNubj.)<29><>}<7D>(h<05>``rest``<60>h]<5D>h<16>rest<73><74><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjbhhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j-hjZubh<16>8 is provided, every item is assumed to be a superset of <20><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjZhhhNhNubj.)<29><>}<7D>(h<05>``tree``<60>h]<5D>h<16>tree<65><65><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjthhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j-hjZubh<16>L
and the corresponding leaves are provided as extra positional arguments to
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjZhhhNhNubj.)<29><>}<7D>(h<05>``fn``<60>h]<5D>h<16>fn<66><6E><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j-hjZubh<16>. In that respect, <20><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjZhhhNhNubh<00> pending_xref<65><66><EFBFBD>)<29><>}<7D>(h<05>:meth:`tree_map`<60>h]<5D>j.)<29><>}<7D>(hj<>h]<5D>h<16>
tree_map()<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>(<28>xref<65><66>py<70><79>py-meth<74>eh%]<5D>h']<5D>h)]<5D>uh+j-hj<>ubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><>refdoc<6F><63>&python/_autosummary/mlx.utils.tree_map<61><70> refdomain<69>j<EFBFBD><00>reftype<70><65>meth<74><68> refexplicit<69><74><EFBFBD>refwarn<72><6E><EFBFBD> py:module<6C>j<00>py:class<73>N<EFBFBD> reftarget<65><74>tree_map<61>uh+j<>hjYhKhjZubh<16> is closer to <20><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjZhhhNhNubj<62>)<29><>}<7D>(h<05>:func:`itertools.starmap`<60>h]<5D>j.)<29><>}<7D>(hj<>h]<5D>h<16>itertools.starmap()<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>(j<><00>py<70><79>py-func<6E>eh%]<5D>h']<5D>h)]<5D>uh+j-hj<>ubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><>refdoc<6F>j<EFBFBD><00> refdomain<69>j<EFBFBD><00>reftype<70><65>func<6E><63> refexplicit<69><74><EFBFBD>refwarn<72><6E>j<EFBFBD>jj<>Nj<4E><00>itertools.starmap<61>uh+j<>hjYhKhjZubh<16>
than to <20><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjZhhhNhNubj<62>)<29><>}<7D>(h<05> :func:`map`<60>h]<5D>j.)<29><>}<7D>(hj<>h]<5D>h<16>map()<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>(j<><00>py<70><79>py-func<6E>eh%]<5D>h']<5D>h)]<5D>uh+j-hj<>ubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><>refdoc<6F>j<EFBFBD><00> refdomain<69>j<EFBFBD><00>reftype<70><65>func<6E><63> refexplicit<69><74><EFBFBD>refwarn<72><6E>j<EFBFBD>jj<>Nj<4E><00>map<61>uh+j<>hjYhKhjZubh<16>.<2E><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjZhhhNhNubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j#hjYhKhj hhubj$)<29><>}<7D>(h<05>oThe keyword argument ``is_leaf`` decides what constitutes a leaf from
``tree`` similar to :func:`tree_flatten`.<2E>h]<5D>(h<16>The keyword argument <20><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjhhhNhNubj.)<29><>}<7D>(h<05> ``is_leaf``<60>h]<5D>h<16>is_leaf<61><66><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjhhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j-hjubh<16>& decides what constitutes a leaf from
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjhhhNhNubj.)<29><>}<7D>(h<05>``tree``<60>h]<5D>h<16>tree<65><65><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj+hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j-hjubh<16> similar to <20><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjhhhNhNubj<62>)<29><>}<7D>(h<05>:func:`tree_flatten`<60>h]<5D>j.)<29><>}<7D>(hj?h]<5D>h<16>tree_flatten()<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjAhhhNhNubah}<7D>(h!]<5D>h#]<5D>(j<><00>py<70><79>py-func<6E>eh%]<5D>h']<5D>h)]<5D>uh+j-hj=ubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><>refdoc<6F>j<EFBFBD><00> refdomain<69>jK<00>reftype<70><65>func<6E><63> refexplicit<69><74><EFBFBD>refwarn<72><6E>j<EFBFBD>jj<>Nj<4E><00> tree_flatten<65>uh+j<>hjYhK hjubh<16>.<2E><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjhhhNhNubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j#hjYhK hj hhubh <09> literal_block<63><6B><EFBFBD>)<29><>}<7D>(h<05><>import mlx.nn as nn
from mlx.utils import tree_map
model = nn.Linear(10, 10)
print(model.parameters().keys())
# dict_keys(['weight', 'bias'])
# square the parameters
model.update(tree_map(lambda x: x*x, model.parameters()))<29>h]<5D>h<16><>import mlx.nn as nn
from mlx.utils import tree_map
model = nn.Linear(10, 10)
print(model.parameters().keys())
# dict_keys(['weight', 'bias'])
# square the parameters
model.update(tree_map(lambda x: x*x, model.parameters()))<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>hjisbah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>h[h\<5C>force<63><65><EFBFBD>language<67><65>python<6F><6E>highlight_args<67>}<7D>uh+jghjYhK hj hhubh <09>
field_list<EFBFBD><EFBFBD><EFBFBD>)<29><>}<7D>(hhh]<5D>(h <09>field<6C><64><EFBFBD>)<29><>}<7D>(hhh]<5D>(h <09>
field_name<EFBFBD><EFBFBD><EFBFBD>)<29><>}<7D>(h<05>
Parameters<EFBFBD>h]<5D>h<16>
Parameters<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj<>hh]hKubh <09>
field_body<EFBFBD><EFBFBD><EFBFBD>)<29><>}<7D>(hhh]<5D>h <09> bullet_list<73><74><EFBFBD>)<29><>}<7D>(hhh]<5D>(h <09> list_item<65><6D><EFBFBD>)<29><>}<7D>(hhh]<5D>j$)<29><>}<7D>(h<05>Kfn (CallableCallable) -- The function that processes the leaves of the tree<65>h]<5D>(h<00>literal_strong<6E><67><EFBFBD>)<29><>}<7D>(h<05>fn<66>h]<5D>h<16>fn<66><6E><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj<>ubh<16> (<28><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubj<62>)<29><>}<7D>(hhh]<5D>(h<00>pending_xref_condition<6F><6E><EFBFBD>)<29><>}<7D>(h<05>Callable<6C>h]<5D>h<00>literal_emphasis<69><73><EFBFBD>)<29><>}<7D>(h<05>Callable<6C>h]<5D>h<16>Callable<6C><65><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj<>ubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><> condition<6F><6E>resolved<65>uh+j<>hj<>ubj<62>)<29><>}<7D>(h<05>Callable<6C>h]<5D>j<EFBFBD>)<29><>}<7D>(h<05>Callable<6C>h]<5D>h<16>Callable<6C><65><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj<>ubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><> condition<6F><6E>*<2A>uh+j<>hj<>ubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><> refdomain<69><6E>py<70><79> refexplicit<69><74><EFBFBD>reftype<70>j<00> reftarget<65>j<EFBFBD><00> refspecific<69><63>j<EFBFBD>jj<>Nuh+j<>hj<>ubh<16>)<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubh<16> <20><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubh<16>2The function that processes the leaves of the tree<65><65><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j#hj<>ubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj<>ubj<62>)<29><>}<7D>(hhh]<5D>j$)<29><>}<7D>(h<05>@tree (AnyAny) -- The main python tree that will be iterated upon<6F>h]<5D>(j<>)<29><>}<7D>(h<05>tree<65>h]<5D>h<16>tree<65><65><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj#hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hjubh<16> (<28><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjhhhNhNubj<62>)<29><>}<7D>(hhh]<5D>(j<>)<29><>}<7D>(h<05>Any<6E>h]<5D>j<EFBFBD>)<29><>}<7D>(h<05>Any<6E>h]<5D>h<16>Any<6E><79><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj8ubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><> condition<6F>j<EFBFBD>uh+j<>hj5ubj<62>)<29><>}<7D>(h<05>Any<6E>h]<5D>j<EFBFBD>)<29><>}<7D>(h<05>Any<6E>h]<5D>h<16>Any<6E><79><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjUhhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hjQubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><> condition<6F>j<EFBFBD>uh+j<>hj5ubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><> refdomain<69>j<EFBFBD><00> refexplicit<69><74><EFBFBD>reftype<70>j<00> reftarget<65>jWj<00>j<EFBFBD>jj<>Nuh+j<>hjubh<16>)<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjhhhNhNubh<16> <20><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjhhhNhNubh<16>/The main python tree that will be iterated upon<6F><6E><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjhhhNhNubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j#hjubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj<>ubj<62>)<29><>}<7D>(hhh]<5D>j$)<29><>}<7D>(h<05>Jrest (TupleTuple[AnyAny]) -- Extra trees to be iterated together with tree<65>h]<5D>(j<>)<29><>}<7D>(h<05>rest<73>h]<5D>h<16>rest<73><74><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj<>ubh<16> (<28><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubj<62>)<29><>}<7D>(hhh]<5D>(j<>)<29><>}<7D>(h<05>Tuple<6C>h]<5D>j<EFBFBD>)<29><>}<7D>(h<05>Tuple<6C>h]<5D>h<16>Tuple<6C><65><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj<>ubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><> condition<6F>j<EFBFBD>uh+j<>hj<>ubj<62>)<29><>}<7D>(h<05>Tuple<6C>h]<5D>j<EFBFBD>)<29><>}<7D>(h<05>Tuple<6C>h]<5D>h<16>Tuple<6C><65><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj<>ubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><> condition<6F>j<EFBFBD>uh+j<>hj<>ubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><> refdomain<69>j<EFBFBD><00> refexplicit<69><74><EFBFBD>reftype<70>j<00> reftarget<65>j<EFBFBD>j<00>j<EFBFBD>jj<>Nuh+j<>hj<>ubj<62>)<29><>}<7D>(h<05>[<5B>h]<5D>h<16>[<5B><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj<>ubj<62>)<29><>}<7D>(hhh]<5D>(j<>)<29><>}<7D>(h<05>Any<6E>h]<5D>j<EFBFBD>)<29><>}<7D>(h<05>Any<6E>h]<5D>h<16>Any<6E><79><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj<>ubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><> condition<6F>j<EFBFBD>uh+j<>hj<>ubj<62>)<29><>}<7D>(h<05>Any<6E>h]<5D>j<EFBFBD>)<29><>}<7D>(h<05>Any<6E>h]<5D>h<16>Any<6E><79><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjhhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hjubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><> condition<6F>j<EFBFBD>uh+j<>hj<>ubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><> refdomain<69>j<EFBFBD><00> refexplicit<69><74><EFBFBD>reftype<70>j<00> reftarget<65>jj<00>j<EFBFBD>jj<>Nuh+j<>hj<>ubj<62>)<29><>}<7D>(h<05>]<5D>h]<5D>h<16>]<5D><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj1hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj<>ubh<16>)<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubh<16> <20><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubh<16>-Extra trees to be iterated together with tree<65><65><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j#hj<>ubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj<>ubj<62>)<29><>}<7D>(hhh]<5D>j$)<29><>}<7D>(h<05><>is_leaf (OptionalOptional[CallableCallable]) -- An optional callable that returns True if
the passed object is considered a leaf or False otherwise.<2E>h]<5D>(j<>)<29><>}<7D>(h<05>is_leaf<61>h]<5D>h<16>is_leaf<61><66><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj^hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hjZubh<16> (<28><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjZhhhNhNubj<62>)<29><>}<7D>(hhh]<5D>(j<>)<29><>}<7D>(h<05>Optional<61>h]<5D>j<EFBFBD>)<29><>}<7D>(h<05>Optional<61>h]<5D>h<16>Optional<61><6C><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjwhhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hjsubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><> condition<6F>j<EFBFBD>uh+j<>hjpubj<62>)<29><>}<7D>(h<05>Optional<61>h]<5D>j<EFBFBD>)<29><>}<7D>(h<05>Optional<61>h]<5D>h<16>Optional<61><6C><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj<>ubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><> condition<6F>j<EFBFBD>uh+j<>hjpubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><> refdomain<69>j<EFBFBD><00> refexplicit<69><74><EFBFBD>reftype<70>j<00> reftarget<65>j<EFBFBD>j<00>j<EFBFBD>jj<>Nuh+j<>hjZubj<62>)<29><>}<7D>(hj<>h]<5D>h<16>[<5B><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hjZubj<62>)<29><>}<7D>(hhh]<5D>(j<>)<29><>}<7D>(h<05>Callable<6C>h]<5D>j<EFBFBD>)<29><>}<7D>(h<05>Callable<6C>h]<5D>h<16>Callable<6C><65><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj<>ubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><> condition<6F>j<EFBFBD>uh+j<>hj<>ubj<62>)<29><>}<7D>(h<05>Callable<6C>h]<5D>j<EFBFBD>)<29><>}<7D>(h<05>Callable<6C>h]<5D>h<16>Callable<6C><65><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj<>ubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><> condition<6F>j<EFBFBD>uh+j<>hj<>ubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><> refdomain<69>j<EFBFBD><00> refexplicit<69><74><EFBFBD>reftype<70>j<00> reftarget<65>j<EFBFBD>j<00>j<EFBFBD>jj<>Nuh+j<>hjZubj<62>)<29><>}<7D>(hj3h]<5D>h<16>]<5D><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj<>hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hjZubh<16>)<29><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjZhhhNhNubh<16> <20><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjZhhhNhNubh<16>dAn optional callable that returns True if
the passed object is considered a leaf or False otherwise.<2E><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjZhhhNhNubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j#hjWubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj<>ubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj<>ubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj<>ubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj~ubj<62>)<29><>}<7D>(hhh]<5D>(j<>)<29><>}<7D>(h<05>Returns<6E>h]<5D>h<16>Returns<6E><73><EFBFBD><EFBFBD><EFBFBD>}<7D>(hj5hhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj2hh]hKubj<62>)<29><>}<7D>(hhh]<5D>j$)<29><>}<7D>(h<05>1A python tree with the new values returned by fn.<2E>h]<5D>(h<16>.A python tree with the new values returned by <20><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjFhhhNhNubj.)<29><>}<7D>(h<05>``fn``<60>h]<5D>h<16>fn<66><6E><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjNhhhNhNubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j-hjFhhhNhNubh<16>.<2E><><EFBFBD><EFBFBD><EFBFBD>}<7D>(hjFhhhNhNubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j#hjCubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj2ubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j<>hj~ubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+j|hj hhhNhNubeh}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D>uh+jhh@hhhh]hNubeh}<7D>(h!]<5D>h#]<5D>(j<><00>function<6F>eh%]<5D>h']<5D>h)]<5D><>domain<69>j<EFBFBD><00>objtype<70>j<EFBFBD><00>desctype<70>j<EFBFBD><00>noindex<65><78>uh+h>hhhh hNhNubeh}<7D>(h!]<5D><>mlx-utils-tree-map<61>ah#]<5D>h%]<5D><>mlx.utils.tree_map<61>ah']<5D>h)]<5D>uh+h
hhhhhh,hKubah}<7D>(h!]<5D>h#]<5D>h%]<5D>h']<5D>h)]<5D><>source<63>h,uh+h<01>current_source<63>N<EFBFBD> current_line<6E>N<EFBFBD>settings<67><73>docutils.frontend<6E><64>Values<65><73><EFBFBD>)<29><>}<7D>(hN<> generator<6F>N<EFBFBD> datestamp<6D>N<EFBFBD> source_link<6E>N<EFBFBD>
source_url<EFBFBD>N<EFBFBD> toc_backlinks<6B><73>entry<72><79>footnote_backlinks<6B>K<01> sectnum_xform<72>K<01>strip_comments<74>N<EFBFBD>strip_elements_with_classes<65>N<EFBFBD> strip_classes<65>N<EFBFBD> report_level<65>K<02>
halt_level<EFBFBD>K<05>exit_status_level<65>K<05>debug<75>N<EFBFBD>warning_stream<61>N<EFBFBD> traceback<63><6B><EFBFBD>input_encoding<6E><67> utf-8-sig<69><67>input_encoding_error_handler<65><72>strict<63><74>output_encoding<6E><67>utf-8<><38>output_encoding_error_handler<65>j<EFBFBD><00>error_encoding<6E><67>utf-8<><38>error_encoding_error_handler<65><72>backslashreplace<63><65> language_code<64><65>en<65><6E>record_dependencies<65>N<EFBFBD>config<69>N<EFBFBD> id_prefix<69>h<06>auto_id_prefix<69><78>id<69><64> dump_settings<67>N<EFBFBD>dump_internals<6C>N<EFBFBD>dump_transforms<6D>N<EFBFBD>dump_pseudo_xml<6D>N<EFBFBD>expose_internals<6C>N<EFBFBD>strict_visitor<6F>N<EFBFBD>_disable_config<69>N<EFBFBD>_source<63>h,<2C> _destination<6F>N<EFBFBD> _config_files<65>]<5D><>file_insertion_enabled<65><64><EFBFBD> raw_enabled<65>K<01>line_length_limit<69>M'<27>pep_references<65>N<EFBFBD> pep_base_url<72><6C>https://peps.python.org/<2F><>pep_file_url_template<74><65>pep-%04d<34><64>rfc_references<65>N<EFBFBD> rfc_base_url<72><6C>&https://datatracker.ietf.org/doc/html/<2F><> tab_width<74>K<08>trim_footnote_reference_space<63><65><EFBFBD>syntax_highlight<68><74>long<6E><67> smart_quotes<65><73><EFBFBD>smartquotes_locales<65>]<5D><>character_level_inline_markup<75><70><EFBFBD>doctitle_xform<72><6D><EFBFBD> docinfo_xform<72>K<01>sectsubtitle_xform<72><6D><EFBFBD> image_loading<6E><67>link<6E><6B>embed_stylesheet<65><74><EFBFBD>cloak_email_addresses<65><73><EFBFBD>section_self_link<6E><6B><EFBFBD>env<6E>Nub<75>reporter<65>N<EFBFBD>indirect_targets<74>]<5D><>substitution_defs<66>}<7D><>substitution_names<65>}<7D><>refnames<65>}<7D><>refids<64>}<7D><>nameids<64>}<7D>j<EFBFBD>j<>s<> nametypes<65>}<7D>j<EFBFBD><00>sh!}<7D>(j<>h h<hEu<45> footnote_refs<66>}<7D><> citation_refs<66>}<7D><> autofootnotes<65>]<5D><>autofootnote_refs<66>]<5D><>symbol_footnotes<65>]<5D><>symbol_footnote_refs<66>]<5D><> footnotes<65>]<5D><> citations<6E>]<5D><>autofootnote_start<72>K<01>symbol_footnote_start<72>K<00>
id_counter<EFBFBD><EFBFBD> collections<6E><73>Counter<65><72><EFBFBD>}<7D><><EFBFBD>R<EFBFBD><52>parse_messages<65>]<5D><>transform_messages<65>]<5D><> transformer<65>N<EFBFBD> include_log<6F>]<5D><>
decoration<EFBFBD>Nhhub.