
    9i                    B   d dl mZ d dlmZ d dlmZmZmZ d dlm	Z	m
Z
 d dlmZmZmZmZmZmZ d dlmZmZ d dlmZmZ d dlmZmZ d d	lmZ d d
lmZ d dlm Z m!Z!m"Z" dd	 	 	 	 	 	 	 ddZ#dd	 	 	 	 	 	 	 ddZ$ddZ%	 	 	 	 	 	 ddZ&	 	 	 	 	 	 	 	 ddZ'	 d	 	 	 	 	 	 	 ddZ(y)    )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               N    	 | |   j                         S # t        $ r |rY y  w xY wN)getr   )channelschanr   s      ^/var/www/html/backtest/airagagent/rag_env/lib/python3.12/site-packages/langgraph/pregel/_io.pyread_channelr#      s2    ~!!## 	s    $$)
skip_emptyc                   t        |t              rt        | |      S i }|D ]  }	 t        | ||       ||<    |S # t        $ r Y %w xY w)Nr   )
isinstancestrr#   r   )r    selectr$   valuesks        r"   read_channelsr+   &   sc     &#Hf--!# 	A(1
NKq		
  % s   ;	AAc              #  f  K   | j                   t        j                  k(  rt        d      | j                  rt        | j                  t        t        f      r| j                  }n| j                  g}|D ]e  }t        |t              rt        t        |f #t        |t              rt        d| t        f Ft        dt        |      j                          | j                   t        t"        | j                   f | j$                  r$| j'                         D ]  \  }}t        ||f  yyw)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))+ 	'DAqA&&	' s   D/D1c              #    K   |yt        | t              r| |f yt        |t              s!t        dt	        |      j
                         |D ]+  }|| v r
|||   f t        j                  d| d|         - yw)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%%%&?U@T@T?UVWW 	SAN"%(m#s.@PQR		Ss   A=A?c              #      K   t         t              r(|du st         fd|D              rt        |        yy|du s|D ch c]  \  }}| v s| c}}rt	        |        yyc c}}w w)KMap pending writes (a sequence of tuples (channel, value)) to output chunk.Tc              3  .   K   | ]  \  }}|k(    y wr    .0r!   _output_channelss      r"   	<genexpr>z$map_output_values.<locals>.<genexpr>k   s      )
(/aDO#)
   N)r&   r'   anyr#   r+   )rK   pending_writesr    crJ   s   `    r"   map_output_valuesrQ   d   s      /3'T!S )
3A)
 &
 x99&

 T!(&
!QA,@A&
  /::&
 &
s   AA0A*A*A0c           
   #  "   K   |D cg c]Y  \  }}|j                   r&t        |j                   j                  dt              vr"|d   d   t        k7  r|d   d   t
        k7  r||f[ }}}|syg }|D ]  \  }t        d |D        t              }|t        ur|j                  j                  |f       Ct         t              r|j                   fd|D               ot         fd|D              st        d |D              t        fd D              r|j                   fd	|D               |j                  j                  |D 	
ci c]  \  }	}
|	 v r|	|
 c}
}	f        |D ci c]  \  }}|j                  g  }}}|D ]  \  }}
||   j                  |
        |j                         D ]/  \  }}
t!        |
      dk(  rd||<   t!        |
      d
k(  s(|
d   ||<   1 |rd|i|d<   | yc c}}w c c}
}	w c c}}w w)rE   tagsr   Nc              3  :   K   | ]  \  }}|t         k(  s|  y wr   )r   )rI   r!   values      r"   rL   z%map_output_updates.<locals>.<genexpr>   s     FkdEtv~EFs   c              3  L   K   | ]  \  }}|k(  sj                   |f  y wr   namerI   r!   rU   rK   tasks      r"   rL   z%map_output_updates.<locals>.<genexpr>   s*      '2tU@WE"s   $$c              3  ,   K   | ]  \  }}|v   y wr   rG   rH   s      r"   rL   z%map_output_updates.<locals>.<genexpr>   s     ?WT1(?s   c              3  &   K   | ]	  \  }}|  y wr   rG   )rI   r!   rJ   s      r"   rL   z%map_output_updates.<locals>.<genexpr>   s     8gdAT8s   c              3  .   K   | ]  }|   d kD    yw)   NrG   )rI   r!   countss     r"   rL   z%map_output_updates.<locals>.<genexpr>   s     @6$<!#@rM   c              3  L   K   | ]  \  }}|v rj                   ||if  y wr   rW   rY   s      r"   rL   z%map_output_updates.<locals>.<genexpr>   s7      
 $e.	 		us   !$r^   cached__metadata__)configr   r   r   r
   r   nextr   appendrX   r&   r'   extendrN   r   itemslen)rK   tasksra   twwoutput_tasksupdatedwritesrtnr!   rU   rJ   groupednoder_   rZ   s   `             @@r"   map_output_updatesrr   v   s     ArJahhll69.MMqE!HqE!H	!	 
BL  %'G$ fFVFPgNNDIIs+,-NN 6<  ???888F@@@ 
 (.  		 06 +e#6 !%K	)< 7CCdaqvvrzCGC $eU#$}} %eu:? GDMu:?!!HGDM	%
 #+V"4
MeB Ds8   HAG=)BH7AHH%H5H	AH%*HN)r    Mapping[str, BaseChannel]r!   r'   r   boolreturnr   )r    rs   r(   zSequence[str] | strr$   rt   ru   zdict[str, Any] | Any)r9   r   ru   zIterator[tuple[str, str, Any]])rA   str | Sequence[str]rB   zdict[str, Any] | Any | Noneru   zIterator[tuple[str, Any]])rK   rv   rO   z)Literal[True] | Sequence[tuple[str, Any]]r    rs   ru   zIterator[dict[str, Any] | Any])F)rK   rv   ri   z<list[tuple[PregelExecutableTask, Sequence[tuple[str, Any]]]]ra   rt   ru   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   rQ   rr   rG       r"   <module>r      s   "  7 7   ; B 1 / ( ? ? 	'
 	
 	& 	' 	
 $'2S'S&S S&;(;=; (; $	;* 8(8G8 8 /	8r   