
    <i                    T   S SK Jr  S SKJr  S SKJrJrJr  S SKJ	r	J
r
  S SKJrJrJrJrJrJr  S SKJrJr  S SKJrJr  S SKJrJr  S S	KJr  S S
KJr  S SKJ r J!r!J"r"  SS.       SS jjr#SS.       SS jjr$SS jr%      SS jr&        SS jr' S       SS jjr(g)    )annotations)Counter)IteratorMappingSequence)AnyLiteral)ERROR	INTERRUPTNULL_TASK_IDRESUMERETURNTASKS)	EMPTY_SEQMISSING)BaseChannelEmptyChannelError)START
TAG_HIDDEN)InvalidUpdateError)logger)CommandPregelExecutableTaskSendTcatchc               X     X   R                  5       $ ! [         a    U(       a   g e f = fN)getr   )channelschanr   s      d/home/dmtnaga/Documents/work/airagagent/rag_env/lib/python3.13/site-packages/langgraph/pregel/_io.pyread_channelr#      s0    ~!!## 	s    )))
skip_emptyc                   [        U[        5      (       a  [        X5      $ 0 nU H  n [        XU(       + S9X4'   M     U$ ! [         a     M(  f = f)Nr   )
isinstancestrr#   r   )r    selectr$   valuesks        r"   read_channelsr+   &   s[     &#H--!#A(
NK	 
  % s   A  
AAc              #    #    U R                   [        R                  :X  a  [        S5      eU R                  (       a  [        U R                  [        [        45      (       a  U R                  nOU R                  /nU Hq  n[        U[        5      (       a  [        [        U4v   M)  [        U[        5      (       a  [        SU 3[        4v   MR  [        S[        U5      R                   35      e   U R                   b  [        ["        U R                   4v   U R$                  (       a$  U R'                  5        H  u  p4[        X44v   M     gg7f)MMap input chunk to a sequence of pending writes in the form (channel, value).zThere is no parent graphz
branch:to:z(In Command.goto, expected Send/str, got N)graphr   PARENTr   gotor&   tuplelistr   r   r   r'   r   	TypeErrortype__name__resumer   update_update_as_tuples)cmdsendssendr*   vs        r"   map_commandr=   8   s    
yyGNN" !;<<
xxchh..HHEXXJED$%%#UD11D#&&#z$%8%@@>tDz?R?R>ST   zzVSZZ00
zz))+DA&& , s   EEc              #    #    Uc  g[        U [        5      (       a  X4v   g[        U[        5      (       d!  [        S[	        U5      R
                   35      eU H.  nX ;   a
  X!U   4v   M  [        R                  " SU SU  35        M0     g7f)r-   Nz!Expected chunk to be a dict, got zInput channel z not found in )r&   r'   dictr3   r4   r5   r   warning)input_channelschunkr*   s      r"   	map_inputrC   Q   s     
 }	NC	(	(%%%&&?U@T@T?UVWWA"(m#s.@PQR	 s   BBc              #    ^ #    [        T [        5      (       a/  USL d  [        U 4S jU 5       5      (       a  [        UT 5      v   ggUSL d$  U VVs1 s H  u  p4UT ;   d  M  UiM     snn(       a  [	        UT 5      v   ggs  snnf 7f)KMap pending writes (a sequence of tuples (channel, value)) to output chunk.Tc              3  2   >#    U  H  u  pUT:H  v   M     g 7fr    .0r!   _output_channelss      r"   	<genexpr>$map_output_values.<locals>.<genexpr>k   s      )
3ADO#>   N)r&   r'   anyr#   r+   )rK   pending_writesr    crJ   s   `    r"   map_output_valuesrR   d   s      /3''T!S )
3A)
 &
 &
 x99&

 T!(&
($!A,@A.&
 &
  /::&
 &
s   ABB"B(Bc           
   #    ^ ^^#    U VVs/ s Hg  u  p4UR                   (       a*  [        UR                   R                  S[        5      ;  d  M@  US   S   [        :w  d  MR  US   S   [
        :w  d  Md  X44PMi     nnnU(       d  g/ nU GH  u  mn[        S U 5       [        5      nU[        La  UR                  TR                  U45        MF  [        T [        5      (       a  UR                  U U4S jU 5       5        My  [        U 4S jU 5       5      (       d  M  [        S U 5       5      m[        U4S jT  5       5      (       a  UR                  U U4S	 jU 5       5        M  UR                  TR                  U V	V
s0 s H  u  pU	T ;   d  M  X_M     sn
n	45        GM     U VVs0 s H  u  p;UR                  / _M     nnnU H  u  pX   R                  U
5        M     UR                  5        H0  u  p[!        U
5      S:X  a  SX'   [!        U
5      S
:X  d  M)  U
S   X'   M2     U(       a  SU0US'   Uv   gs  snnf s  sn
n	f s  snnf 7f)rE   tagsr   Nc              3  B   #    U  H  u  pU[         :X  d  M  Uv   M     g 7fr   )r   )rI   r!   values      r"   rL   %map_output_updates.<locals>.<genexpr>   s     FVkdtv~EEVs   	c              3  T   >#    U  H  u  pUT:X  d  M  TR                   U4v   M     g 7fr   namerI   r!   rV   rK   tasks      r"   rL   rW      s)      6<{t@W"E"fs   ((c              3  2   >#    U  H  u  pUT;   v   M     g 7fr   rG   rH   s      r"   rL   rW      s     ?WT(rN   c              3  *   #    U  H	  u  pUv   M     g 7fr   rG   )rI   r!   rJ   s      r"   rL   rW      s     8gdTs   c              3  4   >#    U  H  nTU   S :  v   M     g7f)   NrG   )rI   r!   countss     r"   rL   rW      s     @6$<!#s   c              3  V   >#    U  H  u  pUT;   d  M  TR                   X04v   M      g 7fr   rY   r[   s      r"   rL   rW      s7      
 (..		 (.s   ))r`   cached__metadata__)configr   r   r   r
   r   nextr   appendrZ   r&   r'   extendrO   r   itemslen)rK   tasksrc   twwoutput_tasksupdatedwritesrtnr!   rV   rJ   groupednodera   r\   s   `             @@r"   map_output_updatesrt   v   s     EAJahhll69.MM 	 qE!H 	 qE!H	!	 	   %'G$fFVFPgNNDIIs+,--NN 6<  ????888F@@@@ 
 (.  		 06/5#6 (DK/5	) %< 7CCldaqvvrzlGCU# }}u:? GMu:?!!HGM	 '
 #+V"4
MeB DsO   I?H<H< H<2H<9B IA%IIII+IAI0IN)r    Mapping[str, BaseChannel]r!   r'   r   boolreturnr   )r    ru   r(   zSequence[str] | strr$   rv   rw   zdict[str, Any] | Any)r9   r   rw   zIterator[tuple[str, str, Any]])rA   str | Sequence[str]rB   zdict[str, Any] | Any | Nonerw   zIterator[tuple[str, Any]])rK   rx   rP   z)Literal[True] | Sequence[tuple[str, Any]]r    ru   rw   zIterator[dict[str, Any] | Any])F)rK   rx   rk   z<list[tuple[PregelExecutableTask, Sequence[tuple[str, Any]]]]rc   rv   rw   z)Iterator[dict[str, Any | dict[str, Any]]]))
__future__r   collectionsr   collections.abcr   r   r   typingr   r	   langgraph._internal._constantsr
   r   r   r   r   r   langgraph._internal._typingr   r   langgraph.channels.baser   r   langgraph.constantsr   r   langgraph.errorsr   langgraph.pregel._logr   langgraph.typesr   r   r   r#   r+   r=   rC   rR   rt   rG       r"   <module>r      s   "  7 7   ; B 1 / ( ? ? 	'
 	
 	& 	' 	
 $'2S'S&S S&;(;=; (; $	;* 8(8G8 8 /	8r   