Ë
    Ñwìi  ã                   ó:   — d dl mZ  G d„ d«      Z G d„ de«      Zy)é   )Ú
ASSERTIONSc                   ó0   — e Zd ZdZed„ «       Zed„ «       Zy)ÚWalkerzWalk from one node to another.c                 ól  — | j                   }|j                   }| j                  |j                  ur| ›d|›d�}t        |«      ‚t        j	                  ||«      }t
        r|d   | j                  u sJ ‚t        |«      }| |d   u rd}nt        t        ||d «      «      }||d   u rd}n||d }||d   |fS )a  
        Walk from `start` node to `end` node.

        Returns:
            (upwards, common, downwards): `upwards` is a list of nodes to go upward to.
            `common` top node. `downwards` is a list of nodes to go downward to.

        Raises:
            WalkError: on no common root node.

        Example:

        >>> from anytree import Node, RenderTree, AsciiStyle
        >>> 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()))
        Node('/f')
        |-- Node('/f/b')
        |   |-- Node('/f/b/a')
        |   +-- Node('/f/b/d')
        |       |-- Node('/f/b/d/c')
        |       +-- Node('/f/b/d/e')
        +-- Node('/f/g')
            +-- Node('/f/g/i')
                +-- Node('/f/g/i/h')

        Create a walker:

        >>> w = Walker()

        This class is made for walking:

        >>> w.walk(f, f)
        ((), Node('/f'), ())
        >>> w.walk(f, b)
        ((), Node('/f'), (Node('/f/b'),))
        >>> w.walk(b, f)
        ((Node('/f/b'),), Node('/f'), ())
        >>> w.walk(h, e)
        ((Node('/f/g/i/h'), Node('/f/g/i'), Node('/f/g')), Node('/f'), (Node('/f/b'), Node('/f/b/d'), Node('/f/b/d/e')))
        >>> w.walk(d, e)
        ((), Node('/f/b/d'), (Node('/f/b/d/e'),))

        For a proper walking the nodes need to be part of the same tree:

        >>> w.walk(Node("a"), Node("b"))
        Traceback (most recent call last):
          ...
        anytree.walker.WalkError: Node('/a') and Node('/b') are not part of the same tree.
        z and z are not part of the same tree.é    éÿÿÿÿ© N)	ÚpathÚrootÚ	WalkErrorr   Ú_Walker__calc_commonr   ÚlenÚtupleÚreversed)	ÚstartÚendÚ	startpathÚendpathÚmsgÚcommonÚ
len_commonÚupwardsÚdowns	            ú_/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/anytree/walker.pyÚwalkzWalker.walk   sÍ   € ðv —J‘Jˆ	Ø—(‘(ˆØ�:‰:˜SŸX™XÑ%Ø�I˜U 3 'Ð)HÐIˆCÜ˜C“.Ð ä×%Ñ% i°Ó9ˆÝØ˜!‘9 §
¡
Ñ*Ð*Ð*Ü˜“[ˆ
à�F˜2‘JÑØ‰GäœH Y¨z¨{Ð%;Ó<Ó=ˆGà�&˜‘*ÑØ‰Dà˜:˜;Ð'ˆDØ˜˜r™
 DÐ(Ð(ó    c                 ó:   — t        d„ t        | |«      D «       «      S )Nc              3   ó0   K  — | ]  \  }}||u sŒ|–— Œ y ­w)Nr	   )Ú.0ÚsiÚeis      r   Ú	<genexpr>z'Walker.__calc_common.<locals>.<genexpr>Z   s   è ø€ ÐB¡o™F˜B ¸¸rº”R¡oùs   ‚�)r   Úzip)r   r   s     r   Ú__calc_commonzWalker.__calc_commonX   s   € äÑB¤c¨%°¤oÓBÓBÐBr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodr   r   r	   r   r   r   r      s0   „ Ù(àñN)ó ðN)ð` ñCó ñCr   r   c                   ó   — e Zd ZdZy)r   zWalk Error.N)r%   r&   r'   r(   r	   r   r   r   r   ]   s   „ Úr   r   N)Úconfigr   r   ÚRuntimeErrorr   r	   r   r   Ú<module>r-      s#   ðÝ ÷VCñ VCôr�õ r   