
    }
i/              
          d dl mZ d dlmZ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 dZddZ G d dee         eee         eee         z  ee         f                   ZdS )    )annotations)IteratorSequence)AnyGeneric)Self)MISSING)BaseChannelValue)EmptyChannelError)TopicvaluesSequence[Value | list[Value]]returnIterator[Value]c              #  X   K   | D ]$}t          |t                    r	|E d {V   |V  %d S N)
isinstancelist)r   values     C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\langgraph/channels/topic.py_flattenr      sW        eT"" 	KKKK	     c                       e Zd ZdZdZ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   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   
accumulateFtyptype[Value]r   boolr   Nonec                    t                                          |           || _        t          t                               | _        d S r   )super__init__r   r   r   r   )selfr   r   	__class__s      r   r"   zTopic.__init__$   s5    $5kmmr   r   objectc                L    t          |t                    o|j        | j        k    S r   )r   r   r   )r#   r   s     r   __eq__zTopic.__eq__+   s!    %''OE,<,OOr   r   c                &    t           | j                 S )z,The type of the value stored in the channel.)r   r   r#   s    r   	ValueTypezTopic.ValueType.   s     !!r   c                6    | j         t          | j                  z  S )z/The type of the update received by the channel.)r   r   r)   s    r   
UpdateTypezTopic.UpdateType3   s     x$tx.((r   r   c                    |                      | j        | j                  }| j        |_        | j                                        |_        |S )zReturn a copy of the channel.)r$   r   r   keyr   copy)r#   emptys     r   r/   z
Topic.copy8   s<    tx99H	{''))r   list[Value]c                    | j         S r   )r   r)   s    r   
checkpointzTopic.checkpoint?   s
    {r   r3   c                    |                      | j        | j                  }| j        |_        |t          ur*t          |t                    r|d         |_        n||_        |S )N   )r$   r   r   r.   r	   r   tupler   )r#   r3   r0   s      r   from_checkpointzTopic.from_checkpointB   sX    tx99H	W$$*e,, *)!})r   r   r   c                    d}| j         s2t          | j                  }t          t                               | _        t          t          |                    x}rd}| j                            |           |S )NFT)r   r   r   r   r   r6   r   extend)r#   r   updatedflat_valuess       r   updatezTopic.updateM   sl     	(4;''Gu+--DK 0 0111; 	,GK{+++r   Sequence[Value]c                F    | j         rt          | j                   S t          r   )r   r   r   r)   s    r   getz	Topic.getW   s"    ; 	$$$$##r   c                *    t          | j                  S r   )r   r   r)   s    r   is_availablezTopic.is_available]   s    DK   r   )F)r   r   r   r   r   r   )r   r%   r   r   )r   r   )r   r   )r   r1   )r3   r1   r   r   )r   r   r   r   )r   r=   )r   r   )__name__
__module____qualname____doc__	__slots__r"   r'   propertyr*   r,   r/   r3   r7   r<   r?   rA   __classcell__)r$   s   @r   r   r      s#         )I$ $ $ $ $ $ $P P P P " " " X" ) ) ) X)      	 	 	 	   $ $ $ $! ! ! ! ! ! ! !r   r   N)r   r   r   r   )
__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>rR      s   " " " " " " . . . . . . . .         " " " " " " / / / / / / 6 6 6 6 6 6 6 6 . . . . . .
   G! G! G! G! G!ENe!4d5kABG! G! G! G! G!r   