
    A'h~                         d dl Zd dl mZmZmZ d dlmZmZ d dlm	Z	m
Z
 d dlmZmZmZ d dlmZ d dlmZ d dlmZmZmZmZ d d	lmZ d d
lmZ eee	f   Zeeef   Zeee
e   f   Z d Z! G d deee f         Z"y)    N)AsyncIteratorIteratorSequence)asynccontextmanagercontextmanager)AnyOptional)NotRequiredRequiredSelf)CONF)InvalidUpdateError)ChannelKeyPlaceholderChannelTypePlaceholderConfiguredManagedValueWritableManagedValue)PutOp)LoopProtocolc                     t        | d      rt        | j                        S t        | d      r0| j                  t        t        fv rt        | j
                  d         S | S )z=Strips Annotated, Required and NotRequired from a given type.
__origin__r   )hasattr_strip_extrasr   r   r
   __args__)ts    e/home/kushmeetdev/Regenta/Chatbot/venv/lib/python3.12/site-packages/langgraph/managed/shared_value.pyr   r      sM    q,Q\\**q,ALLX{4K$KQZZ]++H    c            
           e Zd Zededefd       Zeede	de
dee   f fd              Zeede	de
dee   f fd              Zde	dee
   ded	edd
f
 fdZdefdZdee   dee   fdZdee   dd
fdZdee   dd
fdZ xZS )SharedValuescopereturnc                 :    t        t        | t        t        d      S )N)r   keytyp)r   r   r   r   )r   s    r   onzSharedValue.on)   s     %,-
 	
r   loopkwargsc              +      K   t        |   |fi |5 }|j                  O|j                  j                  |j                        }|D ci c]  }|j
                  |j                   c}|_        | d d d        y c c}w # 1 sw Y   y xY wwN)superenterstoresearchnsr"   valueclsr%   r&   r.   savedit	__class__s         r   r*   zSharedValue.enter4   s      W]4*6* 	ezz%

))%((3:?@Brvvrxx/@K		 	 A	 	s.   B6B
A=(B4	B=BBBc                p  K   t        |   |fi |4 d {   }|j                  W|j                  j                  |j                         d {   }|D ci c]  }|j
                  |j                   c}|_        | d d d       d {    y 7 }7 Fc c}w 7 # 1 d {  7  sw Y   y xY wwr(   )r)   aenterr+   asearchr-   r"   r.   r/   s         r   r5   zSharedValue.aenter=   s      7>$1&1 	 	Uzz%"jj00:::?@Brvvrxx/@K		 	 	:@	 	 	 	sh   B6BB65B!BB!B8B!B6BB6B!B!B6!B3'B*(B3/B6r#   r"   Nc                   t         |   |       t        |      x}rF|t        t        j
                  j                  t        j
                  j                  fvrt        d      || _	        i | _
        | j                  j                  y | j                  j                  t           j                  | j                        x}rd|||f| _        y t        d| d      )NzSharedValue must be a dictscopedzScope z0 for shared state key not in config.configurable)r)   __init__r   dictcollectionsabcMappingMutableMapping
ValueErrorr   r.   r%   r+   configr   getr-   )selfr%   r#   r   r"   scope_valuer3   s         r   r9   zSharedValue.__init__F   s     	$$3$''.. 
 !!=>>

99??" II,,T266tzzBB[B[9DGOP r   c                     | j                   S r(   )r.   )rB   s    r   __call__zSharedValue.__call__\   s    zzr   valuesc           	      r   g }|D ]  }|j                         D ]  \  }}|C|| j                  v s| j                  |= |j                  t        | j                  |d              Kt        |t              st        d      || j                  |<   |j                  t        | j                  ||               |S )NzReceived a non-dict value)itemsr.   appendr   r-   
isinstancer:   r   )rB   rF   writesvvkvs         r   _process_updatezSharedValue._process_update_   s      
	8B
 	819DJJ JJqMeDGGQ&=>#At,,-HII$%DJJqMMM%A"67	8
	8 r   c                     | j                   j                  | j                  |       y | j                   j                  j                  | j                  |            S r(   )r%   r+   rO   batch)rB   rF   s     r   updatezSharedValue.updaten   sB    99??"  (99??(()=)=f)EFFr   rK   c                    K   | j                   j                  | j                  |       y | j                   j                  j                  | j                  |             d {   S 7 wr(   )r%   r+   rO   abatch)rB   rK   s     r   aupdatezSharedValue.aupdatet   sL     99??"  (//0D0DV0LMMMMs   A A)"A'#A))__name__
__module____qualname__staticmethodstrr   r$   classmethodr   r   r   r   r   r*   r   r   r5   typer9   ValuerE   r   Updatelistr   rO   rR   rU   __classcell__)r3   s   @r   r   r   (   s   
# 
0 
 
   $      d@S    *.s)<?FI	,% hv&6 4; GXf- G$ GNHV$4 N Nr   r   )#collections.abcr;   r   r   r   
contextlibr   r   typingr   r	   typing_extensionsr
   r   r   langgraph.constantsr   langgraph.errorsr   langgraph.managed.baser   r   r   r   langgraph.store.baser   langgraph.typesr   r:   rZ   Vr]   r^   r   r    r   r   <module>rl      s     = = :
 : 9 $ /  ' (cN 	S!V	c8A;	PN&uf}5 PNr   