+
     Bi-&                     `    ^ 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                   *   a  ] tR t^	t o RtR tRtV tR# )	_NodeInfoc                .    Wn         ^ V n        . V n        R# )r   Nnodenpredecessors
successors)selfr
   s   &&/usr/lib/python3.14/graphlib.py__init___NodeInfo.__init__   s    	
      r	   N)__name__
__module____qualname____firstlineno__	__slots__r   __static_attributes____classdictcell____classdict__s   @r   r   r   	   s     5I r   r   c                       ] tR t^tRtR# )r    N)r   r   r   r   r   r   r   r   r   r      s     	r   c                   p   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                    / 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
_nfinisheditemsadd)r   graphr
   predecessorss   &&  r   r   TopologicalSorter.__init__,   sO     &+kkm"-- '4 r   c                x    V P                   P                  V4      ;pf   \        V4      ;V P                   V&   pV# r   )r    getr   )r   r
   results   && r   _get_nodeinfoTopologicalSorter._get_nodeinfo6   s8    oo))$//F8-6t_<DOOD!Fr   c                   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'   nodeinfopred	pred_infos   &&*   r   r%   TopologicalSorter.add;   st     (NOO %%d+#l"33 !D**40I  ''- !r   c                B   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    valuesr   r
   _find_cycler   )r   icycles   &  r   prepareTopologicalSorter.prepareV   s     aCDD$ $ 6 6 8! 81OOq<P 8!D   "3U;; !s   BBc                &   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/   tupler    	_NODE_OUTr   clearr"   r0   )r   r+   n2ir
   s   &   r   	get_readyTopologicalSorter.get_readyp   sy     $=>> t(()ooD&/CI# 
 	!CK'r   c                    V P                   f   \        R4      hV P                  V P                  8  ;'       g    \	        V P                   4      # r>   )r!   r/   r#   r"   boolr   s   &r   	is_activeTopologicalSorter.is_active   sD     $=>>!1!11LLT$:K:K5LLr   c                "    V P                  4       # r   )rI   rH   s   &r   __bool__TopologicalSorter.__bool__   s    ~~r   c                J   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   rA   
_NODE_DONEr   r1   r#   )r   nodesrC   r
   r2   stat	successorsuccessor_infos   &*      r   done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                   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    setr%   r1   iterr   __next__r0   StopIterationpop)r   rC   stackitstackseennode2stackir
   s   &      r   r8   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              #     "   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;   rI   rD   rT   )r   
node_groups   & r   static_order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;   rD   rI   rL   rT   r8   rd   classmethodr   __class_getitem__r   r   r   s   @r   r   r   )   sG     .
.6<44M -!^#J# $L1r   NrW   )	typesr   __all__rA   rO   r   r/   r   r   r   r   r   <module>rk      s>    
-	
 "	 	U2 U2r   