
    (Gg              	       z    d dl mZmZmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZmZ  G d dee   eeeef         Zy)	    )GenericSequenceType)Self)BaseChannelValueMISSING)EmptyChannelErrorInvalidUpdateErrorc                        e Zd ZdZdZddee   deddf fdZde	defd	Z
edee   fd
       Zedee   fd       ZdefdZdefdZdedefdZdee   defdZdefdZdefdZ xZS )UntrackedValuez3Stores the last value received, never checkpointed.)valueguardtypr   returnNc                 H    t         |   |       || _        t        | _        y N)super__init__r   r
   r   )selfr   r   	__class__s      /home/kushmeetdev/apache_webroot/langgraph_flaskproject/venv/lib/python3.12/site-packages/langgraph/channels/untracked_value.pyr   zUntrackedValue.__init__   s    

    r   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.checkpoint(   s    r   r*   c                 t    | j                  | j                  | j                        }| j                  |_        |S r   )r   r   r   r&   )r   r*   r'   s      r   from_checkpointzUntrackedValue.from_checkpoint+   s*    txx4HH	r   valuesc                     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   r-   s     r   updatezUntrackedValue.update0   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.get;   s!    :: #%%zzr   c                 &    | j                   t        uS r   )r   r
   r    s    r   is_availablezUntrackedValue.is_available@   s    zz((r   )T)__name__
__module____qualname____doc__	__slots__r   r   boolr   objectr   propertyr!   r$   r   r(   r*   r,   r   r2   r4   r6   __classcell__)r   s   @r   r   r   
   s    ="IDK   
OF Ot O 4;   DK  d E % D 
	Xe_ 	 	U 
)d )r   r   N)typingr   r   r   typing_extensionsr   langgraph.channels.baser   r   langgraph.constantsr
   langgraph.errorsr   r   r    r   r   <module>rF      s5    * * " 6 ' B7)WU^[u1D%E 7)r   