
    i                     &    S SK Jr   " S S\5      rg)   )AbstractIterc                   8    \ rS rSrSr\S 5       r\S 5       rSrg)PostOrderIter   a  
Iterate over tree applying post-order strategy starting at `node`.

>>> from anytree import Node, RenderTree, AsciiStyle, PostOrderIter
>>> 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 PostOrderIter(f)]
['a', 'c', 'e', 'd', 'b', 'h', 'i', 'g', 'f']
>>> [node.name for node in PostOrderIter(f, maxlevel=3)]
['a', 'd', 'b', 'i', 'g', 'f']
>>> [node.name for node in PostOrderIter(f, filter_=lambda n: n.name not in ('e', 'g'))]
['a', 'c', 'd', 'b', 'h', 'i', 'f']
>>> [node.name for node in PostOrderIter(f, stop=lambda n: n.name == 'd')]
['a', 'b', 'h', 'i', 'g', 'f']
c                 2    [         R                  U SXU5      $ Nr   )r   _PostOrderIter__next)childrenfilter_stopmaxlevels       L/app/mltbenv/lib/python3.13/site-packages/anytree/iterators/postorderiter.py_iterPostOrderIter._iter&   s    ##HaII    c              #     #    [         R                  " X5      (       d`  U  HY  n[         R                  " UR                  U5      n[        R                  XaS-   X#U5       S h  vN   U" U5      (       d  MU  Uv   M[     g g  N7fr   )r   _abort_at_level_get_childrenr
   r   r	   )r
   levelr   r   r   childgrandchildrens          r   __nextPostOrderIter.__next*   sl     ++E<<! , : :5>>4 P(//qy'Yabbb5>>K	 " = cs   AB!A?"B5B N)	__name__
__module____qualname____firstlineno____doc__staticmethodr   r	   __static_attributes__r   r   r   r   r      s2    B J J    r   r   N)abstractiterr   r   r   r   r   <module>r#      s    &- L - r   