
    }
i-                        d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dl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 d d	lmZ ddZd dZd!dZ G d dej                  Z G d dej                  Zd"dZdS )#    )annotationsN)Callable)Any)RunnableRunnableLambdaRunnableSequence)ChannelVersions)override)RunnableCallableRunnableSeq)PregelProtocolprevious_versionsr	   current_versionsreturnc                      rht          t          t          |                                          d                    } |             fd|                                D             }n|}|S )zEGet subset of current_versions that are newer than previous_versions.Nc                P    i | ]"\  }}|                     |          k    ||#S  )get).0kvnull_versionr   s      C:\Users\Dell Inspiron 16\Desktop\tws\AgrotaPowerBi\back-agrota-powerbi\mcp-client-agrota\venv\Lib\site-packages\langgraph/pregel/_utils.py
<dictcomp>z,get_new_channel_versions.<locals>.<dictcomp>   sE     
 
 
1$((L9999 q999    )typenextitervaluesitems)r   r   version_typenew_versionsr   s   `   @r   get_new_channel_versionsr#      s      	(D&6&=&=&?&?!@!@$GGHH#|~~
 
 
 
 
(..00
 
 
 (r   	candidater   PregelProtocol | Nonec                   ddl m} | g}|D ]0}t          |t                    rt          ||          r	|j        dur|c S t          |t
                    st          |t                    r|                    |j                   zt          |t                    r|                    |j
                   t          |t                    rq|j        2|                    d t          |j                  D                        |j        1|                    d t          |j                  D                        2d S )Nr   )PregelFc              3  H   K   | ]}t          |d           r|j        n|V  dS __self__Nhasattrr*   r   nls     r   	<genexpr>z'find_subgraph_pregel.<locals>.<genexpr>6   K       " " $+2z#:#:BBKK" " " " " "r   c              3  H   K   | ]}t          |d           r|j        n|V  dS r)   r+   r-   s     r   r/   z'find_subgraph_pregel.<locals>.<genexpr>;   r0   r   )langgraph.pregelr'   
isinstancer   checkpointerr   r   extendstepsr   depsr   funcget_function_nonlocalsafunc)r$   r'   
candidatescs       r   find_subgraph_pregelr=   $   s~   ''''''"+J  q.))	  6**	 /0nE.I.IHHH+,, 	
1k0J0J 	ag&&&&>** 	af%%%%+,, 
	v!!! " "4QV<<" " "     $!! " "4QW==" " "   
 4r   r8   r   	list[Any]c                D   	 t          j        |           }t          j        t	          j        |                    }t                      }|                    |           g }t          | d          r-t          | j
                  rt          j        | j
                  nt          j        |           }i |j        |j        }|                                D ]\  }}||j        v r|                    |           |j        D ]x}	d|	v rr|	                    |          r]|}
|	                    d          dd         D ](}|
 n8	 t%          |
|          }
# t&          $ r Y  nw xY w|                    |
           yn%# t(          t*          t,          t.          f$ r g cY S w xY w|S )zGet the nonlocal variables accessed by a function.

    Args:
        func: The function to check.

    Returns:
        List[Any]: The nonlocal variables accessed by the function.
    __wrapped__.   N)inspect	getsourceastparsetextwrapdedentFunctionNonLocalsvisitr,   callabler@   getclosurevarsglobals	nonlocalsr    append
startswithsplitgetattrAttributeErrorSyntaxError	TypeErrorOSErrorSystemError)r8   codetreevisitorr   closurer;   r   r   kkvvparts               r   r9   r9   C   s    &&y..//#%%d t]++.089I0J0J.G"4#3444'-- 	
 >=7+<=
$$&& 	* 	*DAqG%%%a   ' * *"99q!1!19B "abb 1 	* 	*:!E&%,R%6%6#1 & & & %& b)))*	*  G[9   			 Ms6   D>E; EE; 
E 	E; E 	 E; ;FFc                  b    e Zd ZdZddZedd            Zedd
            Zedd            ZdS )rI   z2Get the nonlocal variables accessed of a function.r   Nonec                ,    t                      | _        d S N)setrN   selfs    r   __init__zFunctionNonLocals.__init__q   s    #&55r   nodeast.FunctionDefr   c                    t                      }|                    |           | j                            |j        |j        z
             dS )zVisit a function definition.

        Args:
            node: The node to visit.

        Returns:
            Any: The result of the visit.
        N	NonLocalsrJ   rN   updateloadsstoresre   rg   rZ   s      r   visit_FunctionDefz#FunctionNonLocals.visit_FunctionDeft   D     ++dgmgn<=====r   ast.AsyncFunctionDefc                    t                      }|                    |           | j                            |j        |j        z
             dS )zVisit an async function definition.

        Args:
            node: The node to visit.

        Returns:
            Any: The result of the visit.
        Nrj   ro   s      r   visit_AsyncFunctionDefz(FunctionNonLocals.visit_AsyncFunctionDef   rq   r   
ast.Lambdac                    t                      }|                    |           | j                            |j        |j        z
             dS )zVisit a lambda function.

        Args:
            node: The node to visit.

        Returns:
            Any: The result of the visit.
        Nrj   ro   s      r   visit_LambdazFunctionNonLocals.visit_Lambda   rq   r   Nr   r`   )rg   rh   r   r   )rg   rr   r   r   )rg   ru   r   r   )	__name__
__module____qualname____doc__rf   r
   rp   rt   rw   r   r   r   rI   rI   n   s        <<) ) ) ) > > > X> > > > X> > > > X> > >r   rI   c                  J    e Zd ZdZddZedd            Zedd
            ZdS )rk   z Get nonlocal variables accessed.r   r`   c                R    t                      | _        t                      | _        d S rb   )rc   rm   rn   rd   s    r   rf   zNonLocals.__init__   s    "uu
 #r   rg   ast.Namer   c                   t          |j        t          j                  r!| j                            |j                   dS t          |j        t          j                  r!| j                            |j                   dS dS )zVisit a name node.

        Args:
            node: The node to visit.

        Returns:
            Any: The result of the visit.
        N)	r3   ctxrE   Loadrm   addidStorern   )re   rg   s     r   
visit_NamezNonLocals.visit_Name   sr     dh)) 	%JNN47######),, 	%KOODG$$$$$	% 	%r   ast.Attributec                   t          |j        t          j                  r|j        }|j        }t          |t          j                  r.|j        dz   |z   }|j        }t          |t          j                  .t          |t          j                  rF| j        	                    |j
        dz   |z              | j                            |j
                   dS t          |t          j                  rt          |j        t          j                  r&| j        	                    |j        j
                   dS |j        }d}t          |t          j                  r8|r|j        dz   |z   }n|j        }|j        }t          |t          j                  8t          |t          j                  r+| j        	                    |j
        dz   |z              dS dS dS dS )zVisit an attribute node.

        Args:
            node: The node to visit.

        Returns:
            Any: The result of the visit.
        rA    N)r3   r   rE   r   valueattr	AttributeNamerm   r   r   discardCallr8   )re   rg   parent	attr_exprs       r   visit_AttributezNonLocals.visit_Attribute   s    dh)) 	DZF	IVS]33 &"K#-	9	 VS]33 & &#(++ D
vy3:;;;
""69-----FCH-- Dfk3844 DJNN6;>22222#[F "I$VS];; .$ 4(.c(9I(EII(.I!' %VS];; . "&#(33 D
vy3'BCCCCC-	D 	DD DD Dr   Nrx   )rg   r   r   r   )rg   r   r   r   )ry   rz   r{   r|   rf   r
   r   r   r   r   r   rk   rk      st        **& & & & % % % X% D D D XD D Dr   rk   r   strboolc                F    t          t          j        d|                     S )zCCheck if the given string matches the format of xxh3_128_hexdigest.z[0-9a-f]{32})r   re	fullmatch)r   s    r   is_xxh3_128_hexdigestr      s    _e44555r   )r   r	   r   r	   r   r	   )r$   r   r   r%   )r8   r   r   r>   )r   r   r   r   )
__future__r   rE   rC   r   rG   collections.abcr   typingr   langchain_core.runnablesr   r   r   langgraph.checkpoint.baser	   typing_extensionsr
   langgraph._internal._runnabler   r   langgraph.pregel.protocolr   r#   r=   r9   NodeVisitorrI   rk   r   r   r   r   <module>r      s   " " " " " " 



  				  $ $ $ $ $ $       O O O O O O O O O O 5 5 5 5 5 5 & & & & & & G G G G G G G G 4 4 4 4 4 4   $   >( ( ( (V.> .> .> .> .> .> .> .>b6D 6D 6D 6D 6D 6D 6D 6Dr6 6 6 6 6 6r   