
    9i
                        d dl mZ d dlmZ d dlmZmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZ d	Zdd
Zddd	 	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZddZy)    )annotations)Mapping)datetimetimezone)
Checkpoint)uuid6)MISSING)BaseChannel)ManagedValueMappingManagedValueSpec   c                     t        t        t        t        d            t	        j
                  t        j                        j                         i i i       S )N	clock_seq)vidtschannel_valueschannel_versionsversions_seen)	r   LATEST_VERSIONstrr   r   nowr   utc	isoformat     f/var/www/html/backtest/airagagent/rag_env/lib/python3.12/site-packages/langgraph/pregel/_checkpoint.pyempty_checkpointr       sA    
ur"#<<%//1 r   N)r   updated_channelsc               b   t        j                  t        j                        j	                         }|| d   }n2i }|D ]+  }|| d   vr||   j                         }|t        us'|||<   - t        t        ||xs t        t        |            || d   | d   |d      S t        |            S )z+Create a checkpoint for the given channels.Nr   r   r   r   r   r   r   r   r   r   r!   )r   r   r   r   r   
checkpointr	   r   r   r   r   sorted)	r$   channelsstepr   r!   r   valueskr   s	            r   create_checkpointr*      s     
hll	#	-	-	/B,- 	A
#566&&(Aq		 
+UT*+#$67 1!1!9  @FFV?W r   c                   i }i }| j                         D ]   \  }}t        |t              r|||<   |||<   " |j                         D ci c].  \  }}||j                  |d   j	                  |t
                    0 c}}|fS c c}}w )zGet channels from a checkpoint.r   )items
isinstancer
   from_checkpointgetr	   )specsr$   channel_specsmanaged_specsr)   r   s         r   channels_from_checkpointr3   :   s    
 -/M13M !1a% M! M!	! &++-	
1 q  ,<!=!A!A!W!MNN	
 	 	
s   3Bc                   t        | d   | d   | d   | d   j                         | d   j                         | d   j                         D ci c]  \  }}||j                          c}}| j                  dd             S c c}}w )	Nr   r   r   r   r   r   r!   r#   )r   copyr,   r/   )r$   r)   r   s      r   copy_checkpointr6   O   s    
S/dd!"2388:#$67<<>/9//J/P/P/RStq!q!&&({S#(:DA  Ts   B)returnr   )r$   r   r&   z Mapping[str, BaseChannel] | Noner'   intr   z
str | Noner!   zset[str] | Noner7   r   )r0   z,Mapping[str, BaseChannel | ManagedValueSpec]r$   r   r7   z5tuple[Mapping[str, BaseChannel], ManagedValueMapping])r$   r   r7   r   )
__future__r   collections.abcr   r   r   langgraph.checkpoint.baser   langgraph.checkpoint.base.idr   langgraph._internal._typingr	   langgraph.channels.baser
   langgraph.managed.baser   r   r   r    r*   r3   r6   r   r   r   <module>r@      s    " # ' 0 . / / H  (,. 
 	 & >7 ;*	r   