
    }
ib	              	          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dS )    )annotations)Sequence)AnyGeneric)Self)MISSING)BaseChannelValue)EmptyChannelErrorInvalidUpdateError)EphemeralValuec                       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   zJStores the value received in the step immediately preceding, clears after.)valueguardzValue | Anyr   boolr   Ttypr   returnNonec                p    t                                          |           || _        t          | _        d S N)super__init__r   r   r   )selfr   r   	__class__s      C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\langgraph/channels/ephemeral_value.pyr   zEphemeralValue.__init__   s-    



    objectc                L    t          |t                    o|j        | j        k    S r   )
isinstancer   r   )r   r   s     r   __eq__zEphemeralValue.__eq__   s     %00NU[DJ5NNr   type[Value]c                    | j         S )z,The type of the value stored in the channel.r   r   s    r   	ValueTypezEphemeralValue.ValueType        xr   c                    | j         S )z/The type of the update received by the channel.r#   r$   s    r   
UpdateTypezEphemeralValue.UpdateType$   r&   r   r   c                v    |                      | j        | j                  }| j        |_        | j        |_        |S )zReturn a copy of the channel.)r   r   r   keyr   )r   emptys     r   copyzEphemeralValue.copy)   s0    tx44H	jr   
checkpointr
   c                ~    |                      | j        | j                  }| j        |_        |t          ur||_        |S r   )r   r   r   r*   r   r   )r   r-   r+   s      r   from_checkpointzEphemeralValue.from_checkpoint0   s9    tx44H	W$$$EKr   valuesSequence[Value]c                    t          |          dk    r| j        t          urt          | _        dS dS t          |          dk    r| j        rt	          d| j         d          |d         | _        dS )Nr   TF   zAt key 'z': EphemeralValue(guard=True) can receive only one value per step. Use guard=False if you want to store any one of multiple values.)lenr   r   r   r   r*   )r   r0   s     r   updatezEphemeralValue.update7   s    v;;!z(($
tuv;;!
$ i48  i  i  i   BZ
tr   c                H    | j         t          u rt                      | j         S r   )r   r   r   r$   s    r   getzEphemeralValue.getF   s#    :  #%%%zr   c                    | j         t          uS r   )r   r   r$   s    r   is_availablezEphemeralValue.is_availableK   s    z((r   c                    | j         S r   )r   r$   s    r   r-   zEphemeralValue.checkpointN   s
    zr   )T)r   r   r   r   r   r   )r   r   r   r   )r   r!   )r   r   )r-   r
   r   r   )r0   r1   r   r   )r   r
   )r   r   )__name__
__module____qualname____doc__	__slots____annotations__r   r    propertyr%   r(   r,   r/   r6   r8   r:   r-   __classcell__)r   s   @r   r   r      s4        TT"IKKK      
O O O O    X    X            
) ) ) )       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>rM      s    " " " " " " $ $ $ $ $ $         " " " " " " / / / / / / 6 6 6 6 6 6 6 6 B B B B B B B B
@ @ @ @ @WU^[u1D%E @ @ @ @ @r   