
    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mZ d dlmZmZ dZ G d	 d
ee   eeeef         Zy)    )annotations)Sequence)AnyGeneric)SelfMISSING)BaseChannelValue)EmptyChannelErrorInvalidUpdateError)UntrackedValuec                       e Zd ZU dZdZded<   ded<   dd fdZddZedd	       Z	edd
       Z
ddZddZddZddZddZddZ xZS )r   z3Stores the last value received, never checkpointed.)valueguardboolr   Value | Anyr   c                H    t         |   |       || _        t        | _        y N)super__init__r   r	   r   )selftypr   	__class__s      l/var/www/html/backtest/airagagent/rag_env/lib/python3.12/site-packages/langgraph/channels/untracked_value.pyr   zUntrackedValue.__init__   s    

    c                X    t        |t              xr |j                  | j                  k(  S r   )
isinstancer   r   )r   r   s     r   __eq__zUntrackedValue.__eq__   s!    %0NU[[DJJ5NNr   c                    | j                   S )z,The type of the value stored in the channel.r   r   s    r   	ValueTypezUntrackedValue.ValueType        xxr   c                    | j                   S )z/The type of the update received by the channel.r!   r"   s    r   
UpdateTypezUntrackedValue.UpdateType$   r$   r   c                    | j                  | j                  | j                        }| j                  |_        | j                  |_        |S )zReturn a copy of the channel.)r   r   r   keyr   )r   emptys     r   copyzUntrackedValue.copy)   s5    txx4HH	jjr   c                    t         S r   r   r"   s    r   
checkpointzUntrackedValue.checkpoint0   s    r   c                t    | j                  | j                  | j                        }| j                  |_        |S r   )r   r   r   r(   )r   r,   r)   s      r   from_checkpointzUntrackedValue.from_checkpoint3   s*    txx4HH	r   c                    t        |      dk(  ryt        |      dk7  r%| j                  rt        d| j                   d      |d   | _        y)Nr   F   zAt key 'z': UntrackedValue(guard=True) can receive only one value per step. Use guard=False if you want to store any one of multiple values.T)lenr   r   r(   r   )r   valuess     r   updatezUntrackedValue.update8   sW    v;!v;!

$488*  %h  i  BZ
r   c                R    | j                   t        u r
t               | j                   S r   )r   r	   r   r"   s    r   getzUntrackedValue.getC   s!    :: #%%zzr   c                &    | j                   t        uS r   )r   r	   r"   s    r   is_availablezUntrackedValue.is_availableH   s    zz((r   )T)r   type[Value]r   r   returnNone)r   objectr:   r   )r:   r9   )r:   r   )r:   r   )r,   r   r:   r   )r3   zSequence[Value]r:   r   )r:   r   )r:   r   )__name__
__module____qualname____doc__	__slots____annotations__r   r   propertyr#   r&   r*   r,   r.   r4   r6   r8   __classcell__)r   s   @r   r   r      sg    ="IK
O    
	
)r   r   N)
__future__r   collections.abcr   typingr   r   typing_extensionsr   langgraph._internal._typingr	   langgraph.channels.baser
   r   langgraph.errorsr   r   __all__r    r   r   <module>rN      s=    " $  " / 6 B
:)WU^[u1D%E :)r   