
    }
i"              
      `   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
 d dlmZ d dlmZ d dlmZmZ d dlmZ d d	lmZmZmZmZmZmZmZ d d
lmZ d dlmZ d dl m!Z! d dl"m#Z# d dl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*  ed          Z+dHdZ,dIdZ-dJdZ.dKd"Z/dLd%Z0dMd1Z1dNd7Z2d8d9d:d;d<d=d>d?d@dA	Z3dOdEZ4dPdFZ5dGS )Q    )annotations)IterableIteratorMappingSequenceasdict)Any)UUID)RunnableConfig)CheckpointMetadataPendingWrite)patch_checkpoint_map)CONFCONFIG_KEY_CHECKPOINT_NSERROR	INTERRUPTNS_ENDNS_SEPRETURN)MISSING)BaseChannel)
TAG_HIDDEN)read_channels)CheckpointPayloadPregelExecutableTask
PregelTaskStateSnapshotTaskPayloadTaskResultPayloadz$6ba7b831-9dad-11d1-80b4-00c04fd430c8tasksIterable[PregelExecutableTask]returnIterator[TaskPayload]c              #     K   | D ]I}|j         #t          |j                             dg           v r,|j        |j        |j        |j        dV  JdS )z,Produce "task" events for stream_mode=debug.Ntags)idnameinputtriggers)configr   getr'   r(   r)   r*   )r!   tasks     C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\langgraph/pregel/debug.pymap_debug_tasksr/   %   sx       	
 	
;"zT[__VR5P5P'P'P 'IZ	
 
 	
 	
 	
 	
		
 	
    valuer
   boolc                j    t          | t                    od| v ot          | d         t                    S )zOReturn True if the payload already wraps multiple writes from the same channel.$writes)
isinstancedictlist)r1   s    r.   is_multiple_channel_writer8   3   s:     	5$ 	/	/uY'..r0   writesSequence[tuple[str, Any]]dict[str, Any]c                    i }| D ]X\  }}|                     |          }|7t          |          r|d         n|g}|                    |           d|i||<   S|||<   Y|S )aJ  Folds task writes into a result dict and aggregates multiple writes to the same channel.

    If the channel contains a single write, we record the write in the result dict as `{channel: write}`
    If the channel contains multiple writes, we record the writes in the result dict as `{channel: {'$writes': [write1, write2, ...]}}`Nr4   )r,   r8   append)r9   resultchannelr1   existingchannel_writess         r.   map_task_result_writesrB   <   s      F  $ $::g&& -X66 ##Z 
 !!%((((.9F7OO#F7OOMr0   task_tup6tuple[PregelExecutableTask, Sequence[tuple[str, Any]]]stream_keysstr | Sequence[str]Iterator[TaskResultPayload]c              #     K   t          |t                    r|gn|| \  }}|j        |j        t	          d |D             d          t          fd|D                       d |D             dV  dS )z3Produce "task_result" events for stream_mode=debug.c              3  H   K   | ]}|d          t           k    |d         V  dS r      N)r   ).0ws     r.   	<genexpr>z)map_debug_task_results.<locals>.<genexpr>_   s.      ==qtu}}qt}}}}==r0   Nc                J    g | ]}|d          v s|d          t           k    | S )r   )r   )rL   rM   stream_channels_lists     r.   
<listcomp>z*map_debug_task_results.<locals>.<listcomp>a   s1    QQQ1!A$*>">">!A$&..Q...r0   c                    g | ]Q}|d          t           k    t          |d         t                    r|d         n|d         gD ]}t          |          RS )r   rK   )r   r5   r   r	   )rL   rM   vs      r.   rQ   z*map_debug_task_results.<locals>.<listcomp>c   si     
 
 
ty  (1x88Daddqtf !  1II    r0   )r'   r(   errorr>   
interrupts)r5   strr'   r(   nextrB   )rC   rE   r-   r9   rP   s       @r.   map_debug_task_resultsrX   S   s       $K55F;  LD&g	==V===tDD(QQQQQQQ
 

 

 
 
      r0   r+   RunnableConfig | Nonec                r    | | S dd |                      di                                           D             iS )z,Remove pregel-specific keys from the config.Nconfigurablec                D    i | ]\  }}|                     d           ||S )	__pregel_)
startswith)rL   krS   s      r.   
<dictcomp>z"rm_pregel_keys.<locals>.<dictcomp>q   s@     
 
 
1<<,,
q
 
 
r0   )r,   items)r+   s    r.   rm_pregel_keysrb   l   sO    ~ 
 


>266<<>>
 
 
 r0   r   channelsMapping[str, BaseChannel]stream_channelsmetadatar   pending_writeslist[PendingWrite]parent_configoutput_keysIterator[CheckpointPayload]c              #    K   | t                                        t          d          }i }	|D ][}
|
j        s
|
j         t
           |
j         }|r| t           | }t           d| t                    d         t          |ii|	|
j        <   \t          t          | |                    t          t          ||                    t          ||          |d |D             d t          |||	|          D             dV  dS )z2Produce "checkpoint" events for stream_mode=debug. 	thread_idc                    g | ]	}|j         
S  )r(   rL   ts     r.   rQ   z(map_debug_checkpoint.<locals>.<listcomp>   s    '''A'''r0   c           	     4   g | ]}|j         r|j        |j        |j         |j        d np|j        r8|j        |j        |j        t          d |j        D                       |j        dn1|j        |j        t          d |j        D                       |j        dS ))r'   r(   rT   statec              3  4   K   | ]}t          |          V  d S Nr   rL   is     r.   rN   z2map_debug_checkpoint.<locals>.<listcomp>.<genexpr>   (      #D#D!F1II#D#D#D#D#D#Dr0   )r'   r(   r>   rU   rt   c              3  4   K   | ]}t          |          V  d S rv   r   rw   s     r.   rN   z2map_debug_checkpoint.<locals>.<listcomp>.<genexpr>   ry   r0   )r'   r(   rU   rt   )rT   r'   r(   rt   r>   tuplerU   rq   s     r.   rQ   z(map_debug_checkpoint.<locals>.<listcomp>   s     
 
 
,  wd	   xd(##D#Dq|#D#D#DDD   d##D#Dq|#D#D#DDD	 !
 
 
r0   )r+   ri   valuesrf   rW   r!   N)r   r,   r   	subgraphsr(   r   r'   r   rb   r   r   tasks_w_writes)r+   rc   re   rf   r!   rg   ri   rj   	parent_nstask_statesr-   task_nss               r.   map_debug_checkpointr   y   sG      t  !92>>I=?K 
 
~ 	 Y1111 	6"5F5G55G VD\+6(' 
DG !!5fh!G!GHH'(<]H(U(UVV/::'''''
 
, $E>;TT-
 
 
      r0   +Iterable[PregelTask | PregelExecutableTask]list[PendingWrite] | Nonestates0dict[str, RunnableConfig | StateSnapshot] | Nonetuple[PregelTask, ...]c                @   |pg }g }| D ]t          fd|D             t                    }t          fd|D             d          }t          fd|D                       }fd|D             }|t          ur|}	nt          t                    rDfd|D             }
t          |
          }|r"|                    t	                              nd}	n;t          t                    rgfd|D             }
t          |
          }|
r|ni }	|t          upt          fd|D                       }|                    t          j
        j        j        |||r|                    j
                  nd|r|	nd                     t          |          S )	zJApply writes / subgraph states to tasks to be returned in a StateSnapshot.c              3  P   K   | ] \  }}}|j         k    |t          k    |V  !d S rv   )r'   r   rL   tidchanvalr-   s       r.   rN   z!tasks_w_writes.<locals>.<genexpr>   sE        "Cs$'>>dfnn &4nnn r0   c              3  P   K   | ] \  }}}|j         k    |t          k    |V  !d S rv   )r'   r   )rL   r   nexcr-   s       r.   rN   z!tasks_w_writes.<locals>.<genexpr>   s7      TT[S!ScTWnneSTTr0   Nc              3     K   | ]=\  }}}|j         k    |t          k    t          |t                    r|n|gD ]}|V  >d S rv   )r'   r   r5   r   )rL   r   r   vvrS   r-   s        r.   rN   z!tasks_w_writes.<locals>.<genexpr>   si        
  
Qdg~~!y..&r844>bb2$ #1. "0.... 
  
r0   c                b    g | ]+\  }}}|j         k    |t          t          t          fv'||f,S rp   )r'   r   r   r   r   s       r.   rQ   z"tasks_w_writes.<locals>.<listcomp>   sI     
 
 
T3dg~~$ui.H"H"H 3K"H"H"Hr0   c                *    g | ]\  }}|k    ||fS rp   rp   rL   r   r   rj   s      r.   rQ   z"tasks_w_writes.<locals>.<listcomp>   s2        )cDK<O<Os<O<O<Or0   c                &    g | ]\  }}|v 	||fS rp   rp   r   s      r.   rQ   z"tasks_w_writes.<locals>.<listcomp>   s2        )cDK<O<Os<O<O<Or0   c              3  f   K   | ]+}|d          j         k    o|d         t          t          fvV  ,dS rJ   )r'   r   r   )rL   rM   r-   s     r.   rN   z!tasks_w_writes.<locals>.<genexpr>   sQ       /
 /
CDAaDDGO>!UI,> >/
 /
 /
 /
 /
 /
r0   )rW   r   r{   r5   rV   rB   r,   anyr=   r   r'   r(   path)r!   rg   r   rj   outrtn
task_errortask_interruptstask_writestask_resultfiltered_writesmapped_writes
has_writesr-   s      `         @r.   r~   r~      s    $)rNC <
 <
   &4  
 
 
 TTTTNTTT
 

    
  
  
  
, 
  
  
 
 

 
 
 
"0
 
 
 gKKS)) 	C   -8  O 3?CCMANX-++C,<,<===TXKK+s++ ,*m   -8  O 3?CCM+:B--K' 
3 /
 /
 /
 /
HV/
 /
 /
 ,
 ,

 	

		'-7

47###4)3t 
	
 
	
 
	
 
	
 ::r0   z0;30z0;31z0;32z0;33z0;34z0;35z0;36z0;37z1;30)	blackredgreenyellowbluemagentacyanwhitegraytextrV   colorc                *    dt           |          d|  dS )zGet colored text.z[1;3m[0m)COLOR_MAPPING)r   r   s     r.   get_colored_textr     s     :mE*::T::::r0   c                    d|  dS )zGet bolded text.z[1mr   rp   )r   s    r.   get_bolded_textr     s    "T""""r0   N)r!   r"   r#   r$   )r1   r
   r#   r2   )r9   r:   r#   r;   )rC   rD   rE   rF   r#   rG   )r+   rY   r#   rY   )r+   r   rc   rd   re   rF   rf   r   r!   r"   rg   rh   ri   rY   rj   rF   r#   rk   )
r!   r   rg   r   r   r   rj   rF   r#   r   )r   rV   r   rV   r#   rV   )r   rV   r#   rV   )6
__future__r   collections.abcr   r   r   r   dataclassesr	   typingr
   uuidr   langchain_core.runnablesr   langgraph.checkpoint.baser   r   langgraph._internal._configr   langgraph._internal._constantsr   r   r   r   r   r   r   langgraph._internal._typingr   langgraph.channels.baser   langgraph.constantsr   langgraph.pregel._ior   langgraph.typesr   r   r   r   r   r    TASK_NAMESPACEr/   r8   rB   rX   rb   r   r~   r   r   r   rp   r0   r.   <module>r      s   " " " " " " A A A A A A A A A A A A                   3 3 3 3 3 3 F F F F F F F F < < < < < <                  0 / / / / / / / / / / / * * * * * * . . . . . .                <==
 
 
 
      .   2
 
 
 
> > > >BF F F FT 
 
; ; ; ;
# # # # # #r0   