
    im                     >    S SK Jr  SSKJr  SSKJr   " S S\5      rg)    )
ASSERTIONS   )AbstractIter)LevelOrderGroupIterc                   (    \ rS rSrSr\S 5       rSrg)ZigZagGroupIter   a\  
Iterate over tree applying Zig-Zag strategy with grouping starting at `node`.

Return a tuple of nodes for each level. The first tuple contains the
nodes at level 0 (always `node`). The second tuple contains the nodes at level 1
(children of `node`) in reversed order.
The next level contains the children of the children in forward order, and so on.

>>> from anytree import Node, RenderTree, AsciiStyle, ZigZagGroupIter
>>> f = Node("f")
>>> b = Node("b", parent=f)
>>> a = Node("a", parent=b)
>>> d = Node("d", parent=b)
>>> c = Node("c", parent=d)
>>> e = Node("e", parent=d)
>>> g = Node("g", parent=f)
>>> i = Node("i", parent=g)
>>> h = Node("h", parent=i)
>>> print(RenderTree(f, style=AsciiStyle()).by_attr())
f
|-- b
|   |-- a
|   +-- d
|       |-- c
|       +-- e
+-- g
    +-- i
        +-- h
>>> [[node.name for node in children] for children in ZigZagGroupIter(f)]
[['f'], ['g', 'b'], ['a', 'd', 'i'], ['h', 'e', 'c']]
>>> [[node.name for node in children] for children in ZigZagGroupIter(f, maxlevel=3)]
[['f'], ['g', 'b'], ['a', 'd', 'i']]
>>> [[node.name for node in children]
...  for children in ZigZagGroupIter(f, filter_=lambda n: n.name not in ('e', 'g'))]
[['f'], ['b'], ['a', 'd', 'i'], ['h', 'c']]
>>> [[node.name for node in children]
...  for children in ZigZagGroupIter(f, stop=lambda n: n.name == 'd')]
[['f'], ['g', 'b'], ['a', 'i'], ['h']]
c              #      #    U (       a\  [         (       a  [        U 5      S:X  d   e[        U S   XU5      n  [        U5      v   [	        [        [        U5      5      5      v   M/  g ! [         a     g f = f7f)Nr   r   )r   lenr   nexttuplereversedStopIteration)childrenfilter_stopmaxlevel_iters        N/app/mltbenv/lib/python3.13/site-packages/anytree/iterators/zigzaggroupiter.pyr   ZigZagGroupIter._iter0   st     z8})))'WHMEu+%e 566 	  % s(   5A7,A' $A7'
A41A73A44A7 N)__name__
__module____qualname____firstlineno____doc__staticmethodr   __static_attributes__r       r   r   r      s    &P 
 
r   r   N)anytree.configr   abstractiterr   levelordergroupiterr   r   r   r   r   <module>r#      s    % & 44l 4r   