
    ^j                          G d  d      Z y)c                   z    e Zd ZdZddZd Zed        Zed        Zd Z	d Z
ed	        Zed
        Zed        Zy)AbstractIteraZ  
    Iterate over tree starting at `node`.

    Base class for all iterators.

    Keyword Args:
        filter_: function called with every `node` as argument, `node` is returned if `True`.
        stop: stop iteration at `node` if `stop` function returns `True` for `node`.
        maxlevel (int): maximum descending in the node hierarchy.
    Nc                 J    || _         || _        || _        || _        d | _        y N)nodefilter_stopmaxlevel_AbstractIter__iter)selfr   r   r   r	   s        W/opt/ringagent/.cad-venv/lib/python3.12/site-packages/anytree/iterators/abstractiter.py__init__zAbstractIter.__init__   s%    		     c                 0   | j                   }| j                  }| j                  xs t        j                  }| j
                  xs t        j                  }t        j                  d|      rg nt        j                  |g|      }| j                  ||||      S )N   )
r   r	   r   r   _AbstractIter__default_filterr   _AbstractIter__default_stop_abort_at_level_get_children_iter)r   r   r	   r   r   childrens         r   __initzAbstractIter.__init   sy    yy==,,?,"?"?yy7L77%55aB2HbHbdhcikoHpzz(GT8<<r   c                      y)NT r   s    r   __default_filterzAbstractIter.__default_filter   s     r   c                      y)NFr   r   s    r   __default_stopzAbstractIter.__default_stop"   s     r   c                     | S r   r   r   s    r   __iter__zAbstractIter.__iter__'   s    r   c                 n    | j                   | j                         | _         t        | j                         S r   )r
   _AbstractIter__initnextr   s    r   __next__zAbstractIter.__next__*   s(    ;;++-DKDKK  r   c                     t         r   )NotImplementedError)r   r   r   r	   s       r   r   zAbstractIter._iter/   s    !!r   c                     |d uxr | |kD  S r   r   )levelr	   s     r   r   zAbstractIter._abort_at_level3   s    t#8(88r   c                 >    | D cg c]  } ||      r| c}S c c}w r   r   )r   r   childs      r   r   zAbstractIter._get_children7   s    #+?%4;???s   )NNN)__name__
__module____qualname____doc__r   r"   staticmethodr   r   r    r$   r   r   r   r   r   r   r   r      s    	=    !
 " " 9 9 @ @r   r   N)r   r   r   r   <module>r0      s   8@ 8@r   