
    <i/              
          S SK Jr  S SKJr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  SrSS	 jr " S
 S\\   \\\   \\\   -  \\   4   5      rg)    )annotations)IteratorSequence)AnyGeneric)Self)MISSING)BaseChannelValue)EmptyChannelError)Topicc              #  l   #    U  H(  n[        U[        5      (       a  U S h  vN   M$  Uv   M*     g  N7fN)
isinstancelist)valuesvalues     h/home/dmtnaga/Documents/work/airagagent/rag_env/lib/python3.13/site-packages/langgraph/channels/topic.py_flattenr      s-     eT""K	 s    424c                     ^  \ rS rSrSrSr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      zA configurable PubSub Topic.

Args:
    typ: The type of the value stored in the channel.
    accumulate: Whether to accumulate values across steps. If `False`, the channel will be emptied after each step.
)r   
accumulatec                ^   > [         TU ]  U5        X l        [        [           " 5       U l        g r   )super__init__r   r   r   r   )selftypr   	__class__s      r   r   Topic.__init__$   s"    $5km    c                b    [        U[        5      =(       a    UR                  U R                  :H  $ r   )r   r   r   )r   r   s     r   __eq__Topic.__eq__+   s#    %'OE,<,<,OOr    c                (    [         U R                     $ )z,The type of the value stored in the channel.)r   r   r   s    r   	ValueTypeTopic.ValueType.   s     !!r    c                B    U R                   [        U R                      -  $ )z/The type of the update received by the channel.)r   r   r%   s    r   
UpdateTypeTopic.UpdateType3   s     xx$txx.((r    c                    U R                  U R                  U R                  5      nU R                  Ul        U R                  R                  5       Ul        U$ )zReturn a copy of the channel.)r   r   r   keyr   copy)r   emptys     r   r-   
Topic.copy8   s>    txx9HH	{{'')r    c                    U R                   $ r   )r   r%   s    r   
checkpointTopic.checkpoint?   s    {{r    c                    U R                  U R                  U R                  5      nU R                  Ul        U[        La'  [        U[        5      (       a  US   Ul        U$ Xl        U$ )N   )r   r   r   r,   r	   r   tupler   )r   r1   r.   s      r   from_checkpointTopic.from_checkpointB   sX    txx9HH	W$*e,,)!}   *r    c                    SnU R                   (       d,  [        U R                  5      n[        [           " 5       U l        [        [        U5      5      =n(       a  SnU R                  R                  U5        U$ )NFT)r   boolr   r   r   r5   r   extend)r   r   updatedflat_valuess       r   updateTopic.updateM   sZ    4;;'Gu+-DK 011;1GKK{+r    c                Z    U R                   (       a  [        U R                   5      $ [        er   )r   r   r   r%   s    r   get	Topic.getW   s    ;;$$##r    c                ,    [        U R                  5      $ r   )r9   r   r%   s    r   is_availableTopic.is_available]   s    DKK  r    )r   r   )F)r   ztype[Value]r   r9   returnNone)r   objectrE   r9   )rE   r   )rE   r   )rE   list[Value])r1   rH   rE   r   )r   Sequence[Value | list[Value]]rE   r9   )rE   zSequence[Value])rE   r9   )__name__
__module____qualname____firstlineno____doc__	__slots__r   r"   propertyr&   r)   r-   r1   r6   r=   r@   rC   __static_attributes____classcell__)r   s   @r   r   r      sj     )I$ $P " " ) )	$! !r    r   N)r   rI   rE   zIterator[Value])
__future__r   collections.abcr   r   typingr   r   typing_extensionsr   langgraph._internal._typingr	   langgraph.channels.baser
   r   langgraph.errorsr   __all__r   r   r    r    r   <module>r\      sW    " .  " / 6 .
G!ENe!4d5kABG!r    