+
    i-&  c                   s`    ^ RI Ht RR.tR	tR
t ! R R4      t ! R R]4      t ! R R4      tR# )    )GenericAliasTopologicalSorter
CycleErrorc                   s*   a  ] tR t^	t o RtR tRtV tR# )	_NodeInfoc                s.    Wn         ^ V n        . V n        R# )r    Nnodenpredecessors
successors)selfr   s   &&!/usr/lib64/python3.14/graphlib.py__init__Z_NodeInfo.__init__   s    	
      r   N)__name__
__module____qualname____firstlineno__Z	__slots__r   __static_attributes____classdictcell__Z__classdict__   @r
   r   r   	   s     5I r   r   c                   s    ] tR t^tRtR# )r    N)r   r   r   r   r   r   r   r
   r   r      s     	r   c                   sp   a  ] tR t^)t o RR ltR tR tR tR tR t	R t
R	 tR
 tR t]! ]4      tRtV tR# )r   Nc                s    / V n         R V n        ^ V n        ^ V n        Ve0   VP	                  4        F  w  r#V P
                  ! V.VO5!   K  	  R # R # N)
_node2info_ready_nodes_npassedout
_nfinishedZitemsadd)r	   Zgraphr   predecessorss   &&  r
   r   ZTopologicalSorter.__init__,   sO     &+kkm"-- '4 r   c                sx    V P                   P                  V4      ;pf   \        V4      ;V P                   V&   pV# r   )r   getr   )r	   r   results   && r
   _get_nodeinfoZTopologicalSorter._get_nodeinfo6   s8    oo))$//F8-6t_<DOOD!Fr   c                s   V P                   e   \        R4      hV P                  V4      pV;P                  \	        V4      ,          un        V F/  pV P                  V4      pVP
                  P                  V4       K1  	  R # )Nz/Nodes cannot be added after a call to prepare())r   
ValueErrorr   r   lenr   append)r	   r   r   nodeinfoZpredZ	pred_infos   &&*   r
   r   ZTopologicalSorter.add;   st     (NOO %%d+#l"33 !D**40I  ''- !r   c                sB   V P                   ^ 8  d   \        R4      hV P                  fL   V P                  P	                  4        Uu. uF!  qP
                  ^ 8X  g   K  VP                  NK#  	  upV n        V P                  4       pV'       d   \        RV4      hR# u upi )r    z$cannot prepare() after starting sortNznodes are in a cycle)	r   r    r   r   Zvaluesr   r   _find_cycler   )r	   ZiZcycles   &  r
   prepareZTopologicalSorter.prepareV   s     aCDD$ $ 6 6 8! 81OOq<P 8!D   "3U;; !s   BBc                s&   V P                   f   \        R4      h\        V P                   4      pV P                  pV F  p\        W#,          n        K  	  V P                   P                  4        V ;P                  \        V4      ,          un        V# Nprepare() must be called first)	r   r    Ztupler   	_NODE_OUTr   Zclearr   r!   )r	   r   n2ir   s   &   r
   	get_readyZTopologicalSorter.get_readyp   sy     $=>> t(()ooD&/CI# 
 	!CK'r   c                s    V P                   f   \        R4      hV P                  V P                  8  ;'       g    \	        V P                   4      # r&   )r   r    r   r   Zboolr	      &r
   	is_activeZTopologicalSorter.is_active   sD     $=>>!1!11LLT$:K:K5LLr   c                s"    V P                  4       # r   )r-   r+   r,   r
   __bool__ZTopologicalSorter.__bool__   s    ~~r   c                sJ   V P                   f   \        R4      hV P                  pV F  pVP                  V4      ;pf   \        RV: R24      hVP                  pV\
        8w  d3   V^ 8  d   \        RV: R24      hV\        8X  d   \        RV: R24      h\        Vn        VP                   FR  pW&,          pV;P                  ^,          un        VP                  ^ 8X  g   K7  V P                   P                  V4       KT  	  V ;P                  ^,          un	        K  	  R # )Nr'   znode z was not added using add()z% was not passed out (still not ready)z was already marked done)
r   r    r   r   r   r(   
_NODE_DONEr   r"   r   )r	   Znodesr)   r   r#   ZstatZ	successorZsuccessor_infos   &*      r
   doneZTopologicalSorter.done   s    $=>>ooD  GGDM)2 50J!KLL ))Dy 19$x'LM  Z'$uTH4L%MNN
 &0H" &00	!$,,1,!//14%%,,Y7	 1
 OOq O9 r   c                s   V P                   p. p. p\        4       p/ pV F  pWd9   d   K   Wd9   d   We9   d   W%V,          R V.,           u # McVP                  V4       VP                  \	        W,          P
                  4      P                  4       \        V4      WV&   VP                  V4       V'       d    VR,          ! 4       pK  K  	  R#   \         d%    YRP                  4        TP                  4         KM  i ; i)TN)
r   Zsetr   r"   Ziterr   Z__next__r!   ZStopIterationZpop)r	   r)   ZstackZitstackZseenZnode2stackir   s   &      r
   r$   ZTopologicalSorter._find_cycle   s    oouD|< *$%6%89TFBB + HHTNNN4	(<(<#=#F#FG(+E
K%LL& &&r{}
 7 8  ) &'		4&s   9C+C>=C>c              #  s   "   V P                  4        V P                  4       '       d-   V P                  4       pT R j  xL
  V P                  ! V!   KB  R #  L5ir   )r%   r-   r*   r0   )r	   Z
node_groups   & r
   static_orderZTopologicalSorter.static_order   sF      	nn)J!!!IIz" !s   &AAAA)r   r   r   r   r   )r   r   r   r   r   r   r   r%   r*   r-   r.   r0   r$   r2   Zclassmethodr   Z__class_getitem__r   r   r   r   r
   r   r   )   sG     .
.6<44M -!^#J# $L1r   Nr1   i)	Ztypesr   Z__all__r(   r/   r   r    r   r   r   r   r
   <module>r3      s>    
-	
 "	 	U2 U2r   