
    ^j                     &    d dl mZ  G d de      Zy)   )AbstractIterc                   0    e Zd ZdZed        Zed        Zy)PostOrderItera  
    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                 4    t         j                  | d|||      S Nr   )r   _PostOrderIter__next)childrenfilter_stopmaxlevels       X/opt/ringagent/.cad-venv/lib/python3.12/site-packages/anytree/iterators/postorderiter.py_iterzPostOrderIter._iter&   s    ##Ha$II    c              #      K   t        j                  ||      sY| D ]S  }t        j                  |j                  |      }t        j                  ||dz   |||      E d {     ||      sP| U y y 7 wr   )r   _abort_at_level_get_childrenr	   r   r   )r	   levelr
   r   r   childgrandchildrens          r   __nextzPostOrderIter.__next*   st     ++E8<!   , : :5>>4 P(//uqy'SWYabbb5>K	  = cs   AA5A3A5+	A5N)__name__
__module____qualname____doc__staticmethodr   r    r   r   r   r      s2    B J J    r   r   N)abstractiterr   r   r   r   r   <module>r      s    &- L - r   