
    <ib	              	          S SK Jr  S SKJr  S SKJrJr  S SKJr  S SK	J
r
  S SKJrJr  S SKJrJr  Sr " S	 S
\\   \\\\4   5      rg)    )annotations)Sequence)AnyGeneric)Self)MISSING)BaseChannelValue)EmptyChannelErrorInvalidUpdateError)EphemeralValuec                     ^  \ rS rSr% SrSrS\S'   S\S'   SSU 4S jjjrSS	 jr\	SS
 j5       r
\	SS j5       rSS jrSS jrSS jrSS jrSS jrSS jrSrU =r$ )r      zJStores the value received in the step immediately preceding, clears after.)valueguardzValue | Anyr   boolr   c                F   > [         TU ]  U5        X l        [        U l        g N)super__init__r   r   r   )selftypr   	__class__s      r/home/dmtnaga/Documents/work/airagagent/rag_env/lib/python3.13/site-packages/langgraph/channels/ephemeral_value.pyr   EphemeralValue.__init__   s    

    c                b    [        U[        5      =(       a    UR                  U R                  :H  $ r   )
isinstancer   r   )r   r   s     r   __eq__EphemeralValue.__eq__   s!    %0NU[[DJJ5NNr   c                    U R                   $ )z,The type of the value stored in the channel.r   r   s    r   	ValueTypeEphemeralValue.ValueType        xxr   c                    U R                   $ )z/The type of the update received by the channel.r"   r#   s    r   
UpdateTypeEphemeralValue.UpdateType$   r&   r   c                    U R                  U R                  U R                  5      nU R                  Ul        U R                  Ul        U$ )zReturn a copy of the channel.)r   r   r   keyr   )r   emptys     r   copyEphemeralValue.copy)   s5    txx4HH	jjr   c                    U R                  U R                  U R                  5      nU R                  Ul        U[        La  Xl        U$ r   )r   r   r   r+   r   r   )r   
checkpointr,   s      r   from_checkpointEphemeralValue.from_checkpoint0   s7    txx4HH	W$$Kr   c                    [        U5      S:X  a   U R                  [        La  [        U l        gg[        U5      S:w  a*  U R                  (       a  [	        SU R
                   S35      eUS   U l        g)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   valuess     r   updateEphemeralValue.update7   sm    v;!zz($
v;!

$488*  %h  i  BZ
r   c                T    U R                   [        L a
  [        5       eU R                   $ r   )r   r   r   r#   s    r   getEphemeralValue.getF   s!    :: #%%zzr   c                &    U R                   [        L$ r   )r   r   r#   s    r   is_availableEphemeralValue.is_availableK   s    zz((r   c                    U R                   $ r   )r   r#   s    r   r0   EphemeralValue.checkpointN   s    zzr   )r   r   )T)r   r   r   r   returnNone)r   objectrB   r   )rB   ztype[Value])rB   r   )r0   r
   rB   r   )r7   zSequence[Value]rB   r   )rB   r
   )rB   r   )__name__
__module____qualname____firstlineno____doc__	__slots____annotations__r   r   propertyr$   r(   r-   r1   r8   r;   r>   r0   __static_attributes____classcell__)r   s   @r   r   r      sq    T"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>rX      s?    " $  " / 6 B
@WU^[u1D%E @r   