ó
    ýÞ j/  ã            
      ó´   • 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     ÚR/var/www/html/gaurav/venv/lib/python3.13/site-packages/langgraph/channels/topic.pyÚ_flattenr      s-   é € ÛˆÜ�eœT×"Ñ"Ø×ÒàŒ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   é   zÎA 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"   ø€ Ü‰Ñ˜Ôà$Œäœ5’k“mˆ�ó    c                ób   • [        U[        5      =(       a    UR                  U R                  :H  $ r   )r   r   r   )r   r   s     r   Ú__eq__ÚTopic.__eq__+   s#   € Ü˜%¤Ó'×O¨E×,<Ñ,<ÀÇÁÑ,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   € ð �x‰xœ$˜tŸx™x™.Ñ(Ð(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>   € à—‘˜tŸx™x¨¯©Ó9ˆØ—H‘HˆŒ	Ø—{‘{×'Ñ'Ó)ˆŒØˆ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   € Ø—‘˜tŸx™x¨¯©Ó9ˆØ—H‘HˆŒ	Øœ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š+›-ˆDŒKÜ¤¨Ó 0Ó1Ð1ˆ;Õ1ØˆGØ�K‰K×Ñ˜{Ô+Øˆ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   € Ü�D—K‘KÓ Ð 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!ØˆE�NØ�˜‘ ¨¨e©Ñ!4°d¸5±kÐAÑBõG!r    